zoukankan      html  css  js  c++  java
  • 接口框架模板笔记

    给你一个项目,接口自动化测试怎么开展的?
    1、需求分析 - 了解业务/功能 - 项目现状(周期 - 回归测试)TDD - 历史功能/稳定的功能/新的功能/线上问题最多的历史功能模块?/核心功能/自己负责的部分

    2、接口的了解 - 接口文档? 抓包?swagger?? --- 向上抛出。-- 找领导协商外部资源。


    3、自动化框架/工具选择 --- 工具的可扩展性以及扩展语言 + 选几个复杂的接口去试用,看在鉴权和断言方面的处理。
    框架结构
    运行流程
    命名规范


    4、写接口用例? ---
    写接口用例脚本
    尽早加入jenkins集成
    定期汇报
    测试报告 - 分析用例失败
    从你最开始做自动化,到一直做自动化,记录发现的bug



    5、维护阶段
    开发修改接口 - 同步修改用例
    新增接口
    遇到了问题,优化框架



    postman和jmeter


    自动化测试方案?

    自动化框架提供了哪些功能?
    我用你的框架,可以使用哪些功能?
    1、编写用例(前置后置、断言)、执行用例、生成测试报告。
    2、日志功能,回溯问题

    针对接口测试:
    1、数据库处理
    2、接口关联处理
    3、数据参数化(数据驱动思想)实现 - excel数据读取
    4、提取数据处理
    5、数据替换处理
    6、配置文件处理
    7、http请求封装:鉴权处理,请求头处理。
    8、数据生成处理



    1、框架的整体结构、结构设计
    分层设计思想、数据驱动思想
    【1】Common - 公共工具层
    config
    data
    db
    excel
    extract_data_from_response
    path
    phone
    requests
    ddt
    logger

    【2】TestCases - unittest实现,ddt模块
    test_user_business.py (业务流)
    test_add.py(加标)
    test_invest.py(投资)
    test_login.py(登录)
    test_recharge.py(充值)
    test_register.py(注册)
    test_withdraw.py(提现)

    【3】TestDatas - excelini配置文件脚本生成的数据
    api_cases.xlsx(用例表单)

    【4】Conf - 配置层 - 数据库连接配置、全局接口url配置、日志配置、全局共用数据配置
    py_30.ini 配置文件

    【5】Outputs - 报告 /日志
    py30.log 日志输出
    report_.html 报告输出
    【6】
    main.py - 框架的入口文件 - 执行它,收集用例执行用例生成报告。



    参数关联:
    下一个接口的请求依赖于上一个接口的请求返回值

    思想:提取上一个接口的返回值,然后设置为全局变量,下一个接口调用这个全局变量就好了
    在我的框架的当中,有一个Handle_data的py文件,专门来处理。
    如何提取的:jsonpath提取技术,在excel当中把全局变量名和提取表达式写好,执行用例的时候,根据提取表达式得到结果并设置全局变量。
    如何设置为全局变量:全局变量的实现机制是:定义一个全局变量类EnvData。通过setattr函数将提取到的结果,动态的设置为EnvData的类属性。
    如何调用的:在下一个接口发送之前,将请求数据从excel读取出来之后,使用正则替换请求数据当中特定的变量名。使用#变量名#来表示这是要被替换的。


    断言处理上:
    比对code码。返回结果数据比较多的时候,只想比对一部分是怎么做的?有哪几种断言类型(postman)?
    数据上的比对:
    数据库的比对:



    excel用例很多读取很慢的时候,怎么处理???

    把数据库的数据删了 就是不可逆 删除操作为软删除 数据库中只是更改状态 就是可逆的

    怎么保证不漏测
    1、深刻理解需求/业务 - 覆盖更多用例
    2、用例评审
    3、多人交叉测试 - 交互测试
    4、如果有用户场景没覆盖掉。 -- 不断加进去
    5、有机会的话,与项目客户接触一下。


    先想明白用例逻辑/实现-步骤、断言、哪些数据是动态替换 才去写代码。

    1、编写excel测试数据
    用例步骤:
    2、根据表单读取到用例数据
    3、使用unittest框架定义测试类。并使用ddt模块应用数据驱动思想
    4、类前置当中,清除环境变量类当中的属性

    5、替换请求数据当中,需要动态替换的数据(其它的接口返回值、配置文件、脚本生成的)。
    6、如果有前置sql语句,还需要替换sql查询到的数据
    7、发送请求
    8、若有提取表达式,在响应结果当中,jsonpath提取数据,并设置为环境变量
    9、若有断言表达式,则以字典的形式,比对期望和实际结果。
    10、若有sql检查,则在数据库中执行sql数据,与期望结果比对。

    mock应用场景:测试当中,你要请求的接口,你得不到响应数据。 接口可能没实现/可能暂时坏了/第三方的
    mock,模拟一下接口的返回。
    mock服务 - fastmock - https://www.fastmock.site/
    rap2 - http://rap2.taobao.org/account/login

    mock - unittest.mock
  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 黑色星期五
    Java实现 蓝桥杯VIP 算法训练 比赛安排
    Java实现 蓝桥杯VIP 算法训练 比赛安排
    Java实现 蓝桥杯VIP 算法训练 斜率计算
    Java实现 蓝桥杯VIP 算法训练 斜率计算
    Java实现 蓝桥杯VIP 算法训练 整数平均值
    Java实现 蓝桥杯VIP 算法训练 整数平均值
    控件动态产生器(使用RegisterClasses提前进行注册)
    Delphi编写自定义控件以及接口的使用(做了一个TpgDbEdit)
    Log4delphi使用心得
  • 原文地址:https://www.cnblogs.com/zhang-ping1205/p/13423784.html
Copyright © 2011-2022 走看看