可以使用多少个同时线程来加载测试Web应用程序?

时间:2017-09-15 16:19:13

标签: java tomcat junit jmeter

我需要找到我的网络应用程序的性能并加载测试它。该应用程序当前具有最多25个线程的Tomcat配置,并且有两个这样的服务器。

这是否意味着我应该对50个并发请求进行负载测试? 在有更多请求的情况下会发生什么;它会转到Tomcat中的线程等待队列吗? 如果它用于线程等待队列,我可以用超过50个请求测试应用程序吗?

1 个答案:

答案 0 :(得分:0)

Tomcat可以在两种模式下工作:

  • BIO(阻止IO),其中1个线程最多可以提供1个连接
  • NIO(非阻塞IO),其中1个线程可以提供更多连接

您的应用程序最有可能使用后者,请查看Understanding the Tomcat NIO Connector and How to Configure It指南以获取概述。另一方面,即使在使用BIO连接器的情况下,应用程序仍然可以足够快地运行以服务超过50个用户。

在这两种情况下,你应该将你的后端视为一个黑盒子" (假设您对配置一无所知)并专注于测试非功能性需求。

您应该考虑的基本性能测试类型是:

  • 负载测试:检查预期并发用户数量时系统的行为。
  • 浸泡测试:相同,但假设测试持续时间更长,即隔夜或周末。通过这种方式,您将能够看到是否有memory leaks,日志轮换如何工作,应用程序是否自行清理以便它不会耗尽磁盘空间等。
  • 压力测试:识别应用程序边界的过程,即从1个虚拟用户开始并增加负载,直到应用程序响应时间在合理范围内或错误开始发生。

有关详细信息,请参阅Why ‘Normal’ Load Testing Isn’t Enough