目录
引言:
常规断言
动态参数断言
全局断言
总结
引言:
Postman是一款非常流行的API接口测试工具,它以其易用性和强大的功能得到了广泛的应用。其中Postman断言功能是我们进行接口自动化测试时非常关键的一个环节。在接口测试中,我们通常需要验证接口返回的数据是否符合预期。Postman提供了常规断言、动态参数断言以及全局断言几种方式,帮助我们快速地检测接口是否符合预期。接下来,我们就来一起了解一下Postman的这些断言方式。
常规断言
常规断言是指,我们通过比较接口返回的数据与我们预期的数据是否一致来进行断言。Postman支持的常规断言有:equal、not equal、type、contains、not contains、match、not match等。
例如,我们有一个用户管理接口,返回的数据如下:
{
"id": 1001,
"name": "John",
"age": 25
}
我们希望验证id是否为1001,name是否为"John",age是否为25。那么我们可以通过如下代码进行验证:
pm.test("id is correct", function () {
pm.expect(pm.response.json().id).to.equal(1001);
});
pm.test("name is correct", function () {
pm.expect(pm.response.json().name).to.equal("John");
});
pm.test("age is correct", function () {
pm.expect(pm.response.json().age).to.equal(25);
});
运行测试后,如果接口返回的数据与我们预期的数据不一致,那么测试将会失败。
动态参数断言
动态参数断言是指,我们需要验证接口返回的数据是否动态生成。当我们需要通过一个接口创建一个资源时,比如创建用户,接口会返回一个随机生成的id,这时候我们就需要使用动态参数断言。Postman通过使用pm.variables.set()方法将返回的动态参数设置为环境变量。
例如,我们有一个创建用户的接口,返回的数据如下:
{
"id": "user_12345",
"name": "John",
"age": 25
}
我们希望将返回的id设置为环境变量,方便后续的接口使用。那么我们可以通过如下代码进行验证:
// 将id设置为环境变量
pm.variables.set("userId", pm.response.json().id);
// 验证返回的数据是否符合预期
pm.test("name is correct", function () {
pm.expect(pm.response.json().name).to.equal("John");
});
pm.test("age is correct", function () {
pm.expect(pm.response.json().age).to.equal(25);
});
运行测试后,我们可以在环境变量中看到设置的userId变量。
全局断言
全局断言是指,我们在当前项目的所有请求中都使用同一个断言脚本。全局断言比较适用于相同类型的接口或者相同的字段验证。
例如,我们有一个用户管理接口和订单管理接口,他们都需要验证某个字段是否符合预期。那么我们可以通过如下代码进行设置:
// 在Tests的edit context中设置
pm.globals.set("fieldTest", function () {
pm.test("field is correct", function () {
pm.expect(pm.response.json().name).to.equal("John");
});
});
// 在用户管理接口中调用
pm.sendRequest("GET", "/user", function () {
pm.globals.get("fieldTest")();
});
// 在订单管理接口中调用
pm.sendRequest("GET", "/order", function () {
pm.globals.get("fieldTest")();
});
这样,我们在所有请求中都可以使用相同的字段验证方法。
总结
在接口自动化测试中,Postman提供了常规断言、动态参数断言以及全局断言几种方式,帮助我们快速地验证接口是否符合预期。其中常规断言是最常用的一种断言方式,通过比较接口返回的数据与我们预期的数据是否一致来进行断言。动态参数断言则是针对返回值中包含了动态生成的参数或者随机数的情况,可以将返回值中的动态参数设置为环境变量,方便后续的接口使用。而全局断言则适用于相同类型的接口或者相同的字段验证,在项目中可以设置一个全局的断言脚本,可以减少测试代码的重复度。
除了上述几种断言方式,Postman还支持很多其他的断言方式,如schema验证、响应时间验证等。我们在使用时可以根据具体的业务需求进行选择。总之,Postman的强大断言功能可以大大提高我们的接口测试效率,保证我们的接口质量。
作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些自动化测试前进之路的必须品,如果你用得到的话可以直接拿走,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!
获取方式:留言【自动化测试】即可
【自动化测试交流】:574737577(备注ccc)http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=KGneGfxysgywFs526vp9KY9AkOCU8EFn&authKey=c1oehqFQuTnz4BW02Ys0HG%2BOkFu%2BuKDUpSux9C01Dnrn5kF44vI%2FzZ3UsLbndHjg&noverify=0&group_code=574737577