2016-06-08 296 views
1

我使用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 

可以请你帮我解决这个问题

+0

也看到这个问题,当我们使用内置函数 “$ {__ urldecode($ {} escapedUri)}”。 – karthik

回答

1

我的期望是,你正在使用,在“服务器名称或IP”字段${URL}变量时,它需要去“路径”

URL in PATH

此外,我很确定可以从正则表达式提取器获得更多“干净”的URL。检查下列材料:

+0

感谢您的帮助。主要问题是我们需要拆分完整的URL。所以一旦我们分成服务器名称和路径,只有它的工作。 – karthik

相关问题