想象一下以下环境变量:
Base-URL => https://my.website.com/apiCars-URL => {{Base-URL}}/carsAuth-URL {{Base-URL}}/login如果我在邮递员中使用GET {{Cars-URL}},它可以正常工作,并调用https://mu.website.com/api/cars
同样适用于POST {{Auth-URL}},它工作得很好,我检索了一个JWT令牌。
但是,我希望在集合中的任何调用之前,使用集合的预请求脚本自动获取JWT令牌。因此,我使用以下设置:
var authUrl = pm.environment.get("Auth-URL");
pm.sendRequest({
url: authUrl,
method: "POST",
header: { ... },
body: { ... },
function (err, res) {
pm.environment.set("JWT-token", res)
}
});我在我的控制台中得到了以下输出:
POST http://{{base-url}}/login
Error: getaddrinfo ENOTFOUND {{base-url}}
Ocp-Apim-Subscription-Key: xxxxxxxxxxxxxxx
User-Agent: PostmanRuntime/7.26.5
Accept: */*
Postman-Token: xxxxxxxxxxxxxxx
Host: {{base-url}}
Accept-Encoding: gzip, deflate, brpm.environment.get似乎不解析嵌套变量。
如何解决这个问题?
发布于 2020-10-30 08:03:29
使用pm.variables.replaceIn (可从v7.6.0中获得)。
这将起到以下作用:
var authUrl = pm.variables.replaceIn(pm.environment.get("Auth-URL"));
pm.sendRequest({
....
})https://stackoverflow.com/questions/64604466
复制相似问题