我有单个API进行测试,我想用这个API达到30K TPS。任何机构都能完全解释我如何使用Jmeter进行测试吗?

问题描述 投票:0回答:2

我有单个API进行测试,我想用这个API实现30K TPS。任何机构都能完全解释我如何使用Jmeter进行测试吗?它可能有20,40或60个用户,但我想使用Jmeter UI模式实现这一点?

jmeter performance-testing
2个回答
0
投票

你的问题太宽泛了。

无论如何,简单而直接的答案是您可能无法在UI模式下实现此功能,并且您可能需要多个从站。如果您的API的SLA为1秒,则执行1秒调整的单个线程将在一小时内产生3600个事务(1 TPS)。因此,您需要在JMeter中使用30,000个线程才能达到30,000 TPS。


0
投票

JMeter GUI不适用于负载测试,而仅适用于测试计划调试目的。 GUI非常耗费资源并且占用大量内存。在Non-GUI模式下执行负载测试是更好和更强烈建议的。

在GUI模式下运行JMeter时,您将看到:

enter image description here

由于30K TPS太高而无法测试,因此必须提供足够数量的线程。要计算此测试所需的线程数,您还需要知道API的最大响应时间。

以下是线程数计算的公式:

TPS *最大响应时间秒

例如,如果你有响应时间1 second,那么要生成30K TPS你需要30K threads。如果API的响应时间是500ms,那么你至少需要15K threads

要产生这种高负载,您还需要使用Distributed Testing,因为您将无法从单台机器生成如此高的负载。要确定您可以从一台机器生成多少个线程,您还需要自己测试。尝试逐渐增加线程数并监控机器的运行状况。如果它消耗机器运行状况的70-80%(CPU,内存,磁盘),则停止测试并标记线程数。现在,您可以假设需要多少台计算机来测试此方案。

最后,我建议你仔细检查你的测试要求,因为30K TPS(每小时108000000请求)太高了!

有关更多信息,请参阅Apache JMeter's Best Practices

© www.soinside.com 2019 - 2024. All rights reserved.