胡 芳
[摘要]随着软件应用越来越广,软件质量成为人们共同关注的话题,软件性能则是软件质量中相当重要的部分。常规的软件性能测试中都需要引入工具,QAload则是普遍运用于软件性能测试的工具之一。因此,以常规的性能测试的过程为基础,讨论如果用QAload进行性能测试。
[关键词]软件性能测试QAload
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)1220061-01
一、引言
随着企业需求的日益增长以及计算机技术的不断发展。企业的应用系统承载了越来越多的负载,从而对系统的要求越来越高,要求企业的应用系统在满足特定功能的同时也需要满足相当的性能需求。系统性能的好坏直接影响企业对外提供服务的质量,所以,需要用性能测试保证软件的质量。
二、性能测试基础
软件的性能包括很多内容,如软件对用户操作的响应时间,软件最多支持的并发用户数,系统最大的业务处理量,软件长时间连续运行的稳定性等等。
软件的性能测试同软件的功能测试类型,需要经历测试分析,测试设计,测试执行,测试结果分析几个过程,下面将对各个过程进行分别讨论。
(一)测试分析。测试的分析室性能测试工程中非常重要的部分,直接影响测试的正确性及有效性。测试分析部分的主旨是根据对系统的全面分析,包括系统架构的分析和系统的用户分析等,来确定性能测试的目的和性能指标。
1.确定测试目的。在测试分析的过程中,首先要明确测试目的,为制定测试计划做好准备。测试的目的通常分为三类:性能符合性验证,性能能力验证,系统性能调优。
性能符合性验证主要是为了检测系统的性能是否达到用户对系统性能的要求。
性能能力验证主要是为了了解软件系统的整体性能状况,如软件支持的最大并发用户数等等。
系统性能调优则是通过性能测试找出系统性能的瓶颈,分析出导致系统瓶颈的因素,通过改善这些因素达到提高系统性能的目的。
2.确定性能指标。性能指标主要包括系统的响应时间,最大并发用户数,吞吐率,资源利用率等等。
性能指标的确定根据软件系统的不同而不同。有的可以根据业界的通用标准而制定,有的则需要跟产品的其他版本进行比对。
(二)测试设计。测试设计部分主要是负责根据测试分析的结果,进行测试案例的设计。测试案例设计的主要部分是确定测试场景。
确定测试场景是依据用户行为模型以及测试目的建立测试用例和场景的过程。一个典型的场景包括操作序列,并发用户数量条件。不同的测试目的也对应着不同的测试场景。例如在系统符合性验证的测试中,则主要是模仿常规的用户操作系列和并发用户数,来检验系统是否满足用户的需求。在系统能力验证的测试中,则需要设计在常规的用户操作系列下尽可能多的并发用户数的案例,来达到“探索”系统能力的目的。而系统调优的测设中,则需要针对用户操作系列中的若干操作点,设计不同的并发用户数的案例,找出系统的性能瓶颈。
(三)测试执行。测试执行部分是根据测试设计的结果,将所得到的测试案例执行的过程。测试执行部分分为搭建测试环境,部署测试脚本和测试场景,执行测试和记录结果三部分。
测试环境的搭建旨在保证测试结果的正确性和有效性。包括软件运行的软硬件环境的搭建和数据环境的搭建。
部署测试脚本和测试场景通常是根据设定的测试场景,利用工具对其进行部署。部署结束后就可以执行测试并记录结果。
(四)测试结果分析。性能测试结果分析是性能测试过程中最困难,然而也是最重要的步骤。性能测试结果分析需要分析人员对测试结果中的各项数据有准确的认识,明确各指标之间的关系。性能测试结果的各项数据指标并没有显而易见的联系,在多数情况下都需要综合考虑各种因素,才能得出最终的结论。
三、用QAload进行软件测试
(一)QAload简介
QALoad为主从应用系统、企业资源规划(ERP)和电子商务应用软件的自动化负载与压力测试工具。QALoad模拟成百或上千的使用者执行关键业务,对应用程序进行负载测试。
(二)QAload的产品组成
QALoad从产品组成来说,分为4各部分,Scrip Development Workben
ch,Conductor,Player,Analyze。
Scrip Development Workbench:这个可以看作是录制,编辑脚本的IDE。它支持的协议包括WWW,数据库访问等等。录制的动作序列最终可以转换为一个cpp文件。
Conductor:对于脚本运行时的配置,由Conductor负责。对于实际的一个测试,特别是性能测试,需要确定:1.部署在哪些player上面;2.有
多少虚拟用户(virtual user);3.每个用户运行多少次Transaction等等。
Player:Player就是一个Agent,一个运行测试的agent,可以部属在网络上的多台机器上。
Analyze:Analyze是测试结果的分析器。它可以把测试结果的各个方面展现出来。
(三)用QAload进行性能测试
下面介绍用QAload进行性能测试的步骤:
脚本录制:首先在workbench里录制脚本。选择相应的通信协议后点击“录制”按钮,此时用户操作开始被记录,完成用户操作系列后结束录制。一个录制过程的结果是一个capture文件(以cap为后缀名)。
编辑并编译脚本:录制完后可以创建一个可编辑的脚本文件,即一个.c文件,根据测试的需要对脚本进行编辑,之后编译脚本生成.dll文件。
部署测试脚本和测试场景:启动conductor,新建一个session,根据测试案例配置session,即指定player和dll文件。
执行测试:在conductor里,执行此session。执行文件会自动发送到player那里执行。
分析结果:player执行dll,产生一个timing文件,执行完毕后,conductor把所有player产生的timing文件交给Analyze分析,analyze生成各种报表,把测试结果展现给用户。
参考文献:
[1]段念,软件性能测试过程详解与案例剖析[M].北京:清华大学出版社,2006.
[2]http://www.51testing.com/index.php?uid-764-action-viewspace-itemid-16628.