有没有办法模拟 1000 个左右的访问者访问我们的服务器?我们已经对应用程序进行了彻底的重写和重构。我们有一个非常优化的 Tomcat 服务器,并且正在迁移到带有 Apache 前端的 Glassfish 后端服务器。
我们目前处于“测试”阶段,但只有少数用户在积极使用它。我们一天内有 30-40,000 名用户(可能最多 1000 名)。当我们全力投入新设置时,我们不希望它在特定瓶颈处崩溃或负担过重。
基本上,是否有任何测试工具可以帮助我们模拟对特定 URL 的 x 次调用?
答案1
只是想在你进行负载测试时给你一些指点(适当的测试将在不久的将来减少坏消息)。
我的经验是 - 当模拟“真实”的 Web 服务用户时,请使用“真实”的工具。例如硒,瓦提尔或者机器人框架。
为什么?简单来说:这些工具将模拟实际浏览器和全部包含,而不仅仅是向您的服务器发送少量 JMeter GET/POST 请求。我也是 JMeter 请求测试的忠实粉丝,但您必须知道其限制。当您已经发现一些瓶颈时,JMeter 非常棒。据我所知,您还不确定是否存在任何瓶颈。
JMeter不是一个真正的浏览器,如 jmeter 文档所述:
JMeter 不是浏览器
JMeter 不是浏览器。就 Web 服务和远程服务而言,JMeter 看起来像一个浏览器(或者更确切地说,多个浏览器);但是 JMeter 不会执行浏览器支持的所有操作。特别是,JMeter 不会执行 HTML 页面中的 Javascript。它也不会像浏览器那样呈现 HTML 页面(可以将响应视为 HTML 等,但时间不包含在任何样本中,并且一次只能查看一个线程中的一个样本)。(来源:http://jmeter.apache.org)
只是想指出,有时在负载测试之后,你可能仍然会发现系统的行为有所不同,即使我们做了恰当的负载测试。有时人们往往会忘记,使用浏览器的用户正在幕后做大量的事情,从网络服务器的角度来看,这也是流量/负载。
只是说说而已。
答案2
答案3
如果您已经在使用 AWS,这是一个非常巧妙的解决方案:
带着机关枪的蜜蜂
http://blog.apps.chicagotribune.com/2010/07/08/bees-with-machine-guns/
我们需要的是一个解决方案,允许我们使用多个地理位置接近的客户端同时向我们的服务器发送流量。
带机关枪的蜜蜂是我编写的一个结构脚本,用于对我们的网站进行积极的负载测试。它提供了一些方法来启动 EC2 实例大军(蜜蜂),用可配置的流量攻击目标服务器,然后关闭这些实例。