Httprunner使用
官方中文文档V3
https://www.ontheway.cool/HttpRunner3DocsForCN/concepts/step_case_suite/
官方文档主要以yaml为例子,所以也用的yaml
testcase结构分析:
config:节点中设置当前文件全局的配置
name:用例名
base_url:全局base url,step中的url使用base_url开头
parameters:全局参数,数据驱动使用
teststeps:下为list,可以有多个step
name是step name
variables: step中用的变量
request:
url: request url
method: GET,POST,PUT,DELETE等,必须是大写
params: request url中的参数
upload:上传文件,文件的相对路径以debugtalk.py文件位置为准
extract:是response.body中的内容,可以用body.xxx或者content.xxx来搜索
取cookie方法:
# 方法一: extract: cookie: cookies #方法二: eardown_hooks: - ${get_cookie($response)} #debugtalk.py中: def get_cookie(response): cookies = response.cookies os.environ['envname']=cookies["cookiekey"]
validate:是断言response中的内容,都怎么断言?
可以使用:表达式:["jmespath表达式",expected_value,message]
例如 :
eq: ["status_code", 200]
len_eq: ["body",1]
config: name: "initialize" variables: #设置当前测试文件中的全局变量 username: user@test.com password: 1234567 base_url: ${ENV(api_url)} #引用环境变量 parameters: #全局参数,用于实现自动化数据驱动,怎么用? pa1: ["a"] pa2: ["b"] export: - accessToken #整个测试用例的输出值,可以在作为其他case的测试步骤是被使用。 verify: False #可以不写,V3默认为Flase teststeps: - name: Get token variables: foo1: bar1 request: method: GET url: /account/GetAccessToken headers: Content-Type: "application/json" params: username: Melanie.Zhao@avepoint.com password: 1qaz2wsxE clientId: eos extract: #当前case的传出值,下边步骤step可以使用 accessToken : body.accessToken #利用jmespath 提取Json response body的内容 validate: - eq: ["status_code", 200] #用jmespath 提取Json response的内容,并进行断言校验。
Testsute结构:
config是公共的
每个testcase下是各自的
关于base_url:
如果config中有设置,则所有case都用这个url,即使case单独配置也不行
如果想每个case用单独的base_url,则去掉config中的base_url,单独设置case中的base_url
base_url不管在config全局还是case中单独设置,至少要有一个。
config: name: suitename variables: username: xxx password: xxx base_url: ${ENV(api_url)} parameters: pa1: ["a"] pa2: ["b"] export: - accessToken testcases: - name: Get Token base_url: ${ENV(api_url)} testcase: testcases\case1.yml variables: a: 123 - name: Login base_url: ${ENV(base_url)} testcase: testcases\case2.yml variables: a: bcd
变量引用:
使用${ENV(key)}引用环境变量中的值
使用$variable直接引用用例中定义的变量