使用postman测试api接口基本步骤

发布于:2025-02-24 ⋅ 阅读:(13) ⋅ 点赞:(0)

测试一个已写好的 API 接口需要系统性地验证其功能、性能、安全性及异常处理能力。以下是使用 Postman 进行 API 接口测试的详细步骤和注意事项:


1. 确认接口文档

  • 明确输入输出:了解接口的请求方法(GET/POST/PUT/DELETE)、URL、请求头(Headers)、请求体(Body)、路径参数(Path Params)、查询参数(Query Params)等。
  • 预期结果:明确接口在正常和异常情况下的响应状态码、数据结构及业务逻辑。

2. 基础功能测试

步骤 1:构造请求
  1. 新建请求:在 Postman 中创建新请求,输入接口 URL。
  2. 选择 HTTP 方法:根据文档选择 GET、POST、PUT 等。
  3. 设置请求头
    • 添加 Content-Type(如 application/json)。
    • 身份验证(如 Authorization: Bearer <token>)。
  4. 设置请求参数
    • 路径参数(URL 中的变量,如 /users/{{id}})。
    • 查询参数(Query Params,如 ?page=1&limit=10)。
    • 请求体(Body):
      • 对于 POST/PUT,选择 raw 格式并输入 JSON 数据(示例):
        {
          "name": "John",
          "email": "john@example.com"
        }
        
步骤 2:发送请求并验证响应
  • 点击 Send,检查以下内容:
    1. 状态码(如 200 OK201 Created400 Bad Request)。
    2. 响应体:数据格式(JSON/XML)和内容是否符合预期。
    3. 响应头:如 Content-TypeCache-Control 等。

3. 参数化与动态数据

  • 环境变量:在 Postman 中定义环境变量(如 {{base_url}}{{token}}),便于切换测试环境(开发、测试、生产)。
  • 动态生成数据:在 Pre-request Script 中生成随机数据(如随机用户名):
    // 生成随机字符串
    const randomName = 'User' + Math.floor(Math.random() * 1000);
    pm.environment.set("random_name", randomName);
    
  • 在请求体中引用变量:{ "name": "{{random_name}}" }

4. 异常测试

  • 无效输入
    • 缺失必填字段(如不传 email)。
    • 错误数据类型(如用字符串代替数字)。
    • 超长字符串(测试字段长度限制)。
  • 身份验证失败
    • 无效 Token 或未传 Token。
  • 边界值测试
    • 数字参数的极大/极小值(如 page=0page=100000)。

5. 自动化测试脚本

在 Postman 的 Tests 标签页中编写断言脚本,自动验证接口行为:

// 检查状态码
pm.test("Status code is 200", () => pm.response.to.have.status(200));

// 验证响应字段存在且类型正确
pm.test("Response has user ID", () => {
  const jsonData = pm.response.json();
  pm.expect(jsonData.id).to.be.a('number');
});

// 验证业务逻辑(如创建用户后返回的 name 是否匹配请求)
pm.test("Created user name matches request", () => {
  const requestData = JSON.parse(pm.request.body.raw);
  const responseData = pm.response.json();
  pm.expect(responseData.name).to.eql(requestData.name);
});

6. 批量运行测试(Collection Runner)

  1. 将多个接口保存到 Collection 中。
  2. 点击集合右侧的 Run 按钮。
  3. 配置迭代次数、延迟、数据文件(如 CSV/JSON 文件驱动测试)。
  4. 查看测试结果报告,标记失败用例。

7. 高级测试场景

  • 依赖接口测试
    • 使用 Postman 的脚本功能,将上一个接口的返回值作为下一个接口的输入(如获取 Token 后用于后续请求)。
    // 在登录接口的 Tests 中提取 Token
    const token = pm.response.json().token;
    pm.environment.set("auth_token", token);
    
  • 性能测试(需 Postman 高级版或工具如 JMeter):
    • 验证接口在高并发下的响应时间和稳定性。
  • 安全性测试
    • 敏感数据是否加密(如密码明文传输)。
    • SQL 注入/XSS 攻击测试(如输入 ' OR 1=1 --)。

8. 结果分析与报告

  • 控制台日志:在 Postman 控制台(View → Show Postman Console)查看请求和响应的原始数据。
  • 导出报告
    • 使用 Newman(Postman 命令行工具)生成 HTML 报告:
      newman run my_collection.json -e my_env.json -r html
      
    • 集成到 CI/CD(如 Jenkins、GitHub Actions)。

9. 常用测试用例示例

测试类型 用例描述 预期结果
正常功能 传所有必填字段,数据合法 返回 200 OK,数据正确
缺失必填字段 不传 email 字段 返回 400 Bad Request
无效 Token 使用过期 Token 返回 401 Unauthorized
数据唯一性 重复创建相同用户名 返回 409 Conflict

10. 工具与扩展

  • Swagger/OpenAPI:导入 API 文档自动生成测试用例。
  • Mock 服务器:模拟未完成的依赖接口。
  • Postman Monitor:定时监控接口可用性(需付费)。