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