写在前面
本人40+ ,在帝都干了差不多20年的软件测试相关工作,基本上都算大厂或二线大厂吧,主要涉及反病毒主动防御等安全类客户端,Android客户端,SaaS系统等,去年起开始赋闲。
前几天给一个朋友的团队做HTTP接口自动化分享,于是翻出了之前写的框架,略微整理下,主要是去掉了老东家用的 slack 告警,email 检查等,并完善了部分 README 内容,现在公开此方案,希望对有些朋友能有所帮助。
另外,大家使用中如果有什么问题和要求,可在此跟帖,或直接在 github 提 Issues,我抽空可能会回复哈。此外还写了个基于 playwright 的 web 自动化测试框架,过些天整理后也可能会公开分享。
API 自动化项目地址:
https://github.com/wangdaqiao/Http_API_Auto
Python 3 实现Http API自动化 (pytest+requests+ Allure)
主要思路和步骤
-
借助 Mitmproxy 来抓取产品使用中的 http api 接口数据
-
运行脚本 generate_newcases_from_api_record.py 处理上一步抓取到的接口数据,可生成新 api 的测试数据。
-
根据需要设置 api 的测试数据,补充到框架中。如完善 status code, 指定运行环境和优先级,提取参数变量,完善 jsonschema 校验等,通常仅需处理参数提取逻辑。
-
执行测试。
实现功能
-
通过 requests session 会话,一次登录,免除 cookie 关联处理
-
测试数据驱动,csv 方便版本比较,补充完善用例
-
自动生成测试用例(含断言),小白也很好用
-
支持接口间传参
-
支持多进程,加速测试执行过程
-
支持多用户
-
支持多环境切换,仅需改动一处
-
断言:除了 status code,还支持 json schema 断言
-
漂亮的 Allure 报告,可查看每个接口的请求和响应数据,以及断言,方便排查
-
Slack 告警(老东家用的,这里已去除)
-
......
整体结构
用法
-
安装 Python 3.7+
-
下载代码。
-
在当前文件夹中,运行
pip install -r requirement.txt
安装依赖包 -
通过“allure2”安装 allure 2.1.38+(https://github.com/allure-framework/allure2)
-
参考 “config” 子文件夹中的
config_sample.yaml
生成config.yaml
文件,并进行配置。 -
如果是想体验下效果,可先进入
flask demo
目录,执行python app.py
命令在本地启动一个 http 测试服务端,否则请忽略。 -
执行
python3 run_api_cases.py
,完成后默认会自动打开测试报告网页。另外,可以在第一个参数中指定运行环境,例如python3 run_api_cases.py prod
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。