PostIn从基础到实践(5) - 对接口进行快捷调试

PostIn是一款开源免费的接口管理工具,包含项目管理、接口调试、接口文档设计、接口数据MOCK、接口测试、测试计划等模块,支持免费私有化部署,一键安装零配置,支持免登陆本地接口调试。本文将介绍如何对接口进行快速便捷调试。

1、接口调试

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 等头信息。 * 无独立响应头。 |

1.1 HTTP协议

‌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、纯文本等)。 |

  • 发送测试

点击界面上的发送按钮,将测试请求发送给目标接口。系统将会使用输入的请求地址和参数发送请求,并等待接收到服务器的响应。

  • 查看测试结果

在接收到服务器的响应后,系统会将响应结果显示在界面上,包括响应状态码、响应体内容等信息。用户可以在界面上直接查看测试结果,以便进行验证和调试。

1.2 WebSocket协议

‌WebSocket‌协议连接建立后客户端与服务器可双向实时传输数据,无需重复握手。在接口调试页面选择WebSocket协议,界面显示WebSocket协议接口调试需要的项目。

  • 新建接口调试页签

接口调试页面,点击tabs页右侧的"+"号,添加一个新的接口调试tabs。

  • 选择协议输入请求地址

选择"WS"协议,在地址栏中输入需要测试的接口地址,包括主机和路径等信息。这是发送测试请求的第一步,确定要测试的接口地址。

选择WebSocket协议

  • 建立连接

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

连接

连接成功后,服务器会对此作出响应。

  • 输入请求参数

在请求栏输入需要传递给接口的请求参数。这些参数可以包括查询参数、请求体参数、请求头。

请求参数

|------|--------------------------|
| 属性 | 描述 |
| 请求头 | 位于接口请求的头部,用于传递元数据。 |
| 查询参数 | 出现在URL问号后,对资源进行筛选、排序或分页。 |
| 请求体 | 位于接口请求的正文,用于传递实际数据。 |

  • 发送测试

点击界面上的发送按钮,将测试请求发送给目标接口。系统将会使用输入的请求地址和参数发送请求,并等待接收到服务器的响应。

  • 查看测试结果

在接收到服务器的响应后,系统会将响应报文显示在界面上。用户可以在界面上直接查看测试结果,以便进行验证和调试。

2、前置脚本

在接口请求发送‌之前‌执行,主要用于准备测试数据、动态修改请求参数或设置环境变量。

例如,使用前置脚本设置请求头参数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);

3、后置脚本

在接口请求发送‌之后‌执行,主要用于解析响应数据、断言校验、清理测试数据或传递参数给后续请求。

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;

后置脚本

4、断言

支持可视化断言,在接口调试点击断言,显示需要输入断言的来源(状态码、响应体、响应头)、属性名称、比较符、参数值。添加完成之后,调试接口在接口响应栏下断言tab,显示断言是否成功。

  • 验证基础状态‌

检查接口返回的‌HTTP状态码‌是否符合预期(如200表示成功)‌,以及验证响应头中的关键信息(如Content-Type格式是否正确)‌。

响应码断言

  • ‌校验响应内容‌

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

响应体断言

例如,如上图的断言显示执行成功。

5、调试历史

接口每一次调试都会记录在左侧接口调试历史列表,点击调试历史列表,右侧显示调试时设置的参数。

调试历史列表

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

删除调试历史

有兴趣的朋友可以前往官网体验下载,或者下载私有化部署版本安装使用。

相关推荐
一点事1 天前
用postman,如何调用webservice接口?
测试工具·postman
咨询QQ688238861 天前
非线性悬架建模与UKF状态估计:Matlab/Simulink源码与详细建模说明
postman
彼岸花@开1 天前
postman配置jdk自签证书的双向认证功能
jdk·postman
测试人社区—84161 天前
Postman API测试指南
人工智能·git·测试工具·自动化·bug·postman
测试人社区—84161 天前
Appium移动自动化测试:从入门到精通实战
人工智能·安全·appium·自动化·bug·postman
程序员杰哥2 天前
如何用Postman做接口自动化测试?
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
测试人社区—84162 天前
Mocking与Stubbing在单元测试中的正确使用
人工智能·git·单元测试·自动化·bug·postman
一念一花一世界2 天前
一文了解接口管理工具PostIn安装与配置
postman·安装配置·postin·接口管理工具
linuxcpp_3 天前
postman历史版本下载
postman