论文部分内容阅读
在市场需求的推动下,Web应用如今已经从一般的网站发展成为大型电子商务、信息发布和提供各种服务的平台,软件规模不断扩大,软件复杂性不断增加,但是激烈的商业竞争使软件开发周期缩短,如何保证Web应用的正确性和可靠性越来越成为人们关注的问题。作为保证软件质量和可靠性的重要手段,Web应用软件的测试就成为如今开发过程中的一个重要环节。对Web应用系统的测试包括系统功能测试、性能测试、安全性测试等。其中,性能测试尤为重要,因为性能直接反映了Web所提供服务的质量水平,同时由于Web具有动态特性,它的用户数目和数据传输速率都在不断变化,所以性能问题成为困扰Web应用发展的最大问题。目前,国内外研究机构已经对Web应用软件的性能测试进行了大量研究,提出了一些性能测试方法,并开发了许多测试工具。比较成熟的性能测试方法主要有:虚拟用户方法,WUS方法和对象驱动方法。这些方法各有侧重点,虚拟用户方法通过模拟真实用户的行为来对被测程序施加压力,WUS方法意在建立真实的测试场景,对象驱动方法强调测试Web的组成对象。针对Web性能测试的测试策略选择与优化研究较少,而正确选择测试策略对提高性能测试效率具有重要意义。本文在分析现有性能测试模型基础上,结合软件控制论思想,提出一种反馈控制Web性能测试模型,目的在于寻找最优的性能测试策略,以消耗最小代价,达到性能测试的目标。反馈控制Web性能测试模型使用受控马尔可夫链描述,将测试过程分解为不同的状态,测试策略驱动测试过程从一种状态向另一种状态的转变,不同的测试策略将产生不同的状态,选择最优的测试策略,使测试过程迅速向目标状态收敛,完成测试。本文围绕反馈控制Web性能测试模型展开研究,主要研究工作涉及以下几部分:(1)反馈控制原理在性能测试中的应用。在分析现有性能测试方法特点的基础上,结合反馈控制原理,研究了如何将测试反馈信息与测试策略相结合的问题。(2)反馈控制Web性能测试模型的建立。研究如何使用受控马尔可夫链描述模型,对模型抽象;考虑如何设计最优测试策略既避免决策时计算量过大,又利用Web性能测试特点。(3)模型仿真。分析开源性能测试工具JMeter和Web服务软件Apache,结合反馈控制Web性能测试模型思想,对JMeter和Apache进行适当修改、添加模块,仿真模型。本文追踪了性能测试方法国内外最新研究成果和性能测试工具的发展,在此基础上结合软件控制论思想,提出反馈控制Web性能测试模型,主要包括以下研究成果:(1)使用受控马尔可夫链描述Web性能测试模型。马尔可夫链是指数学中具有马尔可夫性质的离散时间随机过程,研究中将Web测试过程分解为不同的状态,对系统状态和测试策略抽象,完成使用受控马尔可夫链描述Web性能测试模型。(2)为反馈控制Web性能测试模型的核心——控制器建模。控制器负责测试策略的选择,文章分析了决定测试策略优劣的关键因素,结合Web性能测试中性能指标与测试策略之间的关系,建立了测试策略最优化选择模型。最后,利用作者开发的模型仿真程序,对Web服务器进行压力测试,测试结果表明:使用反馈控制Web性能测试模型能够较快的定位系统最大负载,确定系统瓶颈位置,显著提高性能测试效率。