【发布时间】:2016-06-08 10:02:42
【问题描述】:
我正在使用 jmeter 正则表达式提取位于子示例请求中的 URL。 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 变量时,它会按如下方式解析。
https://[xyz?ID=Login-ID&goto=http://uri/?ReqID=abcdefghijklmnop]
jmeter test plan ->
thread ->
http request
-> regex
http request
-> bean shell preprocessor
你能帮我解决这个问题吗
【问题讨论】:
-
当我们使用内置函数“${__urldecode(${escapedUri})}”时也会看到这个问题。
标签: jmeter