Jmeter beanshell遭遇战&引用;
我试图在jmeter中为URL参数值执行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
${__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是首选选项,有关更多详细信息,请查看文章