捉虫记--大容量Web应用性能测试与LoadRunner实战(连载五)

发表于:2013-5-28 10:03

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:施迎    来源:51Testing软件测试网采编

分享:

  5.1.14  耐久度测试(Endurance Testing)

  耐久度测试又叫做浸泡测试(Soak Testing),具体方法是令被测试的软件系统、Web应用在大负荷条件下长时间运行,从中发现问题。从这个定义来看,被测软件系统或者Web应用长时间处于测试状态下,用"浸泡"来描述是很恰当的。

  耐久度测试所能发现的问题都和被测系统运行时间变长后,一些资源无法释放,导致系统响应时间慢慢变长有关。详细而言,有以下几类:

  严重的内存泄露(请见并发测试小节)导致系统内存慢慢不够使用。

  数据库连接、数据库游标、应用服务器资源等没有适时释放,导致系统变慢。

  被测系统代码中的数据结构不甚健壮或合理,在长时间运行后,对其的增加、删除、修改、查询等速度出现问题。

  耐久度测试需要至少关注以下一些指标:CPU使用率、可用内存、内存使用百分比等。通过隔一段时间记录以上的指标,最终形成数据表和相应的图,从中可以找到规律,如图5-8所示,它是在进行一次耐久度测试时,每小时在线用户数量的结果绘图。

图5-8  某网站最近6天每小时在线用户统计

  根据图5-8的变化规律,再结合耐久度测试中定时记录的CPU、内存等指标,如果二者规律不符合(比如当在线用户数少的时候,内存占用并没有下降很多),就可以分析出有关资源分配是否正常的结论。

  耐久度测试可以在代码开发阶段,也可以在网站版本接近完成、准备上线前,更可以在网站运行当中。因此,根据这几种情况,进行耐久度测试的时间长度有所不同,但总的原则都是测试时间要尽可能地长,这样才有"浸泡"的作用。

  代码开发阶段,主要看开发工作的时间安排与发现问题的早晚。如果运行早期就发现了内存泄露问题,可以中断进行代码的修改。

  网站版本接近完成的时候,主要看网站上线时间安排,和发现问题的大小。如果上线时间不变,则耐久度测试进行到上线为止。

  网站运行当中的耐久度测试,由于要定时记录各种指标,对于网站本身可能影响较大,需要择机进行,比如在长假、长周末等时间。

  【耐久度测试与其他测试的区别】

  耐久度测试主要考虑的是时间对于系统或者Web应用的影响,因此,它测试的时间要比其他方法,如性能、压力、负载等测试要长得多。另外,它关注的是系统在一个渐进的资源消耗过程中的表现,与压力测试关注一个固定指标下(可以看作一个时间点)系统的表现、负载测试关注最终的那个最大负载(也可以看作一个时间点)、并发测试关注并发操作发生时系统的表现(也可以看作一个时间点)都不同。

  5.1.15  可靠性测试(Reliability Testing)

  可靠性测试(Reliability Testing)方法实际上就是前一节所说的耐久度测试,只是这个词一般用于测试大型软件,特别是应用于工业、交通等的行业软件。这是因为IT领域的可靠性测试这个词是从制造业"引用"过来的,带有些许传统大工业机器制造的意味。

53/5<12345>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号