JMeter 使用传入的参数来控制线程组
JMeter using a passed in parameter to control thread groups
我有一个由多个线程组组成的 JMeter 测试场景。我正在使用命令行参数来控制场景,以传递工作负载、线程数等。线程组始终是总线程数的固定百分比(例如,三个组具有 40:40:20 拆分)。我想传入一个值并计算三个组的值。
问题是,我唯一能想到的是在启动线程组中使用 Beanshell 采样器来计算线程,但我现在意识到这个采样器是 运行,JMeter已经过了为其他组设置线程的地步。因此,其他线程组以零线程结束。
我认为我需要做的是将计算直接放入线程组 'number of users' 框中,我认为是 Javascript。但是语法让我失望。有人可以帮忙吗?
哦,我知道在命令行中传递三个参数也足够了,但是命令行来自 Jenkins 作业,我想确保用户只需添加一个数字作为范围。
不要在 JMeter 中使用 __javascript,它会降低性能。
您可以使用 __groovy 函数放置此表达式:
${__groovy(Math.round(props.get("pct").toFloat() * props.get("threads").toInteger()),)}
并传递command-line或设置在user.properties
- pct:用户百分比
- 线程:线程总数
它将是:
-Jthreads=1000 -Jpct=0.5
我有一个由多个线程组组成的 JMeter 测试场景。我正在使用命令行参数来控制场景,以传递工作负载、线程数等。线程组始终是总线程数的固定百分比(例如,三个组具有 40:40:20 拆分)。我想传入一个值并计算三个组的值。
问题是,我唯一能想到的是在启动线程组中使用 Beanshell 采样器来计算线程,但我现在意识到这个采样器是 运行,JMeter已经过了为其他组设置线程的地步。因此,其他线程组以零线程结束。
我认为我需要做的是将计算直接放入线程组 'number of users' 框中,我认为是 Javascript。但是语法让我失望。有人可以帮忙吗?
哦,我知道在命令行中传递三个参数也足够了,但是命令行来自 Jenkins 作业,我想确保用户只需添加一个数字作为范围。
不要在 JMeter 中使用 __javascript,它会降低性能。
您可以使用 __groovy 函数放置此表达式:
${__groovy(Math.round(props.get("pct").toFloat() * props.get("threads").toInteger()),)}
并传递command-line或设置在user.properties
- pct:用户百分比
- 线程:线程总数
它将是:
-Jthreads=1000 -Jpct=0.5