一、断言设置
HttpRunnerManager提供了extract(提取)功能,用来从接口请求返回的结果中提取所需的内容;validate(证实/确认)功能,用于设置断言
1.从返回结果中提取数据
案例:
分析之前 [PPJ_26] HttpRunnerManager用例配置-01:Headers与请求参数的设置 的测试接口(http://www.httpbin.org/get?uid=001
),其响应数据如下:
{
"args": {
"uid": "001"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Connection": "close",
"Host": "www.httpbin.org",
"Referer": "https://www.baidu.com",
"User-Agent": "python-requests/2.18.4"
},
"origin": "xxx.xxx.xxx.xxx",
"url": "http://www.httpbin.org/get?uid=001"
}
从以上响应数据中提取uid值,并将其存储到一个变量中,然后即可使用extract来从变量提取uid值
操作:用例修改 --> 定位到extract/validate --> add extract --> 填写or编辑所需提取变量&变量值
Key(变量名):response_uid
Value(取值):content.args.uid
(返回内容中args属性的uid值)
2.设置断言
根据上面所提取的返回值内容(uid值),需要设置断言以验证所返回的uid值是否与预期一致
操作:用例修改 --> 定位到extract/validate --> add validate --> 填写or编辑检查项的值&预期值
Check(检查项的值):$response_uid
(表示引用response_uid变量)
Comparator(匹配规则):equals(等于)、contains(包含)...
Type(变量值的数据类型):String(字符串)、int(整型)...
Expected(预期值):001
执行用例完成,在测试报告中查看到的断言是通过的(预期值=实际值)
同时,也可添加其他断言的检查项,如:响应状态码(status_code)
PS:
以上响应状态码(status_code)的返回值属于数值,非字符串类型,此时Type应设置为"int",否则其他类型执行时会报错
二、用例组合
场景:把多个不同的接口按照指定顺序组合成为一个业务逻辑模块,如:用户模块中把注册、登录、退出的用例封装成为一个业务逻辑模块,从而形成接口分层测试。
案例:
将之前的3个用例(test_get_request
、test_post_json
、test_post_formdata
)封装成为一个用例(如:test_method_group
),再执行该封装的用例
操作:新增用例 --> 定位到message --> 选定项目、模块 --> 可选用例:从用例列表中分别选择所需添加到组装用例中单接口用例,根据需要进行(增加、删减、移位)的操作
组装用例的名称:test_method_group
当新建一个用例test_method_group
之后,可向其内自由添加不同的单个接口用例,且能调整接口用例的执行顺序,以及可向该封装的用例中删减单个接口用例,如下:
命名并保存组装用例
此时,添加完成的组装用例test_method_group
,展开后可查看到其中已包含所添加的3个单接口用例,如下:
执行用例:
PS:
1.对于新建的组装用例,只能选择单个接口用例进行增减操作,不能对其他已经组装过的用例(包含多个接口用例)操作
2.若使用组装用例A(a1+a2+a3)+单接口用例b1,再组装一个新用例C,则执行组装用例C时,返回的响应状态码为405,用例A内的单用例并不能返回有效的响应数据,如下图所示
3.若要实现组合用例包含组合用例,且能执行获取到有效的响应数据,则可利用HttpRunnerManager中的【测试套件】模块的功能来实现(下一篇补充此功能)
网友评论