【问题标题】:jmeter http request, beanshell preprocessor output is displayed in square bracketsjmeter http请求,beanshell预处理器输出显示在方括号中
【发布时间】: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


【解决方案1】:

我的期望是,当需要转到“路径”时,您在“服务器名称或 IP”字段中使用 ${URL} 变量

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

【讨论】:

  • 感谢您的帮助。主要问题是我们需要拆分完整的 URL。因此,一旦我们拆分为服务器名称和路径,它才会起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多