在 jmeter 中设置整个请求 url
Set the whole request url in jmeter
我有一个请求,将上传 url 作为响应正文。
{
"uploadUrl": "https://test.com:9000/sample_uploadurl"
}
我可以使用 JSON 提取器提取 uploadUrl
。
我想在下一个 http 请求中使用上面的上传 url。如何在这里设置新请求?
直接添加 doent 工作,因为 JMeter 在请求之前添加 http/https,在这种情况下我们已经有了 https。
It got failed because it has https://[https://test.com:9000/sample_uploadurl]
将 HTTP Request 字段留空,路径除外,将变量放在那里,它将被执行
As a special case, if the path starts with "http://" or "https://" then this is used as the full URL.
例子
选项在:
将整个 ${UPLOAD_URL}
放到 HTTP 请求采样器的 "Path" 字段,例如:
但是这种方法可能不稳定,会导致某些配置元素出现故障,例如 HTTP Cookie Manager。所以最好选择选项 2。
将 ${UPLOAD_URL}
拆分为单独的组件,如协议、主机、端口和路径。
- 在JSON提取器
之后添加JSR223 PostProcessor
将以下Groovy代码放入"Script"区域:
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 请求采样器中使用生成的变量:
我有一个请求,将上传 url 作为响应正文。
{
"uploadUrl": "https://test.com:9000/sample_uploadurl"
}
我可以使用 JSON 提取器提取 uploadUrl
。
我想在下一个 http 请求中使用上面的上传 url。如何在这里设置新请求?
直接添加 doent 工作,因为 JMeter 在请求之前添加 http/https,在这种情况下我们已经有了 https。
It got failed because it has
https://[https://test.com:9000/sample_uploadurl]
将 HTTP Request 字段留空,路径除外,将变量放在那里,它将被执行
As a special case, if the path starts with "http://" or "https://" then this is used as the full URL.
例子
选项在:
将整个
${UPLOAD_URL}
放到 HTTP 请求采样器的 "Path" 字段,例如:但是这种方法可能不稳定,会导致某些配置元素出现故障,例如 HTTP Cookie Manager。所以最好选择选项 2。
将
${UPLOAD_URL}
拆分为单独的组件,如协议、主机、端口和路径。- 在JSON提取器 之后添加JSR223 PostProcessor
将以下Groovy代码放入"Script"区域:
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 请求采样器中使用生成的变量: