第三方网站测试工具:【Postman使用基础指南】

Postman 远不止一个 API 调试工具,它是一个完整的 API 开发环境,集成了设计、测试、模拟、文档化和监控等全流程功能。

工作区(Workspace):协作的核心单元,用于团队或个人组织 API 项目。分为个人、团队和公开工作区。

集合(Collection):API 请求的容器,是 Postman 中最核心的组织结构。一个集合对应一个 API 或一组相关功能。

请求(Request):单个 API 调用。包含 URL、方法、头、Body 等所有必要信息。

环境(Environment):一组键值对(变量)的集合,用于管理不同场景(开发、测试、生产)的配置,如 base_url, api_key。

界面导航

侧边栏:管理集合、API、环境、Mock 服务器和监控器。

请求构建器(Builder):

HTTP 方法:GET, POST, PUT, DELETE, PATCH 等。

请求 URL:可使用环境变量,如 {{base_url}}/api/v1/users。

Params:查询参数(Query String)。

Authorization:集中管理认证(API Key, OAuth 2.0, Bearer Token等)。

Headers:请求头。

Body:请求体,支持 form-data, x-www-form-urlencoded, raw(JSON, XML), binary 等。

响应查看器(Response):

Body:格式化(Pretty, Raw, Preview)的响应内容。

Cookies:服务器设置的 Cookies。

Headers:响应头。

Test Results:脚本的测试结果输出。

控制台(Console) (View > Show Postman Console):高级调试必备,显示所有请求和响应的原始数据,以及 console.log() 输出。

动态变量与脚本

Postman 的强大之处在于其沙箱(基于 Node.js)支持的预请求脚本(Pre-request Script)和测试脚本(Tests)。

动态变量:在脚本中生成动态值。

javascript 复制代码
// 在 Pre-request Script 中设置变量
pm.variables.set("timestamp", new Date().getTime());
pm.variables.set("random_email", "test" + Math.random() + "@example.com");

然后在 URL 或 Body 中使用 {{timestamp}} 和 {{random_email}}。

Tests 脚本:验证 API 行为,实现自动化测试。

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

// 验证响应体包含某个字符串
pm.test("Response contains user id", function () {
    pm.expect(pm.response.text()).to.include("user_id");
});

// 验证 JSON 响应结构
pm.test("Response JSON schema is valid", function () {
    const schema = {
        type: 'object',
        properties: {
            id: { type: 'number' },
            name: { type: 'string' }
        },
        required: ['id', 'name']
    };
    pm.response.to.have.jsonSchema(schema);
});

// 将响应中的 Token 设置为环境变量,用于后续请求
pm.test("Save authentication token", function () {
    const jsonData = pm.response.json();
    pm.environment.set("auth_token", jsonData.access_token);
});

Postman 在于它将 API 开发中的离散环节(请求、测试、文档、模拟、监控)整合到一个统一的平台,并通过变量、脚本和集合实现了高度的自动化和可维护性。

相关推荐
笑鸿的学习笔记4 小时前
C++笔记之SIMD与SSE指令集
开发语言·c++·笔记
福兮说5 小时前
URL 编码的七个坑:c++ 传到后端变空格、%25 套娃、截断 emoji 直接报错
开发语言·前端·javascript·node.js·url
小的时候可菜了5 小时前
JS 异步的本质:从单线程到 thenable(一条进化链)
开发语言·前端·javascript
可乐鸡翅yeah_5 小时前
hls.js 配置 loadStartPosition,点播起始播放位置踩坑
开发语言·javascript·网络协议·ecmascript·m3u8在线
en.en..5 小时前
Linux 进程退出exit(函数)
java·开发语言·算法
Cx330❀6 小时前
【Qt 进阶指南】详解 Qt 常用标准对话框与主窗口组件架构
开发语言·qt·ui·性能优化·架构·图形渲染
Light Gao6 小时前
Encoder 与 Decoder 详解:从 Embedding 到 Seq2Seq 的完整数据流
java·开发语言·embedding
HZZD_HZZD6 小时前
弱网下CoAP还省吗?合众致达Cat.1电表90天实测:MQTT重连流量占52%、续航差距从38%拉大到73%
开发语言·物联网·php·腾讯云
web打印社区6 小时前
Windows 网页静默打印设置步骤:客户端、防火墙与联调清单
开发语言·前端·javascript·chrome·pdf·ecmascript
小师兄吃牛肉6 小时前
什么是R语言?如何快速学习R语言
开发语言·学习·r语言