- Postman 教程
- Postman - 首页
- Postman - 简介
- Postman - 环境设置
- Postman - 环境变量
- Postman - 授权
- Postman - 工作流程
- Postman - GET 请求
- Postman - POST 请求
- Postman - PUT 请求
- Postman - DELETE 请求
- Postman - 为 CRUD 创建测试
- Postman - 创建集合
- Postman - 参数化请求
- Postman - 集合运行器
- Postman - 断言
- Postman - 模拟服务器
- Postman - Cookie
- Postman - 会话
- Postman - Newman 概述
- Postman - 使用 Newman 运行集合
- Postman - OAuth 2.0 授权
- Postman 有用资源
- Postman - 快速指南
- Postman - 有用资源
- Postman - 讨论
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 中,我们可以对响应的不同部分应用断言。这些将在下面解释:
状态码
The assertion for status code is as follows: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') })
上述断言应用于具有值“Forbidden”的响应属性 - status。
响应花费的时间
响应花费时间的断言如下:
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,则上述断言通过。
广告