接口自动化
痛点:
1、项目涉及到微信小程序,现有接口测试平台不能将PC端与微信小程序的接口实现完全流程自动化
2、涉及多场景的接口或者流程类接口,接口录入繁杂,人工成本增加且效率低
解决方案:
将Swagger或者Yapi平台的接口数据自动存入Excel载体,并根据Excel接口数据标识来自动生成接口yaml文件以及pytest测试用例文件
代码整体框架
1. 从Swagger或者Yapi接口平台自动获取接口数据存入Excel载体
方便一览所有接口数据(包括接口名称,请求方法,请求路径,请求头,请求参数等等)
其中【版本】会更新接口变化对应+1,接口平台接口数据有更新或者删除都会相应做出提醒并在确认后更新本地的excel,yaml以及testcase文件;
根据【是否生成用例文件】来判断是否生成用例文件
2. 根据Excel接口文件自动生成接口yaml文件
方便测试人员根据测试场景需要维护接口测试数据,主要分为正向场景和反向场景,
其中para_xx.yml文件主要维护场景名称,需要参数化的接口字段,接口校验,保存接口数据值
3. 同时,自动生成pytest测试用例文件
使用jinja2模板技术,并关联接口的yaml文件来生成,分为正向场景用例和反向场景用例
4. 替换数据生成接口请求数据
在执行testcase前,先对两个接口yaml文件进行参数执行/替换,生成真正的接口请求数据
主要使用Template模块来替换,支持常量参数,支持通过执行函数获取值作为参数值,支持获取其他接口执行结果作为参数值
5. 执行单接口用例
根据pytest批量收集测试用例来执行,比如按正向测试用例与反向测试用例分别执行,如:
pytest -m "prior" testcases/
6. 自动化获取微信小程序token
通过继承微信小程序Minitest,调用微信开发者程序实现自动化获取token
7. 执行流程类接口用例
通过在对应yaml文件中维护流程场景名称以及涉及的接口名称:第几个接口场景来实现流程类接口用例执行
8. 测试报告
引用Allure来展现接口测试用例执行报告,并记录每个接口请求详情信息
- 创新点1:自动生成接口自动化文件和用例,减少投入成本
- 创新点2: 将测试数据与脚本分离,测试人员根据测试场景录入接口数据后执行用例即可
- 创新点3: 支持批量回归单接口/流程类业务场景
- 创新点4: 同步规范开发swagger和yapi接口平台文档的维护,平台修改接口也会同步更新已生成接口测试文件
- 创新点5:实现自动化获取微信小程序token