Jmeter 从变量中删除右尾随斜杠

Jmeter 从变量中删除右尾随斜杠,jmeter,Jmeter,我开始用JMeter做实验。我有一个发出HTTP请求的测试计划,我可以使用JSON提取器从响应中检索一个值。我的问题是该值指向一个带有尾随斜杠的URL,如 https://www.example.com/ 如果我将这个值传递给下一个HTTP请求,我将得到响应 Non HTTP response code: java.net.MalformedURLException,Non HTTP response message: Illegal character found in host: '/'

我开始用JMeter做实验。我有一个发出HTTP请求的测试计划,我可以使用JSON提取器从响应中检索一个值。我的问题是该值指向一个带有尾随斜杠的URL,如

https://www.example.com/
如果我将这个值传递给下一个HTTP请求,我将得到响应

Non HTTP response code: java.net.MalformedURLException,Non HTTP response message: Illegal character found in host: '/'
这不是有效的URL,无法访问下一个HTTP请求,因为尾部为/。移除它的最佳方法是什么?此值可能会在每个线程上更改


谢谢

您可以使用内部的子字符串删除最后一个字符(/)


在采样器的“服务器名称或IP”字段中不能有
/
字符,或者将整个变量放入“路径”字段:

或者(更好)使用将其拆分为协议、主机、端口和路径,如:

def url = new URL(vars.get('your variable from JSON Extractor here'))

sampler.setProtocol(url.getProtocol())
sampler.setDomain(url.getHost())
sampler.setPort(url.getPort())
sampler.setPath(url.getPath())

关于JMeter中Groovy脚本的更多信息:

谢谢您的帮助。在上一步中,我的var来自JSON提取器。当我使用这个函数时,我假设我可以将它放入下一个HTTP请求的serevrname/ip字段中,它的行为就像找不到我的var一样。如果我将我的var作为
${myVar}
放入字段中,那么替换就完成了。但与功能无关。url显示为,没有myVar的值。顺便说一句,如果myVar包含https://,jmeter会呕吐吗?@chrishare我想你在协议领域也有https。我做了类似的事情,但我更喜欢这种方法。谢谢
def url = new URL(vars.get('your variable from JSON Extractor here'))

sampler.setProtocol(url.getProtocol())
sampler.setDomain(url.getHost())
sampler.setPort(url.getPort())
sampler.setPath(url.getPath())