pip install httprunner
A、httprunner3.x以上的版本还需要安装har3case
pip install har3case
B、httprunner4.0以上版本还需要安装hrp命令,否则无法自动创建测试脚手架
在github 上下载安装包 https://github.com/httprunner/httprunner/releases
下载完成后解压到电脑的任意目录,将路径添加到环境变量
打开cmd验证hrp命令是否生效
httprunner -V
har2case -V
V4版本生成脚手架命令:hrp startproject 项目名称
V3版本生成脚手架命令:httprunner startproject 项目名称
下面的应用示例均是以V3版本演示
将fiddler或者F12抓包的接口文件.har格式转化成.yaml/.json/pytest用例格式
1).yaml
首先将.har格式的文件放入项目下,这个我们放入新建的demo文件夹下
进入demo文件夹,这里一定要注意不要在根文件夹目录下执行转换格式的命令 ,会提示找不到.har文件
先进入demo文件夹下再去执行转换命令,转换.yaml格式命令:har2case xxx.har -2y,此时发现已经转换成了yml文件格式
2).json
与上面同样的步骤,执行的命令不同,转换json格式命令:har2case xxx.har -2j
3)python文件.py
与上面同样的步骤,执行的命令不同,转换.py格式命令:har2case xxx.har
这里介绍.yaml文件的格式
config:
每个测试用例也就是.yaml文件只能有一个config用于存储测试用例的公共配置部分,config下有variables全局变量,base_url公共请求地址,export导出全局环境变量,可用于测试用例间参数的传递
name:测试用例的名称,将在log和报告中展示。
base_url(可选):.yaml下的公共host
variables(可选的):定义的全局变量,作用域为整个用例。每个测试步骤都可以引用config variables。也就是说,step variables 优先级高于 config variables。引用变量时,采用$变量名引用,如实例的账号名和密码,就是通过变量传入的。
export(可选的):指定输出的测试用例变量。将每个测试用例看作一个黑盒,config variables是输入变量,config export是输出变量。
teststeps:
name:单个测试步骤的名称,有几个name就是代表几个接口
testcase:可以理解引用其他测试用例中export的全局变量
request:请求内容
heards:请求头
json:请求体
method:post/get...
url:请求
validate:断言
运行测试单个测试用例命令:hrun ./testcases/xxx.yml
批量运行testceses下多个测试用例:hrun ./testcases/
单个测试用例下有多个api需要关联时,采用extract关键字进行提取,如有两个api在同一个测试用例中,第一个api为get_uuid,第二个api为login,login接口请求体需要传入get_uuid接口中返回体中的uuid
编写后的yml文件如下:
多个测试用例需要共用一个参数时,采取export关键字提取参数,如用例1提取的token用于所有的用例,yml文件示例如下:
先extract提取:
然后在config中使用export声明变量:
这样用例1的token就提取成功了,我们在另外的用例中使用它时,示例如下:
这样就实现了多个测试用例共用一个参数
生成allure测试报告前需要下载allure,然后将路径配置到系统变量里
生成测试报告
在线查看测试报告
测试套件可以管理测试用例,编写格式为:
测试套件的运行命令与测试用例的运行命令相同,只是路径不同:hrun ./testsuite/xxx.yml