乔志杰 田剑
摘要:随着Web应用范围不断扩大,对Web的性能测试显得尤为重要。现有Web性能测试中只考虑了系统吞吐量、平均事务响应时间等性能指标,并没有考虑到用户在操作过程当中的实际问题。本文从用户角度出发,充分考虑用户访问特征,将用户访问时的思考时间融入到Web性能测试中,以提高性能测试的可靠性。本文通过LoadRunner性能测试工具对自带的飞机订票系统进行了测试验证,验证结果表明了本文方法的有效性。
关键词:性能测试;思考时间;LoadRunner
中图分类号:TP391文献标识号:A 文章编号:2095-2163(2015)04-
A Web performance test model based on User access to features
Qiao Zhijie, Tian Jian
(Sinopec Northwest oil field branch,Urumqi 830011, China)
Abstract:
As Web application scope expands unceasingly, the Web performance test is particularly important.Existing Web performance tests only considers the system throughput, the average transaction response time, such as performance index, did not take into account the user in the operating process of the practical problems.This article from the perspective of the user, fully considering the user access to features, integrates the user think time when access into the Web performance test, in order to improve the reliability of the performance test.In this article, through LoadRunner performance test tool for aircraft booking system test verification, validation results show the validity of this method.
Key words: Performance Testing;Think Time;LoadRunner
0 引言
Web系统以其广泛性、交互性和易用性等特点迅速风靡世界,且呈现出指数级的高度增长[1]。随着需求量应用领域的日渐扩大,即针对基于Web的软件和系统的正确性、有效性也相应提出了越来越高的质量要求,Web测试已经成为软件工程领域的重点研究课题[2-4]。Web系统应用如果能保证用户访问的安全可靠、准确快速,将会成为整个计算机软件系统发展中取得的又一重大突破[5-7]。如果在Web系统开发过程中的性能缺陷可以通过系统测试进行正确、及时的定位,即能减少系统的潜在风险,而且也可为系统的优化、开发和原有系统的更新提供基础技术依据,同时更对系统的发展完善与长期使用具有至关重要的标志性意义。性能是决定Web应用程序成功与否的重要因素之一,从用户角度来说性能有时比功能更为重要。为了提高系统性能,Web性能测试即已成为Web应用研究性能问题的首要步骤[8-10]。Zona一份研究报告的数据统计,页面的下载时间减少1秒,用户放弃率将从30%下降到6%-8%;而由于性能问题,超过34%的用户没有从最初访问的网站购买商品,特别地其中有21%的用户后来则从别的网站购买了商品。因此,要保证基于Web的系统达到预期的性能,开发过程必须进行性能测试。
本文从Web性能测试模型出发,通过研究用户访问特征,将用户访问中的思考时间,响应时间等因素融入到Web性能测试模型中,提高了Web性能测试的可靠性与准确性。
1 基于用户访问特征的测试模型
1.1 Web性能测试
性能测试的主要目的是为了维护系统的性能并找到有效的改善策略。在进行Web应用性能测试时,以下因素将成为影响性能测试的瓶颈:真实环境与测试环境差异大,负载的不确定性,模拟真实环境困难和模拟真实用户行为困难等。
目前,主要用吞吐量、响应时间、资源利用率、并发用户数和TPS等来作为衡量Web系统性能的技术指标,即通过这些指标分析出系统性能的好坏。现有测试模型尽管考虑比较周到,但并没有从用户的实际行为出发,同时也缺少对用户的特征的分析。Web性能测试指标并不是各自独立地发挥作用,而是具有一种相互影响、相互依存的综合性效果作用。因此,充分考虑用户实际行为即对性能测试的影响尤显必要。
1.2用户访问特征
差异性存在于万事万物之中,用户访问特征其实也是具体操作过程中差异性的体现。因其面向真实的用户,所以需要考虑不同用户的不同操作情况。Web性能测试通过获得机器不同情况下负载量化分析,由此而得到频率来展开研究。在性能测试的过程当中,只有虚拟用户行为特征更加接近真实情况,才能据此表示和反映出测试精度和可靠性。因此,Web性能测试的用户访问特征可从如下方面进行考虑:思考时间,login Session,超时放弃浏览,动态网页,浏览页。
1.3融入用户访问特征
通过融入用户访问特征,将可使模型更能适应现实环境。结合用户访问特征--思考时间和超时放弃浏览,本文提出了新的测试模型。现对用户访问特征中的重要参数,展开如下论述。
(1)实际请求时间
在实际操作过程中,用户的请求不是连续不断的,而是有停顿思考下一步的时间,所以两者需要一同进行分析。实际的请求时间和事务平均相应时间具有直接关系,事务的平均相应时间越大长,意味着实际的请求时间也不会短。实际请求时间超过了用户可以忍受的范围之内,用户可能会不想等待就在中途放弃了,这会直接导致Web访问的损失。在性能测试中通过添加真实的模拟思考时间,以此来完善原有性能测试模型的不足。思考时间还可以通过预测得到,基于对Web系统用户的信息收集,由此开展分析、并建立模型。在实际的开发过程中用到的方法是剔除法和还原法,对已经得到的数据进行分析和鉴别,并在分析和鉴别的过程中对用户的操作进行适当处理,最后得出预测思考时间。
(2)请求成功率
请求成功率指的就是Web服务器能够正确处理的请求数量和接收到的请求数量的比值,用来表示有效的请求次数。请求成功率不是一个性能指标的结果,而是多个性能指标和性能参数共同作用的现实结果。假如服务器几乎达到了饱和的状态,而在此基础上进一步增加并发用户的数目,将直接导致实际的请求时间随即增加,最终就使得系统处理请求出现失败。
(3)最佳并发用户数和最大用户并发数
系统的总体性能达到最优时可以得出系统的最佳并发用户数,此时系统资源也将获得充分利用,而且响应时间也即处于用户可接受的范围之内。系统的负载能力有限,当超过最大用户并发数的临界值时,用户的满意度即会明显降低,与之相伴相生的将就是放弃。
除了用户的访问特征外,影响Web系统的性能的因素仍有许多,比如用户的熟练程度,对同一操作不同的用户需要的时间也各不一样。需要指出的是,每个用户的思考时间对Web服务器造成的影响也必然不同,Web系统要考虑到的因素更应该将其包括进去。
综上,各种影响因素共同制约了Web系统的性能,本文着重用户访问特征,对比考虑用户时间和不考虑用户思考时间性能的优化情况,以此得到改进后的新模型。
2 测试实例
本文使用的性能测试工具为LoadRunner,测试Web对象为LoadRunner自带的Web Tours飞机订票系统网站,测试中使用LoadRunner的VuGen发生器组件生成测试脚本,同时使用Controller设置测试场景并运行测试,最后使用Analysis组件分析测试结果。
测试目标为机票预定和机票查询时用户的并发访问能力,采用负载测试的方法,以得到系统的极限,由此确认服务器的负载可承受能力。实验测试需求如表1所示。
表1 测试需求表
Tab. 1 Test requirements table
功能模块 用户需求
业务类型 机票预定 同时满足250个用户并发,CPU利用小于80%,请求成功率不低于95%
机票查询 同时满足250个用户并发,CPU利用小于85%,请求成功率不低于90%
其他业务 ......
考虑到不同用户的思考时间上的各不相同,熟练用户的一般思考时间为3s,普通用户为5s,新用户一般为15s。根据调查统计得出思考时间,如表2所示。
表2 用户思考时间百分比
Table 2 User think time percentage
思考时间(s) 百分比
熟练用户 3 10%
普通用户 5 65%
新用户 15 25%
以下是虚拟用户数为40、80、150、250时考虑用户响应时间和不考虑用户响应时间的请求成功率对比,对比结果如图1所示。
图1 不同思考时间下的请求成功率
Fig.1 Request success rate under different thinking time
由图1可知,当不考虑用户的实际思考时间(Think time=0),系统的请求成功率保持一个很快的下降态势。但是,当考虑用户的思考时间(Think time=3),系统的请求成功率一直处在较为平稳理想的水平,这就说明思考时间对于系统的优化有着重要的控制作用,将使测试的系统更为正确,测试结果与实际情况更趋吻合。在一定的程度上,也减少了开发的成本。
以虚拟用户数达到40时为例,分析不考虑用户思考时间和考虑用户思考时间的系统优化情况,对比分析并得出结论如下:
(1)机票查询:当虚拟用户为40,对比平均事务响应时间得出响应时间结果,具体如图2,图3所示。
图2不考虑用户响应时间
Fig.2 Regardless of the user response time
图3考虑用户响应时间
Fig.3 Considering the user response time
由图2和图3可知,相同条件下,考虑用户的思考时间,平均响应时间会偏低,用户集中操作相对减少,系统处理的数据单位时间内也会减轻负担,由此系统得到了优化。
(2)机票预订:当虚拟用户为40时,根据每秒HTTP响应数的图进行对比,并得到最终效果。具体如图4,图5所示。
图4不考虑用户响应时间
Fig.4 Regardless of the user response time
图5考虑用户响应时间
Fig.5 Considering the user response time
由图4和图5可知,相同条件下,考虑到用户的响应时间,用户访问不至于过分密集,并且不存在过分波动情况,请求数也趋于稳定,因而系统得到了优化。
3 结束语
Web性能测试是软件系统质量保障的基础,能够使系统的可靠性提高,并为系统优化提供有效的数据。Web系统开发过程中的性能缺陷可及时地通过系统测试进行正确定位,进而减少系统的潜在风险。本文通过在性能测试中充分考虑用户访问特征,从用户思考时间方面着手,通过LoadRunner工具对飞机订票系统进行性能测试验证,验证结果表明了用户访问特征在Web性能测试中的有效性及可靠性,本文可为Web性能测试提供参考借鉴意义。
5 参考文献
[1] 王会青,等.Web应用软件测试方法的研究[J].太原理工大学学报,2007,04:304-306.
[2] 刘亮.基于HTTP/S协议的Web性能测试工具的设计与实现[D].呼和浩特:内蒙古大学, 2005:50-58.
[3] 邓璐娟,范乃梅,孙义坤,等.基于Web应用的性能测试模型研究[J].计算机工程与应用,2013,01:75-77.
[4] 韩国峰.Web系统分布式性能测试工具的研究与实现[D].天津:南开大学,2007:100-102.
[5] 李艳芹.基于Web应用系统的性能测试及优化[D].上海:东华大学,2011.
[6] 郭华杰.Web应用程序测试技术及灰盒测试方法的研究与实现[D].天津:天津大学,2006:198-200.
[7] 杜香和.Web性能测试模型研究[D].重庆:西南大学,2008:300-305.
[8] 董瑞志等.模型驱动的软件产品线测试技术[J].常熟理工学院学报,2009,04:107-112.
[9] 李艳芹.基于Web应用系统的性能测试及优化[D].上海:东华大学,2011.
[10] 高捷,吴华瑞.基于矩阵模型的工作流合理性验证算法研究[J].计算机工程与设计,你2010,31(11):2621-2624.