我一直在尝试使用JMeter创建一些自动化的性能测试,我正在Jenkins中设置一个工作,以便人们可以运行它并在那里查看结果。
我正在尝试向作业中添加一些与线程组中可用选项相对应的参数。他们是:
有些人不太了解'Ramp-up Period'的概念,所以我想把它称为'Delay'并用它来控制每个线程在开始测试之前等待多长时间。这意味着'加速期'应该等于(用户数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中执行此操作?
答案 0 :(得分:0)
JMeter变量和属性是字符串,您不能对它们应用算术运算。你得到的行为绝对是预料之中的。此外,在运行期间无法动态更改属性,您必须在将其传递给JMeter之前计算加速。
答案 1 :(得分:0)
您可以在测试计划之前添加BSF PreProcessor,计算用户定义变量的值并使用putObject(String key,Object value)将值放入变量