如何计算用户数量并考虑负载测试的时间

时间:2015-01-23 07:52:02

标签: performance-testing load-testing

我想知道如何计算用户数量思考时间起搏时间以及负载测试的迭代次数。

要求是:

  • 我需要每小时达到10000笔交易。
  • 需要执行1小时。
  • 需要指定思考时间和投放时间

注意:

  1. 我的脚本“飞机”包含7笔交易。
  2. 整体响应时间是16秒,没有思考时间。
  3. 如何计算给出的用户数量,以便每小时可以实现10000次交易,以及需要指定的思考时间和起搏时间以及迭代次数?

2 个答案:

答案 0 :(得分:8)

如果您的唯一目标是在特定时间段内模拟一定数量的交易,则可以在测试中使用极少数虚拟用户来完成此操作。

如果7笔交易的平均交易时间是16秒,则意味着您可以使用单个虚拟用户每秒执行7/16笔交易。

要在一小时内获得10,000笔交易,您必须使用多个并发虚拟用户。

VU = Number of virtual users
time = test time in seconds
TPS = transactions per second

VU * time * TPS = total_transactions

在这种情况下,我们知道total_transactions而不是VU,所以我们将其重写为:

total_transactions / (time * TPS) = VU

使用我们拥有的数字,我们得到:

10000 / (3600 * 7/16) = 6.3

即。您需要超过6个VU才能在一小时内获得10k交易。可能需要10个VU并根据需要插入一些休眠时间来完成10,000次交易。

你会得到多少睡眠时间和多少次迭代?

10个用户每16秒执行7次交易一小时将执行总计10 * 7/16 * 3600 = 15,750次交易。我们需要减慢用户的速度。我们需要确保他们不会每秒完成7/16次全部交易。我们可以再次使用该公式:

VU * time * TPS = total_transactions

TPS = total_transactions / (VU *time)

TPS = 10000 / (10 * 3600)   =>  TPS = 0.2777...

我们需要确保VU仅执行0.28 TPS,而不是7/16(0.44)TPS。

TPS = transactions / time

你的脚本在16秒内完成7次交易,获得7/16(0.44)TPS。

要了解脚本需要花费多少时间,我们会将其更改为:

time = transactions / TPS

time = 7 / 0.277778   => time = 25.2 seconds

目前,您的脚本需要16秒,但我们需要花费25秒,因此您需要增加9秒的睡眠时间。

所以:

10个VU,在一个小时内在25秒内执行7次交易,将产生10,000笔交易:

10 * 7/25 * 3600 = 10080

每个VU执行的脚本迭代次数为:

3600 / 25 = 144 iterations

总结一下:

Number of VUs: 10
Total sleep time during one iteration: 9
Iterations/VU: 144

请注意,这一切都假设事务时间是恒定的,并且不会因生成流量而增加。此设置将在目标系统上每秒生成近3个事务,如果您之前未在该频率上进行过测试,则无法知道这是否会降低目标系统的速度。

答案 1 :(得分:0)

我有一个问题:你提到TPS:7/16 - 基于7/16的基础?这是16/7。

否则,采取此计算:每小时10000笔交易,然后每秒10000/3600 = 2.77;这和7/16是一样的。我认为你的计算错了。请纠正我。