我一直在尝试使用 JMeter创建一些自动化的性能测试,我正在 Jenkins 中设置一个工作,以便人们可以运行它并在那里查看结果。
我正在尝试向作业添加一些参数,这些参数与线程组中可用的选项相对应。它们是:
- 用户数量
- 加速期
- 循环次数
有些人不太理解“加速期”的概念,所以我想将其称为“延迟”,并用它来控制每个线程在开始测试之前等待的时间。这意味着“加速期”应等于(用户数 x 延迟)。
我用来运行测试的命令如下:
jmeter -n -t <myscript>.jmx -l results.jtl -j jmeter.log -JUSERS=10 -JDELAY=1 -JLOOPS=1
变量看起来像这样:
USERS = ${__P(USERS)}
RAMPUP = ${USERS}*${__P(DELAY)}
LOOPS = ${__P(LOOPS)}
但不幸的是,RAMPUP 变量的值不是我所期望的。它最终是“${USERS}*1”
有没有办法在 JMeter 中做到这一点?
最佳答案
JMeter 变量和属性是字符串,不能对它们进行算术运算。你得到的行为是绝对预期的。此外,也无法在运行时动态更改属性,您必须在将其传递给 JMeter 之前计算加速。
关于performance - 是否可以使用表达式在 JMeter 中创建用户定义变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20626189/