Jmeter beanshell遭遇战&引用;

Jmeter beanshell遭遇战&引用;,jmeter,beanshell,Jmeter,Beanshell,我试图在jmeter中为URL参数值执行beanshell脚本。我有以下资料: ${__BeanShell(vars.get("query").replaceAll(" ","%20"))} jmeter控制台输出以下内容: Caused by: bsh.ParseException: In file: inline evaluation of: ``vars.get("query").replaceAll(" ";'' Encountered ";" at line 1, column 33

我试图在jmeter中为URL参数值执行beanshell脚本。我有以下资料:

${__BeanShell(vars.get("query").replaceAll(" ","%20"))}
jmeter控制台输出以下内容:

Caused by: bsh.ParseException: In file: inline evaluation of: ``vars.get("query").replaceAll(" ";'' Encountered ";" at line 1, column 33.
我不知道问题出在哪里,因为字符是
不是

请使用下面的代码,或将单个空格字符替换为
'%20'

String myString = vars.get("query");
String new_var = myString.replaceAll(" ", "%20");
vars.put("updated_value", new_var);
您可以在下一个请求中进一步使用将空格替换为
'%20'
'updated\u value'
变量

有关JMeter元素的详细信息,请参阅。

请使用下面的代码将单个空格字符替换为
'%20'

String myString = vars.get("query");
String new_var = myString.replaceAll(" ", "%20");
vars.put("updated_value", new_var);
您可以在下一个请求中进一步使用将空格替换为
'%20'
'updated\u value'
变量

有关JMeter元素的更多信息,请参阅。

请参阅教程,您需要对每个逗号进行转义:

如果函数参数包含逗号,请确保用“\”转义,否则JMeter会将其视为参数分隔符

就你而言

  ${__BeanShell(vars.get("query").replaceAll(" "\,"%20"))}

也可以考虑使用<代码> { GROOVY 函数而不是< >代码>βBeNeS壳< /代码>以获得更好的性能。

教程,您需要跳过每个逗号:

如果函数参数包含逗号,请确保用“\”转义,否则JMeter会将其视为参数分隔符

就你而言

  ${__BeanShell(vars.get("query").replaceAll(" "\,"%20"))}

也可以考虑使用<代码> { GROOVY 函数,而不是<代码>πBeNeS壳< /代码>以获得更好的性能。

< P>你做了一些荒谬的事情。编码URL不仅仅是为了转义空格,还需要查看您需要处理的文档:

  • 所有非拉丁非字母数字字符
  • 除了
    -
    *
    \uuu
    之外的所有字符
这可能非常棘手

所以你基本上有两个选择:

  • 通过JMeter使用JavaScript函数,如:

  • 或使用类似的URL编码器:


在高负载情况下,性能方面Groovy是首选选项,请查看文章以了解更多详细信息。

您正在做一些可笑的事情。编码URL不仅仅是为了转义空格,还需要查看您需要处理的文档:

  • 所有非拉丁非字母数字字符
  • 除了
    -
    *
    \uuu
    之外的所有字符
这可能非常棘手

所以你基本上有两个选择:

  • 通过JMeter使用JavaScript函数,如:

  • 或使用类似的URL编码器:

在高负载情况下,性能方面Groovy是首选选项,有关更多详细信息,请查看文章