关于测试用例预期结果和实际结果的比对的,MuskTest中封装了一个verification字段,只需要在verification中定义预期结果,实际结果提取表达式,和断言的方法,即可实现用例的断言!
1、基本语法
verification = [
[断言方式, 预期结果, 实际结果]
]
2、断言方式
MuskTest中目前支持两种断言方式:
1、断言相等 :eq
预期结果和实际结果相等
verification = [
['eq', 预期结果, 实际结果]
]
2、断言包含:contians
实际结果中包含预期结果的内容
verification = [
['contains', 预期结果, 实际结果]
]
3、实际结果获取
关于断言的实际结果提取,需要使用V{{表达式}}
来进行提取,表达式支持jsonpath和正则表达式两种提取方式方式。
3.1、正则表达式提取
# 通过正则表达式来提取实际结果中的msg字段。
verification = [
['eq', {'msg':"OK"}, {"msg": "V{{msg:'(.+?)'}}"}]
]
3.2、通过jsonpath提取
# 通过jsonpath来提取实际结果中的msg字段。
verification = [
['eq', {'msg':"OK"}, {"msg": 'V{{$..msg}}']
]
4、HTTP状态码的断言
上述两种方式,以可提取结果返回的数据,那如果要断言接口http请求的状态码呢?MuskTest中也提供了一个内置的字段名status_code
,来表示http状态码
# 断言接口请求的http状态码是否等于200
verification = [
['eq', 200, 'status_code']
]