You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman测试脚本中如何获取已解析的环境变量url值?

在Postman测试脚本中获取已解析的嵌套环境变量

我完全懂你遇到的这个困扰——你定义了一个由其他环境变量拼接而成的url变量,在请求里调用{{url}}能正常解析,但在Tests脚本里用pm.variables.get("url")拿到的却是未替换的原始模板字符串,只能手动逐个获取子变量再拼接。其实不用这么麻烦,有个直接的方法能拿到已解析的完整值!

解决方案:使用pm.environment.replaceIn()

Postman提供了pm.environment.replaceIn()方法,它会自动解析字符串中的环境变量引用,包括这种嵌套的变量组合。你只需要把{{url}}作为参数传入这个方法,就能直接得到解析后的URL:

var serviceUrl = pm.environment.replaceIn("{{url}}");

为什么pm.variables.get()不行?

pm.variables.get()的作用是直接获取变量的原始存储值,它不会去解析值里面包含的{{xxx}}占位符。而replaceIn()方法的设计就是专门处理这类带有变量引用的字符串,会自动遍历环境变量(以及其他变量层级)去替换对应的占位符,刚好适配你这种嵌套变量的场景。

修改后的完整测试代码

把原来手动拼接的部分替换成上面的方法,你的测试代码会简洁很多:

var jsonData = JSON.parse(responseBody);
tests["Status code is 200"] = responseCode.code === 200;
var ordrereferanse = jsonData.Ordrereferanse;
tests.OrdreReferanse = ordrereferanse.length > 0;

// 直接获取解析后的url变量值
var serviceUrl = pm.environment.replaceIn("{{url}}");
var api_key = pm.variables.get("api_key");

// 剩余测试逻辑
var infoUrl = serviceUrl + "ordreinformasjon/" + ordrereferanse + "?format=json&api_key=" + api_key;
pm.sendRequest(infoUrl, function (err, response) {
    var info = response.json();
    console.log(info);
    tests.OrdreInformasjonOrdreReferanse = info.OrdreReferanse === ordrereferanse;
});

内容的提问来源于stack exchange,提问作者HaraldV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:36:01