一、为什么选择httpruner接口自动化
httprunner对于测试新手进行接口自动化测试是非常简单易懂的
不需要太多代码基础,照着httprunner的规则照抄就行
可以对接口进行参数化,方式有csv文件和变量
输出的报告,详细也很好看
可以对联动的多接口进行测试
支持写方法使用,比如连接数据库查询落库校验或者时间等待
二、环境配置
首先cmd运行:
pip install httprunner pip install requests
新建
hrun --startproject 新项目名称
使用pycharm或者其他编译器打开刚刚创建的项目
三、目录讲解
api 接口存放的地方
name:接口名称
variables:变量信息,格式为key: value(冒号后面有一个空格)
request:请求信息
url:请求地址
method:请求方法
header:请求头
json:请求参数
testcase 用例目录
config:整个测试用例的全局配置
name:测试用例名称
variables:全局变量
teststeps:测试步骤,每一个测试步骤前面有‘-’
name:测试步骤名称
api:引用接口描述文件,相对路径从根目录开始
extract:从响应结果中提取参数,并保存到变量中,给其他测试步骤引用
validate:结果断言
testsuites 启动目录
config:全局配置项
name:测试用例集的名称
variables:环境变量
base_url:访问地址,一般写域名host
testcases:测试用例的集合
name:测试用例名称
parameters:参数化
testcase:引用测试用例文件,相对路径从根目录开始
api文件yml写法
name: 百度 #请求名称 request: #接口 url: baidu.com #请求地址 method: POST #请求方式 headers: #请求头 Content-Type: application/json #类型 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36 #请求环境 json: # body格式 number: $number #$变量名 items: [ { "ZBCODE": $ZBCODE, "ZBNAMEZH": $ZBNAMEZH, "ZBNAMEEN": $ZBNAMEEN, "ZSTATUS": $ZSTATUS } ]
testcase文件yml写法
config: name: "SAP下发商品品牌给中台ISAP11接口" # 名称 variables: {} # 环境变量 teststeps: # 测试步骤 - name: 运营平台登录 # 步骤名称 api: api/util/login.yml # api路径 extract: # 提取接口参数 - token: content.token # 提取的变量名:提取参数的结构 validate: - eq: ["status_code", 200] # 校验code - eq: ["headers.Content-Type", "application/json;charset=UTF-8"] - eq: ["content.code", "0"] - eq: ["content.message", null] - eq: ["content.fullStackTrace", null] - eq: ["content.total", null] - eq: ["content.data", null] - eq: ["content.success", true] # 底部可以按上面格式添加多个api步骤
testsuites文件yml写法
config: # 配置 name: "商品中心" #一个大报告名称 base_url: "www.baidu.com" # 点击名称进入的地址 variables: merchant_id: '1552939253053034' # 全局变量 testcases: # 用例 - name: SAP下发商品品牌ISAP11接口 # 用例名称 testcase: testcases/back-product-service/external/brand.yml # 用例目录 parameters: # 引入的变量 number-ZBCODE-ZBNAMEZH: ${P(datas/back-product-service/external/ISAP11.csv)} # 名称-名称:对应的csv路径
四、运行
打开命令窗口执行:
hrun testsuites/filename.yml
五、写在最后
hrun运行testsuites——拉取对应的testcase———拉取对应的api——验证返回——生成报告