摘要:性能测试可以测算出应用系统能够承受的负荷,从而保证系统在实际压力下的正常工作。本文通过一种能够模拟真实用户实际行为的方法,对应用系统进行性能测试,获取数据进行分析,并对其性能指标进行比较,找到系统瓶颈,从而进行性能优化。
关键字web应用、性能测试、loadrunner
引言
WorldWideWeb简称Web或WWW,中文名字万维网。是自20世纪90年代以来最重要的Internet应用。作为一种资源的组织和表达机制,Web已成为Internet最主要的信息传送媒介。
随着Internet的迅速发展,web应用越来越深入人们的工作和生活。java自1995年问世以来,由于其简单易学、跨平台、纯面向对象等诸多优点吸引了人们。因此基于java的web应用程序得到了广泛的应用。软件除了能满足用户的需求之外,还要保证各个部分协调有效的运行,发挥整个系统的一体作用,因此软件的性能也是非常重要的。在保证软件质量的过程中,需要进行各种测试,例如功能测试、性能测试、可用性测试、客户端兼容性测试及安全性测试。由于基于web的B/S架构的应用程序,客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器承担,这使得服务器的负担很重。因此系统并发的用户数,系统的事务率及响应时间,在基于JAVA的web应用程序尤其重要。所以本文着重描述其性能测试。
1.软件性能测试
软件性能测试是为了描述对象与性能相关的特性并对其进行评价,而实施和执行的一类测试。性能测试主要检验软件是否达到需求规格说明中规定的各类性能指标,并满足一些性能相关的约束和限制条件。
中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。
本文主要关注应用在客户端性能的测试。
应用在客户端性能测试的目的是考察客户端应用的性能,测试的入口是客户端。它主要包括并发性能测试、疲劳强度测试、大数据量测试和速度测试等,其中并发性能测试是重点。
并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接受的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。负载测试是确定在各种负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相关输出项,例如通过量、响应时间、CUP负载、内存使用等来决定系统的性能。负载测试是一个分析软件应用程序和支撑架构、模拟真实环境的使用,从而来确定能够接受的性能过程。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
并发性能测试的目的主要体现在三个方面:以真实的业务为依据,选择有代表性的、关键的业务操作设计测试案例,以评价系统的当前性能;当扩展应用程序的功能或者新的应用程序将要被部署时,负载测试会帮助确定系统是否还能够处理期望的用户负载,以预测系统的未来性能;通过模拟成百上千个用户,重复执行和运行测试,可以确认性能瓶颈并优化和调整应用,目的在于寻找到瓶颈问题。
2.基于JAVA的WEB应用程序性能测试策略
软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程,所谓控制条件应包括正常条件与非正常条件。对任意一个程序进行的测试,无论使用自动化的测试工具或是手动测试,穷尽测试是不可能。任何一个经过严格测试的程序,也不能保证其百分之百的正确。
因此,为了较少这种不必要的错误。测试之前一定先要制定其测试策略,测试计划,选用合适的测试工具,从而设计出高效的测试用例。只有这样,一个好的测试策略和好的测试计划才能做到事倍功半的作用。
基于JAVA的web应用程序性能测试重点在于并发测试。并发测试一般使用虚载测试的方法,即通过一个控制器发送测试信息给多个参与测试的主机,在每台机器上模拟多个用户的操作(使用多个进程或线程)向服务器发送用户请求,使系统运行起来。
基于以上的工作原理,其性能测试采用的策略主要有:
(1)脚本的个数、负载生成器和每个组中包括的VUSER数为固定数。
(2)脚本的个数、负载生成器和每个组中包括的Vuser数可以以一定的百分比进行改变。
(3)可以固定虚拟用户数、每秒事务数、每分钟也面数及事务的响应时间。
(4)可以设置脚本的种类
(5)设置不同的操作系统,模拟真实的用户现象。