【问题标题】:Unable to Extract Value from URL in Jmeter无法从 Jmeter 中的 URL 中提取值
【发布时间】:2014-08-20 06:56:52
【问题描述】:

我是 JMeter 工具的新手。

我需要记录电子邮件交易。有许多动态值作为 URL 查询字符串传递。

我无法使用 Reg-ex Extractor 提取这些值。

这些动态参数值在同一个 HTTP 请求中使用,而不是在下一个/后续请求中。

例如:

www.xyz.com/shva?123&abc=LLRRQQ;cdv=AABBCC.  

In the same http request contains parameter abc = LLRRQQ and cdv=AABBCC.  

那么如何从 URL 查询字符串中动态提取并将其传递给同一个请求。

任何帮助将不胜感激!

谢谢

【问题讨论】:

  • 您是要使用& 分隔符提取参数还是还要使用; 分隔?

标签: javascript load jmeter load-testing performance-testing


【解决方案1】:

您可以使用Beanshell PreProcessor 提取查询字符串参数并将其转换为采样器参数,如下所示:

import org.apache.http.NameValuePair;
import org.apache.http.client.utils.URLEncodedUtils;
import java.net.URI;
import java.util.List;

URI uri = sampler.getUrl().toURI();

List params = URLEncodedUtils.parse(uri, "UTF-8");

for (NameValuePair param : params) {    
    sampler.addArgument(param.getName(), param.getValue());
    //sampler.addEncodedArgument(param.getName(),param.getValue()); // if you need to encode parameter
}

也许您需要围绕123; 位进行一些额外的编码,上面的代码仅适用于parametername=parametervalue“经典”URL 参数。

有关如何通过 Beanshell 脚本扩展 JMeter 测试的高级指南,请参阅 How to use BeanShell: JMeter's favorite built-in component

【讨论】:

    【解决方案2】:

    如果是同一个请求,则说明你控制了参数并且已经知道它们。

    您的请求的完整方案是什么?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-02
      • 1970-01-01
      相关资源
      最近更新 更多