背景
因为工作中CI/CD需要接入自动化测试,所以研究了一些主流的测试框架,无意之中遇到它,有点小惊喜。
介绍
首先感谢HttpRunner的所有者开源此测试框架,HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
运行环境
HttpRunner 是一个基于 Python 开发的测试框架,可以运行在 macOS、Linux、Windows 系统平台上。 python 版本 2.7/3.5/3.6/3.7/3.8,安装Python。
以下演示基于macOS,Python版本3.9,Httprunner版本3.1.6。
安装
安装python3好后,pip3默认安装,安装httprunner执行命令:
pip3 install httprunner
执行命令hrun -V查看版本,
正常则表示安装成功
安装成功后,系统中会新增如下 5 个命令:
httprunner: 核心命令ate: 曾经用过的命令(当时框架名称为 ApiTestEngine),功能与 httprunner 完全相同hrun: httprunner 的缩写,功能与 httprunner 完全相同locusts: 基于 Locust 实现性能测试har2case: 辅助工具,可将标准通用的 HAR 格式(HTTP Archive)转换为Pytest/YAML/JSON格式的测试用例
工具
开始
-
使用脚手架快速创建一个demo项目
运行
httprunner startproject hrun3-demo初始化一个名为 hrun3-demo 的项目。 -
项目结构
-
添加测试用例,可以使用har文件生成测试用例或者手动编写测试用例
-
har文件生成用例
使用抓包工具 Charles 将抓取得到的数据包导出为标准通用的 HAR 格式(HTTP Archive),然后 HttpRunner 实现了将 HAR 格式的数据包转换为
Pytest/YAML/JSON格式的测试用例文件。运行命令
har2case har/login.har生成测试用例从
V3.0.7之后,har2case默认将har文件转为pytest文件当然你可以使用命令
-2y/--to-yml将har文件转为YAML格式文件或者使用命令
-2j/--to-json将har文件转为JSON格式文件 -
手动编写测试用例 (python)
本次使用
python编写测试用例,当然你也可以编写YAML/JSON格式的测试用例,在httprunner里,这三种格式的文件是完全等同的。在项目的
testcases目录下新建文件login_test.py每个用例都是
HttpRunner的子类,且必须包含属性:config和teststeps。此处的
get_user_agent()是在debugtalk.py里自定义的一个python函数,引用方式${fun()}
-
运行测试用例使用命令
hrun path/*.py或者hrun path/*.yml或者hrun path/*.json这里使用
hrun testcases/login_test.py运行用例,如果需要测试报告,需再加上--html=reports/report.html运行之后会在reports目录下生成测试报告,可以在浏览器中打开查看
⚠️ 这里报告中用例Failed是因为接口是随便写的,请在测试的时候使用正常可用的接口测试。
总结:
以上只是以测试demo进行分享,更加详细的使用请参考官方文档。
参考资料
声明
本文部分内容来源网络,如有侵权请及时告知,我将在最短的时间内删除。