接口框架模板笔记

给你一个项目,接口自动化测试怎么开展的?
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
原文地址:https://www.cnblogs.com/zhang-ping1205/p/13423784.html