文章目录
一、HttpRunner 2.x项目工程结构
1、版本选择
安装2.5.7版本,3.x版本暂时还不稳定,有很多bug,所以先用2.x版本
pip install httprunner==2.5.7
2、运行命令
安装完成后,会自带httprunner、hrun命令,用于运行用例、管理操作;
生成项目目录:
hrun --startproject HttpRunnerDemo
运行用例:
hrun filepath/testcase.yml
3、项目结构
- api目录:用于存放接口的最小单元(正向用例)
- reports目录:用于存放测试报告
- testcases目录:用于处理接口复杂的执行逻辑;处理接口依赖
- testsuites目录:用户批量执行用例,可以实现数据驱动测试
- .env文件:用于存放全局环境变量
- debugtalk.py文件:用于定义python函数,处理动态参数
二、yaml文件格式简要说明
httprunner框架一般只需要维护yaml文件即可,简单介绍下yaml文件的基本规范和写法
- yaml配置文件的后缀为.yml或者.yaml
- yaml中使用#作为注释,注释只能在某一行的前后,不能与key\value在同一行
- yaml中有两种结构,一种是key: value,value与冒号之间必须有空格,另一种是 - key: value,“-”为列表结构
- 同一级条目前缩进必须一致;(一般都是2个空格)
- yaml中如果value使用引号(单引号或者双引号),那么该value为字符串类型
- 如果value中只要有字母,哪怕没有添加引号,一般也会识别为字符串类型(false、true、on、off、null除外)
- value中为纯数字或者小数,会被识别为int或float类型
三、api
api目录中存放接口yaml文件,具体解释如下:
# name指定当前用例名称
name: "登录login接口"
# 设置基本路径,运行时会自动与下面的url拼接在一起
base_url: "http://127.0.0.1:8000"
# variables设置变量
# a.指定当前用例的局部变量
# b.可以在变量定义的下方任意地方调用
# c.使用$变量进行调用
# d.作用域为当前yaml文件,变量定义的下方,不能跨yaml文件进行调用
variables:
username: value1
password: value2
# request定义当前接口的配置信息,请求参数名称与requests模块完全兼容
request:
# 指定当前接口的url地址,如果在全局指定了base_url,那么会自动拼接base_url
url: "/user/login/"
# method指定当前接口的请求方法名称,请求方法有:GET、POST、PUT、DELETE、PATCH,不区分大小写
method: POST
# 指定请求头参数
headers:
Content-Type: "application/json"
# 可以在项目根路径下的debugtalk.py文件中,定义python函数或者类,用于处理动态参数
User-Agent: "${random_generate_uagent()}"
# 指定请求体为json格式的参数
json:
key: $var2
# 如果指定x-www-form-urlencoded参数就用data
# data:
# username: "$username"
# password: "$password"
# validate指定断言
validate:
# eq为断言类型,断言实际值与期望值是否相等
# 完整形式为"equals",也可以使用"eq", "equals", "==", "is"
# 除eq外还有其他断言类型,如:lt、le、gt、ge、ne等等,contains:判断实际值是否包含期望值,contained_by:判断实际值是否包含在期望值中
- eq: ["status_code", 200]
# 方括号中,第一个参数为实际值,第二个参数为期望值
- contains: ["json", "username"]