HttpRunner2.X开源接口测试框架学习:yaml格式测试用例编写
Posted 南方菇凉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HttpRunner2.X开源接口测试框架学习:yaml格式测试用例编写相关的知识,希望对你有一定的参考价值。
HttpRunner测试用例的基本结构
-
每个YAML/JSON文件对应一个测试用例(testcase)
-
每个测试用例为一个list of dict结构,其中可能包含全局配置项(config)和若干个测试步骤(test)
-
config为全局配置项,作用域为整个测试用例
-
test对应单个测试步骤,作用域仅限于本身
- 变量作用域以config为主,config如果没有设置,就使用test中设置的变量
一、基础栗子
get请求举例说明
以打开新梦想首页为例
host:http://www.hnxmxit.com
url:/
请求方式:get
使用httprunner进行接口测试步骤:
1、打开pycharm,新建一个httprunner项目,新建一个test_demo.yaml文件,内容如下:
#不带参数的get请求
- config:
name: 验证能否打开新梦想主页
base_url: http://www.hnxmxit.com
- test:
name: open hnxmxit mainpage api
request:
url: /
method: GET
validate:
- eq: [\'status_code\',200]
2、在pycharm,终端窗口执行如下命令 :hrun yaml文件名
3、执行成功后,会自动生成一个报告,查看报告:
二、模拟带参数的get请求
#模拟带参数的get请求
- config:
name: \'验证能否获取token值\'
base_url: \'https://api.weixin.qq.com\'
- test:
name: \'get access token\'
request:
url: \'/cgi-bin/token\'
method: GET
params:
grant_type: \'client_credential\'
appid: \'wx0ebbdf4a197121\'
secret: \'b876eeb2af99cc6623995201168e702f\'
validate:
- eq: [\'status_code\',200]
- eq: [content.expires_in,7200]
三、模拟请求头
#模拟请求头
- config:
name: \'验证百度搜索是否正确\'
base_url: \'https://www.baidu.com\'
- test:
name: \'百度搜索请求\'
request:
url: \'/s\'
method: GET
headers:
User-Agent: \'Mozilla/5.0 (Linux; android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/89.0.4389.90 Mobile Safari/537.36\'
Accept: \'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\'
Accept-Encoding: \'gzip, deflate, br\'
Accept-Language: \'zh-CN,zh;q=0.9\'
params:
wd: \'newdream01\'
validate:
- eq: [\'status_code\',200]
四、模拟POST请求
#模拟post请求
- config:
name: \'验证微信开发平台中,用户标签管理修改标签接口能否成功执行\'
base_url: \'https://api.weixin.qq.com\'
- test:
name: \'修改标签接口\'
request:
url: \'/cgi-bin/tags/update\'
method: POST
headers:
Content-Type: \'application/json\'
params:
access_token: \'46_oMQuTV1IE2aTFeGKMHXHSNseS63bwEMxSyU7MrVYvOqXF1y5hnQvgopuZjBSqKBIGVrCaTlQEAeAAf-EtaGWahHTeEzFU-cNZ3_EgT7Xlbwx7rOFW9OTusypC9lIthaIn0Ooq60XJ09wrFYlJMIgAHAVYU\'
json: { "tag" : { "id" : 101, "name" : "newdream123" } }
validate:
- eq: [\'status_code\',200]
- eq: [content.errcode,0]
五、变量作用域:变量作用域以config为主,config如果没有设置,就使用test中设置的变量
#变量作用域:变量作用域以config为主,config如果没有设置,就使用test中设置的变量
- config:
name: \'验证能否获取token值\'
base_url: \'https://api.weixin.qq.com\'
variables:
- grant_type: \'client_credential\'
- appid: \'wx0ebbdf4a197121\'
- test:
name: \'get access token\'
variables: #变量作用域以config为主,config如果没有设置,就使用test中设置的变量
- grant_type: \'client_credential\'
- appid: \'wx0ebbdf4a197121\'
request:
url: \'/cgi-bin/token\'
method: GET
params:
grant_type: $grant_type
appid: $appid
secret: \'b876eeb2af99cc6623995201168e702f\'
validate:
- eq: [\'status_code\',200]
- eq: [content.expires_in,7200]
以上是关于HttpRunner2.X开源接口测试框架学习:yaml格式测试用例编写的主要内容,如果未能解决你的问题,请参考以下文章