通过斜升计算最大样本

时间:2013-06-13 13:01:15

标签: math jmeter

我遇到了这个数学问题。我试图在响应时间为零时计算最大样本量。我的测试有3个样本(HTTP请求)。总测试等待时间为11秒。测试运行15分25秒。上升时间为25秒,这意味着每创建2个用户,直到达到50个。

通常你必须等待服务器响应,但我正在尝试计算最大样本量(这意味着响应时间为零。)我该怎么做。我不能简单地做((15 * 60 + 25)/ 11)* 50.因为提升了。

有什么想法吗?

编辑: 也许我应该将这个问题转化为通用的,而不是JMeter特有的。所以考虑一下(也许这对我来说是有道理的;))。 公园周围有50人步行。每圈运行仅需11秒。我们有15分25秒的步行时间尽可能多的步行。我们无法在同一时间开始,但我们可以每秒开始2(25秒,直到我们都在运行)。我们可以跑多少圈?

我最终做的是手动添加它... 由于需要25秒才能达到全速,只有2人可以步行900s,2人可以步行901s,2人可以步行902s一直到50人.. 将这个数字加在一起应该给我我的数字。

如果我做错了什么或基于错误的结论我喜欢听你的意见;)。或者如果有人能看到一个公式。

提前致谢

2 个答案:

答案 0 :(得分:0)

我不知道jmeter,但我确实理解你在公园周围奔跑的人的问题: - )。

如果你想要一个忽略公园周围部分圈的问题的确切答案,你需要做(在C / java术语中)for循环来解决它。这是因为要忽略部分圈数,必须将可能的圈数向下舍入,并且没有一个简单的公式可以将舍入考虑在内。在Excel中执行此操作,我计算出50人可以完成4012个完整圈。

但是,如果您愿意包含部分圈数,则只需计算可用的总秒数(考虑到提升),然后除以每秒开始的人数,最后除以运行一圈需要多少秒。可用秒数为arithmetic progression

要记下包含部分圈数的公式,需要一些符号:

    T = Total number of seconds (i.e. 900, given that there are 15 minutes)
    P = number of People (i.e. 50)
    S = number of people who can start at the Same time (i.e. 2)
    L = time in seconds for a Lap (i.e. 11)

然后包含部分圈数的圈数公式为

Number of Laps = P * (2 * T - (P/S - 1)) / (2*L)

在这种情况下等于4036.36。

答案 1 :(得分:0)

假设我们得到了:

  

T =总秒数= 925
  W =步行者= 50
  N =可以一起开始的步行者数量= 2
  S =错开(起始组之间的秒数)= 1
  L =单圈时间= 11
  G =起始组数= ceiling(W/N) = 25

如果所有都是正数,WN是整数,T >= S*(G-1)(即所有步行者都有机会开始)。我假设第一组开始时间0,而不是S秒后。

我们可以将时间分解为斜坡期:

  

Ramp laps = summation(integer i, 0 <= i < G, N*S*(G-i-1)/L)
  = N*S*G*(G-1)/(2*L)

和稳定期(一旦所有步行者开始):

  

稳定状态圈= W * (T - S*(G-1))/L

将这两者结合起来并简化一点,我们得到:

  

Laps = ( N*S*G*(G-1)/2 + W*(T-S*(G-1)) ) / L

这可以 4150圈

如果您只对整圈感兴趣,可以使用封闭式解决方案。如果是这样的话,请告诉我。