当前位置: 首页 > news >正文

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

测试一个已写好的 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:定时监控接口可用性(需付费)。

相关文章:

  • 【Python】Python顺序语句经典题合集
  • RT_Thread 内核启动分析
  • 家用路由器的WAN口和LAN口有什么区别
  • 【WebGL】attribute方式实例化绘制
  • 线代[8]|北大丘维声教授《怎样学习线性代数?》(红色字体为博主注释)
  • 计算机考研复试上机07
  • ES6箭头函数:基础与进阶指南
  • 红队内网攻防渗透:内网渗透之内网对抗:实战项目VPC1打靶PHP-RCE三层代理路由防火墙上线密码喷射域控提权
  • 请求go构建缓存,go clean -cache
  • 使用西门子 PLC(以 S7 - 1200 为例)编写梯形图程序来根据转速计算瞬时流量和累计流量的详细步骤
  • 0基础学Linux系统(准备1)
  • 沉浸式翻译插件深度评测:打破语言壁垒的黑科技利器
  • w223信息技术知识赛系统设计与实现
  • aws(学习笔记第二十九课) aws cloudfront hands on
  • Qwen-VL传统方法微调
  • 萝卜头笔作文赏析
  • CMMI评估的五个等级
  • ROS 2机器人开发--话题通信:订阅与发布
  • 52类110个主流Java组件和框架
  • SpringBoot实现异步调用的方法
  • 跨越时空的“精神返乡”,叶灵凤藏书票捐赠上海文学馆
  • 道指跌逾100点,特斯拉涨近5%
  • 冯德莱恩:欧美贸易谈判前不会前往美国会见特朗普
  • 2025年度上海市住房城乡建设管理委工程系列中级职称评审工作启动
  • 习近平同瑞典国王卡尔十六世·古斯塔夫就中瑞建交75周年互致贺电
  • 新华每日电讯:给“男性妇科病论文”开一剂复方药