基于WEB应用性能测试模型的研究

时间:2022-10-30 07:26:32

基于WEB应用性能测试模型的研究

摘 要:随着信息技术的快速发展,越来越多的web应用部署到企事业单位的科研、管理、生产等各个领域,web应用往往存在着用户量大、时效性高、数据量大、和业务逻辑复杂等特点,这对系统性能要求提出了更高的要求。本文通过研究web应用性能测试的方法,对标和分析及自动化测试工具,结合反馈控制理论,提出了基于web的反馈控制性能测试模型,并对模型进行设计、实现和验证。

关键词:Web;性能测试;测试模型;反馈控制

中图分类号:TP311.52

目前基于web的系统在当代互联网盛行的时代被广泛应用于社会的各个领域,比如教育、金融、交通、移动通信、汽车以及政府部门等各个领域。由于Web系统具有方便、快捷、易操作等特点,使人们对web系统更加依赖,促进了web系统的广泛应用,实现了各业务领域的办公自动化[4]。但是,在办公自动化的实施过程中,随着办公用户人数的激增、工作流程的变得更加复杂、业务数据量的不断增加,问题也随之而来。如系统异常缓慢、系统宕机、数据处理结果异常等等。因此,web系统是否能够承受大量用户的并发访问,是否能够长时间的稳定运行,是否能够迅速的响应用户的请求,系统的性能瓶颈究竟出现在那个环节上,这些都是软件开发人员和测试人员都必须重视的问题。

1 性能测试方法的研究

性能测试就是通过模拟生产运行的业务压力或用户使用场景来测试系统的性能是否满足生产系能的需求。分为压力测试、强度测试、负载测试、并发测试、海量数据测试、配置测试、可靠性测试等[1]。

1.1 压力测试

压力测试是在大数据量、大量并发用户等负载情况下的测试,测试和监控被测系统在峰值情况的操作行为,从而有效地发现系统是否存在隐患、存在何种隐患、是否具有良好的容错能力。压力测试分为极限负载情况下导致系统崩溃的破环性测试和高负载下的长时间的稳定性压力测试。

1.2 负载测试

负载测试是通过逐步增加系统负载的方式来测试系统各项性能所发生的变化,来确定在满足系统性能指标前提下,系统所能承受的最大负载量的测试。负载测试通常和压力测试在配合一起使用。

1.3 强度测试

强度测试是在系统资源特别低的情况下软件系统进行的测试,以查找系统如何失效,在何种情况下失效,它包括短时间的极端负载测试、过量用户下的负载测试、连续执行所能做的操作。

1.4 并发测试

并发测试的过程是压力测试与负载测试相结合的一个过程,通过不断增加并发用户数最终确定系统不能接受的性能点及系统性能瓶颈的测试[2]。

1.5 海量数据测试

海量数据测试顾名思义是进行单用户海量数据的测试或者并发的海量数据测试。对一些特殊的业务海量数据测试是必须的,例如在执行某一个算法时,当数据量小时,根本无法发现系统的缺陷,只要当数据达到一定的量级时,对系统进行测试,才能发现算法的缺陷,相应时间是否能够达到要求。

1.6 配置测试

配置测试主要是针对不同的软硬件配置对系统进行的测试,来分析在何种软硬件配置下,系统的性能能够发挥最大化,在何种配置情况下,系统会发生故障和缺陷。

1.7 可靠性测试

在特定的软硬件环境下,特定负载、特定时间的情况下,然后监控系统是否可以可靠稳定的运行。在这种情况下运行系统可以发现系统很多潜在的缺陷。

2 性能测试的指标

影响Web系统性能的主要因素包括服务器硬件资源、相关软件配置、网络带宽、系统负载情况、系统的架构等等。其主要典型的指标有系统的响应时间、最大并发用户数、吞吐量、资源利用率等。

2.1 响应时间

响应时间是从用户发送请求到用户得到请求结果所需要的时间。响应时间的长短直接影响着用户的体验度,响应时间越短代表着系统的性能越好。当然在满足用户的性能的情况下,不要刻意的去追求响应的时间,因为响应时间越短,付出的代价也就越高。

2.2 最大并发用户数

最大并发用户数是在一定的时间内,系统能够正常运行所能承载的最大用户数。在同一系统中,因每个业务模块占有资源大小也不一样,其对应的最大并发用户数也不尽相同。

2.3 吞吐量

吞吐量是单位时间内系统可以处理的用户的请求数量。一般通过每秒的字节数或者请求数来衡量吞吐量。通常用户请求数越大,吞吐量就越大,当用户请求数达到一定值时,吞吐量处于饱含状态,当在增加请求数时,系统的性能则会受到一定程度的影响。

2.4 资源利用率

资源利用率一般指系统在运行过程中占有系统不同资源情况,如CPU占有率、内存占用率、网络带宽占用情况等等,通常资源占有率与系统的用户量呈正比。

3 Web应用自动化性能测试工具对标和分析

当前流行的Web系统自动化性能测试工具有LoadRunner、IBM的Rational Performance Tester、Aapache的Jmeter等,通过对比研究发现,它们都包括负载生成器、虚拟用户发生器、用户工具、负载测试及监视工具、测试结果分析工具等部分。

虚拟用户发生器录制用户浏览器和后台服务器之间的交互过程,在本论文中研究和分析通信协议及自动生成的测试脚本,为后续的模型的设计及实现奠定基础。负载生成器利用脚本对被测系统加载压力,用户工具可以看作负载生成器的一部分,它和负载生成器一起接受系统指挥对虚拟用户程序进行调度。负载测试和监视工具是自动化测试的核心,根据系统性能要求,设计不同的测试场景、设置不同的虚拟用户数及测试边界条件等,并记录测试过程中系统的各项性能指标。测试结果分析工具能够用来辅助测试人员对测试结果进行分析[3]。

4 反馈控制Web应用性能测试模型的研究与设计

Web性能测试采用以下五个步骤:

(1)确认最终测试目的。

(2)制定相应的测试策略及测试计划。

(3)执行测试计划、在线收集测试数据。

(4)针对测试结果进行分析。

(5)根据分析结果调整测试策略,并重新执行测试。

当使用Web自动化性能测试工具对系统进行性能测试时,需要根据前一次的测试情况及分析结果,调整对应的测试策略重新进行测试n次。以系统压力测试为例,在系统性能可接受的范围内,对系统不断的施加压力,来确认系统可以支持的最大负载。基于web反馈控制性能测试模型是将第3步在线收集的测试数据反馈给制定测试策略的控制器,由控制器对测试结果进行分析,然后根据测试结果对测试策略进行重新的调整,并重新执行测试。性能测试流程如图1所示:

图1 性能测试流程图

反馈控制Web性能测试模型的设计就是将不同的测试方法进行有效的组合,根据性能测试结果和控制器的策略,对系统进行重新测试和加载,实现对各项性能指标的监控,为系统的性能评估提供依据。该模型包含监视器和控制器这两个部分,其中监视器部分是负责在线收集性能测试的数据,监视器运行在被测试系统客户端。控制器部分是Web反馈控制性能测试模型的核心,它负责处理由监视器收集到的性能测试数据,并对这些数据分析,选择最优的测试策略。控制器在处理数据过程中用到的是受控马尔科夫算法,利用性能指标与压力之间的对应关系,尽快发现系统各项性能指标的临界点以及系统的瓶颈。

5 模型的实现与验证

反馈控制Web性能测试模型的实现主要分为两个部分,一个是监视器部分,另一个控制器部分。其中监视器用操作系统本身自带的性能计数器实现对系统资源的监控。在Windows操作系统下实现对资源的监视相对比较方便,只需要被监视系统的RemoteRegistry,NetLogon和NetworkDDE这三个服务处于启动状态,就可以通过网络实现对系统资源数据的监控,然后格式化数据提供接口供控制器访问。

控制器部分主要是将控制器测试策略算法在LoadRunner中编码并实现,实现几种测试方法的有效组合,并根据测试数据及测试分析结果调整测试策略,重新执行新的测试方案。

模型验证测试环境部署如图2所示:

图2 模型验证测试环境部署图

主要通过性能瓶颈的准确性、CPU使用率、磁盘有效工作时间率、宽带使用率、内存使用率方面对模型进行验证,确定反馈控制Web性能测试模型是否能够较快的定位系统最大负载,是否能够准确定位系统性能瓶颈,是否能够显著的提高性能测试的效率。其中准确性的验证为例,实测环境和模拟环境的对比,来分析各个性能指标的差异,并输出相应的验证报告。

参考文献:

[1]谈姝辰,尹军.基于负载的Web性能测试研究与应用[J].现代电子技术,2007(14).

[2]杜香和.Web性能测试模型研究[J],西南大学,2008.

[3]赵佳佳.Web性能测试与瓶颈分析的研究[J].长春理工大学,2012.

[4]孙立友,梁宏英.基于Web系统的性能测试[J].数据技术与应用,2014.

作者简介:邵学彬(1986-),男,助理工程师,硕士研究生,研究方向:汽车行业数据服务平台开发与建设、软件开发与测试;田玉靖(1987-),女,工程师,硕士研究生,研究方向:汽车行业服务软件开发。

作者单位:中国汽车技术研究中心 数据资源中心,天津 300000

上一篇:基于Pro/E_ANSYS和ADAMS的龙带传动系统的动力... 下一篇:基于单片机的户外型智能晾衣架设计