API Tester
PocketCode 内的全屏 API 客户端:支持带脚本和无代码断言的 REST 请求、GraphQL、WebSocket、Server-Sent Events、Socket.IO 和 MQTT。集合、带密钥变量的环境、可以比较的历史记录、集合执行器、负载测试、Mock Server 和代码生成让它更完整。下面每个屏幕都会说明它能做什么;缺少某项功能时,还会说明缺了什么、为什么缺。
它是什么,如何打开
API Tester 以全屏图层的形式盖在应用之上,旋转设备时会保留已打开的请求、你所在的屏幕和实时连接。它支持六种协议:REST、WebSocket、GraphQL、SSE、Socket.IO 和 MQTT。代码里有一个 gRPC 面板,但此版本把它隐藏了,等它能在 Android 上运行后再放出来。
打开方式
- 1点击导航栏中的工具。开发工具面板会打开:点击 API Test(无论应用使用哪种语言,这个磁贴都显示“API Test”)。
- 2或者打开命令面板,运行 API Tester。
- 3或者在主页使用 API 测试器快捷操作,也可以点击 API 测试器小组件,它会显示你保存的集合和最近运行的请求。
- 系统返回手势会从请求回到起始页;在起始页上则会关闭 API Tester。
- API Tester 没有自己的深度链接。键盘快捷键只存在于横屏平板布局中(见打开的请求、保存与快捷键)。
还有谁会用到它
- AI 助手为这个模块提供三个工具:发送请求、列出你的集合、解析 cURL 命令。它们无需打开屏幕就能响应,使用同一套 REST 引擎。它收到的响应正文会在 4096 个字符处截断,它不能附加文件,也不会调用 PocketCode 自己的后端,而且解析 cURL 命令只是读取:不会有任何内容载入编辑器。
- 工作流可以由在此屏幕上发送的响应触发。事件携带 URL、方法、状态码和耗时,从不包含正文或 header。AI 发送的请求不会触发它。
- Cloud Sync(Pro)目前不同步你的集合和环境,这部分已暂停。详见隐私与安全。
屏幕一览
每个屏幕和面板一行。在手机上,起始页、集合和历史记录要从请求的 ⋮ 菜单进入;在平板上,顶栏有首页、请求名称、环境菜单和打开资料库(它会打开集合)。
| 屏幕 | 如何到达 | 你可以做什么 |
|---|---|---|
| 起始页 | 最先打开;从请求返回;平板上点击首页 | 选择新建请求、集合或历史记录,并回到仍保持连接的任何内容。 |
| 请求 | 新建请求、起始页上的标签,或从集合、历史记录载入一条记录 | 构建并发送请求。有四种布局,取决于窗口。 |
| 协议面板 | 请求上下文行中的协议菜单 | WebSocket、GraphQL、SSE、Socket.IO 和 MQTT 各有自己的面板,四种布局中都一样。 |
| 工具 | 上下文行上的滑块图标(仅在请求屏幕上) | 打开环境、Mock Server、Cookies、导入和设置。 |
| 环境 | 工具 → 环境,或环境菜单 → 管理环境 | 选择当前环境;编辑变量、密钥和全局变量。 |
| Mock Server | 工具 → Mock Server | 开启本地服务器(Pro),设置端口和延迟,添加路由,查看日志。 |
| Cookie 存储 | 工具 → Cookies | 查看服务器存储的 cookie;把它们从列表中移除。 |
| 导入请求 | 工具 → 导入 | 粘贴 cURL、Postman、Insomnia、OpenAPI 或 HAR 文本;从 OpenAPI 生成 mock。 |
| 从项目导入 | 导入 → 从项目导入 | 预览并导入以文件形式保存在当前项目中的集合。 |
| 请求设置 | 工具 → 设置 | 当前请求的超时、重定向、SSL、cookie 和 URL 编码。 |
| 代码生成器 | ⋮ → 生成代码 | 以 26 种不同输出查看请求对应的代码并复制。 |
| 生成的 cURL | ⋮ → 导出 cURL | 把请求复制为 cURL 命令。 |
| 保存到集合 | ⋮ → 保存,或在横屏平板上按 Ctrl+S | 选择一个集合或输入新名称。 |
| 集合 | 起始页 → 集合;手机上 ⋮ → 集合;平板上点文件夹图标 | 搜索、创建、载入请求、运行、导出、保存到项目、删除。 |
| 导出 | 集合 → 某个集合的 ⋮ → 导出 | 以五种格式预览并复制一个集合。 |
| 历史记录 | 起始页 → 历史记录;手机上 ⋮ → 历史记录 | 搜索、筛选、载入、加星标、比较、用作 mock、清除。 |
| 比较响应 | 历史记录 → 某条记录的 ⋮ → 与…比较,再选另一条记录 | 查看两个响应在正文和标头上的差异。 |
| 执行器 | 集合 → ⋮ → 运行 | 运行集合中的每个请求,可设置迭代次数或使用数据文件(Pro)。 |
| 负载测试 | ⋮ → 负载测试 | 多次发送当前打开的 REST 请求并查看延迟百分位数(Pro)。 |
起始页
起始页是模块打开时的第一个屏幕。它没有 URL 栏、协议选择器或工具按钮:这些都属于请求屏幕。窗口宽度大于高度时,它显示两列。


起始页提供什么
你可以
- 点击新建请求。卡片列出六种协议(REST · WS · GQL · SSE · IO · MQTT),并打开请求屏幕。
- 点击集合或历史记录。每张卡片显示你有多少条,没有时显示空。
- 使用顶部的实时标签条,它只在有内容运行时才出现:每个打开的请求、带端口的 Mock Server、已连接的 WebSocket、SSE、Socket.IO 和 MQTT 会话、一次负载测试或一次集合运行。点击其中一个,就会回到它。
你不能做什么,以及原因
- 在起始页选择协议、输入 URL、选择环境或打开工具:这些都不在那里。有意为之
- 通过回到起始页来关闭实时连接:它们会继续运行,这正是设有这些标签的原因。有意为之
请求(REST)
REST 请求在这里构建和发送。一个请求有六个部分:参数、Headers、正文、Auth、Scripts 和设置。其他协议使用同一个 URL 栏和上下文行,各自带一个面板(见其他协议)。
四种布局
布局取决于窗口,而不是设备,所以分屏的平板会得到手机布局。
| 手机,竖屏(宽度小于 600 dp) | URL 栏下方有一个请求 | 响应切换,六个部分显示为标签页。发送后会自动切换到响应。 |
| 手机,横屏(宽度 600 dp 或以上,高度小于 480 dp) | 各部分显示为标签页,请求与响应之间有可拖动的分隔条。键盘弹出时,响应会缩成 48 dp 的窄条。 |
| 平板,竖屏 | 请求在上、响应在下,带可拖动的分隔条和 30 / 50 / 70 % 预设。各部分以手风琴形式展开;集合是侧边抽屉(文件夹图标)。 |
| 平板,横屏(宽度 840 dp 或以上、高度 480 dp 或以上,且宽度大于高度) | 带可拖动分隔条的三列:集合侧边栏、带多个已打开请求标签页的请求,以及响应。双击分隔条可重置。 |
URL 栏、上下文行和 ⋮ 菜单
输入 URL(等宽字体,不自动大写)。如果没有 http:// 或 https://,应用会加上 https://。它下面的上下文行包含协议菜单、环境菜单、工具图标和 ⋮ 菜单。
你可以
- 在八种方法中选择:GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS 和 TRACE,每种有自己的颜色。REST 和 GraphQL 会显示方法选择器。
- 点击发送(纸飞机)。请求运行期间它会变成取消请求。
- 选择协议:REST、WebSocket、GraphQL、SSE、Socket.IO 或 MQTT。
- 选择当前环境,或选择无环境;管理环境会打开编辑器。
- 打开 ⋮ 菜单:新建、复制(在名称后加上“ (copy)”)、保存、导出 cURL、生成代码和负载测试。在手机上它还会列出首页、集合和历史记录。
你不能做什么,以及原因
- 选择 GraphQL 请求的方法:选择器就在那里,但该面板始终发送 POST。尚未提供
- 给请求命名:没有对应的字段,所以你保存的请求都叫 New Request(导入的请求保留自己的名称)。尚未提供
工具面板
共五行,每行都有一句话说明里面有什么,右侧是它的实时状态:当前环境、Mock Server(例如 :8090 · 已服务 3 个)和已存储 cookie 的数量。这个面板只能从请求屏幕打开,不能从起始页打开。
| 行 | 它会打开什么 |
|---|---|
| 环境 | 基础 URL、令牌和变量 |
| Mock Server | 在本地端口提供预设响应 |
| Cookies | 服务器在本设备上存储的内容 |
| 导入 | cURL、Postman、OpenAPI、HAR |
| 设置 | 超时、重定向、SSL |

参数与 Headers
两者都是键值列表,使用同一个编辑器。标签页上带有已启用行数的计数(例如 Headers 25)。新请求默认带有一个 Content-Type: application/json header。
你可以
- 用添加参数或添加 header添加行,用各自的复选框启用或停用,拖动可重新排序,滑动可删除。
- 打开某一行的详情,可以添加说明,或打开密钥值:该值在界面中会被遮蔽,并且不会出现在导出的 cURL 和生成的代码中。
- 用批量编辑粘贴
Key: value形式的多行内容。
你不能做什么,以及原因
- 从列表中选择常用 header:没有 header 自动补全。尚未提供
- 让查询参数自动做百分号编码:它们按你输入的内容加到 URL 上,编码 URL开关没有任何作用。尚未提供
正文
你可以
- 选择类型。None、JSON、Form URL-Encoded、Multipart Form 和 Raw Text 是标签;XML、HTML、JavaScript、Binary 和 GraphQL 在更多…下面。共十种,在所有语言中都用英文命名。
- 在 JSON 中:行号、实时校验(JSON 无效:…)以及美化 / 压缩。
- 在 Form URL-Encoded 和 Multipart Form 中:键值行。Multipart 的行可以是文本字段或文件字段(选择文件,通过系统文件选择器)。
- 在 Binary 中:选择二进制文件。在作为正文类型的 GraphQL 中:一个查询和变量 (JSON)。
- 在原始文本、JSON、XML、HTML、JavaScript 正文和表单字段中使用
{{variables}}:发送时它们会被替换。
你不能做什么,以及原因
- 在正文编辑器中获得语法高亮。有意为之
- 为 GraphQL 正文设置操作名称,或在它的查询和变量中使用
{{variables}}。尚未提供
认证
在认证类型菜单中选择类型;只会显示该类型的表单。
| No Auth | 不添加任何内容。 |
| Bearer Token | 一个令牌和一个前缀(默认 Bearer)。 |
| Basic Auth | 用户名和密码。 |
| API Key | 一个键名、一个值,以及放在哪里:header 或查询参数。 |
| OAuth 2.0 | 四种授权类型,见下文。 |
| Digest Auth | 用户名和密码。realm、nonce 等其余内容来自服务器的 401 质询。 |
| AWS Signature | Access key ID、Secret access key、Region(默认 us-east-1)、Service,以及可选的 Session token。请求使用真正的 SigV4 签名。 |
| Custom | 一个 header 名称和一个值。 |
| Hawk Auth、NTLM Auth | 带有即将推出标记。它们目前什么也不做。 |

你可以
- 选择授权类型:Authorization Code、Client Credentials、Password Credentials 或 Implicit。
- 使用 Client Credentials 时,填写 Token URL、Client ID、Client Secret 和 Scope,然后点击获取令牌。
- 使用 Authorization Code 时,点击打开浏览器,登录后,从你被送回的地址中复制
code的值,粘贴到授权码下,再点击兑换授权码。 - 使用 Password Credentials 或 Implicit 时,自己把令牌粘贴到访问令牌中:没有对应的按钮。
- 在凭据中使用
{{variables}}。想让令牌不显示出来,就把它存为密钥环境变量,并在这里写{{token}}。
你不能做什么,以及原因
- 让应用替你捕获 OAuth 重定向:模块无法注册回到应用的链接,所以由你粘贴授权码。有意为之
- 使用 PKCE 或刷新令牌。尚未提供
- 把 OAuth 2.0 令牌发送到
Authorization: Bearer …header 以外的任何位置。尚未提供 - 使用 Hawk 或 NTLM:选择它们后,发送时什么也不会发生。尚未提供
- 遮蔽你在认证中输入的内容:令牌和密码在此屏幕上以明文显示。尚未提供
脚本与断言
Scripts 部分有三块:断言(无需代码)、请求前脚本和测试脚本。
你可以
- 用添加断言添加一条断言:一个字段(Status code、Response time、Header、Body (JSONPath) 或 Body size)、一个运算符(equals、does not equal、contains、does not contain、is greater than、is less than、exists、does not exist)和一个期望值。断言始终会运行,不需要 JavaScript 引擎。
- 插入九个快速模板之一:Status is 200、Status is 2xx、Response time < 500ms、Has JSON body、Body not empty、Has Content-Type、JSON schema valid、Body contains string、Array length > 0。
- 为请求前脚本和测试脚本编写 JavaScript。它们在隔离的引擎(
androidx.javascriptengine)中运行,每次都是全新的引擎,所以崩溃的脚本不会让应用崩溃。 - 使用
pm子集:pm.test(name, fn);pm.expect(value)及equal、include、above、below、within、an(type)、empty和它们的not形式;pm.environment.get与pm.environment.set;pm.globals.get(只读);pm.request(method、url、headers、body:只读副本);在测试中还有pm.response(code、status、headers、responseTime、text()、json()以及to.have.status/header/jsonBody);以及console.log/info/warn/error。 - 放心依赖
pm.environment.set会被保存:它先更新已有的全局变量,再更新当前环境中的变量,否则在当前环境中新建一个(没有当前环境时则新建全局变量)。 - 在响应的测试标签页中查看结果,在控制台中查看脚本的输出。
你不能做什么,以及原因
- 使用 Postman API 的其余部分:
pm.sendRequest、pm.variables、pm.collectionVariables、setNextRequest、require和pm.globals.set都不存在,脚本不能修改请求,也没有异步。需要它们的 Postman 脚本会在控制台中以 Script error: … 结束。有意为之 - 在没有较新 WebView 的设备上运行脚本:脚本会被跳过,控制台中出现一条警告,只有断言会运行。设备
- 让集合或文件夹的脚本运行:它们会被导入并保存,但只有请求自己的脚本会执行。尚未提供
- 按 JSON schema 校验正文:JSON schema valid 模板只检查正文是不是 JSON。尚未提供
设置
有三项设置直接放在设置部分里;请求设置面板(工具 → 设置,“仅影响当前打开的请求”)有五项。它们跟随请求一起保存。
你可以
- 直接设置超时 (ms)(任意数字,默认 30000),或在面板中选择 5、10、15、30、60 或 120 秒。一个值同时管连接、读取和写入。
- 切换跟随重定向和验证 SSL。
- 切换启用 Cookie和编码 URL:只能在面板中操作。
你不能做什么,以及原因
- 设置代理、客户端证书或最大重定向次数:没有任何屏幕提供它们。尚未提供
- 让编码 URL起作用:开关在那里,但发送时会忽略它。尚未提供
打开的请求、保存与快捷键
在横屏平板布局中,请求列有多个已打开请求的标签页,并支持这些快捷键:
| 快捷键 | 操作 |
|---|---|
Ctrl+Enter | 发送(在流式协议中为连接 / 断开) |
Ctrl+T | 新建标签页 |
Ctrl+W | 关闭标签页 |
Ctrl+S | 保存到集合 |
你可以
- 打开新建标签页,切换标签页,用 ✕ 关闭它们。圆点表示请求在保存后有改动;空请求显示为无标题。
- 点击 ⋮ → 保存,会看到保存到集合:选择一个集合(会显示它的请求数量),或输入新名称并点击创建。
- 使用 ⋮ 菜单中的复制和新建,并用导出 cURL打开生成的 cURL,再点击复制。
你不能做什么,以及原因
- 在手机或竖屏平板上用标签页打开请求:标签页只存在于横屏平板布局,快捷键也是一样。也没有
Ctrl+F或Ctrl+K。有意为之 - 切换标签页时保留响应:它会被清除。尚未提供
响应
该面板有四种状态:空(发送请求以查看响应)、加载中(正在发送请求…)、成功和错误。在竖屏手机上,摘要显示在切换按钮本身上,例如 响应 · 200 · 679 ms。

状态与标签页
你可以
- 查看按范围着色的状态标签(2xx 绿色、3xx 青绿色、4xx 橙色、5xx 红色),以及总耗时、大小和内容类型。
- 在六个标签页之间切换,顺序为:正文、Headers(带数量;可复制任一 header)、Cookies(name=value、域名和路径,带 Secure 和 HttpOnly 标记)、测试(断言和脚本结果;为空时显示此响应没有运行测试)、时间线和控制台。
- 查看时间线:DNS、TCP、TLS、TTFB 和 Transfer,外加 Total。
- 查看控制台:整个会话的日志(发送、脚本、Mock Server、连接),带时间和级别:LOG、INFO、WARN 或 ERROR。
你不能做什么,以及原因
- 查看协议、远程 IP 或重定向链:面板不显示它们。尚未提供
- 查看请求失败的原因:遇到网络、TLS 或超时错误时,面板只显示一个 0 Error 标签和空正文。原因会写入控制台日志。尚未提供
- 清空控制台:它没有清除按钮。尚未提供
正文
你可以
- 用右下角的悬浮按钮切换视图:Pretty、Raw 或 Preview。复制按钮紧挨着它。
- 在 Pretty 下,浏览可折叠的 JSON 树,它有两个筛选器:搜索键…和 JSONPath 筛选 · $.a.b[0].c(精确路径;什么也没找到时显示未找到匹配该路径的结果)。
- 打开某个节点的 ⋮ 菜单:复制值、复制路径和保存为变量(选择一个环境和一个名称)。
- 在 Raw 下,查看等宽文本;超过 512 K 字符的正文会使用虚拟化列表。
- 在 Preview 下,
text/html会在关闭 JavaScript 的 WebView 中渲染;其他任何类型都会显示此内容类型没有可用的预览。
你不能做什么,以及原因
- 让 XML 或 HTML 自动格式化:只有 JSON 会被格式化,其他内容原样显示。尚未提供
- 预览图片:预览从未收到图片字节。尚未提供
- 在正文中搜索并高亮匹配项、跳到顶部或底部,或者分享、保存响应到文件。尚未提供
比较两个响应
比较从历史记录开始,而不是从这个面板:某条记录的 ⋮ → 与…比较,再选另一条记录。步骤见历史记录。
其他协议
在请求屏幕的上下文行中选择协议。下面每个面板都位于请求区域;地址和发送(在流式协议中它负责连接)留在 URL 栏。除了 GraphQL 的端点 URL,其他协议都不会替换 {{variables}}。纯 http:// 和 ws:// 只能连到 localhost、127.0.0.1 和 10.0.2.2;其他一律需要 HTTPS 或 wss://。
GraphQL
你可以
- 输入端点并点击获取 Schema(标准的内省 POST)。Schema 会显示找到了多少个类型;每个类型展开后是它的字段、字段类型和参数数量,例如
2 个参数。以__开头的类型会被隐藏。 - 编写查询,以及在可折叠区域中编写变量 (JSON);发送;在常规响应面板中查看结果。查询和变更都以 HTTP POST 发送。
你不能做什么,以及原因
- 在此面板中设置操作名称、header 或认证:它只发送
Content-Type: application/json。需要认证时,请使用带 GraphQL 正文的 REST 请求。尚未提供 - 使用订阅:探索器会列出 Subscription 类型,但所有内容都通过 HTTP POST 发送,没有
graphql-ws传输。尚未提供 - 查看参数名称:只能看到数量。尚未提供
WebSocket
输入 ws:// 或 wss://(没有协议头时会加上 wss://)并连接。没有读取超时:连接会一直保持打开,直到你断开或服务器关闭它。
你可以
- 查看状态:CONNECTING、CONNECTED、DISCONNECTING、DISCONNECTED 或 ERROR。
- 输入消息,连接后发送。
- 查看聊天式的日志(发出的在右,收到的在左,带时间),并用清除消息清空。
你不能做什么,以及原因
- 添加 header 或子协议、自动重连或保存消息模板。尚未提供
- 发送或读取二进制消息:只支持文本。尚未提供
- 在 URL 中使用
{{variables}}。尚未提供
SSE
输入流的 URL 并连接。应用发送带 Accept: text/event-stream 的 GET,没有读取超时。
你可以
- 查看状态(CONNECTING、CONNECTED、DISCONNECTED 或 ERROR)和计数,例如
12 个事件。 - 查看事件日志:类型标记、
id: …和data的前 300 个字符。
你不能做什么,以及原因
- 发送 header、按事件类型筛选、自动重连或遵循服务器的
retry:值。尚未提供 - 查看每个事件的时间或
retry,或从Last-Event-ID恢复:id 会被保留,但既不显示也不发送。尚未提供 - 使用
{{variables}}、cookie 存储或验证 SSL:这里都不适用。尚未提供
Socket.IO
你可以
- 输入 URL(例如
http://localhost:3000)和命名空间(默认/,不会追加任何内容;其他名称会追加到 URL 后面)。 - 切换自动重连(默认开启)。
- 用添加监听监听某个事件名,用发送配合 JSON 负载发出事件:它会作为真正的 JSON 值(对象、数组或标量)发送,无法解析时则作为文本发送。
- 查看聊天式的日志,每个气泡都带有事件名,并可清空。
你不能做什么,以及原因
- 设置 header、
auth、查询参数或传输方式,移除监听,或在一个连接中使用多个命名空间。尚未提供 - 知道它能和哪些版本的 Socket.IO 服务器通信:客户端是官方的
socket.io-client2.1.2,由这个库决定。第三方
MQTT
在 URL 栏输入 host 或 host:port。没有端口时应用使用 1883;如果你输入地址时使用 TLS已开启,则使用 8883。
你可以
- 切换使用 TLS(使用系统证书),并设置客户端 ID(生成为
pocketcode-加八个字符)、用户名和密码(只有用户名不为空时才会发送;该字段被遮蔽,带显示/隐藏的眼睛图标)。 - 以 QoS 0(At most once)、1(At least once)或 2(Exactly once)订阅某个主题;订阅列表会显示它们。
- 发布到发布主题,带文本负载和 QoS。
- 查看收发的消息,按主题分组。
你不能做什么,以及原因
- 选择 MQTT 版本:客户端只支持 MQTT 5,所以只支持 3.1.1 的 broker 可能会拒绝连接。尚未提供
- 以 retain 标志发布。尚未提供
- 取消订阅、设置遗嘱、keep-alive 或 clean-session、MQTT 5 属性、使用自己的 TLS 证书,或通过 WebSocket 连接。尚未提供
gRPC(此版本中已隐藏)
代码里有一个 gRPC 面板,但此版本把它隐藏了:新建请求卡片和协议菜单里都没有 gRPC。这个面板需要完整的 protobuf-java 库,而应用为了让 Firestore 继续工作没有带上它,所以它暂时还不能在 Android 上运行。等它能运行了再放出来。
集合
集合把保存的请求归在一起。集合是独立的屏幕,而不是共用资料库里的一个标签页:在手机上,它从起始页或 ⋮ 菜单打开,没有标题栏(用系统手势返回);在平板上,竖屏时是侧边抽屉,横屏时是固定的侧边栏。

你可以
- 按名称搜索集合。
- 用新建集合(圆形按钮)创建一个。在 Free 上已有一个集合时,它会改为打开 API Tester Pro 窗口。
- 展开集合以列出其中的请求(带颜色的方法,然后是名称或 URL),点击一个即可载入:你会回到请求屏幕。
- 打开集合的 ⋮ 菜单:运行(带 Pro 标记)、导出、保存到项目和删除。删除不会要求确认。
- 用保存到集合把当前请求存入一个集合。
- 在保存到集合中输入新名称,即可当场创建一个集合。在 Free 上同样受一个集合的上限约束:已有一个时,对话框会关闭并打开 API Tester Pro 窗口。
你不能做什么,以及原因
- 重命名、移动或重新排序集合或请求,或创建文件夹:没有对应的屏幕。尚未提供
- 打开文件夹:文件夹(随导入和项目文件一起出现)显示为一行不响应的名称 (n)。你无法在这里展开它们或打开其中的请求,不过执行器会遍历它们。尚未提供
- 让集合或文件夹的认证、header 或脚本生效:它们会被导入、保存和导出,但发送和运行只使用请求自身的内容。尚未提供
- 编辑集合的变量:它们只通过导入和项目文件进来,并且只在请求是从该集合载入时才会使用。尚未提供
- 在 Free 上保留多个集合:新建集合、在保存到集合中输入新名称以及导入,都会打开 API Tester Pro 窗口。Pro
环境与变量
环境是一组有名称的变量,同一时间只能有一个处于激活状态。用 {{name}} 引用变量。

环境面板
你可以
- 从工具 → 环境,或环境菜单 → 管理环境打开它。该面板会阻止截屏。
- 用标签选择当前环境(无或你自己的某一个);下方的卡片用于编辑。
- 点击新建环境(对话框会询问名称),删除环境(不会要求确认),并查看哪一个是已激活。
- 在 KEY 和值两列中编辑变量,并用添加变量添加更多。
- 把变量锁定为密钥:它的值会用圆点遮蔽,点击眼睛图标可显示,离开后又会重新遮蔽。
- 打开全局变量(可折叠)并使用添加全局变量:无论哪个环境处于激活状态,它们都可见。
- 从响应创建变量:在 JSON 树中,某个节点的 ⋮ → 保存为变量。
你不能做什么,以及原因
- 为每个变量选择作用域、编辑初始值或选择环境颜色:编辑器里只有环境变量和全局变量。尚未提供
- 导入或导出单个环境:Postman 环境无法导入,Insomnia 的导入会把文件中所有环境的变量压平成一个集合变量列表。尚未提供
- 在 Free 上拥有第二个环境:创建它会打开 API Tester Pro 窗口。Pro
变量在哪里被替换
| 会替换的位置 | URL、查询参数的名称和值、header、原始 / JSON / XML / HTML / JavaScript 正文、form-urlencoded 字段、multipart 正文的文本字段,以及认证凭据(Bearer 令牌、Basic、API Key、OAuth 2.0 访问令牌、Custom、Digest、AWS)。 |
| 不会替换的位置 | GraphQL 正文(查询和变量)、流式协议(WebSocket、SSE、Socket.IO、MQTT)、cookie 和 Bearer 前缀。 |
| 优先级 | 先是动态变量,然后是运行器数据文件中的一行,再是集合的变量,然后是当前环境,最后是全局变量:越具体的优先。 |
动态变量
{{$guid}}(也可写 {{$randomUUID}})、{{$timestamp}}(秒)、{{$isoTimestamp}}、{{$randomInt}}(0 到 1000,或 {{$randomInt(min,max)}})、{{$randomEmail}}(始终在 example.com 下)、{{$randomFirstName}} 和 {{$randomLastName}}。每次都会重新生成;未知的名称保持原样。
{{name}}(密钥行显示 ••••••••)。不过发送请求时,真实的值会通过网络发出:必须如此,否则认证就无法工作。历史记录
历史记录保存你发送过的请求及其响应。它是独立的屏幕,没有标题栏。

你可以
- 按 URL 或名称搜索历史记录,并用已加星标和按方法筛选(只提供 GET、POST、PUT 和 DELETE)。
- 查看按今天、昨天、本周(最近七天)和更早分组的记录,每条带有方法、状态码、耗时和时间。
- 点击一条记录以载入请求及其保存的响应;用星标标记它。
- 打开记录的 ⋮ 菜单:与…比较和用作模拟(如果记录没有响应,两者都是灰色)。
- 点击清除所有历史记录。它不会要求确认。
你不能做什么,以及原因
- 保留超过 200 条记录:超出后最旧的会被删除,Free 和 Pro 都一样。有意为之
- 在 Free 上保存超过 10 条历史记录:新请求不会被保存,直到你清除历史。Pro
- 按日期范围或状态码筛选,或删除单条记录。尚未提供
比较两个响应
- 1点击某条记录的 ⋮,选择与…比较。横幅会提示你选择另一条有响应的记录进行比较,并带有取消。
- 2点击第二条有响应的记录。比较响应会打开,带有正文和标头,显示新增、删除和未变的行(两者一致时显示没有差异)。
- 3差异按行比较;非常大的正文会退回到逐位置比较。
用作 mock
⋮ → 用作模拟会根据该记录向 Mock Server 添加一条路由:它的方法、URL 中的路径部分,以及保存的响应的状态码和正文。这一步不需要 Pro;打开服务器才需要。
集合执行器
执行器会按顺序发送集合中的每个请求(包括文件夹中的),使用当前环境和全局变量,并按迭代报告通过或失败。这是 Pro 功能。
你可以
- 从集合 → ⋮ → 运行打开它。标题显示执行器,返回手势会回到集合。
- 选择集合(选择要运行的集合),并用 − 和 + 设置迭代次数(1 到 100)。
- 选择数据文件(选择文件;CSV 或 JSON)。它的行数会取代迭代次数,并停用步进器;移除数据文件可撤销。CSV 需要一行表头(逗号和双引号,不支持多行字段);JSON 必须是由扁平对象组成的数组。每一行为
{{column}}变量提供值,优先于集合、环境和全局变量。 - 点击运行集合,或取消运行。状态显示为空闲、运行中、已完成、失败或已取消;数字显示请求数、测试(通过 / 总数)和耗时;每次迭代都会列出它的请求,带方法、状态码、耗时和通过 / 总数。
你不能做什么,以及原因
- 在 Free 上运行它:运行会打开执行器,但 API Tester Pro 窗口会出现在它上方,运行集合不会运行任何内容。Pro
- 在请求之间加延迟、遇到第一个错误就停止、保存响应或在多次运行之间保留变量。尚未提供
- 保留或导出结果:它们不会被保存。尚未提供
- 依赖失败状态来反映网络错误:它表示有断言失败,所以一个出错且没有断言的请求不会让运行显示为失败。尚未提供
负载测试
负载测试会多次发送当前打开的 REST 请求并汇总延迟。这是 Pro 功能。多个工作线程同时发送请求,所以你测到的是并行负载,而不是单个客户端的延迟。
你可以
- 从 ⋮ → 负载测试打开它。目标是当前载入请求的方法和 URL;没有打开请求时显示未选择请求。
- 设置请求数(最多五位数)、并发数(四位)和爬坡时间(秒)(三位),然后点击开始,或取消。
- 用并发数(默认 10)设定同时发送请求的工作线程数。它们分摊请求数,每个线程在上一个请求得到应答后立即发送下一个。同时最多 100 个,也不会超过请求数;留空或填 0 表示一次一个。
- 用爬坡时间(秒)让工作线程在这么多秒内错开启动:n 个线程中的第 k 个(k 从 0 开始)在爬坡时间 × k / n 秒后启动。填 0 则全部同时启动。
- 查看进度(
n / N 个请求);p50、p90、p95 和 p99;平均、最小和最大;请求/秒;成功和失败;状态码分布;以及最多 20 条错误消息。
你不能做什么,以及原因
- 同时发送超过 100 个请求:并发数上限是 100,也不会超过请求数。有意为之
- 设置总时长或思考时间:没有对应的字段。尚未提供
- 测试流式协议:只能测试当前载入的 REST 请求。尚未提供
- 在 Free 上启动它:屏幕会打开,但开始会打开 API Tester Pro 窗口,不会发送任何请求。该入口没有标记。Pro
Mock Server
一个运行在应用内的小型 HTTP 服务器,用预设响应来应答,适合在真实 API 出现之前先做客户端。打开它是 Pro 功能;设置路由是免费的。

你可以
- 打开工具 → Mock Server。在标题处把它打开:副标题显示
http://127.0.0.1:<port>,或显示已停止。 - 设置端口(默认 8090;0 表示让系统选择;运行时锁定)和延迟 (ms)(0 到 60,000),它会加到每个应答上。
- 查看提示仅监听回环地址:本设备可访问,网络中不可访问。
- 点击添加路由。新建 Mock 路由会询问方法(GET、POST、PUT 或 DELETE)、路径、状态码和响应正文。每条路由都有开关和删除按钮。
- 查看已处理请求的日志(面板显示最近 30 条,最多保留 200 条):时间、状态码、
METHOD path,以及匹配到的路由,或未匹配到路由。全部清除会清空它。 - 也可以从其他地方获得路由:导入 OpenAPI(从此 OpenAPI 生成模拟)和历史记录中的用作模拟。
你不能做什么,以及原因
- 创建后编辑路由,或在对话框中设置它的 header、延迟或优先级:你只能开关它或删除它。导入会用默认值填充这些字段。尚未提供
- 在关闭模块后保留路由和日志:它们保存在内存中,服务器会随屏幕一起停止。尚未提供
- 从其他设备或通过 HTTPS 访问它:它只监听回环地址,没有 TLS,所以你的测试数据不会暴露在咖啡馆的 Wi-Fi 上。有意为之
- 在 Free 上打开它:开关保持关闭,并打开 API Tester Pro 窗口。Pro
它如何应答
在 127.0.0.1 上使用 HTTP/1.1,每个请求一个连接。路由按方法和路径匹配::name 匹配一段,* 匹配一段,** 匹配其余部分;优先级最高的优先,然后是最具体的;末尾的斜杠会被忽略。查询字符串和请求正文会被忽略。没有匹配时,你会得到 404,JSON 正文写着 No mock route matched。
Cookies
Cookie 存储是真实的:它保存响应中的 Set-Cookie header,并按域名(包括子域名)、路径前缀、过期时间和 Secure(仅 HTTPS)把它们发回。它保存在设备的数据库中。在设置中用启用 Cookie可以为单个请求关闭它。
你可以
- 打开工具 → Cookies。Cookie 存储的副标题会给出数量(例如
已存 3 个);每个 cookie 显示名称、值、Secure时的锁图标、HttpOnly、域名和路径。 - 用 ✕ 移除一个,或点击全部清除。
- 在单个响应的 Cookies 标签页中查看该响应的 cookie。
你不能做什么,以及原因
- 手动添加或编辑 cookie。尚未提供
- 彻底删除已保存的 cookie:✕ 和全部清除只会清空显示的列表,设备上保存的副本不会被擦除,所以它们可能重新出现。尚未提供
- 区分 host-only cookie 和域名 cookie:存储把它们同等对待。尚未提供
生成代码
⋮ → 生成代码会打开代码生成器:选择目标,查看带文件扩展名的代码并复制。同一菜单中的导出 cURL会显示生成的 cURL。
你可以
- 在 27 个目标中选择,它们产生 26 种不同的输出(cURL 和 Shell — cURL 是同一条命令):cURL、HTTPie、Wget;JavaScript(Fetch、Axios、XHR、jQuery);TypeScript(Fetch);Python(Requests、http.client);Java(OkHttp、HttpURLConnection、HttpClient 11+);Kotlin(OkHttp、Ktor);Swift(URLSession);Go(net/http);PHP(cURL、Guzzle);Ruby(Net::HTTP);C#(HttpClient、RestSharp);Rust(reqwest);Dart(http);R(httr);PowerShell;Shell(cURL)。
- 得到方法、带已启用查询参数的 URL、已启用的 header 和正文(原始、JSON、XML、HTML、JavaScript、form-urlencoded,或以
{"query":…,"variables":…}形式表示的 GraphQL)。{{variables}}会用当前环境解析,密钥除外,它们保留为{{name}};密钥行显示••••••••。
你不能做什么,以及原因
- 在生成的代码中得到认证,cURL 除外:其他所有目标都会省略它。cURL 会加入 Bearer、Basic、Digest、Custom 和基于 header 的 API Key,但不包括 OAuth 2.0 或 AWS Signature。尚未提供
- 得到 Multipart 或 Binary 请求的正文:输出为空。尚未提供
导入与导出
导入位于工具 → 导入下。导出按集合(集合 → ⋮ → 导出)和按请求(导出 cURL)进行。
导入
你可以
- 在导入请求中选择一个格式:cURL、Postman (v2.1)、Insomnia、OpenAPI / Swagger、HAR File 或 OpenAPI YAML。粘贴文本并点击导入;没有文件选择器。
- cURL 会替换当前请求,其余五种会创建一整个集合,并提示 已导入“name” — N 个请求 或 导入失败:…。
- 使用 OpenAPI 格式时,勾选从此 OpenAPI 生成模拟,为每个方法和路径添加一条 mock 路由。
- 点击从项目导入读取以文件形式保存的集合(见保存到项目)。
你不能做什么,以及原因
- 导入 Postman 环境(只能导入集合),或从文件导入:你只能粘贴文本。尚未提供
- 在 Free 上导入第二个集合:面板会关闭,并打开 API Tester Pro 窗口。Pro
- 查看 cURL 导入失败的原因:错误只会写入控制台。尚未提供
各格式导入的内容
| 格式 | 导入的内容 |
|---|---|
| cURL | 常见的参数:-X、-H、-d、--data-urlencode、-F、--data-binary、-u、--digest、--ntlm、--proxy、--connect-timeout、-k 和 -L。不会读取 --max-redirs。--proxy 会在发送时生效,但没有任何屏幕会显示它。 |
| Postman (v2.1) | 文件夹、请求、认证、集合变量,以及请求前脚本和测试脚本。除令牌之外的 OAuth 2.0 状态、response[] 和 protocolProfileBehavior 会被忽略。 |
| Insomnia | 分组和请求,以及文件中所有环境的变量,压平成一个集合变量列表(同名变量以最先出现的为准)。grpc_request、单元测试、规范和脚本会被忽略。 |
| OpenAPI / Swagger、OpenAPI YAML | JSON 或 YAML 格式的 OpenAPI 3.0 和 Swagger 2.0:每个方法和路径一个请求,按第一个标签归入文件夹。不解析 $ref,也不读取 security。YAML 由一个内置的小型解析器读取:不支持锚点、别名或多文档。 |
| HAR File | HAR 1.2:每个条目一个请求,没有文件夹,也没有响应。 |
导出
你可以
- 在导出“name”中,选择 Postman Collection v2.1、Insomnia Export、OpenAPI 3.0、HAR Archive 或 Markdown Documentation,查看预览并复制(已复制到剪贴板)。Markdown 会加入来自你历史记录的响应示例,按方法和 URL 匹配,以最新的为准。
你不能做什么,以及原因
- 把导出保存为文件或分享:你只能复制它。尚未提供
保存到项目
集合可以作为纯 JSON 文件镜像到当前项目中,这样你就可以在拉取请求(pull request)中审查它。应用的数据库仍是事实来源:这些文件是你点一下手动写出的副本,不会替你提交任何内容。
保存
- 1打开一个项目。没有项目时,集合的 ⋮ 项显示为打开一个项目才能将集合保存为文件,只起说明作用。
- 2点击集合 → ⋮ → 保存到项目。应用会写入
.pocketcode/api/<collection>/,并提示已保存到 .pocketcode/api/ — N 个文件。请用应用的 Git 管理器提交以保留更改。 - 3想保留这些文件时,用应用的 Git 管理器提交它们。
_collection.json保存集合的 id、名称、认证、header、脚本和变量。每个文件夹是一个带_folder.json的子目录。每个请求是一个<name>.json,由它的名称生成,只含小写字母、数字和连字符(冲突时加-2、-3;什么都不剩时用untitled)。- 再次保存会清空该目录并从数据库重写,所以你手动对文件做的修改会被覆盖。环境不会被写出。
- 密钥不会写出。写入之前,应用会清空这些值:认证(Bearer 令牌、密码、API 密钥值、OAuth 2.0 访问令牌和客户端密钥、AWS 密钥和会话令牌等);标记为密钥值或名称看起来像密钥(token、secret、key、password、passphrase、auth、cookie、credential)的行,包括 header、查询参数、表单字段和集合变量;名称像密钥的 URL 查询参数和
user:password@形式 URL 中的密码;以及代理密码和证书口令。结构会保留:认证类型、header 名称、用户名和 URL。 {{variable}}引用(单独出现或跟在Bearer之后)不是密钥,会原样写出。把令牌保存在密钥环境变量中,并在请求里写{{token}}。
你可以
- 在拉取请求中审查这些文件并提交:认证值、密钥行以及名称像密钥的 header、参数和表单字段都以空值保存,所以文件展示的是集合的结构,而不是你的凭据。
你不能做什么,以及原因
- 把密钥挡在文件里的原始正文或脚本之外:两者都按输入内容原样写出,所以粘贴在那里的令牌会随文件一起提交。有意为之
从项目导入
你可以
- 从导入面板打开从项目导入(没有打开的项目时,它会说明打开一个项目才能从文件导入集合)。
- 选择
.pocketcode/api/下的一个文件夹并查看预览,预览不会改动你的数据:新集合“name” — N 个请求,或这将用文件中的 M 个请求替换“name”(当前 N 个请求)(当_collection.json中的id与现有集合匹配时为替换),外加 N 个文件因错误被跳过。 - 用导入或替换(红色)确认,或点击取消:什么都不会自动应用。
- 使用替换时,你已有的密钥会保留:文件中为空的值不会覆盖本地同
id集合里的值(认证类型相同、行相同)。新集合则从这些空值开始。
你不能做什么,以及原因
- 在 Free 上已经有集合时,从文件导入新集合:会打开 API Tester Pro 窗口。替换已有集合则始终允许。Pro
Free 与 Pro
API Tester 几乎全部免费:六种协议、完整的编辑器、脚本和断言、响应工具、cookie、导入和导出、代码生成、项目文件,以及比较响应。Pro 增加三个工具并解除三项限制。在 Free 上,被阻止的操作会打开同一个窗口 API Tester Pro,文字随操作变化(执行器、Mock Server 或负载测试)。它列出集合运行器、手机上的模拟服务器和并发负载测试,并有解锁 API Tester Pro和暂不两个按钮。解锁 API Tester Pro会关闭 API Tester 并打开 Pro 页面。
| 功能 | Free | Pro |
|---|---|---|
| 集合 | 1 个。创建(新建集合或在保存到集合中输入新名称)或导入第二个,会打开 API Tester Pro 窗口。 | 无限制 |
| 环境 | 1 个(已有一个Default环境)。创建第二个会打开 API Tester Pro 窗口。 | 无限制 |
| 请求历史记录 | 10 条。之后新请求不会被保存,直到你清除所有历史记录;会显示消息免费版只保留最近 10 条历史记录,本次请求未被保存。 | 最近 200 条(更早的会被删除) |
| Mock Server:开启它 | 不可以。开关保持关闭,并打开 API Tester Pro 窗口;仍然可以设置路由。 | 可以 |
| 集合执行器 | 不可以。运行会打开它,但 API Tester Pro 窗口会出现在它上方,运行集合不会运行任何内容;集合的 ⋮ 菜单带有 Pro 标记。 | 可以 |
| 负载测试 | 不可以。开始会打开 API Tester Pro 窗口;该入口没有标记。 | 可以 |
| 其他所有内容:六种协议、脚本、响应工具、cookie、导入和导出、代码生成、项目文件、比较、标签页 | 可以 | 可以 |
隐私与安全
- 存储了什么,存在哪里。集合、环境、历史记录(每条记录包含它的请求和响应)和 cookie 都存储在你设备上的应用数据库中。
- 历史记录按你写的样子保存请求。
{{token}}引用仍然是引用;直接输入到认证或 header 里的令牌则按输入内容保存。 - 密钥。标记为密钥的变量或行会在界面中被遮蔽,在导出的 cURL 和生成的代码中保留为
{{name}}或••••••••,并且从不会被 Cloud Sync 上传。发送请求时会发送真实的值。 - 项目文件(保存到项目)写出时不含密钥:保存到项目中列出的那些值会以空值保存,
{{variable}}引用保持不变。原始正文和脚本按输入内容原样写出。 - Cloud Sync(Pro)目前不同步集合和环境(该选项已暂停),它们只保存在你的设备上。
- 纯 HTTP 只限你自己的设备。
http://和ws://只对localhost、127.0.0.1和10.0.2.2(Android 模拟器的主机)有效;其他一律必须是 HTTPS 或wss://。通过纯 HTTP 访问192.168.x.x这类局域网地址会被阻止:请使用 HTTPS 或隧道。 - 证书。只信任系统的证书颁发机构,不信任你自己安装的。关闭验证 SSL 后,任何证书和主机名都会被接受。
- Mock Server 只监听回环地址:你网络上的其他设备都无法访问它。
- 工作流会收到从此屏幕发送的每个响应的 URL、方法、状态码和耗时,从不包含正文或 header。
- AI 助手可以在不打开此模块的情况下通过它发送请求;它最多收到 4096 个字符的响应正文,也不能以 PocketCode 自己的后端为目标。
限制
目前缺少的内容,集中在一处。“尚未提供”表示代码里留有位置,但没有任何屏幕提供它。
- gRPC 在代码里,但此版本把它隐藏了:它的面板需要完整的
protobuf-java库,而应用没有带上这个库,所以暂时还不能在 Android 上运行。尚未提供 - 纯 HTTP 和
ws://只能连到 localhost、127.0.0.1 和 10.0.2.2;局域网地址需要 HTTPS。需要网络 - 只信任系统的证书颁发机构,所以使用你自己安装的证书的代理无法工作。需要网络
- 没有代理和客户端证书设置。尚未提供
- 无法捕获 OAuth 2.0 重定向;你需要自己粘贴
code。没有 PKCE,也没有刷新令牌。有意为之 - Hawk 和 NTLM 标有“即将推出”,目前什么也不做。尚未提供
- WebSocket 和 SSE 不能发送 header,也不能自行重连;SSE 会忽略
retry:。尚未提供 - GraphQL 面板中没有订阅、操作名称、header 或认证。尚未提供
- MQTT 只支持版本 5,也不能以 retain 发布。尚未提供
- 脚本只有一小部分
pm子集,并且需要较新的 WebView。有意为之 - Mock 路由及其日志只保存在内存中,也没有编辑对话框。尚未提供
- 集合不能重命名或重新组织,文件夹不能创建或打开,保存的请求全都叫 New Request。尚未提供
- 从面板中移除的 cookie 不会从保存的副本中擦除。尚未提供
- 没有图片预览,不能分享或保存响应,网络错误也不显示原因。尚未提供
- 代码生成器中只有 cURL 输出包含认证。尚未提供
- 历史记录最多保留 200 条。有意为之
- MQTT 和 Socket.IO 客户端写出的错误,无论应用使用什么语言,都是西班牙语。尚未提供
- 原始请求正文和脚本会按输入内容原样写入项目文件(保存到项目):应用无法分辨自由文本里的密钥。有意为之
故障排查
0 Error 和空正文
请求没有得到应答:网络、TLS 或超时失败。面板不显示原因,但应用会把它写入控制台日志,写成以 ✗ Request failed: 开头的一行;错误屏幕没有标签页,所以请在之后收到的下一个响应的控制台标签页中查看(日志涵盖整个会话)。检查地址、你的网络连接和超时 (ms)。在 localhost、127.0.0.1 和 10.0.2.2 之外使用纯 http:// 地址会被阻止:请使用 HTTPS。
请求已取消
你在应答到达之前点击了取消请求(或请求被取消了)。没有任何问题。
点击运行集合、开始或 Mock Server 开关后出现 API Tester Pro 窗口
在 Free 上,这三项是 Pro 功能,窗口会告诉你你试的是哪一项。创建第二个集合或环境(包括在保存到集合中输入新名称),或在已有集合时导入集合,也会打开同一个窗口。暂不会关闭它;解锁 API Tester Pro会打开 Pro 页面。
免费版只保留最近 10 条历史记录,本次请求未被保存。
Free 的历史记录最多 10 条。点击清除所有历史记录腾出空间(无法单独删除某一条),或升级到 Pro。
JSON 无效:…
JSON 正文无法解析;冒号后面的文字指出了问题所在。发送前先修复它,有效之后可以使用美化。
导入失败:…
粘贴的文本与你选择的格式不匹配,或文档格式有误。请选择正确的格式。cURL 没有这条消息:错误在控制台日志中。
无法保存到项目:…
应用无法在当前项目中写入 .pocketcode/api/;冒号后面的文字说明了原因。
打开一个项目才能将集合保存为文件
保存到项目和从项目导入作用于当前打开的项目。请先打开一个。
此项目的 .pocketcode/api/ 下未找到任何集合
当前项目没有带 _collection.json 的 .pocketcode/api/ 文件夹。请先把集合保存到项目,或打开正确的项目。
无法将该文件解析为 CSV 或 JSON 数据行
执行器的数据文件如果是 CSV,需要一行表头(逗号和双引号,不支持多行字段);否则必须是由扁平对象组成的 JSON 数组。
无法获取令牌:…
OAuth 2.0 令牌请求失败;冒号后面的文字说明了原因。检查 Token URL、Client ID 和 Client Secret。使用 Authorization Code 时,只粘贴 code 的值。
响应中未包含可解析的 schema
GraphQL 端点没有用 schema 回应内省查询。检查 URL;有些服务器会关闭内省。
MQTT 或 Socket.IO 面板中的错误:…
连接失败;冒号后面的文字说明了原因。检查主机、端口和使用 TLS。对于 MQTT,请确认 broker 支持 MQTT 5。有些消息是西班牙语,例如 El host no puede estar vacío。
此内容类型没有可用的预览
Preview 只渲染 text/html。其他类型请使用 Pretty 或 Raw;图片无法预览。
未找到匹配该路径的结果
JSONPath 筛选查找的是精确路径,例如 $.a.b[0].c,而不是搜索。请从 $ 开始。
此响应没有运行测试
请求没有断言,并且它的测试脚本(如果有)从未调用 pm.test 或无法运行。请在 Scripts 中添加一条断言。
JavaScript engine unavailable on this device
这是一条控制台警告:此设备没有供脚本引擎使用的较新 WebView,所以请求前脚本或测试脚本没有运行。断言仍然会运行。
Script error: …
你的脚本抛出了错误,通常是因为它用到了 Postman API 中不存在的部分(pm.sendRequest、pm.variables、require……)。只有文档中列出的 pm 子集可用。
No enabled routes: every request will get 404 until you add one
当你在没有已启用路由的情况下打开 Mock Server 时,控制台会出现这条警告。正文为 No mock route matched 的 404 表示方法或路径没有匹配任何路由。如果控制台显示 Mock server could not start: …,说明端口很可能已被占用:请换一个端口,或设为 0。