如何计算用户数量和负载测试的思考时间
How to calculate number of users and think time for load testing
我想知道如何计算用户数、思考时间、步调时间 和负载测试的迭代次数。
要求是:
- 我需要达到每小时10000笔交易。
- 需要执行 1 小时。
- 需要指定思考时间和起搏时间
注:
- 我的脚本 "aircraft" 包含 7 个事务。
- 总响应时间为 16 秒(不含思考时间)。
如何计算要给多少用户才能达到每小时 10000 笔交易以及我需要指定多少思考时间和 Pacing 时间以及迭代次数?
如果您的唯一目标是在特定时间段内模拟一定数量的交易,您可以在测试中使用相当少的虚拟用户来做到这一点。
如果 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 个事务,如果您之前没有以该频率进行测试,您不知道这是否会降低目标系统的速度。
我有一个问题:您提到 TPS:7/16 - 7/16 是根据什么得出的?现在是 16 月 7 日。
否则,这样计算:每小时10000笔交易,那么每秒10000/3600 = 2.77;这个和7/16是一样的。我认为你的计算是错误的。请指正。
我想知道如何计算用户数、思考时间、步调时间 和负载测试的迭代次数。
要求是:
- 我需要达到每小时10000笔交易。
- 需要执行 1 小时。
- 需要指定思考时间和起搏时间
注:
- 我的脚本 "aircraft" 包含 7 个事务。
- 总响应时间为 16 秒(不含思考时间)。
如何计算要给多少用户才能达到每小时 10000 笔交易以及我需要指定多少思考时间和 Pacing 时间以及迭代次数?
如果您的唯一目标是在特定时间段内模拟一定数量的交易,您可以在测试中使用相当少的虚拟用户来做到这一点。
如果 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 个事务,如果您之前没有以该频率进行测试,您不知道这是否会降低目标系统的速度。
我有一个问题:您提到 TPS:7/16 - 7/16 是根据什么得出的?现在是 16 月 7 日。
否则,这样计算:每小时10000笔交易,那么每秒10000/3600 = 2.77;这个和7/16是一样的。我认为你的计算是错误的。请指正。