Postman API开发与测试 完整学习大纲
一、 Postman 概述与核心价值
- 1.1 Postman是什么?
- 定义:一个功能强大的API协作平台,用于设计、开发、测试、记录和监控API。
- 从API客户端到API平台:单体应用、工作区、API网络、公网。
- 1.2 核心功能模块
- API客户端:发送HTTP请求。
- API设计:遵循OpenAPI/Swagger规范。
- 自动化测试:编写测试脚本。
- Mock服务器:模拟API响应。
- 监控:计划任务与API运行状况检查。
- 文档:自动生成与发布API文档。
- 协作:团队工作区、版本控制、权限管理。
- 1.3 核心概念
- 工作区 (Workspace):个人、团队、私人和公共工作空间。
- 集合 (Collection):请求和相关元素的分组容器。
- 环境 (Environment):包含变量的键值对集合,用于不同上下文(开发、测试、生产)。
- 变量 (Variables):在不同作用域(全局、集合、环境、局部、数据)中存储和重用值。
二、 入门与环境搭建
- 2.1 获取与安装Postman
- 桌面应用(推荐) vs Web版。
- 下载与安装。
- 注册Postman账户(启用同步与协作功能)。
- 2.2 用户界面导览
- 侧边栏:历史记录、集合、API、环境、Mock服务器、监控器、Flows。
- 主工作区:请求构建器、响应查看器。
- 顶部栏:新建、导入、Runner、启动、协作、同步。
- 2.3 创建第一个请求
- 新建请求选项卡。
- 选择HTTP方法:
GET, POST, PUT, DELETE, PATCH等。
- 输入请求URL。
- 点击“Send”并查看响应。
三、 构建与发送HTTP请求
- 3.1 HTTP方法详解
- 安全与幂等方法:
GET(幂等), HEAD(幂等)。
- 非幂等方法:
POST, PUT(幂等), DELETE(幂等), PATCH。
- 其他方法:
OPTIONS, TRACE, CONNECT。
- 3.2 请求组件详解
- 参数 (Params):
- Query参数:URL中
?后的键值对。
- Path参数:URL路径中的变量(如
/users/{id})。
- 授权 (Authorization):
- 无认证、API Key、Bearer Token、Basic Auth、Digest Auth、OAuth 1.0/2.0、AWS Signature、NTLM等。
- 请求头 (Headers):
- 常用头:
Content-Type, Authorization, Accept, User-Agent。
- 管理头:复制、批量编辑、预设。
- 请求体 (Body):
- none: 无正文。
- form-data: 表单数据,可传文本和文件。
- x-www-form-urlencoded: 编码的URL表单数据。
- raw: 原始数据,支持
Text, JSON, XML, HTML, JavaScript。
- binary: 上传二进制文件(如图片、PDF)。
- GraphQL: 发送GraphQL查询。
- 预请求脚本 (Pre-request Script):在发送请求前执行的JavaScript代码。
- 测试脚本 (Tests):在收到响应后执行的JavaScript代码。
四、 变量与环境的强大功能
- 4.1 变量的作用域与优先级
- 局部变量 (Local):仅在一个请求的迭代中有效,优先级最高。
- 数据变量 (Data):从外部文件导入,在集合运行时有效。
- 环境变量 (Environment):在所选环境中有效。
- 集合变量 (Collection):在整个集合中有效。
- 全局变量 (Global):在所有请求中有效,优先级最低。
- 4.2 定义与使用变量
- 语法:``。
- 定义方式:
- 在“环境”或“集合变量”编辑器中手动定义。
- 通过脚本动态定义:
pm.environment.set("var", value); pm.collectionVariables.set(...)。
- 访问方式:通过语法引用,或通过脚本:
pm.environment.get("var"), pm.variables.get(...)。
- 4.3 环境管理
- 创建和管理多个环境(如
Dev, Staging, Prod)。
- 快速切换环境。
- 导出/导入环境配置。
五、 测试与自动化
- 5.1 测试脚本基础
- 编写位置:请求/集合的“Tests”标签页。
- 沙箱:Postman Sandbox(一个Node.js环境)。
- pm对象:Postman JavaScript API的核心对象。
- 5.2 常用断言函数
- 状态码:
pm.response.to.have.status(code)
- 响应体包含字符串:
pm.expect(pm.response.text()).to.include("string")
- JSON响应检查:
pm.response.to.have.jsonBody() 或 pm.response.json()
pm.expect(pm.response.json().key).to.eql(value)
- 响应头:
pm.response.to.have.header("header-name")
- 响应时间:
pm.expect(pm.response.responseTime).to.be.below(200)
- 5.3 更复杂的测试逻辑
- 使用
pm.test(testName, function) 定义测试用例。
- 使用
pm.expect(基于Chai.js BDD语法)进行断言。
- 动态设置变量(如从响应中提取Token)。
- 5.4 集合运行器 (Collection Runner)
- 批量运行集合中的请求。
- 配置执行顺序、迭代次数、延迟。
- 使用数据文件(JSON, CSV)进行数据驱动测试。
- 查看运行结果摘要和详细报告。
- 5.5 监控器 (Monitors)
- 创建计划任务,定期运行集合。
- 设置频率(如每5分钟、每小时)。
- 配置失败通知(邮件、Webhook)。
- 查看监控历史与性能趋势。
六、 集合与工作流
- 6.1 集合的深入使用
- 创建文件夹以组织请求。
- 在集合和文件夹级别添加预请求脚本和测试脚本(对下属所有请求生效)。
- 为集合和请求添加描述(支持Markdown)。
- 6.2 请求的链式调用与工作流
- 在测试脚本中获取响应数据,并设置为环境/集合变量。
- 后续请求通过
{{variable}}引用该值,实现接口依赖。
- Postman Flows(Beta):可视化地编排API工作流。
- 6.3 导入与导出
- 导入:cURL命令、OpenAPI/Swagger规范、RAML、WADL等。
- 导出:集合(v2.1推荐)、环境、全局变量。
七、 API设计、Mock与文档
- 7.1 使用Postman进行API设计
- 在“API”模块中定义API。
- 遵循OpenAPI 3.0规范。
- 定义模式(Schema)、请求、响应、参数。
- 7.2 Mock服务器 (Mock Server)
- 作用:前端/客户端开发不依赖后端真实API。
- 创建:基于集合或API定义生成Mock服务器。
- 配置示例:
- 为不同请求方法/路径设置Mock响应。
- 使用动态变量(如
{{$guid}}, {{$timestamp}})。
- 设置响应状态码、头和Body。
- 7.3 自动化文档
- 发布文档:为集合或API一键生成美观的Web文档。
- 实时更新:更改集合后,文档自动同步。
- 文档定制:添加描述、示例。
- 评论与反馈:文档查看者可以发表评论。
八、 团队协作与API网络
- 8.1 工作区协作
- 个人工作区:仅自己可见。
- 私人工作区:邀请特定成员。
- 团队工作区:团队成员共同编辑。
- 公共工作区:公开分享集合。
- 8.2 版本控制与更改历史
- 分支与合并:为集合和API创建分支,提交变更请求。
- 查看更改历史:回滚到任意版本。
- 8.3 角色与权限
- 8.4 API网络 (Private/Public API Network)
九、 高级主题与集成
- 9.1 编写高效的预请求与测试脚本
- 使用外部库(如Lodash,在沙箱中默认可用)。
- 处理加密、签名(如HMAC-SHA256)。
- 生成随机测试数据。
- 9.2 Newman - 命令行运行器
- 安装:
npm install -g newman
- 运行集合:
newman run collection.json -e environment.json
- 生成报告:
newman run ... -r cli,html,json,junit
- 与CI/CD集成:Jenkins, GitLab CI, GitHub Actions等。
- 9.3 代理与捕获请求
- 配置代理以捕获浏览器/移动设备的HTTP流量。
- Postman Interceptor 扩展。
- 9.4 性能测试 (Beta)
- 使用Postman进行简单的负载测试(注意:非专业压测工具)。
- 9.5 WebSocket 与 GraphQL 支持
- WebSocket:建立连接、发送/接收消息。
- GraphQL:发送查询和变更,自动补全。
十、 实战、最佳实践与资源
- 10.1 典型工作流程
- 设计API -> 创建Mock服务器 -> 前端并行开发 -> 后端实现 -> 自动化测试 -> 监控与文档。
- 10.2 最佳实践
- 命名规范:为集合、请求、变量使用清晰的名称。
- 模块化:将通用函数写入集合级的预请求/测试脚本。
- 善用环境:严格区分不同环境的配置。
- 文档驱动:为每个请求和参数添加描述。
- 版本控制:对集合和API使用内置的版本控制。
- 10.3 常见应用场景
- API验收测试、回归测试。
- 微服务接口调试。
- 第三方API集成验证。
- 团队间API契约定义与Mock。
- 10.4 学习资源
- 10.5 项目实践想法
- 为一组RESTful API创建完整的集合,包含所有CRUD操作。
- 实现带有OAuth 2.0授权的自动化测试流程。
- 使用数据文件驱动,测试一个用户注册-登录-操作-退出的完整流程。
- 为你的项目API生成并发布一份在线文档。
You may also enjoy
6 minute read
Python 函数全面详解
4 minute read
算法 系统学习大纲(以python示例)
5 minute read
pytest配置文件全面解析
1 minute read
PO模式(Page Object Model)