Postman :是否可以在先决条件脚本中更新 Postman 请求的url

2izufjch  于 2022-11-07  发布在  Postman
关注(0)|答案(3)|浏览(245)

是否可以在先决条件脚本中更新 Postman 请求的url。我想根据动态环境输入编辑url。
例如:

if (environment.someValue) {
    request.url = request.url + "\" + environment.someValue
    if (environment.anotherValue) {
        request.url = request.url + "\" + environment.anotherValue
    }
}

console.log(request.url);

上面的代码给了我prefect控制台日志:
例如,如果url是https://someServer/someRequestenvironment.someVarx,并且environment.anotherVary,则上面的console.log(request.url)打印:

https://someServer/someRequest/x/y

但问题是(比如说,如果我请求一个Get),即使在记录被覆盖的请求url之后,它也只调用https://someServer/someRequest,而不覆盖到https://someServer/someRequest/x/y
任何想法如何修改如上所述的网址。

7d7tgy0s

7d7tgy0s1#

如果你的url在你的请求中被设置为全局的,它应该可以工作。例如,我有一个get请求:
将myurl设置为全局变量的GET http://{{myurl}}/etc.
在预请求脚本中,我执行pm.globals.set("myurl", <new url>);
当我启动请求时,它会尝试在我的新url上执行GET请求。
因此,可以这样做,但必须使用全局变量或环境变量来动态更新请求:
将您的'someRequest'设置为一个全局变量,您可以在您的prescript(而不是request.url)中更新它,那么当您启动请求时,它将被解释

https://someServer/{{someRequest}}
cwxwcias

cwxwcias2#

pm.request.url= "dynamic value"

你和更新url使用上面的单行在postman先决条件步骤
url返回一个带有host,path和params字段的对象,但是你可以用string代替它。

dzhpxtsq

dzhpxtsq3#

感谢您的提示:我使用这几行代码来操作RESTfulAPI路由中出现的两个值:
//确保请求URL中的工资单ID和员工ID正确地用零填充pm.request.url.path[pm.request.url.path.indexOf(“{{工资单ID}}”)] = data.工资单ID.toString().padStart(6,'0');(7,'0');(8,'0');(9,'0');(10,'0');(11,'0');

相关问题