Postman 是目前最流行的 API 开发和测试工具,拥有友好的图形界面和强大的功能。无论是手动测试、自动化测试,还是集成到 CI/CD 流程,Postman 都能胜任。本章将带你全面掌握使用 Postman 测试 API 的各种技巧。
Postman 最初是一个 Chrome 扩展,现已发展成跨平台的独立应用。它提供了请求构建、响应查看、集合管理、环境变量、测试脚本、文档生成等丰富功能。对于开发者来说,Postman 不仅用于调试接口,也是团队协作和自动化测试的利器。
访问 Postman 官网 下载对应操作系统的版本并安装。安装后首次启动,可能需要登录或注册账号(可以跳过)。
Postman 的主要界面区域包括:
打开 Postman,点击 New → HTTP Request 创建一个新请求。
输入请求 URL(例如 https://jsonplaceholder.typicode.com/posts),选择 GET 方法,点击 Send 按钮。下方将显示响应状态码、响应时间和响应体。
你可以在 Params 标签页添加查询参数,例如添加 userId=1,URL 会自动变为 https://jsonplaceholder.typicode.com/posts?userId=1。
新建请求,方法选 POST,URL 为 https://jsonplaceholder.typicode.com/posts。在 Body 标签页选择 raw 和 JSON 格式,输入 JSON 数据:
{
"title": "foo",
"body": "bar",
"userId": 1
}
点击 Send,服务器应返回创建的资源,状态码为 201。
Content-Type、Accept 等。Postman 会自动添加一些默认头。变量使得在多个请求之间复用配置变得容易,例如基础 URL、认证令牌等。
点击左侧 Environments,点击 + 创建一个新环境,例如命名为 Development。添加变量,如 base_url 值为 https://jsonplaceholder.typicode.com,api_key 值为 your-key。
在请求中,使用双大括号引用变量:{{base_url}}/posts。
从右上角环境下拉框选择 Development,变量即生效。
全局变量在所有环境中可用。可以在 Environments → Globals 中设置。
Postman 内置了一些动态变量,如 {{$timestamp}}、{{$randomInt}}、{{$guid}},可以在请求体或参数中使用。
Postman 允许在请求发送前后执行 JavaScript 代码,实现断言、设置变量、调试等。测试脚本写在 Tests 标签页,在收到响应后执行。
Postman 提供了 pm 对象和 Chai.js 断言库。例如:
// 验证状态码是否为 200
pm.test("状态码为 200", function () {
pm.response.to.have.status(200);
});
// 验证响应体包含某个字段
pm.test("响应包含 userId", function () {
const jsonData = pm.response.json();
pm.expect(jsonData).to.have.property('userId');
});
// 验证响应时间小于 500ms
pm.test("响应时间小于500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
可以在测试脚本中动态更新变量,用于后续请求(如保存 token):
const jsonData = pm.response.json();
pm.environment.set("token", jsonData.token);
或清除变量:pm.environment.unset("temp");
集合(Collection)是一组相关请求的容器,可以包含文件夹(Folder)进一步分类。集合支持共享、导出和运行。
点击左侧 Collections 旁的 +,命名集合,例如 “My API Tests”。然后将请求保存到集合中(点击 Save 按钮)。
集合级别可以设置 Pre-request Script(在集合内每个请求之前执行)和 Tests(每个请求之后执行),实现通用逻辑。
点击集合右侧的 Run 按钮,打开 Collection Runner。可以配置运行顺序、迭代次数、延迟等。运行结束后会生成详细的测试报告,显示每个请求的通过/失败情况、断言结果。
在 Collection Runner 中,可以上传 CSV 或 JSON 文件作为数据源,每次迭代使用一行数据。这对于测试不同输入组合非常有用。
例如创建一个 users.csv:
username,password
user1,pass1
user2,pass2
在请求的字段中引用 {{username}}、{{password}}。
在 Collection Runner 中点击 Select File,选择 CSV 文件,设置迭代次数(可以自动按行数)。运行后每次迭代会取一行数据。
Newman 是 Postman 的命令行工具,可以将集合运行集成到 CI 流程(如 Jenkins、GitLab CI)。
前提已安装 Node.js,执行:
npm install -g newman
在 Postman 中,点击集合右侧 ... → Export 导出为 JSON 文件。同样导出环境文件。
newman run MyCollection.json -e DevEnvironment.json --reporters cli,json --reporter-json-export testResults.json
Newman 支持多种报告格式(cli、json、html 等)。如果使用数据文件,添加 -d data.csv。
在 CI 脚本中可以根据退出码判断测试是否通过。