我遇到了这个数学问题。我试图在响应时间为零时计算最大样本量。我的测试有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人.. 将这个数字加在一起应该给我我的数字。
如果我做错了什么或基于错误的结论我喜欢听你的意见;)。或者如果有人能看到一个公式。
提前致谢
答案 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
如果所有都是正数,W
和N
是整数,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圈。
如果您只对整圈感兴趣,可以使用封闭式解决方案。如果是这样的话,请告诉我。