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

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

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

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

  5.1.10  并发测试(Concurrency Testing)简介

  并发测试(Concurrency Testing)方法通过模拟很多用户在同一时刻访问系统或对系统的一个功能进行操作,来测试系统的性能,从中发现问题。网站就是一个很典型的需要并发测试的应用场景:当网站运行的时候,在世界各地同一时刻都可能有很多用户在进行同一个操作,如图5-6所示。除此之外,类似的还有银行的某些系统、航空的某些系统等,它们都需要大量用户同时访问和操作。

图5-6  用户对Web应用的并发访问

  类似小白在本章开始对公司测试网站的访问是无法发现可能存在的并发问题的。即使是公司所有的同事一声令下,也无法做到比较精确的同时访问,数量也很不够。因此,并发测试是无法用人工的方式来完成的,必须依赖一些工具软件来模拟实现,比如HP公司的LoadRunner等,这个软件我们将在后面的章节专门介绍使用方法。

  并发测试所要考察的是系统在并发处理方面是否存在缺陷。实现并发的编码与原理是比较复杂的,需要很高级的开发技巧,因此不在本书介绍的范围之内。在实际工作中,我们只需要了解如下3个要点:

  并发测试需要用工具模拟多用户的访问。

  要熟悉第一点提到的工具测试并发的操作。本书介绍的是LoadRunner。

  要了解并发测试所关注的性能问题是什么。

  至于并发中深入的线程、进程、内存泄露等知识,则需要在工作中遇到问题时来学习了。

  5.1.11  并发测试所关注的性能问题

  并发测试关注哪些性能上的问题?为了理解方便,我们用一个通俗的例子来说明。

  还是利用传统的类比--饭馆,毕竟民以食为天。在某一时刻的饭馆中,有很多客人都在吃饭,这可以说是一个并发场景。于是,可能出现的问题有如下几个(当然不限于以下的这些):

  餐桌是有限的,客人很多,超出桌子数目,只能排队叫号了。类似这样抢空闲桌子的情况在程序代码中也会出现,叫做资源(内存等也被称为资源,程序运行需要在内存中,而可用的内存又是有限的)的争用(Race)。

  如果饭馆还有一个空桌子,但被别人电话预定了,而此时饭馆等位的人又很多,服务员该如何处理呢?一般是等待15分钟、联系预定人的电话等方法。类似这样有关保留预定与放弃预定的情况在程序代码或者数据库中也会出现,根据条件不同(比较复杂,涉及类似多个客户订同一张桌子等细节),分别叫做活锁(livelock)和死锁(deadlock)等。

  如果饭馆的服务员应付众多的客人已经忙不过来;或者就是服务员忘记了,经常会出现这样的情况:有一桌客人在吃完饭后已经结账走人,但服务员并没有及时的清理桌布,收盘子、擦桌子等,导致后面的客人无法使用这张桌子进餐,无形中使得饭馆的接待能力下降。由于代码的问题使得类似上面这样的情况在程序运行中也出现,就叫做内存泄露(Memory leak)。

  以上几个类比可能不很确切,但是引申出了一个结论:并发测试所关注的性能问题就是:系统中的内存泄露、线程控制(锁的问题)和资源争用。

51/512345>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号