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

letme · June 25, 2018 · Last by younger replied at November 01, 2018 · 9317 hits

源码地址: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文件内

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

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 27 条回复 时间 点赞

膜拜大佬😑

大佬,这个开源没?

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

邮件中可以用js

letme #7 · June 25, 2018 作者
taki 回复

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

letme 回复

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

老铁666

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

11Floor has been deleted
letme #12 · June 26, 2018 作者

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

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

膜拜大佬,先mark一下

膜拜大佬,github 已经加星

letme #17 · June 28, 2018 作者
闲熊翻身 回复

谢谢支持

大佬写得真复杂

19Floor has been deleted

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

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

letme #22 · July 05, 2018 作者
a1l9e8x6 回复

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

letme #23 · July 05, 2018 作者
xieshuxian 回复

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

Author only
letme #25 · July 06, 2018 作者

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

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

letme #27 · July 10, 2018 作者
狼图腾 回复

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

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

letme #30 · August 07, 2018 作者
qihangzhao 回复

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

问问这个集成了jenkins了吗?

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

letme 自研接口测试平台 requestnew 中提及了此贴 15 Feb 13:45
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up