一、原文地址:
使用说明_httprunner2.0 概述及使用说明
httprunner2接口测试框架说明文档 - 简书
二、介绍
HttpRunner是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
三、安装
# 安装稳定版本
pip install httprunner==2.5.7
查看是否安装成功
(venv) zhaohui@zhaohuideMBP miaostudydjango % httprunner -V
2.5.7
四、创建项目
hrun --startproject apitset
或者
httprunner --startproject apitest
五、虚拟环境配置
Pycharm创建虚拟环境_做测试的喵酱的博客-CSDN博客
1、创建虚拟环境
2、进入虚拟环境
3、在虚拟环境中,再次安装httprunner
# 安装稳定版本
pip install httprunner==2.5.7
六、执行测试demo
创建完的项目中默认有测试用例,我们可以直接运行测试并生成报告。
hrun api/demo_api.yml --report-dir=reports
注意:
case路径:使用绝对路径与相对路径都可以。相对路径,是相对于跟目录的路径
生成报告的路径: 使用绝对路径与相对路径都可以。相对路径,是相对于跟目录的路径
报告样式:
七、工程结构介绍
说明:
(1)api 文件夹:存储接口定义描述
(2)testcases 文件夹:存储测试用例,文件夹也可以使用其它名称
(3)testsuites 文件夹:测试测试场景,文件夹也可以使用其它名称
(4)reports 文件夹:存储 html 测试报告
(5).env文件:存储项目环境变量,通常用于存储项目敏感信息
(6)debugtalk.py:存储项目中逻辑运算辅助函数
·该文件存在时,将作为项目根目录定位标记,其所在目录即被视为项目工程根目录
·该文件不存在时,运行测试的所在路径(CWD)将被视为项目工程根目录
·测试例文件中的相对路径(例如.csv)均需基于项目工程根目录
·运行测试后,测试报告文件夹(reports)会生成在项目工程根目录
八、编写yaml case
8.1 yaml语法
yaml语法_yaml在线语法_做测试的喵酱的博客-CSDN博客
case使用yaml编写的,所以学习yanl语法很重要
1、yaml是数据格式,不是数据类型(结构)
2、yaml配置文件的后缀为.yml或者.yaml
3、yaml中使用#作为注释,注释只能在某一行的前后,不能与key\value在同一行
4、yaml中有两种结构,一种是key: value,value与冒号之间必须有空格
另一种是 - key: value,“-”为列表结构
5、yaml文件中嵌套的同一级条目前缩进必须一致(一般缩进2个空格)
6、yaml中如果value使用引号(单引号或者双引号),那么该value为字符串类型
7、如果value中只要有字母,哪怕没有添加引号,一般也会识别为字符串类型(false、true、on、off、null除外)
8、value为false、true、on、off,是布尔类型,null为空
9、value中为纯数字或者小数,会被识别为int或float类型
8.2 case 结构
8.2.1 api 文件夹(没有任何数据依赖的场景)
api 文件夹:执行接口case的最小单元。如果一个接口case,没有任何数据依赖,就可以直接在api文件夹中,完成编写。
如不依赖登录信息的接口:
api/baidu_api.yml
name: 百度接口
variables:
var1: value1
var2: value2
request:
url: https://ug.baidu.com/mcp/pc/pcsearch
method: POST
headers:
Content-Type: "application/json"
json:
invoke_info: {"pos_1":[{}],"pos_2":[{}],"pos_3":[{}]}
validate:
- eq: ["status_code", 200]
执行case:
hrun api/baidu_api.yml --report-dir=reports
8.2.2 testcases 文件夹(实现数据依赖)
如一个注册接口:
1、url 中的域名,不要写死。通过配置完成
2、依赖token,token不能写死,通过配置完成
3、传参中的用户名和密码,不能写死,是一个变量。
testcases 文件夹,就是通过对api填充不同的数据,组成不同的case的。
(2)testcases 文件夹:存储测试用例,文件夹也可以使用其它名称
(3)testsuites 文件夹:测试测试场景,文件夹也可以使用其它名称