定义:
- 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=responseBodyconsole.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=responseBodyStatus_actual=JSON.parse(string_actual).StatusResult_actual=JSON.parse(string_actual).ResultMessage_actual=JSON.parse(string_actual).Messagejson_expect={"Status": 1000,"Result": "Usercheck ok","Message": "登录验证成功"}Status_expect=json_expect.StatusResult_expect=json_expect.ResultMessage_expect=json_expect.Messagetests['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对象
