Skip to main content

核心概念

四个设计理解了,后面所有协议和场景都直白:

  1. 三实体模型:分组 / 环境 / 请求的关系
  2. 环境前置 URL 设计:为什么请求里只填相对路径
  3. 发送装配管线:一次发送如何把配置合成为真实请求
  4. 变量体系:{{变量}} 的取值来源与三种变量层

三实体模型​

为什么环境绑在分组、而不是单个请求? 一个分组通常代表"某业务模块在某环境下的全部接口"。绑在分组上,切环境时整组请求一次性跟随,无需逐个改。单个请求若要用不同环境,把它放进绑了另一环境的分组即可。


环境前置 URL 设计​

这是最核心、也最容易被误解的设计。

请求存相对路径,环境存基址​

传统工具里每个请求都存完整 URL(https://api.example.com/v1/users),切测试环境就要批量替换域名。本工具改为:

scheme 决定协议与是否 TLS(关键)​

前置 URL 按协议分条,但这条到底算哪种协议,是由 URL 开头的 scheme 判定的,scheme 同时表达"用哪种协议"和"要不要加密(TLS)":

协议明文 scheme加密 scheme
HTTPhttp://https://
WebSocketws://wss://
TCPtcp://tcps://
UDPudp://—
gRPCgrpc://grpcs://
MQTTmqtt://mqtts://

⚠️ 易错点:给 WebSocket 填基址时必须写 ws:// / wss://;若误写成 https://,它会被当成 HTTP、WebSocket 请求找不到基址而失败。协议行和 scheme 要一致。


发送装配管线​

点「发送」并不是直接发 socket,而是把「请求 + 分组绑的环境 + 变量」分步装配成真实请求,并在网络执行前后各插一段操作链:

要点:

  • 操作链只在"执行脚本"开启时运行。App 内点发送默认执行;自动化/MCP 发送需显式开启。关掉脚本时,前置注入的 Token/加密就不生效——这也是 recipes 里"不带 Token 就 401"负控的原理。
  • 前置脚本改写"将要发出的请求",后置脚本改写"拿到的响应",两者都能读写运行时变量。

变量体系​

工具里有三种"变量",作用域不同。混淆它们是新手最常见的坑。

{{名字}} 到底能取到谁?​

写法取环境变量取运行时变量典型用途
{{名字}}(写在 URL/参数/头/body 里)✅❌引用环境配置、动态填充
脚本里读变量✅✅跨请求传递登录 Token 等

记忆口诀:{{}} 只认"配置类变量",脚本读得到全部三层。运行时变量是"运行期黑板",只有脚本能擦写、{{}} 看不到它。

为什么 {{authToken}} 取不到登录存的 Token? 因为登录脚本存的值落在"运行时变量"这层,{{}} 不解析它。正确做法是用前置脚本去读并注入请求头(见 recipes 场景1)。

动态变量 {{$xxx}}​

{{}} 里还有一套内置动态变量,每次取值即时生成,可直接写在 URL/参数/头/body:

变量生成内容
{{$timestamp}} / {{$timestampMs}}秒级 / 毫秒级时间戳
{{$isoTimestamp}}ISO8601 UTC
{{$uuid}} / {{$guid}}UUID v4
{{$randomInt}} / {{$randomInt min,max}}随机整数(默认 0..1000)
{{$randomBoolean}} {{$randomFullName}} {{$randomEmail}} {{$randomPhoneNumber}} {{$randomIpv4}} {{$randomIpv6}} {{$randomUrl}} {{$randomColor}} {{$randomHexadecimal}} {{$randomAlphaNumeric}} {{$randomCity}} {{$randomCountry}} {{$randomDateRecent}} {{$randomPrice}} {{$randomWord}} {{$randomLorem}} {{$randomCompanyName}} 等各类随机样例数据

示例:GET /echo?ts={{$timestamp}}&u={{$uuid}} —— 实测每次发送 ts/u 都被替换成真实值。


小结​

  • 请求存路径片段,环境用前置 URL 按协议补基址,scheme 决定协议+TLS。
  • 发送是装配管线:拼 URL → 插值 → 传输设置 → 前置链 → 网络 → 后置链。
  • 变量分三层:{{}} 读配置类变量,脚本三层通吃;传 Token 用脚本别用 {{}}。

下一步:scripting →