做测试的同学,我相信每个人都知道断言,就是结果和预期对比,如果一致,则用例通过,如果不一致,断言失败,用例失败。那么上面这个接口我们如何用postman来进行断言呢?也很简单,用到postman tests 这个模块。
那么上面的接口我们如何断言呢?很简单,从响应内容做断言。比如我们可以断言 id=90,url = "http://www.v2ex.com/go/python",状态码等于200
我们在tests输入框填写:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
}); //断言状态码是200
var jsonData = JSON.parse(responseBody);
tests["Check respose id value"] = jsonData.id === 90; //断言id是90
tests["Check respose url value"] = jsonData.url === "http://www.v2ex.com/go/python"; //断言url
操作步骤:1、填写断言 2、点击send
查看断言结果:
动态参数
经常用于参数不能重复的数据
{{$timestamp}}:生成当前时间的时间戳
{{$randomInt}}:生成0~1000的随机数
{{$guid}}:生成随机的guid字符串
断言
Tests响应断言的几种方式
(1)Status code:code is 200 (校验响应头是否包含某个值)
(2)response body:contains string (校验返回结果中是否包含某个字符串)
(3)response body:Json value check (校验返回结果中某个字段是否等于某个
值)
(4)response header:content-type header check (校验响应头是否包含某个值)
(5)response time is less than200ms (校验响应时间是否少于200ms)
(6)response body:Is equal to string (校验返回结果中是否等于该字符串)使用
少
接口测试中,接口关联如何实现
接口关联的方式:json提取器
// 返回值转成json对象
var jsondata=pm.response.json()
console.log(jsondata)
// 通过json表达式提取值
var doer = jsondata.result.city
console.log(doer)
// 设置全局变量
pm.globals.set("cs", doer);
// 获取响应体的文本内容
var resbody = responseBody;
console.log(resbody)
// 转成json对象
var jsonobj = JSON.parse(responseBody)
// 通过json表达式提取值
var pro = jsonobj.result.province
pm.globals.set("prodes", pro);
接口测试中如何实现上一个接口返回值为下一个接口的参数?
将第一个接口设置断言,拿到返回体内容转成json对象,通过json表达式提取想要的值,将这个值设置全局
变量,在第二个接口中使用{{变量名}}代替,实现接口关联