如何均匀增加3个线程组中的用户数量,保存它们之间的请求比例?

时间:2012-12-26 10:56:26

标签: jmeter

我的测试计划中有3个线程组。 这些线程组必须具有固定的请求权重(例如,1 -50%,2nd-40%,3rd-10%)。 如果我需要模拟恒定数量的用户,{@ strong> PMD UBIK-INGENIERIE 给出的the solution in this post如果我将循环计数设置为数字(1,10,100等),则效果很好。但问题是当我为循环计数设置“永远”的复选框时,组之间的比例就会被打破。

现在我需要增加用户数量,节省我的3组之间的请求比例,以执行能力评估。 所有3组必须以50-40-10的恒定比例均匀发送请求。

如果我使用Stepping Thread Group,我可以平均增加每个用户的数量,但我无法设置请求的比例。

你能告诉我任何想法,怎么做?


UPD1。

我的设置屏幕截图: enter image description here

enter image description here

有什么问题?


UPD2。最后一个变体(我为每个组手动设置了数字)是(Thread Group1 - 50%):

enter image description here

1 个答案:

答案 0 :(得分:1)

这个想法与PMD UBIK-INGENIERI's answer中的想法相同。

  1. 在用户定义的变量或测试计划变量中设置USERS变量(或者您可以通过命令行传递它)。
    还设置变量:

    PERCENT1 to 0.5
    PERCENT2 to 0.4
    PERCENT3 to 0.1
    
  2. 使用以下内容添加3个步进线程组:

  3. “此组将开始”设置为

    ${__BeanShell(Math.round(${PERCENT1}*${USERS})}
    ${__BeanShell(Math.round(${PERCENT2}*${USERS})}
    ${__BeanShell(Math.round(${PERCENT3}*${USERS})}
    

    “然后开始”设置为:

    ${__BeanShell(Math.round(${PERCENT1}*${USERS}/10)}
    ${__BeanShell(Math.round(${PERCENT2}*${USERS}/10)}
    ${__BeanShell(Math.round(${PERCENT3}*${USERS}/10)}
    

    如果USERS变量的值可以除以100

    ,它将起作用