使用 Postman 集合、环境和 NewmanCLI 构建、测试和自动化 API。
设置 : 如果 ~/ postman/ 不存在, 请静默读 setup. md 并自然启动是一项面向实际任务的技能,主要用于用户需要测试 API 、 创建 Postman 收藏、 管理环境, 或者运行自动 API 测试 w。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
如果 ~/postman/ 目录不存在,请静默读取 setup.md 并自然启动。
用户需要测试 API、创建 Postman 集合、管理环境,或使用 Newman 运行自动化 API 测试。
所有数据存放在 ~/postman/ 目录中。结构定义详见 memory-template.md。
~/postman/ ├── memory.md # 项目、偏好设置、通用模式 ├── collections/ # Postman 集合 JSON 文件 └── environments/ # 环境 JSON 文件
| 主题 | 文件 |
|---|---|
| 设置 | setup.md |
| 记忆模板 | memory-template.md |
| 集合格式 | collections.md |
| Newman 自动化 | newman.md |
在创建请求前,先明确集合的结构:
Users > Create User,而非 POST 1禁止硬编码随环境变化的值:
{
"key": "base_url",
"value": "https://api.example.com",
"enabled": true
}
在请求中统一使用 {{base_url}}。标准环境包括:dev、staging、prod。
通过 Pre-request Script 处理认证,避免手动操作:
// 获取 token 并设置到当前 collection
pm.sendRequest({
url: pm.environment.get("auth_url"),
method: 'POST',
body: { mode: 'raw', raw: JSON.stringify({...}) }
}, (err, res) => {
pm.environment.set("token", res.json().access_token);
});
每个请求至少需包含基础断言:
pm.test("Status 200", () => pm.response.to.have.status(200));
pm.test("Has data", () => pm.expect(pm.response.json()).to.have.property("data"));
通过 Newman 无界面运行集合:
newman run collection.json -e environment.json --reporters cli,json
退出码为 0 表示全部测试通过,可直接集成至 CI 流水线。
{
"info": {
"name": "My API",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Get Users",
"request": {
"method": "GET",
"url": "{{base_url}}/users",
"header": [
{ "key": "Authorization", "value": "Bearer {{token}}" }
]
}
}
]
}
{
"name": "Create User",
"request": {
"method": "POST",
"url": "{{base_url}}/users",
"body": {
"mode": "raw",
"raw": "{"name": "{{$randomFullName}}", "email": "{{$randomEmail}}"}",
"options": { "raw": { "language": "json" } }
}
},
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test('Created', () => pm.response.to.have.status(201));",
"pm.test('Has ID', () => pm.expect(pm.response.json().id).to.exist);"
]
}
}
]
}
{
"name": "Development",
"values": [
{ "key": "base_url", "value": "http://localhost:3000", "enabled": true },
{ "key": "token", "value": "", "enabled": true }
]
}
| 任务 | 命令 |
|---|---|
| 基础运行 | newman run collection.json |
| 指定环境运行 | newman run collection.json -e dev.json |
| 运行特定文件夹 | newman run collection.json --folder "Users" |
| 迭代执行次数 | newman run collection.json -n 10 |
| 加载数据文件 | newman run collection.json -d data.csv |
| 生成 HTML 报告 | newman run collection.json -r htmlextra |
| 失败即终止 | newman run collection.json --bail |
{{base_url}}。environments/ 目录被 .gitignore 排除。setNextRequest(),或设计为完全独立的测试用例。Content-Type: application/json。Postman 内置测试数据变量:
| 变量 | 示例输出 |
|---|---|
{{$randomFullName}} |
"Jane Doe" |
{{$randomEmail}} |
"jane@example.com" |
{{$randomUUID}} |
"550e8400-e29b-..." |
{{$timestamp}} |
1234567890 |
{{$randomInt}} |
42 |
导入 OpenAPI/Swagger 规范:
或通过 CLI 执行:
npx openapi-to-postmanv2 -s openapi.yaml -o collection.json
本地留存的数据:
~/postman/本能力不会执行以下操作:
memory.md 中存储 API 凭据如用户确认,可通过 clawhub install 安装:
api — REST API 调用模式json — JSON 数据处理与校验ci-cd — 流水线自动化clawhub star postmanclawhub sync