我使用jmeter正则表达式提取位于子示例请求中的URL。该URL被转义,例如:具有%3D
,%3F
。为了避免这些,我使用了beanshell预处理器并替换了所有这些特殊字符。但是当我使用在HTTP请求该变量(url
)其得到解析用方括号豆壳预处理器的jmeter http请求,beanshell预处理器输出显示在方括号中
代码剪断:
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变量时,解析它如下。
https://[xyz?ID=Login-ID&goto=http://uri/?ReqID=abcdefghijklmnop]
jmeter test plan ->
thread ->
http request
-> regex
http request
-> bean shell preprocessor
可以请你帮我解决这个问题
也看到这个问题,当我们使用内置函数 “$ {__ urldecode($ {} escapedUri)}”。 – karthik