yaml 用例结构
config+teststeps 必填
config部分:(全局变量)
name:用例名称
base_url :测试环境的地址
verify: 校验证书,是 true 否 false(全局变量非必写)
variblse:指定测试用例的公共变量,
export:导出测试用例会话结果,设为全局变量
场景案列-环境变量.env
在自动化测试项目的根目录中,创建.env文件并将敏感信息放置到其中,储存采用name=value的格式(数据库配置信息等)
格式如下:
username=test
password=123456
base_url=http://823.5158.1553.
如何引用环境变量
${ENV(username)}、${ENV(password)}、${ENV(base_url)}
testsetps: 是一个list
name:指定测试步骤的名称
request:请求参数
(url请求地址、method请求方式json请求参数、variables:指定步骤变量,参数引用变量“$变量名称”、{若get请求带参数则增加:params请求参数},{verify: 校验证书,是 true 否 falshttprunner3自带封装})
extract:提取返回结果
validate:提取校验返回结果(-eq[])
export:导出的测试用例会话变量,设为全局变量
base_url 部署接口项目环境的地址(端口与环境地址有可变性)
config里添加base_url相当于把接口地址的公共部分提取出来放在config里作为公共参数以供多条用例使用,而request里的请求地址只需填写不相同的参数即可。若中途有调用其他接口,则在该用列下直接填写完整的url的绝对路径
https请求SSL证书
config部分{verify: 校验证书,是 true 否 false(全局变量非必写)}
testsetps-request部分:{verify: 校验证书,是 true 否 falshttprunner3自带封装可以不用带此参数}
post请求参数类型
content-type:application/x-www-form-urlencoded
(url请求地址、method请求方式、请求头部:herders参数键值对、data请求参数键值对、validate:校验返回结果(-eq[]){若get请求带参数则增加:params请求参数},{verify: 校验证书,是 true 否 falshttprunner3自带封装})
headers在引用局部变量时增加:Authorization:Token $
变量的声明与引用
config中的变量在整个yaml中可生效(公共变量)
teststeps中的变量只在list内可生效 (variables变量先声明,再用$引用)
同名情况下当全局变量与局部变量同时存在则局部变量大于全局变量
validate提取校验结果
使用jmespath提取json响应正文并使用预期值进行验证,-jmes_path:jmespath表达式,更多细节参考JMEPath教程,-expect:预期值,可以使用置顶预期值、变量或者函数引用,-message:消息(可选),用于指示断言错误的原因
使用jmespath提取json响应,Httprunner返回四个对象
-status_code 状态码,-headers 返回头部,-cookies 返回cookies,-body 返回body内容(一般为json格式)获取并校验token:只能获取token的长度:len_eq:{body.token,40}
场景案列-参数关联
extract 提取关键字引用关键字($token)