使用参数循环ThreadGroup

时间:2016-06-30 11:48:40

标签: jmeter

我想强调使用不同参数化的JMeter测试REStful API,并根据用于REST调用的用户数和参数捕获响应时间:

             | 10 User | 100 Users | 1000 Users 
Parameters A |‾‾‾‾‾‾‾‾‾|‾‾‾‾‾‾‾‾‾‾‾|‾‾‾‾‾‾‾‾‾‾‾‾
Parameters B |‾‾‾‾‾‾‾‾‾|‾‾‾‾‾‾‾‾‾‾‾|‾‾‾‾‾‾‾‾‾‾‾‾
Parameters C |‾‾‾‾‾‾‾‾‾|‾‾‾‾‾‾‾‾‾‾‾|‾‾‾‾‾‾‾‾‾‾‾‾

所以我的HTTP请求总是相同的,除了参数和用户数。我当前(差)的方法是一个线程组,每个用户和参数组合都有一个硬编码的线程数。但我认为有更好的方法,利用变量。

有关清洁实施的任何建议吗?

编辑:基本上我正在尝试实现以下嵌套for loops

for (param in parameters) {
    for (numReq in users) {
        executeRequest(param, numReq)
        // execute *numReq* simultaneous requests with the parameters of param
    }
}

1 个答案:

答案 0 :(得分:1)

JMeter线程组在JMeter启动期间被初始化,所以很遗憾,您将无法使用JMeter Variables,因为它们被读取并稍后应用。

但是你可以改用JMeter属性。例如,您可以使用__P() function来定义用户数量,如:

${__P(threads,)}

然后您将能够通过-J命令行参数定义线程编号,如:

jmeter -Jthreads=100 -n -t test.jmx -l result.jtl 

有关JMeter属性及其使用方法的更多信息,请参阅Apache JMeter Properties Customization Guide

如果您使用JMeter Plugins,也可以考虑尝试Stepping Thread Group而不是