刚开始接触接口测试的同学,十有八九都会遇到同一个工具——Postman。它在开发者圈子里几乎是“接口调试默认选项”,不管是后端联调、前端Mock、测试人员做接口自动化,还是运维排查线上接口问题,都会打开它直接发起一次请求看返回。我最早接触Postman是七年前,那时候它还只是一个Chrome扩展插件,后来才变成独立的桌面应用。这么多年用下来,我依然觉得它是接口调试工具箱里最顺手的一个,尤其是新版本在体验上一直在改进,很多新同学可能刚上手时界面复杂、功能多,反而容易懵。这篇文章我就从零开始,把Postman从下载安装到发起第一个请求、再到日常调试接口的常用功能完整过一遍,帮助你最快速度进入工作状态。
Postman本质上是一个接口调试与测试平台,它能让你以图形化界面的方式构造HTTP请求、查看响应数据,还支持集合管理、环境变量、自动化测试、Mock服务、文档生成等一系列能力。对刚入门的同学来说,不需要一开始就接触全部功能,只要掌握“发起请求、查看响应、保存接口”这三步,就已经能覆盖日常开发联调中80%的接口调试场景。这篇教程适合完全没有用过Postman的纯新手,也适合用过一点但不熟悉版本新界面、或者想弄清楚环境变量和Token鉴权用法的初级开发与测试同学。
1. 安装前的准备工作:下载渠道与版本选择
1.1 从哪里下载Postman最靠谱
打开搜索引擎搜“Postman下载”,你大概率会看到一大堆下载站,实际上很多都是第三方打包站,甚至捆绑了广告插件。我强烈建议直接用官网下载渠道,也就是Postman官网的下载页面,打开后系统会自动识别你的操作系统,直接点击下载按钮就能拿到对应平台的安装包。
如果你的网络环境访问官网速度较慢,也可以使用一些国内软件管家类工具下载,但需要注意核对版本号和安装包来源,安装时留意是否有额外勾选项目。这里贴一个我实际验证过的下载路径参考:官网首页底部有“Download the App”的入口,点击后会列出Windows、macOS、Linux的版本,选择适合你系统的安装包即可。
提示:Postman新版本默认会强制要求登录账号才能使用。如果你只是因为公司环境限制不想登录,可以考虑安装旧版本(比如v10.13.6这一代的老版本),但这里有两个问题需要注意:一是老版本可能存在安全漏洞,二是接口功能上少了些新特性。这个问题后面我会专门用一节来讲。
1.2 Windows和macOS的安装细节
Windows平台的安装过程其实没什么好说的,双击运行下载好的安装包,默认会装到C:\Users\你的用户名\AppData\Local\Postman目录下,安装完成后桌面会自动生成快捷方式。有一点值得提醒:Postman在Windows上默认不会自动创建开始菜单目录,你可能会遇到一种情况——安装完成后点桌面图标能打开,但命令行里输入postman没有反应,这是因为Postman并没有把自己加入PATH环境变量。如果需要命令行启动,手动添加环境变量路径即可。
macOS的安装相对优雅一点儿,下载的是一个zip压缩包,解压后得到一个Postman.app,直接把应用拖到“应用程序”文件夹里就算安装完成。首次打开时macOS的Gatekeeper可能会有安全提示,到“系统设置-隐私与安全性”里点“仍要打开”就能绕过,这在公司统一管理的Mac上尤其常见。
Linux端则通常提供的是tar.gz压缩包,解压后直接运行Postman可执行文件即可。不过Linux用户更推荐用snap方式安装:sudo snap install postman,一条命令搞定,后续升级也不用操心。
1.3 关于汉化:给不习惯英文界面的朋友
Postman官方默认是英文界面。热词里关于“postman汉化”的搜索量一直居高不下,说明不少同学还是希望用中文界面。汉化方式其实很简单,主流的做法是使用汉化补丁包,替换Postman安装目录下的app/resources里的相关文件。网上比较常用的是GitHub上的postman汉化项目,基本每个版本都有对应的补丁,下载后解压覆盖即可。
我个人的建议是:如果能坚持,尽量用英文原版。原因有两个:第一,互联网上绝大多数接口调试教程、Stack Overflow问答、官方文档都使用英文术语,用中文界面反而会导致你看到英文资料时对应不上;第二,Postman每个版本更新都可能让旧汉化包失效,届时还要花时间重新找匹配版本,挺费劲的。当然,如果你的英文确实有限,先汉化入门也不是不行,等熟悉之后再切回英文完全来得及。
2. 初识Postman界面:核心区域与关键概念
2.1 主界面四大区域速览
第一次打开Postman,满屏的面板可能会让你有点犯怵,其实它的界面布局非常符合日常接口调试的心智模型,大致分为以下几个区域。
左侧边栏是资源管理区,这里存放你的集合(Collections)、环境(Environments)、API文档、Mock服务等所有工程化内容。它的层级关系有点像IDE里的项目管理器,集合下可以建文件夹,文件夹下可以放具体的请求。中间区域是请求编辑器,你可以在这里选择HTTP方法(GET、POST、PUT、DELETE等)、输入接口URL、配置Headers、认证信息、请求体参数。右侧区域在发起请求后显示响应内容,包括状态码、响应时间、响应大小,还有具体的响应体和响应头信息。顶部还有一排全局功能区,包括环境变量切换下拉框、Runner(测试运行器)入口、设置按钮等。
理解这套界面布局不需要背概念,你只要记住:左侧管“我的接口都存在哪”,中间管“我要发一个什么样的请求”,右侧管“服务端返回了什么”。后面所有操作都是围绕这三个区域展开的。
2.2 集合(Collection)这个核心概念一定要搞懂
很多新手第一次使用Postman时不太理解集合到底是干什么的,我在这里用一个生活化的类比来解释:集合就像你在文件夹里整理照片。你手机里的照片可能散落在各处,但你可以创建“旅行”“宝宝”“美食”这些相册来分类管理。Postman的集合就是把零散的请求整理成项目主题下的分组结构。
实际工作中,不同项目、不同系统的接口可以分别放到不同的集合下,比如“订单服务”集合下放创建订单、查询订单、取消订单等请求;集合内部还可以继续建文件夹,按模块划分——比如“订单管理”“支付管理”“退款管理”。集合不仅起到归类的作用,更重要的是能够批量执行、统一管理和文档化,这些是我们做接口自动化的基础,后面我会详细讲到。
另外强调一个新手经常忽略的问题:不要直接在Postman里保存请求到“History”(历史记录)里。历史记录是临时的,重装系统或清理数据后就会丢失,只有保存到集合里才不会丢。养成把每次联调过的请求保存进集合的习惯,短期看好像多了两步操作,长期来看是在给自己建接口资产库。
2.3 环境(Environment)到底是干嘛的
环境变量是Postman进阶使用的第一道门槛。简而言之,环境就是一组键值对的集合,比如开发环境的接口域名是dev.api.example.com,测试环境的是test.api.example.com,生产环境的是api.example.com。你在请求URL中不用写死域名,而是定义一个变量{{base_url}},通过切换右上角的环境下拉框来替换成不同的值。
这样做最大的好处是:同一套接口测试用例,只需要切换环境,就能同时在开发、测试、生产环境分别跑一遍,不用维护多份请求。比如你维护好了订单查询接口的请求,URL写成{{base_url}}/api/order/1001,在开发环境选中dev环境就请求开发服务器,选中test环境就请求测试服务器。
环境变量的右侧不止有当前值(Current Value),还有初始值(Initial Value)。这个点在团队协作时容易踩坑:初始值会同步给团队其他成员,当前值只存本地。比如数据库密码这种敏感配置,通常只放在当前值里,避免同步给别人。
3. 第一个请求:从GET到POST,把接口调通的完整流程
3.1 发送GET请求:读接口
现在开始实际操作。假设我们要调试一个公开的测试接口,比如用JSONPlaceholder提供的示例接口(这是一个免费提供的假数据接口,非常适合练习)。启动Postman,在中间区域的URL输入框输入https://jsonplaceholder.typicode.com/posts/1,HTTP方法保持默认的GET,点击Send按钮。
几毫秒后右侧面板会显示响应结果:状态码(Status)通常是200 OK,下方有JSON格式的响应体,比如返回了某个帖子的userId、id、title、body等字段。这里有几个值得注意的细节:
第一,右侧面板顶部会显示响应时间和响应大小。比如Time显示120ms,Size显示1.2 KB,这些数据在初步评估接口性能时很有参考价值。如果响应时间动辄上千毫秒,那这个接口大概率存在性能问题,后续需要和后端同事确认是否需要优化。
第二,响应体默认按Pretty(美化)格式展示,JSON数据会自动缩进、高亮。如果返回的不是JSON而是纯文本或HTML,可以点击右侧的格式化类型下拉框切换查看方式。有时候后端返回的Content-Type写错了,浏览器可能乱码,但Postman这里查看原始响应体基本都能原样显示。
第三,如果你发的请求没有带任何参数,而接口要求必须带参数,你就会收到类似401 Unauthorized或400 Bad Request之类的错误响应。遇到这类问题不要慌,先看响应体里的错误描述,大多数情况后端会返回具体原因说明。
3.2 发送POST请求:写接口
POST请求相比GET主要多了一个请求体(Body)。我们继续用示例接口来测试,在URL输入框输入https://jsonplaceholder.typicode.com/posts,将HTTP方法改为POST,然后点击Body标签,选择raw,右侧格式选择JSON,在文本框里输入一段JSON格式的数据:
{ "title": "Postman入门教程", "body": "这是一次POST请求测试", "userId": 1 }点击Send后,理论上会返回创建成功的资源信息,状态码通常是201 Created,响应体里会包含一个自动生成的id字段。这个练习虽然简单,但它演示了POST请求最基础的写法:以JSON格式在请求体中传递数据。
需要注意的一点是:选择的Body类型必须和后端约定的Content-Type一致。如果后端接口要求application/x-www-form-urlencoded格式,你却用JSON发过去,后端解析不到参数,常见的表现是:你明明在Body里传了参数,但后端日志里显示参数为空。实际工作中,后端的@RequestBody注解对应JSON格式,@RequestParam或表单格式对应form-data或x-www-form-urlencoded,理解后端接口接收参数的方式对正确调用接口至关重要。
3.3 请求参数与请求头的常见操作
一个完整的HTTP请求,除了URL和Body之外,请求头(Headers)和URL参数也经常需要手动设置。比如某些接口要求必须带Authorization头做Token鉴权,或者要求指定Accept: application/json。
在Params标签下,你可以添加URL查询参数。需要说明的是,手动在URL里写?key=value&key2=value2和在Params表格里填写效果是一样的,但用Params表格管理会更清晰,尤其当参数多的时候(比如分页查询有page、pageSize、sort等多种组合)。列表里的参数还可以一键启用/禁用(通过复选框),这在排查“这个参数没生效”的场景时特别方便,我经常只保留一个参数发一次请求,用来确认到底是哪个参数导致的问题。
在Headers标签下,可以添加自定义请求头。这里有一个常用示例:你可能需要在请求头里设置Content-Type: application/json来表示请求体是JSON格式,设置Accept: application/json来表示期望响应也是JSON。这些设置比较基础,但是理解它们的作用能帮你排查一类很常见的问题:接口返回了一堆HTML而不是预期的JSON,多半是Accept头或URL写错了。
4. 进阶使用:鉴权配置、环境变量与自动化测试
4.1 三种最常见的鉴权接入方式
现实项目中,接口往往不是裸奔的,要求先登录或携带凭证。Postman内置了几种鉴权方式,三种最常用的是:Bearer Token、Basic Auth、API Key。
Bearer Token是目前最主流的鉴权方式,具体表现是:在Headers中加一个Authorization: Bearer <token>。后端拿到Token后验证你是谁。在Postman中的操作路径是:点击Authorization标签,Type选择Bearer Token,然后在Token输入框中粘贴Token字符串。Postman会自动帮你把Token放到请求头里。
Basic Auth是HTTP协议自带的一种简单认证方式,它把用户名和密码用Base64编码后放到Authorization头中。Postman的Authorization标签页选择Basic Auth,输入用户名密码即可,界面会自动显示编码后的头。这种方式安全级别较低,一般只在内部系统和老系统里还能见到。
API Key则比较灵活,有的接口要求放在Headers里,有的放在URL参数里。对这类场景,你只需要在Headers或Params里手动加上字段即可,也可以把Key值定义成环境变量,方便不同环境使用不同的Key。
这里我要特别提醒一个授权配置的优先级问题:如果Authorization标签里设置了Type,又手动在Headers里手动加了一个Authorization头,Postman会以Authorization标签的设置为准,手动添加的头可能不会生效,而这个问题往往很难排查。所以我的习惯是:能不动手就不动,要么全用Authorization标签,要么全在Headers里手动加,不要混用。
4.2 环境变量的高级用法:Token自动获取与动态切换
掌握了基础的环境变量之后,可以进一步把它用得更为灵活。一个非常实用的小技巧:在Tests标签中编写脚本,把响应结果中的Token自动保存到环境变量中。这样在测试需要登录态的业务接口之前,先调用一次登录接口,Postman自动帮你把登录返回的Token存下来,后续所有请求都会自动携带这个Token,不需要再手动复制粘贴。
具体实现方式是这样的:在登录接口的请求中,切到Tests标签,输入一段JavaScript脚本:
const jsonData = pm.response.json(); pm.environment.set("token", jsonData.data.token);这段脚本的意思是:把登录接口返回的JSON响应中的data.token字段值保存到环境变量token里。之后在需要鉴权的接口中,Headers的Authorization值直接填写Bearer {{token}},Postman发送请求时会自动替换成实际Token值。这个方法在实际项目中非常常用,可以说是我日常接口联调效率最高的一个技巧。
另外还有一类变量叫集合变量(Collection Variables),如果你希望某变量在一个集合内所有请求都可用,但又不想切换环境,就把它定义在集合变量里。两者的区别可以这么理解:环境变量跟着“环境”走,集合变量跟着“集合”走。一般全局通用的配置(比如不同环境的域名)放环境变量里,接口相关的一些固定参数(比如接口版本号)放集合变量里。
4.3 用集合实现一键批量跑接口
当你把一批接口都保存进同一个集合后,就可以批量运行它们,这也是接口回归测试的雏形。点击集合右侧的三个点,选择“Run collection”,会打开Collection Runner窗口,你可以选择要运行的接口、指定执行顺序、设置环境,并配置迭代次数与数据文件。
运行结束后,Postman会生成一个测试报告,展示每个请求的通过/失败状态、响应时间,以及你编写的测试脚本断言是否通过。对于只有十几个接口的小项目,用这个方式做回归测试可以说是零成本方案。我见过不少小团队,没有专门的测试平台,就是用Postman的Collection Runner配合环境变量,完成了一版又一版的接口回归。
要更进一步,你可以在Tests标签里加入自动化断言,例如检查响应状态码是否为200、字段值是否符合预期:
pm.test("状态码为200", function () { pm.response.to.have.status(200); }); pm.test("返回结果含有指定字段", function () { const jsonData = pm.response.json(); pm.expect(jsonData).to.have.property("title"); });写了断言之后,批量运行的结果就不只是发送请求和查看响应,而是每个接口都能自动校验通过条件,失败时Postman会在报告中明确标红。这是从“手动测接口”迈向“自动化测接口”最关键的一步。
5. 常见问题与排查技巧实录
5.1 关于强制登录与老版本的选择
标题里我们提到Postman强制登录的问题。自从新版本强制要求注册并登录账号后,很多需要离线办公或者在内网工作的同学会很反感这一点。热词里“postman破解版”的搜索量很高,但我要提醒一句:不要使用破解版。Postman官方本来就是免费提供核心功能给个人用户的,破解版无非是跳过登录校验,但安全性完全没有保障,你可能会把公司的接口地址、Token等敏感信息暴露给不明第三方。这是一个巨大的安全风险。
如果只是不想登录,可以考虑安装旧版本(比如v10.13.6及更早的版本),旧版本在首次启动时可以点击跳过登录,直接进入主界面。不过旧版本不能享受到新版本的一些功能优化,而且在团队协作时会遇到云同步功能无法使用的情况。我的建议是:优先考虑注册免费账号使用新版,一个免费账号几乎用不到收费功能,对个人学习和公司内部使用来说完全够用,完全没有必要折腾破解。
5.2 中文乱码问题怎么解决
接口返回的JSON里中文变成\uXXXX转义序列,或者响应面板里中文显示乱码,这类问题也挺常见。先说\uXXXX的情况,这其实是正常的,有些后端返回JSON时会做Unicode转义,数据本身没问题,只是显示时没有自动转成中文。这时可以点击响应面板的“Pretty”旁边有个“Preview”按钮,它会把JSON转成可视化的渲染视图,中文就能正常显示了。更彻底的方法是,在请求的Headers里要求后端返回未转义的字符集,但这需要后端配合,一般我们不强行要求。
还有一种乱码场景是:响应头里的Content-Type缺少charset=utf-8,而接口实际返回的是UTF-8编码。这种情况下,Postman按默认字符集解析时可能显示乱码。解决办法是在Postman的Settings(设置)里找到“General”选项卡,查一下“Language”或字符编码的默认配置,或者在后端修复响应头。如果只是临时看看,也可以点击响应面板的“Raw”切回原始视图,结合浏览器确认实际内容。日常联调中,这类问题多数是后端配置不规范导致的,尤其是老系统容易遇到。
5.3 SSL证书报错问题
在测试环境,经常遇到自签HTTPS证书导致Postman报self-signed certificate错误。这个问题比较好解决:在Postman的Settings里,找到“SSL certificate verification”选项,把它关掉即可。不过要注意,这只是临时让请求发出去,不代表你的接口安全没有问题,上线前还是要保证证书有效。
另外,如果你在公司内网使用Postman,可能还需要配置代理。在企业网络环境里,很多同学会遇到能打开浏览器但Postman请求超时的情况,大概率是因为网络要求走HTTP代理,但Postman没有代理配置。在Settings的Proxy选项卡里,可以设置HTTP_PROXY和HTTPS_PROXY,或者直接选择“Use system proxy”让Postman跟随系统代理设置。
5.4 常见报错速查表
我把日常使用中遇到频率最高的一些报错整理成了表格,方便你对照排查。
| 报错现象 | 可能原因 | 排查思路 |
|---|---|---|
| Could not get response | 网络不通、域名解析失败、服务未启动 | 先用浏览器访问该URL确认服务是否在线,再用curl命令行验证 |
| 401 Unauthorized | 未带Token或Token过期 | 检查Authorization头,确认Token环境变量当前值已更新 |
| 403 Forbidden | 权限不足 | 检查账号是否具有该接口权限,检查IP白名单 |
| 404 Not Found | URL路径错误 | 核对URL是否多一个/少一个字符,确认接口的完整路径 |
| 500 Internal Server Error | 服务端代码异常 | 查看服务器日志,大概率是后端代码bug或参数不符合预期 |
| JSON parse error | 响应不是合法JSON | 查看响应体是不是HTML或纯文本误返回,检查Content-Type头 |
| SSL certificate problem | 证书无效或自签 | 开发环境暂时关闭SSL校验,生产环境必须修复证书 |
| Socket hang up | 服务端异常断开连接 | 检查请求体是否过大,服务端是否超时主动断开 |
5.5 实战案例:用Postman调试Zabbix API
热词里有人搜“postman zabbix api cpu 内存 磁盘”,我猜是有同学想通过Zabbix API读取监控数据。这个实际案例很有代表性,能把前面讲的知识串起来。Zabbix提供了一套完整的HTTP JSON-RPC API,用它来做监控数据查询非常方便。
流程是这样的:先通过user.login接口获取认证Token,把Token保存到环境变量,再调用host.get或item.get接口查询CPU、内存、磁盘的监控项。具体操作上,第一步创建一个环境变量保存Zabbix服务器地址,比如{{zabbix_url}};第二步创建一个登录请求,方法为POST,Body使用raw JSON格式,内容类似:
{ "jsonrpc": "2.0", "method": "user.login", "params": { "user": "Admin", "password": "zabbix" }, "id": 1 }发送后返回的Token通常在一个result字段里,你只需要在Tests里写脚本把它存下来。然后调用item.get接口查询指定主机CPU使用率的监控项:
{ "jsonrpc": "2.0", "method": "item.get", "params": { "output": ["itemid", "name", "lastvalue", "lastclock"], "hostids": "10084", "search": { "key_": "system.cpu.util" } }, "auth": "{{token}}", "id": 2 }这里注意auth字段可以直接用环境变量{{token}},Postman会自动替换成真实Token。通过这个案例,你会发现Postman不只是给开发用的调试工具,它完全可以作为运维场景下快速验证API接口的前端控制台。掌握环境变量和Token自动保存技巧之后,类似Zabbix、Grafana、Prometheus这类带API的系统,你都能用同一套方法接入快速查看数据。
6. 一些实用配置与个人心得
6.1 设置里的几个建议调整
Postman的设置项比较多,我推荐几个对新手上手直接有帮助的调整项。第一个是把“Theme”调成自己看着舒服的颜色主题,这个纯粹看个人偏好,不过我有不少同事用深色主题后反映看响应JSON的时间长了没那么刺眼。第二个是在“General”选项卡里,把“Trim query parameter keys/values”开启,这样在粘贴URL时Postman会自动去掉不必要的空格,对于在文档里复制URL带空格的情况很管用。第三个是建议把“Send no cache header”保持默认关闭,否则每次请求会额外发送Cache-Control: no-cache请求头,可能对部分后端解析逻辑造成干扰。
还有一个比较实用的功能:在请求编辑器中直接按Ctrl+S(Mac为Cmd+S)会快速保存请求到当前集合,不需要再右键选择保存。这个快捷键配合“保存新请求时弹出保存窗口”的设置,能让接口日常保存更顺手。如果你在请求调试过程中临时修改了请求参数但没保存,发送请求后Postman会在请求标签上显示一个圆点标记,提醒你有未保存的变更,这一点对于防止“改了忘了存”很有用。
6.2 使用Code功能一键生成代码
Postman有个特别贴心的功能:当你调试好一个接口之后,点击请求面板右侧的“Code”按钮,就能把当前请求转换成超过40种编程语言和工具的原生代码片段,比如Python的requests库、Node.js的axios、Java的OkHttp、cURL命令等。
这个功能特别适合以下场景:你在Postman里调试好了一个请求,想把它集成到脚本或项目代码里,不需要手写HTTP请求代码了,直接复制生成代码改改就能用。尤其是生成cURL命令这一项,在向别人复现问题时特别方便——直接把一条长长的cURL命令发到群里,同事在自己的终端里复制运行即可复现,不用反复描述请求参数。
这里分享一个我看过的面试题:Postman生成的cURL命令中的-H和--data-raw参数分别对应什么?其实-H就是请求头,--data-raw就是POST的请求体,Postman自动帮你把可视化参数转成了命令行参数格式。如果你还没有系统学习过HTTP报文结构,用这个功能生成一份cURL对照学,对理解HTTP请求格式很有帮助。
6.3 在团队中统一使用习惯的建议
如果你所在的团队准备统一用Postman做接口联调,有几点经验值得分享。第一个是集合共享:通过Postman的云同步功能,团队里任何一个成员保存到集合里的请求,其他成员都能看到,这样可以避免大家都在自己本地重复造轮子。如果没有登录条件,也可以使用“Export”导出集合文件分享到群里,其他人用“Import”导入即可。
第二个是环境文件的共享:导出环境变量时,注意不要包含真实的敏感值,尤其是数据库密码、云密钥、推送密钥等。前面讲过环境变量里的初始值会随文件导出,建议在导出前把敏感值清空,让同事拿到文件后自己填写当前值。
第三个是命名规范:在一个集合里放了几十个请求后,如果命名随意,比如“test1”“aa”“新建请求”,合作时找接口会很痛苦。可以约定一个简单的命名规则,比如“模块_操作_描述”——订单_创建_正常流程、订单_查询_参数缺失。这样批量执行时跑出来的测试报告一目了然,谁出错、测的是什么,一眼就能定位。
结尾的个人体会
写到这里,关于Postman从安装到基本使用的内容就说得差不多了。回到开头那个问题——为什么Postman能在接口调试工具中一直占据主流位置?我的看法是,它并没有特别炫酷的黑科技,而是把HTTP请求与响应这个本来略显枯燥的调试过程,做得足够直观、高效,并且在这些基础之上还积累了一整套围绕接口生命周期管理的工具链。对一个新手来说,第一步不用追求把所有功能都学会,把“发请求-看响应-存请求”这三板斧练熟,你就能应付日常大部分工作;等到实际项目里遇到了鉴权复杂、环境切换、批量回归这些真实痛点,再回头来学环境变量、学习脚本断言,效率会高得多。我在实际使用中还有一个感受:很多同学遇到接口调不通时第一反正是怀疑工具出问题了,其实Postman只是一个忠实的“请求搬运工”,它把你填写的URL、Headers、Body原样发送给服务器,再如实把服务器返回的内容展示出来。所以当你看到错误响应时,先不要怪Postman,从请求端参数到服务端日志,一步步理清线索才能找到根因。这也是我特别想对刚开始接触接口测试的同学说的一句话:Postman教会你的不只是工具的用法,更是排查网络接口问题的思路。希望这篇教程能帮到你。