当前位置:首页  >  IT问答库  >  软件测试基础知识

什么是API测试?Postman入门指南_千锋教育

发布:cli 2026-05-20 10:46

推荐答案

01 为什么API测试是测试工程师的必修课?

2023年,某知名电商平台因API接口异常,导致双十一期间用户下单失败,直接损失超10亿。这不是天灾,是人祸——测试团队只做了UI测试,API接口的边界值、异常参数全被忽略。

不测API的测试,等于在悬崖边跳舞。

UI测试只是表面功夫。一个按钮点下去,前端发请求给后端,后端处理数据返回结果,前端再渲染——这中间任何一个环节出问题,UI测试都只能看到“页面报错”,却不知道错在哪。

API测试直接瞄准数据交换层。它不依赖界面,直接发送请求、验证响应。你不需要等前端开发完,后端接口一写好就能开测。这意味着:Bug发现时间提前70%,修复成本降低80%。

看一组数据:

  • ►传统UI测试:发现Bug平均耗时4小时,修复成本2000元
  • ►API测试:发现Bug平均耗时30分钟,修复成本300元

差距在哪?UI测试要等页面加载、等动画播放、等数据渲染。API测试直接发送HTTP请求,毫秒级响应。

UI测试是慢镜头,API测试是快进键。

更关键的是,API测试能覆盖UI测试永远测不到的场景:

  • ►接口返回空值、超长字符串、特殊字符
  • ►并发请求导致数据错乱
  • ►权限校验漏洞
  • ►接口超时、重试机制

这些场景在UI上可能永远触发不了,但一旦上线,就是生产事故。

02 Postman是什么?为什么它能成为API测试神器?

Postman,全球3000万开发者和测试工程师的选择。不是因为它免费,而是因为它把复杂的事情做简单了。

Postman的核心能力:

1. 发送各种HTTP请求:GET、POST、PUT、DELETE、PATCH... 支持所有方法

2. 管理请求集合:把相关接口归类,一键运行整套测试

3. 环境变量管理:开发、测试、生产环境一键切换

4. 自动化测试:用JavaScript写断言,批量验证结果

5. 生成文档:接口定义自动生成API文档

6. 团队协作:共享集合、环境、测试数据

看一个对比:

  • ►手动测试一个接口:打开浏览器、输入URL、填参数、点发送、看结果——5分钟
  • ►用Postman测试一个接口:选方法、填URL、点Send——30秒

Postman把5分钟的事压缩成30秒,效率提升90%。

安装Postman只需要3步:

1. 访问官网 postman.com

2. 下载对应系统版本(Windows/Mac/Linux)

3. 安装并注册账号

打开后,你会看到:

  • ►左侧:Collections(集合)、Environments(环境)、APIs(API管理)
  • ►中间:请求编辑器
  • ►右侧:响应面板

这就是你的API测试主战场。不需要写代码,不需要配环境,开箱即用。

03 实战:手把手用Postman测试一个真实API

理论说再多不如动手一次。我们用Postman测试一个真实的用户登录API。

场景:测试一个用户登录接口,验证正确登录返回成功,错误密码返回失败。

第一步:创建请求

点击“New” -> “HTTP Request”,或者直接按Ctrl+N。

第二步:配置请求

text
Method: POST
URL: https://api.example.com/v1/auth/login
Headers:
  Content-Type: application/json
Body (raw JSON):
{
  "username": "testuser",
  "password": "123456"
}

点击“Send”,看响应结果。

第三步:验证响应

响应面板会显示:

  • ►Status: 200 OK
  • ►Body: {"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "expires_in": 3600}

但只靠肉眼看不够。我们要写自动化断言。

第四步:写测试脚本

点击“Tests”标签,输入:

javascript
// 验证状态码
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

// 验证响应时间小于500ms
pm.test("Response time is less than 500ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(500);
});

// 验证返回的token不为空
pm.test("Token is not empty", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.token).to.not.be.empty;
});

// 验证错误密码场景
pm.test("Wrong password returns 401", function () {
    // 这个测试需要单独发送错误请求
    // 这里只是示例断言写法
});

点击“Send”,下方Test Results会显示:

  • ►✅ Status code is 200
  • ►✅ Response time is less than 500ms
  • ►✅ Token is not empty

断言就是API测试的裁判,它告诉你是输是赢。

第五步:测试异常场景

再创建一个请求,密码改成“wrong”:

json
{
  "username": "testuser",
  "password": "wrong"
}

期望结果:

  • ►Status: 401 Unauthorized
  • ►Body: {"error": "Invalid credentials"}

断言:

javascript
pm.test("Status code is 401", function () {
    pm.response.to.have.status(401);
});

pm.test("Error message is correct", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.error).to.eql("Invalid credentials");
});

一个接口,两个场景,四个断言。这就是API测试的最小单元。

04 从单接口到全流程:Postman让测试飞起来

单接口测试只是起步。真正的挑战是全流程测试:用户注册 -> 登录 -> 获取个人信息 -> 修改资料 -> 退出登录。

这5个接口之间有依赖关系:登录要依赖注册,获取个人信息要依赖登录返回的token。

Postman怎么处理这种依赖?

第一步:创建集合

点击“Collections” -> “New Collection”,命名为“用户全流程测试”。

第二步:设置环境变量

点击“Environments” -> “New Environment”,命名为“测试环境”。

添加变量:

text
base_url: https://api.example.com/v1
token: (空)
user_id: (空)

第三步:编写全流程请求

请求1:用户注册

text
POST {{base_url}}/auth/register
Body: {"username": "test{{$randomInt}}", "password": "123456"}

Tests:

javascript
var jsonData = pm.response.json();
pm.environment.set("user_id", jsonData.user_id);
pm.environment.set("username", jsonData.username);

请求2:用户登录

text
POST {{base_url}}/auth/login
Body: {"username": "{{username}}", "password": "123456"}

Tests:

javascript
var jsonData = pm.response.json();
pm.environment.set("token", jsonData.token);

请求3:获取个人信息

text
GET {{base_url}}/user/{{user_id}}
Headers: Authorization: Bearer {{token}}

Tests:

javascript
pm.test("User info returned", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.username).to.eql(pm.environment.get("username"));
});

第四步:一键运行

点击集合上的“Run”按钮,选择“测试环境”,点击“Run User全流程测试”。

Postman会按顺序执行所有请求,自动传递变量,最后生成测试报告。

全流程测试不是串珠子,是织网——每个接口都影响整个系统。

数据驱动测试:再进阶一步,用CSV或JSON文件传入多组数据。

创建一个data.json:

json
[
  {"username": "user1", "password": "pass1", "expected": 200},
  {"username": "user2", "password": "wrong", "expected": 401},
  {"username": "", "password": "pass3", "expected": 400}
]

在Runner中选择这个数据文件,Postman会用每组数据运行一次请求。3组数据,3次运行,6个断言,1分钟出结果。

这就是Postman的威力:一次配置,百次执行,千次验证。

05 Postman高级技巧:让测试效率再翻倍

你以为Postman只能做基础测试?这些高级技巧能让你的效率再翻倍。

技巧1:Pre-request Script(请求前脚本)

在请求发送前执行脚本,用于生成动态数据。

场景:每次登录都需要一个时间戳参数。

javascript
// 生成当前时间戳
var timestamp = new Date().getTime();
pm.environment.set("timestamp", timestamp);

// 生成签名
var sign = CryptoJS.MD5("secret_key" + timestamp).toString();
pm.environment.set("sign", sign);

技巧2:Newman命令行工具

Postman的终端版本,可以集成到CI/CD流水线。

安装:

bash
npm install -g newman

运行测试集合:

bash
newman run UserFlow.postman_collection.json \
  -e TestEnvironment.postman_environment.json \
  -d data.json \
  --reporters cli,json

输出结果:

text
┌─────────────────────────┬─────────────────────┬─────────────────────┐
│                         │            executed │             failed  │
├─────────────────────────┼─────────────────────┼─────────────────────┤
│              iterations │                   3 │                   0 │
├─────────────────────────┼─────────────────────┼─────────────────────┤
│                requests │                  15 │                   0 │
├─────────────────────────┼─────────────────────┼─────────────────────┤
│            test-scripts │                  15 │                   0 │
├─────────────────────────┼─────────────────────┼─────────────────────┤
│      prerequest-scripts │                  15 │                   0 │
├─────────────────────────┼─────────────────────┼─────────────────────┤
│              assertions │                  30 │                   0 │
├─────────────────────────┼─────────────────────┼─────────────────────┤
│ total run duration: 12s │                     │                     │
└─────────────────────────┴─────────────────────┴─────────────────────┘

Newman让Postman从桌面工具变成自动化引擎。

技巧3:Monitors(监控器)

Postman的云端监控服务,定时运行测试集合。

配置步骤:

1. 点击“Monitors” -> “New Monitor”

2. 选择集合和环境

3. 设置运行频率(每5分钟、每小时、每天)

4. 配置告警(失败时发邮件)

当生产环境接口挂了,你还在睡觉?Monitor会在30秒内检测到问题,直接发告警到你的手机。

技巧4:Mock Server(模拟服务器)

后端还没写好接口?Postman能模拟。

从集合中创建一个Mock Server,Postman会自动生成一个模拟API,返回你定义的示例数据。

前端开发可以在Mock Server上调试,等后端接口开发完成再切换。

技巧5:API Documentation(API文档)

Postman自动从请求生成API文档,支持Markdown描述。

点击“Published” -> “Publish”,生成公开文档链接。团队成员、前端开发、第三方合作者都能直接查看。

文档包含:

  • ►接口URL
  • ►请求方法
  • ►请求参数
  • ►请求示例
  • ►响应示例

Postman文档不只是说明书,是团队协作的契约。

---

API测试不是选择题,是必答题。Postman不是工具,是测试工程师的护身符。

从今天开始,每个接口都写断言,每个集合都做全流程,每个版本都跑自动化。

7天后,你会发现:以前1天测不完的接口,现在2小时搞定;以前上线提心吊胆,现在胸有成竹。

别让Bug在线上等你,用Postman在测试环境就干掉它。

相关问题

什么是API测试?Postman入门指南_千锋教育

软件测试中什么是测试左移和测试右移_千锋教育

什么是持续测试?CI/CD中的测试实践_千锋教育

软件测试中什么是测试自动化框架_千锋教育

什么是基于风险的测试?把时间花在刀刃上_千锋教育

软件测试中什么是测试估算_千锋教育