发布于2026-07-05 阅读(0)
扫一扫,手机访问
在Apifox里配环境变量,不少人以为填上就完事了,结果请求还是跑到localhost上去。其实,要让变量真正参与解析,得同时满足四个条件:环境已激活、变量名没有空格或大小写错误、引用格式严格为{{变量名}}、并且不能被更高优先级的同名变量覆盖。这几条缺了任何一条,变量都不会生效。
不用瞎猜,直接打开右下角的log面板执行一次请求,重点瞄一眼“resolved url”字段。如果它显示的是http://localhost:3000/users而不是你期望的https://api-test.example.com/users,说明变量根本没被解析。
base_url的值末尾带了斜杠(比如https://api-test.example.com/),键名建议全小写,值前后不要有空格(可以用编辑器的“显示空白符”功能确认)。{{base_url}}/users,写成{base_url}/users或${base_url}/users都不行。base_url——记住优先级:临时 > 项目 > 环境 > 全局。同名时低优先级会被高优先级覆盖掉。手动复制粘贴token是反模式。标准做法是:让登录接口的响应结果自动写入当前环境变量,然后在全局参数里引用它。
const res = pm.response.json();
if (res.token) {
pm.environment.set("token", res.token);
}Authorization,value填bearer {{token}},in选header。{{token}}在不同环境里会取到同一个值——这又是一个坑。data.token,脚本里就要写res.data.token,否则pm.environment.set会设一个空值,后面怎么调都不对。Apifox内置了一个叫BASE_URL的环境变量,它的值等于你在环境配置里填的“前置URL”。不过它更像一个只读映射,不是普通变量。如果你手动在环境变量里再加一条BASE_URL: https://xxx,就会覆盖内置行为——之后你再改前置URL,{{BASE_URL}}也不会跟着变了。脚本里用pm.environment.get("BASE_URL")能读到前置URL,但pm.environment.set("BASE_URL", "...")不会改前置URL,只会新建一个同名环境变量。建议统一用{{base_url}}作为自定义变量,避免和内置的BASE_URL混用。
这里最容易踩的坑其实是变量作用域链和空格问题——前者导致你以为改了变量,实际生效的却是另一个层级的同名变量;后者让pm.environment.get("token")返回undefined却死活查不出原因。调试时先开log看resolved url,再逐层检查变量定义位置和值内容,比反复重配有效率得多。
下一篇:CentOS下PHP代码如何优化
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8