我必须与50个用户一起运行100次迭代。测试的总持续时间为1小时。 1个用户可以进行2次迭代,脚本中的事务数量为6。
如何计算起搏时间?
答案 0 :(得分:1)
示例:
1000个用户,每小时10000次完整迭代次数
10,000 / 1,000 =每用户每小时10次迭代
每小时3600秒/每小时每小时10次迭代=平均每360秒(6分钟)一次迭代
LoadRunner中的随机算法基于C rand()函数,该函数对于大型数据集大致(但不完全)是均匀的。因此,我采用从一次迭代开始到下一次迭代的平均起搏间隔,然后按正/负20%进行调整。
所以,你的360(0:06:00)第二次起搏变为从288秒(0:04:48)到432秒(0:07:12)的范围。
您将为要分阶段的每个业务流程运行这些计算
对于思考时间,请查看生产日志,以获取有关从第X页到第X + 1页的用户范围的信息。这很容易实现,因为每个顶级页面都指的是REFERER或它来自的上一页。按客户端IP分组的时间戳的比较可以提供思考时间所需的范围。
答案 1 :(得分:1)
总是应用Little's Law来计算起搏,ThinkTime,Vofsers
来自Little's Law:没有VUsers =吞吐量*(Responce_Time + Think_Time)
EXPL。
吞吐量=总交易数/时间秒数 ,起搏=(Response_Time + Think_Time)
根据您的要求 - 总迭代次数100和1次迭代有6次交易,因此交易总数= 600
1分钟的吞吐量是:600/60 = 10 ,1秒的吞吐量为:0.16
根据公式50 = 0.16 *(起搏) 起搏= 312.5秒
要在1小时内完成100次迭代,你必须设置312.5秒的起搏,确保起搏= Response_time + Think_Time。
答案 2 :(得分:1)
起搏是“迭代”的过程。间隙,它用于控制测试期间的迭代率。如果1个用户的目标是每小时完成2次迭代,则结果是1800秒的起搏(上面提到的小法则)。现在,只要这6笔交易的分配时间总和和它们之间的思考时间小于1800秒,您就可以达到所需的费率。 注意:迭代不等于事务,除非迭代只有一个事务。请参阅此内容以获得图片理解
答案 3 :(得分:0)
起搏是迭代之间的等待时间,因此我同意@CyberNinja,在您的用例中,起搏时间是1800秒,因为它是您的脚本实现目标的最长持续时间:在一小时内产生100次迭代,50位用户。 起搏不是Response_time + Think_Time!
答案 4 :(得分:0)
根据利特尔定律:
No. of Concurrent Users(N) =
Throughput or TPS(X) * [
Response Time (RT) + Think Time (TT) + Pacing (P)
]
这里RT+TT
是脚本执行时间SET
,您可以通过运行一次脚本并将所有RT
事务和所有思考时间加起来来计算。
假设SET
为60秒。
根据您的问题
total transactions in 1 hr =
100(Iterations) *
50(Users) *
2(Each User Iteration) *
6(No. of Transactions)
= 60000 Transactions/hr
将其转换为TPS = 60000/3600 = 16.66
现在将所有价值观纳入利特尔定律:
50 = 16.66 (60 - Pacing)
Pacing = 60 - 50/16.66
Pacing = 57 secs (approx).