如何在JMeter中以编程方式向HttpRequest添加参数



我现在在我们的产品性能测试中使用JMeter。

我有一个性能测试场景如下:

  1. 从请求a中提取1000个唯一id
  2. 将1000个唯一id添加到下一个请求B中作为"表单参数"。查看请求B的响应时间

请求B如下:

方法:文章

的URL: http://www.aaa.com/abc/def

形式参数:

para1: value1

para2: value2

ID: ID1

ID: ID2

ID: ID3

……

ID: ID1000

我知道这个请求不是http请求的规范用法。但它在我们的产品中已经使用多年了。

现在我在"正则表达式提取器"的帮助下从请求A获得了1000个唯一id,

我的问题是:如何将变量传递给请求B,并将1000个id设置为"表单参数";请求B?

  1. 添加JSR223预处理器作为HTTP请求采样器的子处理器,您需要添加1000个参数

  2. 将以下代码放入"Script"面积:

    def data = new org.apache.jmeter.config.Arguments()
    1.upto(vars.get('ID_matchNr') as int, index -> {
    def parameter = new org.apache.jmeter.protocol.http.util.HTTPArgument('ID', vars.get('ID_' + index))
    data.addArgument(parameter)
    })
    sampler.setArguments(data)
    
  3. 就是这样,JSR223预处理器将读取所有以ID_1开始,以ID_XXXX结束的JMeter变量,并将相应的参数添加到HTTP请求采样器

在JMeter上下文中关于Groovy脚本的更多信息:Apache Groovy -为什么以及如何使用它

最新更新