Postman - 断言

断言用于验证测试执行后实际值和预期值是否匹配。如果不匹配,测试将失败,我们将从测试输出中获取失败的原因。

断言返回一个布尔值,要么是 true,要么是 false。在 Postman 中,我们可以借助 JavaScript Chai 断言库在测试中添加断言。它在 Postman 应用程序中自动可用。

Chai − 断言很容易理解,因为它们是以人类可读的格式定义的。 Postman 中的断言写在地址栏下的"测试"选项卡中。

Chai 的文档可在以下链接中找到 −

https://www.chaijs.com/

Assertion

编写断言

让我们编写一个断言来检查特定文本 − Postman 位于字符串数组内

示例

pm.test["Text is present"], function(){
pm.expect(['Java', 'Postman']).to.include('Postman')
})

输出

输出如下 −

Assertion1

让我们编写一个断言来检查数组是否为空

示例

pm.test["Array contains element"], function(){
pm.expect(['Java', 'Postman']).to.be.an('array').that.is.not .empty
})

输出

输出如下 −

Assertion2

对象验证的断言

让我们使用 eql 编写一个对象验证的断言。它用于比较以下示例中对象 i 和 j 的属性。

示例

pm.test("Equality", function(){
let i = {
	"subject" : "Postman"
};
let j= {
	"subject" : "Cypress"
};
pm.expect(i).to.not.eql(j);

输出

输出如下 −

Assertion3

对象 i 定义的属性是 Postman,而对象 j 定义的属性是 Cypress。因此,not.eql 断言通过。

断言类型

在 Postman 中,我们可以对 Response 的不同部分应用断言。这些解释如下 −

状态代码

状态代码的断言如下:pm.test["状态代码为 401"], function(){
pm.response.to.have.status(401)
})

如果获得的响应状态代码为 401,则上述断言通过。

pm.test["状态为 Forbidden"], function(){
pm.response.to.have.property('status', ' Forbidden')
})

上述断言应用于响应属性 – status 的值为 Forbidden。

响应所用时间

响应所用时间的断言如下−

pm.test("Response time above 500 milliseconds", function () {
	pm.expect(pm.response.responseTime).to.be.above(500)
})

如果响应时间超过 500 毫秒,则上述断言通过。

响应格式类型

响应格式类型的断言如下 −

pm.test("Response type is JSON", function(){
	pm.response.to.be.json;
})

如果响应是 JSON 类型,则上述断言通过。

响应的标头

响应标头的断言如下 −

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

如果响应具有标头 Content-Encoding,则上述断言通过。

响应的文本

响应的文本的断言如下 −

pm.test("Response Text", function () {
	pm.expect(pm.response.text()).to.include("Tutorialspoint")
})

如果响应文本包含文本 Tutorialspoint,则上述断言通过。