【问题标题】:Set the whole request url in jmeter在 jmeter 中设置整个请求 url
【发布时间】:2019-08-19 19:29:38
【问题描述】:

我有一个请求,它将上传 url 作为响应正文。

{
    "uploadUrl": "https://test.com:9000/sample_uploadurl"
}

我可以使用 JSON 提取器提取 uploadUrl

我想在下一个 http 请求中使用上面的上传 url。这里如何设置新的请求?

直接添加不工作,因为JMeter在请求之前预先添加了http/https,在这种情况下我们已经有了https。

它失败了,因为它有https://[https://test.com:9000/sample_uploadurl]

【问题讨论】:

    标签: jmeter httprequest jmeter-4.0 jmeter-3.2 jmeter-5.0


    【解决方案1】:

    HTTP Request除Path外的字段留空,将变量放在那里,它将被执行

    作为一种特殊情况,如果路径以“http://”或“https://”开头,则将其用作完整 URL。

    示例

    【讨论】:

      【解决方案2】:

      选项在:

      1. 将整个 ${UPLOAD_URL} 放入 HTTP 请求采样器的“路径”字段,如:

        但是,这种方法可能会不稳定并导致某些配置元素(例如HTTP Cookie Manager)出现故障。所以最好选择选项2。

      2. ${UPLOAD_URL} 拆分为单独的组件,如协议、主机、端口和路径。

        • 在 JSON 提取器之后添加JSR223 PostProcessor
        • 将以下Groovy代码放入“脚本”区域:

          URL url = new URL(vars.get('UPLOAD_URL'))
          
          vars.put('protocol', url.getProtocol())
          vars.put('host', url.getHost())
          vars.put('port', url.getPort() as String)
          vars.put('path', url.getPath())
          
        • 以上代码会生成如下JMeter Variables

        • 所以你应该能够在下一个 HTTP 请求采样器中使用生成的变量:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-13
        • 2023-04-03
        • 2022-09-23
        • 1970-01-01
        • 2020-05-20
        • 2016-03-27
        • 1970-01-01
        相关资源
        最近更新 更多