定义:
- Tests用于发送请求之后执行的代码,一般用于断言(断言接口的返回值是否正确)
- 就是比对测试结果是否正确,将预期结果和实际响应内容做比较
断言方法
菜单操作/模板
代码编写
- 响应内容:
- 响应状态码:responseCode.code
- 响应正文:responseBody
响应处理
- text/html
- 有很多处理方式,对字符串处理函数,比如split函数
- 字符串.split(“分隔符”) 表示对字符串按照分割符拆成多个字符串
- Json
- text/html
用于判断数据是否存在,主要用于字符串数据的判断
- 常用与世界结果中包含大量文字时使用
断言书写方法
tests["断言消息"]=responseBody.has("预期结果")
# tests 属于关键字,固定写法
# has 包含
# 如果实际结果中包含预期结果,则测试结果为pass通过,否则结果为fail失败
actual=responseBody //实际结果
expect='注册时间' //预期结果
case_id='ui-login01' // 测试编号
case_name='判断实际结果中包含:接口测试' //用例信息
case_info = case_id +'==' +case_name // 用例信息
tests[case_info]=actual.has(expect)
等值断言
常用与少量字符串的精确匹配
- 更多用于json类型数据的精确匹配
- json使用时,可以做部分匹配,也可以做完整匹配
- 内容是json字符串的响应结果本身不方便使用== 应为想用文本此时类型是字符串
- 字符串使用==比较结果时比较严格,差一个标点符号或一个空格都会导致断言失败
- 通常需要把内容json字符串的响应结果转为json对象,但是postman不支持json对象比较
- 最终策略是,先把响应结果字符串转为json对象,再把json对象转为格式化后的字符串
json.parse(响应文本)字符串转为json对象,再把json对象转为格式化后的字符串
- json.parse(响应文本)字符互串转为json对象
- Json.stringfy(Json对象)Json对象转为格式化字符串
string_actual=responseBody
console.log(typeof(string_actual)) //sting字符串类型
//console.log() 将括号中内容显示在控制台中,类似于python print() 函数
// typeof() 查询括号中对象/变量的类型
json_actual=JSON.parse(string_actual) // 将字符串类型实际结果转为json类型
actual_mh_string=JSON.stringify(json_actual) //转为格式化后的字符串
json_expect= {"Status":1000,'Result':"Usercheck ok",'Message':'登录验证成功'}
expect_mh_string=JSON.stringify(json_expect)
tests['login_01:登录验证成功']=expect_mh_string==actual_mh_string
json部分断言
json对象[‘健名’]==预期值string_actual=responseBody
Status_actual=JSON.parse(string_actual).Status
Result_actual=JSON.parse(string_actual).Result
Message_actual=JSON.parse(string_actual).Message
json_expect={
"Status": 1000,
"Result": "Usercheck ok",
"Message": "登录验证成功"
}
Status_expect=json_expect.Status
Result_expect=json_expect.Result
Message_expect=json_expect.Message
tests['longin_验证:Status']=Status_actual==Status_expect &&Result_actual==Result_expect && Message_actual==Message_expect
# 多个条件使用&&连接 表示与关系
# 多个条件使用||连接 表示或关系
区别
has和==区别
- has断言是一种模糊匹配,部分数据正确节课,has一般用于text/html也可以用于json类型
- ==断言是一种精确匹配,数据必须完全一致,一般用于json断言
- 为什么要将json格式字符串进行类型转换
- 为了防止预期结果和实际结果中包含有多余的空格
- 在postman中不支持json对象的比对,所以需要转换成字符串
- 最终两个格式化后的字符串做比较
- json.stringify()中只能放json对象