Postman – 断言
断言用于验证测试执行后实际值与期望值是否匹配。如果它们不匹配,则测试将失败,并且我们将从测试输出中获得失败的原因。
断言返回一个布尔值,true 或 false。在 Postman 中,我们可以利用 JavaScript Chai 断言库来添加断言到我们的测试中。它在 Postman 应用程序中自动可用。
Chai-断言易于理解,因为它们是以易读的格式定义的。在 Postman 中,断言在地址栏下的测试选项卡中编写。
Chai 的文档在以下链接中提供:
编写断言
让我们写一个断言来检查 一个特定的文本-Postman 是否在一个字符串数组中。
示例
pm.test["Text is present"], function(){
pm.expect(['Java', 'Postman']).to.include('Postman')
})
输出
输出如下 –
让我们写一个断言来检查 一个数组是否为空。
示例
pm.test["Array contains element"], function(){
pm.expect(['Java', 'Postman']).to.be.an('array').that.is.not .empty
})
输出
输出如下 –
对象验证的断言
让我们编写一个 用于对象验证的断言,使用 eql。它用于在下面的示例中比较对象 i 和 j 的属性。
示例
pm.test("Equality", function(){
let i = {
"subject" : "Postman"
};
let j= {
"subject" : "Cypress"
};
pm.expect(i).to.not.eql(j);
输出
输出如下 –
对象 i 定义的属性是 Postman,而 j 定义的属性是 Cypress。因此,not.eql 断言通过。
断言类型
在 Postman 中,我们可以对响应的不同部分应用断言。以下是它们的说明:
状态码
状态码的断言如下:pm.test["Status Code is 401"], function(){
pm.response.to.have.status(401)
})
如果响应状态码为 401,则上述断言将通过。
pm.test["Status is 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,则上述断言将通过。