上节我们讲到了断言的基础概念及设置方法,详情请看这篇文章《Postman接口测试之断言(一)》。
接下来介绍一些常用的断言写法。
1响应状态码断言
pm.test("Statuscodeis200",function(){
pm.response.to.have.status(200);
});
//或者
tests["Statuscodeis200"]=responseCode.code==200;
说明:用于判断响应的状态码是否符合预期。
下面示例中这段代码的意思是,如果响应的状态码为200,那么这个接口测试通过,运行结果中显示Statuscodeis200。实际测试过程中,根据你的实际情况修改这里的状态码和提示信息。
2验证响应中是否含有指定字符串
pm.test("Bodymatchesstring",function(){
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
//或者
tests["Bodymatchesstring"]=responseBody.has("string_you_want_to_search");
说明:用于判断返回的内容中是否含有指定的字符串。
如下图,如果返回的内容中含有字符error,那么这个接口测试通过。
3设置、获取环境变量/全局变量的值
pm.environment.set("variable_key","variable_value");//设置环境变量及变量值
pm.environment.get("variable_key");//获取环境变量
说明:使用这个断言的前提是postman中已经设置了环境变量,这里的variable_key为环境变量的名称,variable_key为变量值。全局变量与环境变量类似。
使用示例如下图,意思是先设置环境变量eq,并取equipmentid的值,然后获取eq,如果eq=101,那么测试通过。
4验证响应结果返回的时间
pm.test("Responsetimeislessthan200ms",function(){
pm.expect(pm.response.responseTime).to.be.below(200);
});
说明:用于判断这个接口响应的时长是否在指定的范围。
如下图,实际响应时长为13ms,断言要求5ms,不在这个范围,因此报FAIL。
5对返回的结果做Json字段检查
pm.test("Yourtestname",function(){
varjsonData=pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
说明:用于判断返回结果的Json中指定的字段值是否正确。
如下图中,当返回的结果中equipmentid=101时,测试通过。