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直接引用用例中定义的变量

浙公网安备 33010602011771号