您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center 汽车系统工程   模型库  
会员   
   
LLM大模型与智能体开发实战
2026年1月17、24日 北京+线上
需求分析与管理
2026年1月22-23日 北京+线上
UAF与企业架构
2026年2月3-4日 北京+线上
     
   
 订阅
Postman接口测试全攻略:从入门到精通,看这一篇就够了
 
作者:程序员二黑
  85   次浏览      5
 2026-1-5
 
编辑推荐:
本文主要介绍了从零开始,如何全面掌握Postman的使用技巧相关内容,希望对您的学习有所帮助。
本文来自于博客园,由火龙果软件Alice编辑、推荐。

无论是前端开发、后端开发还是测试人员,Postman都是必备的神器。这篇万字长文将带你从零开始,全面掌握Postman的使用技巧。

一、为什么Postman成为接口测试的首选工具?

在当今前后端分离的开发模式下,接口测试已成为软件质量保障的关键环节。而Postman作为接口测试领域的佼-佼者,凭借其强大的功能和友好的用户体验,赢得了全球超过1000万开发者的青睐。

Postman的优势主要体现在以下几个方面:

  • 直观易用的图形界面:无需记忆复杂的命令行指令,通过可视化操作即可完成各种接口测试

  • 丰富的功能模块:支持REST、SOAP等多种接口类型,提供环境变量、测试脚本、Mock服务等全方位功能

  • 高效的团队协作:可以方便地分享接口集合和环境配置,促进团队协作

  • 强大的自动化测试:支持批量运行测试用例,并可集成到CI/CD流程中

  • 完善的文档支持:自动生成接口文档,保持文档与接口变更同步

无论你是刚入行的开发新手,还是经验丰富的测试工程师,掌握Postman都能极大提升你的工作效率。接下来,我们将从零开始,逐步深入Postman的各个功能模块。

二、Postman入门:安装与基础使用

1. 安装Postman

Postman提供了多种安装方式:

  • 桌面版:访问Postman官网(https://www.postman.com/downloads/)下载对应操作系统的安装包

  • Web版:直接使用浏览器访问https://web.postman.co/,无需安装即可使用

  • Chrome扩展:虽然官方已逐渐弃用,但仍可在Chrome应用商店中找到

推荐使用桌面版,因为它提供了最完整的功能和最佳的性能体验。

2. 发送第一个API请求

让我们从一个简单的示例开始,获取天气信息:

    1.打开Postman,点击左上角的"New"按钮,选择"Request"

    2.输入请求名称(如"Get Weather"),选择或创建集合(Collection)后点击"Save"

    3.在地址栏中输入:https://restapi.amap.com/v3/weather/weatherInfo?city=北京&key=你的key

    4.将请求方法设置为"GET"

    5.点击"Send"按钮

如果一切正常,你将在下方看到服务器返回的响应数据,包含北京的天气信息。

3. 理解Postman界面布局

Postman的界面主要分为以下几个区域:

  • 侧边栏:左侧显示历史请求、集合和环境变量

  • 请求构建区:顶部区域用于配置请求方法、URL、参数等

  • 响应展示区:底部区域显示服务器返回的响应数据、Cookie和头部信息

三、核心功能详解:从简单请求到复杂场景

1. 各种HTTP请求方法的使用

HTTP协议定义了多种请求方法,Postman支持所有标准方法:

GET请求:用于获取资源,参数通常放在URL中

GET  /api/users?page=2&limit=10 HTTP/1.1 Host: example.com

POST请求:用于创建资源,参数通常放在请求体中

// 请求体示例
{
    "name": "John Doe",
    "email": "john@example.com",
    "password": "123456"
}

PUT请求:用于更新完整资源

// 请求体示例
{
    "id": 123,
    "name": "John Doe",
    "email": "john@example.com",
    "password": "654321"
}

 

PATCH请求:用于部分更新资源

// 只更新email字段
{
    "email": "new_email@example.com"
}

DELETE请求:用于删除资源

DELETE /api/users/123 HTTP/1.1

Host: example.com

 

2. 参数传递的多种方式

根据接口设计的不同,Postman支持多种参数传递方式:

查询参数(Query Parameters):适用于GET请求,参数附加在URL后

https://api.example.com/products?category=books&sort=price&order=desc

路径参数(Path Variables):作为URL的一部分

GET /api/users/{userId}/posts/{postId}

在Postman中,你可以这样使用:

https://api.example.com/users/123/posts/456

请求体参数(Body):适用于POST、PUT等请求,支持多种格式:

  • form-data:适用于表单数据,特别是文件上传

  • x-www-form-urlencoded:标准的表单编码格式

  • raw:原始数据,支持JSON、XML、Text等格式

  • binary:用于上传二进制文件

头部参数(Headers):用于传递元数据信息,如认证令牌、内容类型等

Authorization: Bearer xxxxxxxx

Content-Type: application/json

Accept: application/json

3. 认证与授权管理

现代API通常需要认证,Postman支持多种认证方式:

Bearer Token:在Authorization选项卡中选择Bearer Token类型,然后输入token值

Basic Auth:输入用户名和密码,Postman会自动编码为Base64格式

API Key:通常在Headers或Query Parameters中添加API密钥

OAuth 2.0:Postman提供了完整的OAuth 2.0流程支持,可以获取和管理访问令牌

4. 环境变量与全局变量

环境变量是Postman中极其重要的功能,它允许你根据不同的环境(开发、测试、生产)切换配置。

定义变量:在环境管理器中添加变量,如:

base_url: https://api.dev.example.com

api_key: abcdef123456

使用变量:在请求中使用双花括号引用变量:

{{base_url}}/users?api_key={{api_key}}

变量作用域:

  • 全局变量(Globals):对所有集合和环境有效

  • 环境变量(Environment Variables):只在特定环境中有效

  • 集合变量(Collection Variables):只在当前集合内有效

  • 局部变量(Local Variables):只在当前请求脚本中有效

变量优先级:局部变量 > 数据变量 > 环境变量 > 集合变量 > 全局变量

四、高级测试技巧:编写自动化测试脚本

Postman的强大之处在于它支持用JavaScript编写测试脚本,可以实现复杂的自动化测试。

1. 测试脚本基础

在Tests选项卡中,你可以编写测试脚本,Postman提供了丰富的内置函数:

// 检查状态码是否为200
pm.test("Status code is 200", function  () {
    pm.response.to.have.status(200);
});
// 检查响应体中包含特定字段
pm.test("Response has user data",  function () {
     var jsonData = pm.response.json();
     pm.expect(jsonData).to.have.property('user');
     pm.expect(jsonData.user).to.have.property('name');
    pm.expect(jsonData.user.name).to.be.a('string');
});
// 检查响应时间在合理范围内
pm.test("Response time is less than 200ms",  function () {
     pm.expect(pm.response.responseTime).to.be.below(200);
});

2. 常用测试用例示例

// 1. 基本状态和结构验证
pm.test("Basic validation", function  () {
    // 验证状态码
     pm.response.to.have.status(200);

     // 验证Content-Type头
     pm.response.to.have.header("Content-Type",  "application/json; charset=utf-8");

     // 验证JSON结构
    var jsonData = pm.response.json();
     pm.expect(jsonData).to.be.an('object');
     pm.expect(jsonData).to.have.property('success',  true);
});
// 2. 数据完整性检查
pm.test("Data integrity check",  function () {
     var jsonData = pm.response.json();

     // 检查必需字段存在
    const requiredFields = ['id', 'name', 'email',  'createdAt'];
    requiredFields.forEach(field => {
         pm.expect(jsonData.user).to.have.property(field);
});

     // 检查数据类型
    pm.expect(jsonData.user.id).to.be.a('number');
    pm.expect(jsonData.user.name).to.be.a('string');
     pm.expect(jsonData.user.email).to.include('@');
     pm.expect(new Date(jsonData.user.createdAt)).to.be.a('Date');
});
// 3. 业务逻辑验证
pm.test("Business logic validation",  function () {
    var jsonData = pm.response.json();

     // 验证用户状态
     pm.expect(jsonData.user.isActive).to.be.true;

     // 验证权限等级
     pm.expect(jsonData.user.role).to.be.oneOf(['user',  'admin', 'moderator']);

     // 验证数据一致性
    if (jsonData.user.profile) {
         pm.expect(jsonData.user.profile.userId).to.equal(jsonData.user.id);
}
});

 

3. 动态参数与链式调用

在实际测试中,经常需要从响应中提取数据供后续请求使用:

// 从登录响应中提取token并保存到环境变量
pm.test("Extract and save token",  function () {
    var jsonData = pm.response.json();

     // 检查token是否存在
     pm.expect(jsonData).to.have.property('token');

     // 将token保存到环境变量
     pm.environment.set("auth_token", jsonData.token);

     // 也可以设置过期时间(例如30分钟后过期)
    const expires = new Date();
     expires.setMinutes(expires.getMinutes() +  30);
    pm.environment.set("token_expires", expires.toISOString());
});
// 在后续请求的Headers中使用保存的token
// 在请求的Headers中添加:Authorization: Bearer {{auth_token}}

4. 高级验证技巧

// 使用JSON Schema验证响应结构
pm.test("Response matches JSON Schema", function () {
    var schema = {
         type: "object",
         properties: {
             success: { type: "boolean" },
            data: {
                type: "object",
                 properties: {
                        id: { type: "number" },
                         name: { type: "string" },
                         email: { type: "string", format: "email"  },
                         roles: {
                             type: "array",
                             items: { type: "string" }
                         }
                     },
                     required: ["id", "name",  "email"]
             },
             message: { type: "string" }
        },
         required: ["success", "data"]
     };

     pm.response.to.have.jsonSchema(schema);
});
// 验证数组内容
pm.test("Array validation", function () {
        var jsonData = pm.response.json();

         pm.expect(jsonData.items).to.be.an('array');
         pm.expect(jsonData.items).to.have.length.above(0);

     // 验证数组中的每个元素都满足条件
        jsonData.items.forEach(item => {
        pm.expect(item).to.have.property('id');
            pm.expect(item.id).to.be.a('number');
            pm.expect(item).to.have.property('name');
            pm.expect(item.name).to.be.a('string').that.is.not.empty;
        });
});
// 使用外部数据文件进行数据驱动测试
// 首先在Collection Runner中上传CSV或JSON文件
// 然后在脚本中引用数据变量
pm.test("Validate with external data", function () {
        const testData = pm.iterationData.get("expected_value");
        pm.expect(pm.response.json().value).to.equal(testData);
});

五、集合运行器与自动化测试

集合运行器(Collection Runner)允许你批量运行多个请求,实现自动化测试。

1. 配置集合运行

    1.点击左侧的"Collections"选项卡

    2.选择要运行的集合,点击"Run"按钮

    3.配置运行参数:

  • 选择环境(Environment)

  • 设置迭代次数(Iterations)

  • 设置延迟(Delay)

  • 选择数据文件(Data File)用于数据驱动测试

    4.点击"Run Collection"开始运行

2. 数据驱动测试

通过CSV或JSON文件提供测试数据,实现数据驱动测试:

CSV文件示例:

username,password,expected_status
admin,admin123,200
user1,password1,200
invalid_user,wrong_pass,401

 

在测试脚本中使用数据文件:

// 读取数据文件中的值
var username = pm.iterationData.get("username");
var password = pm.iterationData.get("password");
var expectedStatus = pm.iterationData.get("expected_status");
// 使用数据值进行测试
        pm.test(`Status should be ${expectedStatus}  for ${username}`, function () {
pm.response.to.have.status(parseInt(expectedStatus));
});

3. 工作流程控制

使用Postman的setNextRequest()函数控制请求执行顺序:

// 根据条件跳转到指定请求
if (pm.response.code === 401) {
        // 如果认证失败,跳转到登录请求
        postman.setNextRequest("Login");
} else {
        // 正常执行下一个请求
        postman.setNextRequest(null);
}
// 跳过某些请求
if (pm.environment.get("skip_cleanup") === "true") {
        postman.setNextRequest("Final Report");
}

 

六、Mock服务与模拟数据

Postman Mock服务允许你在后端API尚未完成时创建模拟接口,方便前端开发和测试。

1. 创建Mock服务器

    1.选择一个集合,点击"Mock"选项卡

    2.配置Mock服务器名称和环境

    3.点击"Create Mock Server"创建

2. 定义Mock响应

为每个请求添加示例(Examples):

    1.在请求编辑界面,点击"Examples"选项卡

    2.点击"Add Example"添加示例

    3.设置响应状态码、头部和Body

    4.保存示例

3. 使用动态响应

使用Mock服务器时,可以使用动态变量生成随机数据:

{
    "id": {{$randomInt}},
    "name": "{{$randomFirstName}}",
    "email": "{{$randomEmail}}",
    "createdAt": "{{$timestamp}}",
    "status": "{{$randomBoolean}}"
}

七、团队协作与API文档

Postman提供了强大的团队协作功能,允许多人同时工作在同一个API项目上。

1. 团队工作区

创建团队工作区(Team Workspace)可以实现:

  • 实时协作:多人同时编辑集合和环境

  • 权限控制:设置不同的访问权限

  • 变更日志:跟踪所有变更历史

2. API文档生成

Postman可以自动生成美观的API文档:

    1.选择集合,点击"Documentation"选项卡

    2.点击"Publish"发布文档

    3.自定义文档样式和内容

    4.分享文档链接给团队成员或外部用户

3. 评论与反馈

团队成员可以在请求或集合上添加评论,讨论API设计和测试用例。

八、集成CI/CD流水线

Postman可以集成到持续集成/持续部署流程中,实现自动化接口测试。

1. 使用Newman命令行工具

Newman是Postman的命令行工具,可以在服务器上运行集合:

# 安装Newman
npm install -g newman
# 运行集合
newman run mycollection.json -e env.json -r html,json
# 使用数据文件
newman run mycollection.json -d data.csv -r cli
# 生成多种格式的报告
newman run mycollection.json -r html,json,junit

2. 集成Jenkins

在Jenkins中配置Postman自动化测试:

pipeline {
    agent any
     stages {
        stage('API Test') {
            steps {
                script {
                    // 安装Newman
                    sh 'npm install -g newman'

                     // 运行测试
                    sh 'newman run collection.json -e environment.json --reporters cli,html --reporter-html-export report.html'

                     // 发布测试报告
                     publishHTML target: [
                        allowMissing: false,
                        alwaysLinkToLastBuild: false,
                        keepAll: true,
                         reportDir: '.',
                         reportFiles: 'report.html',
                        reportName: 'API Test Report'
                    ]
            }
        }
      }
     }
}

 

3. 监控API性能

使用Postman监控功能定期检查API性能和可用性:

    1.创建监控(Monitor)

    2.设置运行频率(如每5分钟)

    3.配置告警通知(Email、Slack等)

    4.分析性能趋势和历史数据

九、最佳实践与性能优化

1. 组织良好的集合结构

  • 按功能模块分组请求

  • 使用清晰的命名规范

  • 为每个请求添加详细描述

  • 定期清理无用请求和集合

2. 高效的测试设计

  • 编写独立可重复的测试用例

  • 使用setup和teardown脚本管理测试状态

  • 避免过度依赖固定数据

  • 合理使用模拟数据减少外部依赖

3. 性能优化技巧

// 减少不必要的测试
// 只在需要时运行耗时测试
if (pm.environment.get("run_performance_tests") === "true") {
     pm.test("Performance test", function () {
         pm.expect(pm.response.responseTime).to.be.below(100);
     });
}
// 使用缓存避免重复请求
const cachedResponse = pm.environment.get("cached_data");
if (!cachedResponse) {
     // 第一次请求,缓存数据
     pm.environment.set("cached_data", pm.response.json());
}
// 批量处理请求
// 使用集合运行器代替手动逐个请求

4. 安全最佳实践

  • 不要在代码中硬编码敏感信息

  • 使用环境变量管理凭据

  • 定期轮换API密钥和令牌

  • 使用Postman的代理设置保护网络通信

十、常见问题与解决方案

1. 跨域问题(CORS)

解决方法:在Postman设置中禁用CORS检查,或使用代理。

2. SSL证书验证失败

解决方法:在Settings > General中关闭"SSL certificate verification"。

3. 变量不生效

检查点:变量作用域、变量名称拼写、环境是否已选择。

4. 测试脚本调试

使用console.log()输出调试信息,在Postman控制台查看。

console.log("Response time: ", pm.response.responseTime);
console.log("Environment: ", pm.environment.toObject());

结语

Postman作为接口测试的瑞士军刀,其功能远不止于发送HTTP请求。通过本文的学习,你应该已经掌握了从基础使用到高级技巧的全面知识。但记住,工具只是手段,真正的价值在于如何利用它提升API质量和开发效率。

建议你从实际项目出发,逐步应用这些技巧,不断探索Postman的更多可能性。随着经验的积累,你将能够设计出更加健壮、高效的接口测试方案,为软件质量保驾护航。

现在,打开Postman,开始你的接口测试之旅吧!

   
85   次浏览       5 次
相关文章

微服务测试之单元测试
一篇图文带你了解白盒测试用例设计方法
全面的质量保障体系之回归测试策略
人工智能自动化测试探索
相关文档

自动化接口测试实践之路
jenkins持续集成测试
性能测试诊断分析与优化
性能测试实例
相关课程

持续集成测试最佳实践
自动化测试体系建设与最佳实践
测试架构的构建与应用实践
DevOps时代的测试技术与最佳实践

最新活动计划
企业架构助力业务与IT协作 1-17[在线]
LLM大模型与智能体开发实战 1-17[在线]
AI大模型编写高质量代码 1-14[在线]
AI原生应用的微服务架构 1-22[在线]
需求分析与管理 1-22[北京]
视觉大模型及其应用 1-30[在线]
UAF与企业架构 2-3[北京]
 
 
最新文章
大数据平台测试
微服务架构下的测试之道
从零开始掌握微服务软件测试
如何进行测试需求分析:从接收需求到用例设计
python_selenium自动化测试框架
最新课程
测试需求分析与测试用例设计
性能测试方法与技术
自动化测试框架设计高级实践
接口自动化测试方法与工具
软件测试方法与实践(贯穿案例)
更多...   
成功案例
某支付企业 单元测试与重构培训
北京 用户体验、可用性测试与评估
某军工研究单位 自动化测试方法、案例与工具
知名消费金融公司 探索性测试与测试分析
北京 航天科工某子公司 软件测试架构师
更多...