一、背景
在做企业工厂后台系统的接口自动化的过程中,遇到了些之前没有遇到过的问题,中间断断续续的考虑了很多种方法,最后是把所有问题都解决了,总结出了一套自主搭建的接口自动化框架,简单命名为ApiAutoTest框架,记录下从构思到实现的过程。
二、简介
市场上有很多做接口自动化测试的工具:postman、jmeter、httprunner、pytest、unittest、robotframwork…
其实原理都是一样的,通过调用request库模拟前端发送http请求,得到响应结果,再用接口测试工具封装的语法进行断言,然后根据断言结果生成html的测试报告。
ApiAutoTest框架实现的原理也是一样的,但是相比这些工具或框架,优点如下:
1.解决了接口请求体数据量巨大怎么存放的问题;
2.采用工厂方法设计模式,减少重复代码的编写,提高开发效率;
3.相比市场上的工具、框架,只生成html文件的测试报告,ApiAutoTest框架搭建Web 应用框架渲染静态html文件,通过URL可以查看测试报告;
4.支持多条业务线水平开发
5.集成了切换生产/预发布环境运行测试用例功能,封装发送钉钉测试结果消息的功能,配置持续集成、定时监控功能。
三、采用了哪些开源技术/框架
python3
flask
utx
unittest
requests
pymongo
docker
MongoDB
jenkins
四、框架架构图
ApiAutoTest框架实现思路(可跳转)
五、环境配置
代码目录如下:
每个文件的具体作用,在架构图中都是一一对应的。
环境配置:
1.搭建MongoDB服务环境:https://blog.csdn.net/zhoujunjunlove/article/details/108749683
2.搭建自动化测试运行环境:https://blog.csdn.net/zhoujunjunlove/article/details/109167765
3.搭建接口自动化测试持续集成环境:https://blog.csdn.net/zhoujunjunlove/article/details/109167373
4.搭建web框架:https://blog.csdn.net/zhoujunjunlove/article/details/109167290
六、效果
每天7、12、22点定时巡检
测试报告链接:http://10.3.254.158/fmbweb/autoapitest/report
七、其它
原本是想写一下使用方法,但是由于时间问题,开发过程中很多东西没有做成通用配置,源码放出来,需要上手开发也需要一定的门槛,但是可以提供一个分享的思路,
有兴趣的可以一起交流。后续还是需要投入时间进行迭代,才可以慢慢把这个框架做成一个容易上手开发的框架。