我现在在我们的产品性能测试中使用JMeter。
我有一个性能测试场景如下:
- 从请求a中提取1000个唯一id
- 将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?
-
添加JSR223预处理器作为HTTP请求采样器的子处理器,您需要添加1000个参数
-
将以下代码放入"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)
-
就是这样,JSR223预处理器将读取所有以
ID_1
开始,以ID_XXXX
结束的JMeter变量,并将相应的参数添加到HTTP请求采样器
在JMeter上下文中关于Groovy脚本的更多信息:Apache Groovy -为什么以及如何使用它