如何使用BeanShell解码URL?

时间:2016-02-04 13:55:58

标签: regex performance jmeter performance-testing beanshell

我需要在请求中传递一个参数(URL的一部分),例如:

"S;4;163;1;O;rAghjgjU="

但是这个值被提取为正则表达式:

"S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D"

我想使用BeanShell对URL进行解码。

1 个答案:

答案 0 :(得分:6)

  1. JMeter提供__urldecode()功能,如果您使用它,请执行以下操作:

    ${__urldecode(S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D)}
    

    您将获得所需的价值。

  2. 如果您仍想使用Beanshell,可以调用URLDecoder.decode();方法,如:

    String decoded = URLDecoder.decode("S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D", "UTF-8");
    
  3. 还有__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类。