[博学谷学习记录]超强总结,用心分享|软件测试之接口测试常见断言方法

目录

一、postman断言介绍

二、状态码断言

(一)实例1:设置预期code=200,实际结果200(PASS)

(二)实例2:设置(2)实例2:预期code=404,实际结果200 (FAIL)

三、响应正文断言-包含

(一)实例1:设置返回包含helloworld,结果满足(PASS)

四、响应正文断言-json字段

(一)实例1:检查返回结果体 data - name 的json值是否为helloworld,符合预期(PASS)

(二)实例2:检查返回结果体 code的json值是否为200,不符合预期(FAIL)

五、响应头断言

(一)实例1:检查header中是否包含Content-Encoding,符合预期(PASS)

(二)实例2:检查header中是否包含Content-Type,不符合预期(FAIL)

六、响应时间断言

(一)实例1:检测接口的响应时间小于200ms,符合预期(PASS)

(二)实例2:检测接口的响应时间小于10ms,不符合预期(FAIL)

七、环境变量的断言

(一)实例1:检测环境变量variable_key的值是否为hello,符合预期(PASS)

(二)实例2:检测环境变量time的值是否为2022-10-08,不符合预期(FAIL)


        我们都知道,postman有断言功能,他的几种断言方法使用场景比较容易混淆,本篇文章举例说明了断言方法的使用场景,希望对您的理解有所帮助。

一、postman断言介绍


        postman在发送请求后,需要对返回的结果做判断,验证是否符合预期,如状态码、响应头、响应正文等信息进行断言操作,在设置时会给定一个预期结果,在发送请求后会得到一个实际如果,如果两者结果一致,则认为是成功的(PASS),否则则是失败的(Fail),这种操作就叫做断言。断言主要是在Test操作框内进行设置,使用JavaScript语言编写,断言的结果在下方响应内容的TestResult内。

二、状态码断言

说明: 对响应结果中的状态码进行验证,用于判断响应的状态码是否符合预期

(一)实例1:设置预期code=200,实际结果200(PASS)

tests["status code is 200"] = responseCode.code == 200;

(二)实例2:设置(2)实例2:预期code=404,实际结果200 (FAIL)

tests["status code is 404"] = responseCode.code == 404;

三、响应正文断言-包含

说明: 对响应结果中的响应正文进行验证,判断返回的响应正文是否包含指定的字符串(ps:大小写是敏感的)

(一)实例1:设置返回包含helloworld,结果满足(PASS)

tests["Body matches"] =responseBody.has("helloworld");

四、响应正文断言-json字段

说明: 对响应结果中的响应的json结构中的字段进行检查,看是否符合预期

(一)实例1:检查返回结果体 data - name 的json值是否为helloworld,符合预期(PASS)

pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.data.name).to.eql("helloworld");
});

 

(二)实例2:检查返回结果体 code的json值是否为200,不符合预期(FAIL)

1

2

3

4

pm.test("Your test name", function () {

    var jsonData = pm.response.json();

    pm.expect(jsonData.code).to.eql(200);

});

 

五、响应头断言

说明:对响应头部中的值(header)进行判断,是否包含对应的属性。

(一)实例1:检查header中是否包含Content-Encoding,符合预期(PASS)

pm.test("Content-Encoding is present", function () {
pm.response.to.have.header("Content-Encoding");
});

(二)实例2:检查header中是否包含Content-Type,不符合预期(FAIL)

pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});

六、响应时间断言

说明:验证响应结果返回的时间(responseTime)是否在指定范围,小于对应的时间(ms)则符合预期

(一)实例1:检测接口的响应时间小于200ms,符合预期(PASS)

pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});

(二)实例2:检测接口的响应时间小于10ms,不符合预期(FAIL)

pm.test("Response time is less than 10ms", function () {
pm.expect(pm.response.responseTime).to.be.below(10);
});

七、环境变量的断言

说明:使用这个断言的前提是postman中已经设置了环境变量,用于校验接口内的使用到的环境变量值的正确性

ps:环境变量在Pre-requestScript与Tests组件内都可以进行设置

(一)实例1:检测环境变量variable_key的值是否为hello,符合预期(PASS)

pm.environment.set("variable_key", "hello");//设置环境变量及变量值在Pre-requestScript
var data = pm.environment.get("variable_key");//获取环境变量
tests["检查环境变量值variable_key值是否为hello"] = data== "hello";

(二)实例2:检测环境变量time的值是否为2022-10-08,不符合预期(FAIL)

pm.environment.set("muber", 100);//设置环境变量及变量值
var number = pm.environment.get("muber");//获取环境变量
tests["检查环境变量值muber值是否为200"] = number== 200;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值