Postman是一个功能强大的接口测试工具,它主要用于模拟用户发起的各类HTTP请求,从而验证响应中的结果数据是否和预期值相匹配。以下是关于Postman的详细介绍:
Postman是一个功能全面、使用便捷、支持多种HTTP请求类型、提供丰富的测试数据和配置管理功能,并且支持团队协作和云服务。无论是前端开发还是后端开发,Postman都可以提供强大的支持和帮助。
Postman的入门使用介绍, 可以参考:
Postman介绍和快速使用
Postman 的详细介绍
- 基本功能:
- Postman可以发送任何类型的HTTP请求(如GET、POST、PUT、DELETE等),并且能附带任何数量的参数和Headers。
- 它支持各种额外的头部字段的添加,以及模拟普通表单数据、文件、图片、视频等数据请求。
- Postman还提供测试数据和环境配置数据的导入导出功能,方便用户在不同环境间迁移数据。
- 特点与优势:
- 全流程支持:Postman是一个接口的开发和测试的全流程支持软件,它支持前端开发(如mock测试)和后端开发(如接口测试和开发接口文档)。
- 云服务支持:支持云服务,使得用户可以随时随地无缝对接工作,同时提供数据同步功能,方便用户在不同设备间同步数据。
- 团队协作:付费的Post Cloud用户可以创建自己的Team Library用于团队协作式测试,并能够将自己的测试收藏夹和用例数据分享给团队。
- 使用与配置:
- 环境变量:Postman支持全局环境变量和局部环境变量,方便用户在不同环境间切换和管理变量。
- 集合与变量:用户可以创建集合(即一组API的集合)并在集合上绑定变量,这些变量只能给集合下的请求使用。
- 预处理和断言:Postman支持使用JavaScript语法编写预处理脚本和断言,以增加测试的灵活性和准确性。
- 用户界面与功能区域:
- Postman的用户界面包括顶部菜单、工作区域、API管理、环境管理、Mock服务器设置、监控、工作流创建和历史记录等功能区域。
- 用户可以通过顶部菜单进行文件操作、编辑、视图控制、帮助文档查看等操作。
- 工作区域是Postman最主要的功能区域,用户可以在这里进行API的管理和测试。
使用Postman 测试http(s) 的请求
- 点击左上方的"New"按钮创建一个新的请求
2.选择创建HTTP 请求
-
输入或选择请求方法(GET, POST, PUT, DELETE等)
-
在"Enter request URL"字段中输入你要测试的 HTTPS URL。
-
如果需要,添加Headers、Params、Body等。
-
点击"Send"按钮发送请求,并等待 Postman 返回响应
https 禁用证书
如果HTTPS 服务使用的是自签名证书或者处于开发环境,可以在 Postman 的设置中关闭 SSL 证书验证。
-
转到 Postman 的设置(Settings)(点击左上角齿轮图标或顶部"File"菜单中的"Settings")。
-
点击"General"标签。
-
禁用"SSL certificate verification"选项。
使用Postman 测试带文件的请求
在Body中content-type请求头为multipart/form-data, 参数类型选择File之后就可以点击 “Select Files” 按钮选择文件了。
设置不同环境的变量
在 Postman 中设置不同环境(如开发环境 DEV、测试环境 QAS 和生产环境 PRD)的变量是一种有助于组织和管理 API 请求的做法。通过环境变量,您可以轻松地在不同环境中切换 API 的端点、凭据等参数,而无需每次都手动更改这些值。下面是设置不同环境变量的步骤:
1. 打开环境管理器
在 Postman 中,你可以通过点击左上角的眼睛图标(Inspect)打开环境管理器,然后点击"Environment"旁边的"Add"按钮来创建一个新的环境。
2. 创建各个环境
在新打开的窗口中,你可以给你的环境命名(例如“DEV”, “QAS”, “PRD”)并按需添加变量。
例如,你可以为开发环境“DEV”添加变量:
baseUrl
- API服务器的根地址apiKey
- 用于访问API的密钥- 其他任何你需要在不同环境中变化的配置
例如,为 DEV 环境添加变量:
Variable | Initial Value | Current Value
----------- | ------------------- | -----------------
baseUrl | https://api.dev.com | https://api.dev.com
apiKey | 12345-dev | 12345-dev
otherVar | devValue | devValue
3. 重复步骤 2,分别创建 QAS 和 PRD 环境:
- QAS 环境的变量可能是:
Variable | Initial Value | Current Value
----------- | ------------------- | -----------------
baseUrl | https://api.qas.com | https://api.qas.com
apiKey | 12345-qas | 12345-qas
otherVar | qasValue | qasValue
- PRD 环境的变量可能是:
Variable | Initial Value | Current Value
----------- | --------------------- | ---------------------
baseUrl | https://api.prd.com | https://api.prd.com
apiKey | 12345-prd | 12345-prd
otherVar | prdValue | prdValue
4. 选择和切换环境
在设置完您的环境变量后,可以在 Postman 的环境下拉菜单中选择你要使用的当前环境。这个下拉菜单位于屏幕顶部中央偏右的位置,显示为 “No Environment” 或当前选定环境的名称。
5. 使用环境变量
在请求中,你现在可以使用双大括号 {{...}}
语法来引用环境变量,例如:
- URL:
{{baseUrl}}/myendpoint
- Headers 或 Body: 使用
{{apiKey}}
或其他变量
以下是一个请求中使用环境变量的实例:
GET {{baseUrl}}/data HTTP/1.1
Authorization: Bearer {{apiKey}}
当您在 Postman 中发送这个请求,它会根据您所选择的当前环境来替换 {{baseUrl}}
和 {{apiKey}}
。
通过设置和切换不同的环境,你可以快速地在开发、测试和生产环境之间迁移,而无需更改每个请求的个别参数。
将输出作为变量
在Postman中,可以通过使用测试脚本(Test Scripts)来捕获HTTP响应的输出,并将其存储为环境或全局变量。这使得你可以在后续请求中重用这些输出值。下面是怎样实现这一过程的详细步骤:
1. 发送请求并检查响应
首先,通过Postman发送一个API请求,然后在“响应”区域检查你感兴趣的数据。确定你希望作为变量存储的数据部分。
2. 编写测试脚本
在发送请求的同一界面,转到"Tests"标签。这是你编写JavaScript脚本,以程序方式处理响应并保存数据的地方。
3. 从响应中提取数据
使用pm.response.json()
来解析JSON格式的响应体。然后,你可以根据需要访问响应体中的特定字段。
4. 存储变量
使用pm.environment.set("variableName", value)
将值存储为环境变量,或者使用pm.globals.set("variableName", value)
存储为全局变量。其中"variableName"
是你希望赋予变量的名称,value
是你从响应中提取的数据。
示例:
假设你的API响应包含一个JSON对象,如下所示:
{
"userId": 1,
"id": 10,
"title": "Example Title",
"body": "Hello, world!"
}
如果你想保存title
和body
字段作为环境变量,你的测试脚本将如下所示:
// 解析响应体为JSON
let responseData = pm.response.json();
// 存储"title"和"body"为环境变量
pm.environment.set("title", responseData.title);
pm.environment.set("body", responseData.body);
5. 使用存储的变量
在将数据保存为变量之后,你就可以在后续请求中使用这些变量了。使用{{variableName}}
语法来引用变量,如{{title}}
或{{body}}
。
注意:
- 确保在发送请求之前选择正确的环境,若你使用环境变量的话。
- 存储为变量的数据将在你选择的范围(环境或全局)中可用,这便于在多个请求之间共享数据。
使用这种方法,你可以有效地将Postman中的请求输出转换为可重复使用的变量,从而简化测试流程和数据管理。
环境变量和集合变量
在Postman中合理地使用环境变量和集合变量能极大地提高API测试和开发的效率。理解何时使用环境变量,何时使用集合变量是非常关键的。以下是一些最佳实践,可以帮助您合理规划和区分这两种类型的变量:
环境变量的最佳实践:
环境变量主要用于存储与特定环境相关的数据。对于那些随环境改变而变化的值,应该设置为环境变量,这样可以轻松地在不同的开发、测试以及生产环境中切换。
应设置为环境变量的信息包括但不限于:
- API 端点的根 URL:不同的环境(开发、测试、生产)通常有不同的根 URL。
- 认证令牌和API密钥:安全策略常要求在不同环境中使用不同的认证机制。
- 数据库连接字符串:不同环境可能连接不同的数据库。
- 特定服务的配置详情:如特定环境中某服务的可选配置等。
集合变量的最佳实践:
集合变量适用于在同一集合的所有请求中共享的数据,这些数据通常与环境无关。
应设置为集合变量的信息包括但不限于:
- 常用的Header值:如内容类型
Content-Type: application/json
不随环境变化。 - 请求参数:如分页大小
pageSize=50
,如果这一值在各环境中均通用。 - 固定的路径和参数:API在不同环境下路径未变的部分。
- 检查点或固定的测试数据:用于测试的固定值,不依赖于环境的数据。
实例:
假定我们有一个处理订单的API,我们可能需要根据环境设置以下变量:
-
环境变量:
baseUrl
:- Development:
https://dev.api.example.com
- Production:
https://api.example.com
- Development:
apiKey
:- Development:
devKey123
- Production:
prodKey456
- Development:
-
集合变量:
defaultPageSize
:20
contentType
:application/json
使用变量的示例:
在Postman中请求订单数据,可以使用如下方式:
GET {{baseUrl}}/orders?page=1&size={{defaultPageSize}}
Content-Type: {{contentType}}
Authorization: Bearer {{apiKey}}
这样,只需选择不同的环境,相应的baseUrl
和apiKey
就会自动切换,而集合变量如defaultPageSize
和contentType
则保持不变,因为它们与环境无关。
环境变量与集合变量的适用
- 环境变量:用于存储依赖于具体环境的设置。
- 集合变量:用于存储与环境无关、在同一集合中多个请求间共享的信息。
正确地使用这两种类型的变量不仅可以使你的集合更加模块化和易于管理,还可以确保在不同环境之间切换时,你的API测试和开发过程更加顺畅和高效。