
| 出版日期:2005-03-07 总期号:1392 本年期号:15 |
|
性能测试:软件测试的重中之重
文 中国软件评测中心 听完郭沈贤对软件测试和网络测试的介绍后,谢常君开始寻找资料恶补测试方面的知识。郭沈贤得知后打电话给谢常君:“老谢,我向你推荐一篇中国软件评测中心介绍软件测试的文章,它从自己实际经验出发,介绍了软件测试的重点,相信对你理解软件测试有帮助。” 性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样。中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。 在客户端性能的测试 应用在客户端性能测试的目的,是考察客户端应用的性能,测试的入口是客户端。它主要包括并发性能测试、疲劳强度测试、大数据量测试和速度测试等,其中并发性能测试是重点。 ·并发性能测试是重点 并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接受的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。负载测试(Load Testing)是确定在各种工作负载下系统的性能,目标是当负载逐渐增加时,测试系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的性能。压力测试(Stress Testing)是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。电信计费项目就是一个实际例子。 并发性能测试的目的主要体现在三个方面:以真实的业务为依据,选择有代表性的、关键的业务操作设计测试案例,以评价系统的当前性能;当扩展应用程序的功能或者新的应用程序将要被部署时,负载测试会帮助确定系统是否还能够处理期望的用户负载,以预测系统的未来性能;通过模拟成百上千个用户,重复执行和运行测试,可以确认性能瓶颈并优化和调整应用。 ·并发性能测试前的准备工作 配置测试环境是测试实施的一个重要阶段,测试环境的适合与否会严重影响测试结果的真实性和正确性。测试环境包括硬件环境和软件环境:硬件环境,是指测试必需的服务器、客户端、网络连接设备以及打印机/扫描仪等辅助硬件设备所构成的环境;软件环境,是指被测软件运行时的操作系统、数据库及其他应用软件构成的环境。 并发性能测试是在客户端执行的黑盒测试,一般不采用手工方式,而是利用工具采用自动化方式进行。著名的并发性能测试工具有QALoad、LoadRunner、Benchmark Factory和Webstress等。这些测试工具都是自动化负载测试工具,通过可重复的、真实的测试,能够彻底地度量应用的可扩展性和性能,可以在整个开发生命周期、跨越多种平台,自动执行测试任务,可以模拟成百上千的用户并发执行关键业务而完成对应用程序的测试。 在初始的测试环境中需要输入一些适当的测试数据,目的是识别数据状态并且验证用于测试的测试案例。在正式的测试开始以前对测试案例进行调试,将正式测试开始时的错误降到最低。在测试进行到关键过程环节时,有必要进行数据状态的备份。 在测试正式执行时,还需要准备业务测试数据。比如测试并发查询业务,那么要求对应的数据库和表中的数据量以及数据种类能覆盖全部业务。有些软件,特别是面向大众的商品化软件,在模拟真实环境测试时常常需要考察在真实环境中的表现。 ·并发性能测试的种类与指标 并发性能测试的种类取决于并发性能测试工具监控的对象。最关键的是测试过程中对监控对象的灵活应用,例如,目前三层结构的运行模式广泛使用,对中间件的并发性能测试作为问题被提到了议事日程上来。许多系统都采用了国产中间件,选择Java Script监控对象,手工编写脚本,可以达到测试目的。例如新华社多媒体数据库项目。 ·疲劳强度与大数据量测试 疲劳测试是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。疲劳强度测试可以采用自动化工具的方式进行测试,也可以手工编写程序测试。 一般,在服务器能够正常稳定响应请求的最大并发用户数情况下进行一定时间的疲劳测试,获取交易执行指标数据和系统资源监控数据。还有一种情况的疲劳测试是对当前系统性能的评估,用系统正常业务情况下并发用户数为基础,进行一定时间的疲劳测试。 在网络上性能的测试 应用在网络上性能的测试重点,是利用成熟的自动化技术进行网络应用性能监控、网络应用性能分析和网络预测。 网络应用性能分析的目的是准确展示,网络带宽、延迟、负载和TCP端口的变化是如何影响用户的响应时间的。利用网络应用性能分析工具,例如Application Expert,能够发现应用的瓶颈,知道应用在网络上运行时的每个阶段发生的应用行为,在投产前预测应用的响应时间;利用Application Expert调整应用在广域网上的性能。Application Expert能够快速、容易地仿真应用性能,根据最终用户在不同网络配置环境下的响应时间,用户可以根据自己的条件决定应用投产的网络环境。 在系统试运行之后,需要及时准确地了解:网络上正在发生什么事情?什么应用在运行,如何运行?哪些应用程序导致系统瓶颈或资源竞争?这时网络应用性能监控以及网络资源管理对系统的正常稳定运行是非常关键的。利用网络应用性能监控工具,可以达到事半功倍的效果。它们主要用来分析关键应用程序的性能,定位问题的根源是在客户端、服务器、应用程序还是网络。在大多数情况下,用户较关心的问题还有:哪些应用程序占用大量带宽?哪些用户产生了最大的网络流量?很多工具同样能满足要求。 考虑到系统未来发展的扩展性,预测网络流量的变化、网络结构的变化对用户系统的影响非常重要。根据规划数据进行预测并及时提供网络性能预测数据。我们利用网络预测分析容量规划工具Predictor可以做到:设置服务水平、完成日网络容量规划、离线测试网络、网络失效和容量极限分析、完成日常故障诊断、预测网络设备迁移和网络设备升级对整个网络的影响。 从网络管理软件获取网络拓扑结构,从现有的流量监控软件获取流量信息,这样就可以得到现有网络的基本结构。在基本结构的基础上,可根据网络结构的变化、网络流量的变化生成报告和图表,说明这些变化是如何影响网络性能的。 这些网络管理软件可以提供如下信息:根据预测的结果帮助用户及时升级网络,避免因关键设备超过利用阈值而导致系统性能下降;确定哪个网络设备需要升级,以便减少网络延迟、避免网络瓶颈。根据预测的结果还能避免不必要的网络升级。 在服务器上性能的测试 对于应用在服务器上性能的测试,可以采用工具监控,也可以使用系统本身的监控命令。实施测试的目的,是实现服务器设备、服务器操作系统、数据库系统、应用在服务器上性能的全面监控。测试原理图如图所示。
应用在服务器上的性能测试原理图 电信计费测试 众所周知,每月20日左右是市话交费的高峰期,全市几千个收费网点同时启动。收费过程一般分为两步,首先要根据用户提出的电话号码来查出其当月产生的费用,然后收取现金并将此用户修改为已交费状态。一个用户看起来简单的两个步骤,但当成百上千的终端,同时执行这样的操作时,情况就大不一样了。如此众多的交易同时发生,对应用程序本身、操作系统、中心数据库服务器、中间件服务器、网络设备的承受力都是一个严峻的考验。决策者不可能在发生问题后才考虑系统的承受力, 预见软件的并发承受力,这是在软件测试阶段就应该解决的问题。 “新华社多媒体数据库 V1.0”性能测试 中国软件评测中心使用工业标准级负载测试工具对新华社使用的“新华社多媒体数据库 V1.0”进行了性能测试。 性能测试的目的是,模拟多用户并发访问新华社多媒体数据库,执行关键检索业务,分析系统性能。性能测试的重点是针对系统并发压力负载较大的主要检索业务,进行并发测试和疲劳测试,系统采用B/S运行模式。并发测试设计了特定时间段内分别在中文库、英文库、图片库中进行单检索词、多检索词以及变检索式、混合检索业务等并发测试案例。疲劳测试案例是在中文库中并发用户数200情况下,进行测试周期约8小时的单检索词检索。在进行并发和疲劳测试的同时,监测测试指标,包括交易处理性能以及UNIX(Linux)、Oracle、Apache资源等。 |
|||||||||||||||||||||