接口测试实战(4)--postman断言

常见断言方法
1、状态码断言

pm.test:   这是Postman的测试函数,用于定义一个断言。
它接受两个参数:
第一个参数是一个字符串,用于描述这个测试的目的或内容。这通常是一个简短的描述,比如 "Status code is 200",它会在测试结果中显示,帮助你快速识别是哪个测试通过了或失败了。

第二个参数是一个函数,它包含了断言的具体逻辑。

 

function() {...}: 这是一个匿名函数,它包含了测试的具体实现。当Postman收到响应并执行Tests脚本时,它会调用这个函数来执行断言。


pm.response.to.have.status(200): 这是断言的实际内容。它使用了Postman的测试链语法来验证响应的状态码。

pm.response: 这是一个对象,代表了API的响应
to.have: 这是链式调用的一部分,用于指定要验证的属性

status(200): 这指定了要验证的属性是状态码,并且期望的状态码值是200。

验证响应体包含特定文本

 pm.test("Check if response body contains error message", function() { ... });

这是Postman中定义测试的标准语法。它接受两个参数:一个字符串,用于描述测试的名称;一个函数,包含测试的具体实现

var jsonData = pm.response.json();

这行代码使用Postman的pm.response.json()方法将API响应体解析为JSON对象。解析后的对象存储在变量jsonData中,这样你就可以访问该对象中的属性了。

pm.expect(jsonData.message).to.include('用户不存在');

这行代码是测试的核心部分,它使用Chai断言库的expect方法创建一个断言。断言检查jsonData对象的message属性是否包含字符串'用户不存在'。如果包含,测试通过;如果不包含,测试失败,并在Postman的测试结果中显示一个错误。

 

验证JSON响应体中的特定字段

// 验证字段是否存在
pm.expect(jsonData).to.have.property('fieldName');

 

 如果响应体是一个数组的话:

 

 

验证响应体中的字段值

 

验证响应头

pm.test("Content-Type is application/json", function () {
pm.response.to.have.header('Content-Type', 'application/json');
});

使用变量进行验证

// 先前设置的全局变量或环境变量
var expectedId = pm.globals.get("expectedId");

pm.test("Response body id matches expectedId", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.id).to.eql(expectedId);
});

 



posted @ 2024-04-03 19:48  越长大越孤单哦  阅读(10)  评论(0编辑  收藏  举报