使用云服务对Web应用进行压力测试

5

我正在进行一项关于可扩展性的研究项目。我已经在Windows Azure上创建了一个Web应用程序,现在需要使用数百万用户进行测试。我想做以下几点:

  • 创建一个简单的程序,使用Selenium向Web应用程序发送请求
  • 将此程序集成为另一个Azure云服务
  • 增加实例计数以增加并发连接数量

我想使用Selenium而不仅仅是发送普通的HTTP请求的原因是我还需要测试应用程序的JavaScript。我的问题是:

  • 是否可以将Selenium作为Windows Azure工作角色/虚拟机使用?
  • Selenium能否同时发送多个请求?我将使用多个实例,但每个实例需要能够每秒生成约2000个或更多的请求,这是否可能?

是否可以使用Selenium完成此操作,或者有更好的方法?我也看到过JMeter,但由于它是Java编写的,我认为我不能将其用作Azure工作角色。

要求: 在大约15分钟至30分钟内生成1亿次点击 我预计将在Azure上使用大约40-50个实例,这意味着每个实例需要每秒生成约2000个请求。


+1,好问题,我很想听听有没有人尝试将其与Azure集成,这是我一直想尝试的事情。 - Arran
请参考我在关于负载测试的类似问题上发布的这个答案 - David Makogon
3个回答

3

Selenium适用于功能测试,但据我所知,它模拟单用户场景。

JMeter更适合负载测试。

然而,如果您正在寻找一种云服务来进行负载测试,请查看Blitz.io

一些其他的替代方案是(有些需要下载)

  1. Soasta
  2. Neotys
  3. Loadimpact.com

2
Selenium的优点在于可以使用多种浏览器进行测试——因为JavaScript语言会破坏不同的浏览器。而JMeter则提供了许多其他有用的功能。
我们为Amazon AWS构建了类似的服务。该服务是免费的,并且负载代理在您的AWS账户上作为spot实例运行。我们不确定Amazon spot实例的价格与Azure相比如何,但我们能够模拟200个m1.small实例上的50,000个用户,每小时仅需2美元。我们已将此服务发布给其他人使用——请参考www.redline13.com

1

由于您标记了C#,我假设您正在使用Visual Studio。

您可以通过同时使用Visual Studio Online和Visual Studio Ultimate来实现您想要的功能。更多详细信息请参见此处:在云中加载测试以查找性能问题


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接