我使用jmeter正则表达式提取位于子样本请求中的URL。该网址已转义,例如:%3D
,%3F
。为了解开这些问题,我使用了beanshell预处理器并替换了所有这些特殊字符。但是,当我在HTTP请求中使用此变量(url
)时,会使用方括号
bean shell预处理器的代码片段:
url = vars.get("escapedUri"); //get escaped url from the regular expression
url = url.replaceAll("%3A", ":"); //replace special characters with :,/,=,?
url = url.replaceAll("%2F", "/");
url = url.replaceAll("%3F", "?");
url = url.replaceAll("%3D", "=");
log.info ("escaped uri chng : " + url);
vars.put("URL", url);
正确显示在日志文件中打印的URL:
xyz?ID=Login-ID&goto=http://uri/?ReqID=abcdefghijklmnop
当我尝试在HTTP请求中使用此URL变量时,sampler正在按如下方式解析它。
https://[xyz?ID=Login-ID&goto=http://uri/?ReqID=abcdefghijklmnop]
jmeter test plan ->
thread ->
http request
-> regex
http request
-> bean shell preprocessor
你可以帮我解决这个问题吗
答案 0 :(得分:1)
我的期望是您在"服务器名称或IP"中使用${URL}
变量。当它需要去" Path"
此外,我非常确定可以获得更多"清洁"正则表达式提取器中的URL。检查以下材料: