自动化工具 bootstrap3+unittest+django2 接口自动化测试平台 (集成 apschedule 定时框架和测试报告统计分析)

letme · 2018年06月25日 · 最后由 李文良 回复于 2020年08月17日 · 7827 次阅读

源码地址:https://github.com/happyletme/requestnew
第三篇地址:https://testerhome.com/topics/15352
https://testerhome.com/topics/13269 的基础上,完善了日志模块,邮件模块,统计分析和 html 报告 (目前采用 HTMLTestRunner 自动生成的报告),失败重跑次数动态配置,定时执行模块,
部署在 linux 上运行(新增启动和关闭的 shell 脚本搭配 jenkins 做持续代码集成和自动部署)。
新增 python 包:
bs4
apscheduler

日志模块
每次执行日志放置在对应的任务目录下,日志名带上对应的时间戳,会有成功日志和失败日志,没有数据则不产生单次执行的错误或者失败日志。成功日志显示步骤名,访问地址 +api,访问方式,headers,传参和返回内容里解析出的 message 信息;错误日志显示步骤名,访问地址 +api,,访问方式,headers,传参和返回内容里解析出的 message 信息,错误断言信息(内部错误的接口不产生在错误日志里,产生在 html 报告里,html 报告采用 HTMLTestRunner)


失败重跑次数
前端执行时输入重跑参数,传给 django 后端,修改 uniittest 源码方式改变执行次数

定时执行模块
执行方式分为直接执行或者采用正则调度执行(方式跟 jenkins 上的定时任务配置基本一致,规则是:minute0-59 hour0-23 day1-31 month1-12 day_of_week0-6),采用正则调度执行时,所有配置数据先入库等待调度

报告统计分析输出(借鉴别人的图片,图片展示的也做的比我好看,本来想指出,找不到借鉴人了)
前端展示用例数,定时任务数,总的错误数,今日反馈数,最后 5 次执行情况(总执行数,成功数,接口内部错误数,断言失败数),总的通过数失败数错误断言数比例,总的反馈信息,当天的反馈信息。实现方式,写了个小爬虫,采集自带的报告信息和日志信息,入库,分析,后端数据传到 echart 展示数据。


集成邮件
发送的是 HTMLTestRunner 产生的报告(由于邮件中不能使用 js,成功和失败的步骤在一起时,成功的步骤不能直观的显示出来),和成功和失败日志

最后是 linux 上的部署安装
进行数据库迁移后,在根目录下写了一个启动和关闭脚本,日志指定根目录上级 logs 目录下的 request.log 文件内

小菜鸟的我写完了,希望各位大佬指点

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 28 条回复 时间 点赞
letme bootstrap3+unittest+django2 接口自动化测试平台 中提及了此贴 06月25日 10:29

膜拜大佬😑

大佬,这个开源没?

抱大佬大腿。现在看不懂,先马住

邮件中可以用 js

taki 回复

我百度了下 ,说是邮件会屏蔽 js。如果说可以用是不是需要设置邮箱。

letme 回复

也可能不同邮箱有区别,我记得 qq 邮箱是可以的,你可以试一下

大佬,貌似执行测试用例的流程还不通啊!!

11楼 已删除
letme #12 · 2018年06月26日 Author

你怎么执行的,有些地方需要调整过的,建议部署在 linux 上。window 的话我是编译器启动服务的,如果你在 window 是上用 python manage.py runserver 启动的,对于文件和文件夹的操作是会出现问题

建立一个群吧,可以方便大家一起把这个项目搞好

膜拜大佬,先 mark 一下

letme bootstrap3+unittest+django2 接口自动化测试平台 中提及了此贴 06月27日 14:16

膜拜大佬,github 已经加星

letme #16 · 2018年06月28日 Author
闲熊翻身 回复

谢谢支持

大佬写得真复杂

19楼 已删除

请问具体如何运行项目,有详细的文档吗,然后在 linux 如何部署;sql 文件有吗,求跑起来。。。最好有个学习群呢

这些用例都是要自己执行和定时执行吗 不能 git push 后 触发执行吗

letme #22 · 2018年07月05日 Author
a1l9e8x6 回复

我暂时没写,部署的话 python3.6,下载对应的 python 库,以 django 的部署方式去部署启动,sql 的话 django 是 model.py 文件,python manage.py makemigrations 和 python manage.py migrate 进行数据库迁移会自己生成表结构

letme #23 · 2018年07月05日 Author
小树 回复

git push 是代码跟新,跟用例执行并没有关系吧

仅楼主可见
letme #23 · 2018年07月06日 Author

临时创了个 QQ 群 655981739,大家有兴趣的一起加群学习吧。

用 uwsgi 部署 django 时,apschedule 会失效,请问楼主是怎么解决这个问题的

letme #25 · 2018年07月10日 Author
gaomengsuijia 回复

是用 nginx 和 uwsgi 部署 django,apschedule 会失效,这个我还没部署过,不太清楚呢

请问这个平台要想把前一个接口的返回值用作下一个接口调用的传入参数,怎么操作?

letme #28 · 2018年08月07日 Author
qihangzhao 回复

我还在开发,可以跟你讲一下开发思路:
1.将接口返回值存入 mongo
2.每个接口拥有一个权值,配置接口依赖后,对应权重会发生变化,通过权重去控制执行顺序
3.根据用户配置的上个接口的取参,去 mongo 对应接口中拿出对应的 value
4.通过 ${}的形式替换测试接口的变量

letme 开源~自研接口测试平台 Django2+Bootstrap3+Unittest 中提及了此贴 08月17日 18:02

问问这个集成了 jenkins 了吗?

匿名 #33 · 2018年11月01日

想问下:楼主是怎么处理消息队列的? 用的是什么框架?

letme 自研接口测试平台 requestnew 中提及了此贴 02月15日 13:45

我看到好几个长得跟双胞胎。。。。。。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册