【问题标题】:Postman: Is it possible to update url of postman request in the pre-requisite script邮递员:是否可以在先决条件脚本中更新邮递员请求的 url
【发布时间】:2021-02-18 02:59:34
【问题描述】:

是否可以在先决条件脚本中更新邮递员请求的 url。 我想根据动态环境输入来编辑url。

例如:

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

console.log(request.url);

上面的代码给了我完美的控制台日志:

例如如果 url 是 https://someServer/someRequestenvironment.someVarxenvironment.anotherVary console.log(request.url) 以上打印:

https://someServer/someRequest/x/y

但问题是(例如,如果我请求 Get),即使在记录了覆盖的请求 url 之后,它也只调用 https://someServer/someRequest 而不会覆盖到 https://someServer/someRequest/x/y

关于如何修改上述网址的任何想法。

【问题讨论】:

    标签: postman


    【解决方案1】:

    如果您的请求中的 url 设置为全局,它应该可以工作。 IE。我有一个获取请求:

    GET http://{{myurl}}/etc. 将 myurl 设置为全局变量

    在我的预请求脚本中,我执行pm.globals.set("myurl", <new url>);

    当我启动我的请求时,它会尝试在我的新网址上执行 GET 请求。

    所以可以这样做,但您必须使用全局或环境变量来动态更新您的请求:

    将您的'someRequest' 设置为可以在您的指令中更新的全局变量(而不是 request.url),然后在您启动请求时将对其进行解释

    https://someServer/{{someRequest}}
    

    【讨论】:

      【解决方案2】:
      pm.request.url= "dynamic value"
      

      您并在邮递员先决条件步骤中使用上述单行更新网址

      pm.request.url 返回一个包含 host、path 和 params 字段的对象。但是你可以用字符串替换它。

      【讨论】:

      • 感谢您指出,但在我的情况下,由于代码可读性,A.Joly 的第一个解决方案更有用,如果整个 url 是动态的,您建议的解决方案将更有用,我很感激/upvote 您已突出显示此解决方案这一事实 :)
      • 当然,上一个答案只允许更改部分 url,我回答了它以便有人可以在发送请求之前更改整个 url
      猜你喜欢
      • 2020-03-11
      • 2022-06-12
      • 2015-10-26
      • 2020-05-22
      • 1970-01-01
      • 1970-01-01
      • 2017-06-17
      • 2021-12-21
      • 1970-01-01
      相关资源
      最近更新 更多