如何测试最多100万用户的Web服务?

时间:2016-07-22 17:42:50

标签: performance-testing scalability load-testing

我想知道如何测试最多100万活跃用户的网络服务,所有用户都同时访问该网站。

这是理论上的 - 我没有像这样的网络服务,但是最近才reading this article on how to build a scalable app for > 500K users,它让我想知道人们会如何测试这个?

为了便于讨论,我们假设我完全控制了该服务,并且已经创建了100万个测试帐户,用户名为test1 - > test1000000可用。我希望帐户从世界各地访问我的服务,但我愿意接受任何建议!

编辑:我熟悉JMeter和Selenium,但是他担心如果从一个位置运行的客户端活动可能会受到本地网络的瓶颈,那么这可能不是一个很好的测试?因此,我不是说在运行100K客户端的不同位置有10个JMeter客户端,而是认为让1000个JMeter客户端分别测试1000个用户,这些客户端来自不同的位置可能会更好......但是这可能不是很重要?

4 个答案:

答案 0 :(得分:1)

我认为,在高层次上,可能会有遍布全球的测试节点。每个都包含验证和执行某种类型的事务的逻辑。测试帐户块可以分发到每个节点,每个节点将并行启动测试。

在实际层面上,我将首先看一下框架locust.io声称它在标记行中执行此操作:)

http://locust.io/

答案 1 :(得分:1)

您可以使用apache jmeter或我的个人偏好siege

在围攻的情况下,我会考虑生成一个urls.txt文件,其中包含数百个网址,每个网址代表来自用户的呼叫并同时运行它们。

至于你对这些地点的关注 Blazemeter也进行了地理分布式压力测试

答案 2 :(得分:1)

您可以查看Tsung工具http://tsung.erlang-projects.org/ 它的重量非常轻,允许从普通机器运行数十万虚拟用户(取决于您的脚本难度)。

答案 3 :(得分:0)

虽然您无法在这些网站上执行多步骤自动化,但以下服务可让您点击来自不同客户位置(例如亚洲,北美,澳大利亚)的网址,并在您希望进行测试时限制带宽用途:

WebPageTest - https://www.webpagetest.org/ - 来自他们的关于页面:" WebPagetest是一个开源项目,主要由Google开发和支持,作为我们努力提高网络速度的一部分。"这个站点还有一个api,是opensource,允许你通过节点​​api和cli自动化它。

Pingdom的 https://tools.pingdom.com/

this blogpost from KeyCDN

中的更多信息