
PostIn是一款国产开源免费的接口管理工具,包含项目管理、接口调试、接口文档设计、接口数据MOCK、接口测试、测试计划等模块,支持免费私有化部署,支持免登陆本地接口调试,同时可以对项目进行灵活的成员权限、消息通知管理等。本文将介绍如何对接口进行快速便捷调试。
Postin 接口调试支持 HTTP 和 WebSocket 协议,帮助开发者验证 API 接口的功能,确保接口按预期工作。

HTTP和WebSocket协议在接口调试页面区别。
协议 | 区别 |
|---|---|
HTTP | 需要选择HTTP请求方式(GET、POST、HEAD、PUT、DELETE、PATCH)请求体遵循特定内容类型(如 application/json、multipart/form-data 等),数据格式与 Content-Type 头严格绑定。 支持前置脚本、后置脚本、断言等操作。 包含完整响应头。 |
WebSocket | 请求体支持文本(UTF-8编码)和二进制格式,数据帧直接传输,无需附加 Content-Type 等头信息。 无独立响应头。 |
WebSocket
HTTP协议客户端发起请求后,服务器返回响应即断开连接,每次通信需重新建立连接。在接口调试页面选择HTTP协议,界面显示HTTP协议接口调试需要的项目。
接口调试页面,点击tabs页右侧的“+”号,添加一个新的接口调试tabs。

选择“HTTP”协议,显示请求方式下拉框,输入需要测试接口的请求方式,支持的请求方式包含GET、POST、HEAD、PUT、DELETE、PATCH。

在地址栏中输入需要测试的接口地址,接口调试需要输入包括主机和路径等信息。
在相应的输入框或表单中输入需要传递给接口的请求参数。这些参数可以包括查询参数、请求体参数、请求头等,根据接口的需求进行输入。

请求参数:
属性 | 描述 |
|---|---|
Header | 位于HTTP请求的头部,用于传递元数据。 |
Query | 出现在URL问号后,对资源进行筛选、排序或分页。 |
Path | 嵌入在URL路径中,明确标识资源的唯一路径。 |
Body | 位于HTTP请求的正文,用于传递实际数据。 |
其中Body类型及其用途如下。
属性 | 描述 |
|---|---|
none | 不设置请求Body。 |
form-data | 上传文件或同时提交文本和文件。 |
x-www-form-urlencoded | 提交简单的键值对表单数据,适用于传统 HTML 表单提交。 |
json | Raw 的子集,严格遵循JSON语法(键值对、双引号、嵌套结构等),用于结构化数据传输。 |
raw | 原始数据格式,支持任意文本内容(如JSON、XML、纯文本等)。 |
点击界面上的发送按钮,将测试请求发送给目标接口。系统将会使用输入的请求地址和参数发送请求,并等待接收到服务器的响应。
在接收到服务器的响应后,系统会将响应结果显示在界面上,包括响应状态码、响应体内容等信息。用户可以在界面上直接查看测试结果,以便进行验证和调试。
WebSocket协议连接建立后客户端与服务器可双向实时传输数据,无需重复握手。在接口调试页面选择WebSocket协议,界面显示WebSocket协议接口调试需要的项目。
接口调试页面,点击tabs页右侧的“+”号,添加一个新的接口调试tabs。
选择“WS”协议,在地址栏中输入需要测试的接口地址,包括主机和路径等信息。这是发送测试请求的第一步,确定要测试的接口地址。

要与服务器进行通信,你首先需要建立一个 WebSocket 连接。只需点击“连接”按钮即可。

连接成功后,服务器会对此作出响应。
在请求栏输入需要传递给接口的请求参数。这些参数可以包括查询参数、请求体参数、请求头。

属性 | 描述 |
|---|---|
请求头 | 位于接口请求的头部,用于传递元数据。 |
查询参数 | 出现在URL问号后,对资源进行筛选、排序或分页。 |
请求体 | 位于接口请求的正文,用于传递实际数据。 |
点击界面上的发送按钮,将测试请求发送给目标接口。系统将会使用输入的请求地址和参数发送请求,并等待接收到服务器的响应。
在接收到服务器的响应后,系统会将响应报文显示在界面上。用户可以在界面上直接查看测试结果,以便进行验证和调试。
在接口请求发送之前执行,主要用于准备测试数据、动态修改请求参数或设置环境变量。
例如,使用前置脚本设置请求头参数ticket。
pi.header.set(key,value) //设置请求头 pi.query.set(key,value) //设置查询参数 pi.body.form.set(key,value) //设置请求体 pi.body.urlencoded.set(key,value) //设置请求体

或者还可以设置一些其他前置脚本。例如生成随机用户ID和当前日期,并将生成的数据写入请求体表单中 。
// 这个脚本为表单数据请求设置字段 // 生成随机用户ID const userId = Math.floor(Math.random() * 10000); // 获取当前日期并格式化 const currentDate = new Date().toISOString().split('T')[0]; // 准备表单数据 pi.body.form.set("username", `user_${userId}`); pi.body.form.set("email", `user_${userId}@example.com`); pi.body.form.set("registrationDate", currentDate);
在接口请求发送之后执行,主要用于解析响应数据、断言校验、清理测试数据或传递参数给后续请求。
pi.response.get() //获取响应体 pi.response.getStatusCode() //获取响应状态码
例如登录接口,取响应体json中data.ticket,将动态值存储至环境变量ticket中,后续通过{{ticket}}引用。
// 取响应json const responseJson = pi.response.get(); //找到json文件data下的ticket const ticket = responseJson.data.ticket;

支持可视化断言,在接口调试点击断言,显示需要输入断言的来源(状态码、响应体、响应头)、属性名称、比较符、参数值。添加完成之后,调试接口在接口响应栏下断言tab,显示断言是否成功。
检查接口返回的HTTP状态码是否符合预期(如200表示成功),以及验证响应头中的关键信息(如Content-Type格式是否正确)。

包括验证响应体中是否包含特定字符串、JSON字段值是否匹配预期,或直接对比整个响应体与预设字符串是否完全一致。

例如,如上图的断言显示执行成功。
接口每一次调试都会记录在左侧接口调试历史列表,点击调试历史列表,右侧显示调试时设置的参数。

点击调试历史右侧的删除按钮,可以对调试历史进行删除。点击接口调试列表右上角“扫把”按钮,清空调试历史列表。

有兴趣的朋友可以前往官网体验下载,或者下载私有化部署版本安装使用。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。