我需要测试一个站点以及它如何同时处理多个连接。每个用户必须:
- 从不同的 IP 地址连接
- 模拟一个浏览用户-->(打开几个页面,点击几个按钮)
我需要像这样模拟大约 200 个用户。理想情况下,我希望我可以模拟 1000,然后再模拟 2000。
最简单的方法是什么?我是否能够实际编写一个脚本来执行此操作,或者有没有一种方法可以利用我的其他服务器来执行此操作?我也听说有人使用 EC2 来做这样的事情,但我认为这有点超出我的理解范围。
有什么想法吗?
** 编辑 **
回应下面的评论。一个站点显然是一个网站。如 www.somedomain.com。测试将需要几个人访问该站点,使用提供的凭据登录,然后按然后在拍卖中出价(这是一分钱拍卖类型的站点)。他们通过按下一个按钮来竞标拍卖,测试将涉及人们打开页面和竞标。
第一:这不容易做好。事实上,甚至很难找到有知识的人来正确地做这件事……
话虽如此,这里有一些技巧是基于我在大型站点进行负载和性能测试方面的经验。
有专业的、昂贵的工具可以做到这一点。其中之一是 Loadrunner,它是我们测试部门使用的。这就是我所知道的全部——我告诉测试人员他们应该测试什么,然后他们在我忙于其他工作的时候让它发生……
如果您不想要专业的昂贵工具,您需要做的基本上就是设置一个具有 200 个不同虚拟 IP(或 1000、或 2000)的服务器。然后你需要一个程序,它可以从该服务器进行大量的同时连接,每个连接来自一个单独的 IP。服务器应直接放置在与要测试的服务器相同的交换机上。放置此位置的原因是,您在测试时实际上是在伪装成整个互联网,并且您需要确保流量实际上并未路由到互联网。您还需要了解网站的常见使用模式。如果您没有它们,您仍然可以进行基本的负载测试,例如访问三个随机页面,但结果与您的实际使用不太相关。
在 StackOverflow 上的这个问题中,有一些关于开源软件的提示可以做到这一点。但我的主要建议是付钱给以此为生的人;与花费自己的时间相比,它会更快并且可能更便宜。
首先 - 除非您有基于 IP 的负载平衡或身份验证方案,否则 IP 地址的数量在负载测试中很少重要。绝大多数 Web 开发框架的性能不受用户 IP 地址的影响。
但假设 IP 数量实际上对您的情况很重要,那么您只需要一个负载测试工具即可为您提供所需的 IP 数量。200 个 IP 并不难,因为您可以在一台机器的单个子网上获得那么多 IP。然后只需使用一个可以利用它的工具(我将插入我们的产品 - Load Tester,它有一个免费的 LITE 版本,您可以使用它进行简单测试并允许无限的并发用户)。
当您需要处理 1000 或 2000 个用户时,这只会增加您需要的负载生成器的数量以及您需要在这些负载生成器上配置的 IP 地址的数量。
希望有帮助!