以前,我从来不需要使用商业负载运行工具,因为我们的测试基础结构在这里还很不成熟,并且我过去使用过内部工具。我们正在使用Visual Studio TFS作为主要开发环境/源代码控件的.NET技术堆栈,并且将需要在不久的将来进行负载测试。我们将在多个级别上对系统进行负载测试-数据库,客户端应用程序(例如,当X个客户端应用程序实例同时访问后端API时会发生什么?),等等。作为负载测试的低优先级形式之一在Web应用程序上进行测试。我看到了两个明确的选项(但对其他人开放):


购买LoadRunner之类的工具
扩展为测试运行用户测试而构建的基础架构在多台机器上同时使用AWS作为机器和模拟用户(我们的IT部门工作过度,资金不足且沟通不佳;不能期望他们为VM提供良好的支持或硬件)

购买负载测试工具与开发自己的负载测试工具有何利弊?如果开发自己的工具,我应该注意哪些陷阱?另外,除了LoadRunner之外,还有哪些用于常规负载测试的商业选项,我在看什么价格范围?

评论

其他人已经很好地回答了您的问题,只有一条评论。当您说要在客户端应用程序级别进行负载测试时,只需确保您正在模拟来自客户端的负载,即击中客户端使用的任何API或通信层,但实际上并没有执行客户端。尝试生成负载时,浏览客户端太慢而无法实际使用。

#1 楼

根据我的经验,我对VSTS测试版说“是”。


我使用VSTS连续进行了4个小时的负载测试,使用4台测试机模拟了最多60个请求/秒,OLTP应用程序
Web Service / Biztalk / SQL Server /复制/基于Service Broker的体系结构
VSTS测试-轻松将数据绑定到测试。这很简单(http://blogs.msdn.com/b/slumley/archive/2006/12/15/custom-data-binding-in-web-tests.aspx)
学习曲线很容易(VSTS图书http://vsptqrg.codeplex.com/,视频-http://blogs.msdn.com/b/jmeier/archive/2007/10/27/performance-testing-videos-posted-to-codeplex。 aspx)

我们能够模拟所需的负载,测量性能,查询中的延迟问题,复制,Web服务响应。 VSTT在功能,支持方面进行了很多改进。请花点时间尝试一下。

评论


我在星期五尝试了一个虚拟实验室,它看起来非常合适。我们已经拥有VS 2010 Ultimate(具有MSDN成员身份),因此继续使用此技术非常有意义。

– Ethel Evans
2011年10月31日在17:32

还请检查思考时间(两次请求之间的时间),用户,测试组合。在数据库计数器/查询上添加更多详细信息,可能有助于您进行分析。 -用于识别/捕获阻止/运行缓慢的查询的自定义SQL查询(DMV查询-blogs.msdn.com/b/jimmymay/archive/2008/10/30/…)-Windows,DB,复制问题(blogs.technet.com/b/vipulshah/archive/2006/11/30/…)

–西瓦
2011年10月31日在18:40

#2 楼

要考虑的事情:


Load Runner的学习曲线,由于我的有限接触,它相当陡峭。
由于您已经使用了TFS,因此请查看VS2010负载测试功能。它可以满足您的所有需求。
从您现有的测试解决方案中提取必要的负载/性能指标将非常困难。我已经看到这是原本在技术上出色的定制负载测试解决方案的失败。解决了该问题,但带来了很多额外的工作和压力。
维护工作不断向前。每个发行版有多少更改,发行版有多频繁,以及升级测试脚本以适应新发行版需要多长时间。
当前和将来的成本。不要忽略任何一种解决方案的维护成本。


#3 楼

我的团队目前正在尝试VS2010负载测试。到目前为止,它看起来不错,但是仍然必须尝试一些更高级的方案。我们部门最近很少训练,就让Load Runner降落在我们身上。说学习曲线陡峭是一种轻描淡写的说法。此外,您还想找到一些.NET以外的测试人员和/或开发人员。从我们已经看到的情况来看,如果您想自己创建/修改脚本,则似乎需要使用Java或C来完成(对于我们的.NET商店来说,还不是很好)。对于运行测试的每种协议,许可也可能是杀手er,因为每种协议都需要不同类型的许可。目前,要使其与我们的一些Web服务正确交互,我们遇到了很多困难。尽管Load Runner似乎被认为是标准,但我个人认为使用它的人应该专门研究它。

使用任何性能测试工具都会遇到的一件事,它需要大量维护。只需考虑一下您当前使用测试自动化进行的维护,然后必须再次进行。它与任何其他测试自动化一样脆弱。

其他选项:
Visual Studio 2010负载测试:可以从Visual Studio 2010 Ultimate运行。在客户端计算机上,最多可以执行250个并发用户(尽管我永远不会信任1台计算机来执行此操作)。如果与MSDN许可证结合使用,则似乎可以很好地将您自己的计算机用作控制器,将其他物理或虚拟机用作代理来运行测试。提供了不错的浏览器和连接类型的组合,但不是很好的组合。目前,只有代理只能是Windows操作系统。

JMeter:开放式。有些人对此解决方案发誓。我获得的成功还有限。在同一台计算机上大约有20个并发用户后,我注意到结果出现了偏差。我已经进行了测试,我在其他人使用规格完全相同的机器之后立即运行小脚本,并发现有50%的差异。这很大程度上取决于您的实际需求。最好让您的团队和利益相关者坐下来,决定要从测试中推断出什么样的指标。然后,您可以开始缩小选择哪种技术最适合您。

我绝不是这个问题的专家,只有我的2美分。

评论


谢谢,这真的很有帮助。我接受了Steve的建议,并于昨晚使用Microsoft虚拟实验室试用了VS 2010负载测试。看起来不错,但我想知道。 。 。我必须运行Web测试吗?还是可以将任何测试/脚本用作负载测试的基础?我们确实有MSDN许可证,所以很好。此外,它可以与AWS一起使用吗?我们公司有。 。 。问题。 。 。拥有硬件或设置VM,因此我需要解决这些限制。

– Ethel Evans
2011-10-28 17:54

真的不确定。这些实际上是我本周末希望尝试的事情类型

– Lyndon Vrooman
2011年10月29日在1:18

“我们部门最近没有经过培训就让Load Runner降落在我们身上。”这是使用任何工具成功的已知反模式。不幸的是,如今这已成为性能工具的管理规范,无视供应商。管理层的行为几乎可以保证LoadRunner使用时的投资回报率较低或为负数。

–詹姆斯·普利(James Pulley)
2011年10月31日14:30在

针对Ethel的评论,是的,您可以运行其他测试脚本。 Visual Studio LoadTest允许您执行使用Visual Studio单元测试框架进行的任何测试设置,这意味着您可以使用任何.net编程语言创建任何测试,并根据需要使其变得复杂或简单。

–山姆·伍兹(Sam Woods)
2011年10月31日下午16:39

#4 楼

尝试一下SOASTA CloudTest Lite怎么样?它是免费的,具有实时分析功能,当您准备进行扩展时,可以从SOASTA Global Cloud运行测试。

看看,也许这就是您所需要的:http:/ /www.soasta.com/cloudtest/lite/
这里还有很多视频教程:http://cloudlink.soasta.com/t5/Training-Videos/bg-p/TrainingVideos

弗雷德