我需要在请求中传递一个参数(URL的一部分),例如:
"S;4;163;1;O;rAghjgjU="
但是这个值被提取为正则表达式:
"S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D"
我想使用BeanShell对URL进行解码。
答案 0 :(得分:6)
JMeter提供__urldecode()功能,如果您使用它,请执行以下操作:
${__urldecode(S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D)}
您将获得所需的价值。
如果您仍想使用Beanshell,可以调用URLDecoder.decode();方法,如:
String decoded = URLDecoder.decode("S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D", "UTF-8");
还有__Beanshell()函数允许执行任意Beanshell脚本,调用它如:
${__BeanShell(URLDecoder.decode("S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D"\, "UTF-8"),)}
有关JMeter中Beanshell脚本的更多信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component,特别要注意如何在Beanshell脚本中调用Java和JMeter API类。