针对基于B/S架构软件系统的性能测试研究

2017-11-20 13:52万钧
电脑知识与技术 2017年27期
关键词:脚本事务工序

万钧

摘要:当今社会的信息化建设模式主要包括自主开发、合作开发及外购商业软件三种模式,这些软件的整体性能是否满足各建设单位需求,能否承受最大用户数并发使用等一系列问题,一直困扰着各建设单位的信息化管理等相关部门。其中,随着信息化建设发展,基于B/S架构的软件系统已经成为了各个建设单位信息化建设项目的主流。因此,为了提高软件可靠性和效率,进一步验证功能正確性,那么,从性能测试工作中总结研究出一套行之有效的针对B/S架构软件系统的性能测试方法论变得尤为重要。

关键词:性能;事务;负载;脚本;工序

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)27-0211-02

随着软件规模的不断扩大,软件质量问题已成为制约计算机发展的主要因素之一。其中,基于B/S架构的软件系统正在成为各个建设单位信息化建设项目的主流。与以往的软件相比,它有着不同于以往软件的特点,主要体现在:数据库集中、信息系统管理集中、业务管理集约化、用户所在地域分布广泛、数据量大、业务量大等方面。

由于存在以上这些特点,基于B/S架构的信息化软件相比传统软件,带来了非常大的优越性,但同时也带来了很多挑战,这是因为基于B/S架构的信息系统的大分布,决定了Web服务器要同时接受大量的数据请求。

通过验证软件系统是否能够达到用户提出的性能需求,发现软件系统中存在的性能瓶颈,了解软件系统的可靠性能力,才能达到不断提高软件系统性能的最终目的。

1 测试工序

性能测试工序主要包括:设计测试用例、搭建测试环境、创建测试脚本、设置方案场景、运行方案场景、分析测试结果几大部分,见图1。具体内容如下所述:

(1) 根据评审通过的软件需求规格说明书中的性能需求部分,设计性能测试用例,包括:性能测试环境描述、所需测试功能点、测试场景设计、基础数据量准备、所需监控的各项性能指标等;

(2) 搭建性能测试环境,包括待测软件系统的安装与部署及性能测试工具(控制台服务器与并发服务器)环境的搭建;

(3) 根据性能测试用例中的所需测试业务场景,通过脚本编辑器创建性能测试脚本,并将每个业务场景以事务(transaction)的形式添加到脚本之中;

(4) 根据性能测试用例中的测试场景设计、基础数据量准备、所需监控的各项性能指标,通过场景设计器对各种场景进行设置;

(5) 通过场景设计器运行每个场景,并分别记录及保存性能测试结果;

(6) 最终借助测试结果分析器对性能测试结果进行分析和总结,形成性能测试报告。

2 测试工具

随着软件测试的地位逐步提高,测试的重要性逐步显现,测试工具的应用已经成为了普遍的趋势。目前用于测试的工具一般可分为白盒测试工具、黑盒测试工具、性能测试工具,测试管理工具(测试流程管理、缺陷跟踪管理、测试用例管理)。

目前行业内比较流行的性能测试工具有很多种,例如:WAS、OpenSTA、QALoad、TeamTest、WebLoad、LoadRunner等。

3 测试方法

3.1 测试用例设计

性能测试用例主要分为预期目标用户测试,用户并发测试,疲劳强度与大数据量测试,网络性能测试,服务器性能测试五大部分。设计测试用例时要根据实际情况进行裁减,在项目应用中遵守低成本、重策略、具体化等原则。性能测试用例设计策略需注意三点:一是要选择典型的业务场景进行测试,尤其要选择并发用户数目较大的业务场景。二是要覆盖全面,即设计出的用例要覆盖到系统高峰期的主要业务场景。按照80/20法则,大约80%的用户会集中在20%的时间段内进行频繁操作,为了更好地体现出在不同用户数使用下,系统的各项性能指标变化趋势。三是要选择合适的性能监控指标,否则性能测试的整个过程会事倍功半。

另外,大多数用户的真实使用场景中并不存在所有用户只使用一个功能模块的情况,而是每个功能模块都有可能被用到,因此还需要适当采用组合业务性能测试方法。

3.2 Virtual User脚本开发

利用虚拟用户脚本编辑器技术,可以将每个测试用例中的业务场景进行脚本语言转化,形成性能测试工具可以识别的业务场景语言。

根据被测系统的开发框架不同,可以选择Web(HTTP/HTML)、Web Services等针对基于B/S架构软件系统的脚本框架协议进行脚本开发。开发过程中可以通过以下手段满足不同性能测试要求:通过事务(Transaction)的封装来获取某个业务操作的响应时间;插入Text/Image检查点,可以检查Web服务器返回的网页是否正确,验证网页上是否存在指定的Text或Image;脚本关联技术,可以把脚本中某些写死的(Hard-coded)数据,转变成是取自被测服务器所发送的、动态的数据,绕过服务器端在每一次请求之后返回的唯一辨识码(Session ID),提高脚本的正确性和可靠性。

3.3 测试场景运行

场景设计器的运行方式分为两种:目标场景设置和手动场景设置。目标场景设置的目的是通过设置目标来验证软件系统能否达到预期目标,在项目最后确认质量时可以使用目标场景来完成最终的测试报告。目标场景设置中无法设置集合点策略,系统自动形成并发负载,定位瓶颈位置较难;手动场景设置可以定制化虚拟用户的启动策略、持续负载时间、事务运行思考时间等,尽可能真实的模拟系统负载状态。

3.4 测试结果分析

性能测试结果分析是在整个性能测试过程中最为关键和重要的一个阶段。无论用什么样的测试工具和测试方法,都需要测试工程师利用其丰富的经验、精湛的技术对这些原始数据进行全面的逻辑分析和推导,才能得出正确的结论。endprint

性能测试结果分析需要遵循“由外到内,由表及里,层层深入”的基本原则。对于一个软件系统来说,性能开始出现下降的最直观表象就是系统的响应时间变长了,这时可以把系统响应时间作为分析性能的起点,要从原始測试数据中查看系统的响应时间是否满足用户的性能需求。下面我们主要讲一下服务端性能问题的结果分析过程:

(1) 平均事务响应时间(Average Transaciton Response Time)是分析性能测试结果的第一步,根据测试结果来确定软件系统变慢了的业务操作,它显示了在测试场景运行期间的每一秒内事务执行所用的平均时间,通过它可以分析测试场景运行期间应用系统的性能走向。

(2) 每秒事务数分析(Transaction per Second)显示在场景运行的每一秒中,每个事务通过、失败和停止的数量,是考察系统性能的一个重要参数,通过它可以确定系统在任何指定时刻的实际事务负载,也可以直接看出系统的性能变化趋势。并且可以将其与平均事务响应时间图进行对比,以分析事务数对响应时间的影响。

(3) 点击率(Hits per Second),即每秒点击次数,显示了在场景运行过程中虚拟用户每秒向Web服务器提交的HTTP请求数,可依据点击次数来评估虚拟用户产生的负载量,还可将其与平均事务响应时间图进行比较,以查看点击次数对事务性能产生的影响

(4) 吞吐率(Throughput),显示场景运行过程中服务器每秒的吞吐量。表示虚拟用户在任何给定的某一秒上从服务器获得的数据量。可以依据吞吐量来评估虚拟用户产生的负载量,吞吐量的单位是字节。

(5) Windows系统资源(Windows Resources),表示了服务端的各项监控指标表现情况,图3为被测系统的Windows系统资源监控图。

除了上面介绍的分析指标外,根据不同的实际情况还需有选择性的针对每秒HTTP响应数、连接数、每秒服务器重试次数、场景运行期间服务器重试摘要等指标进行结果分析,这里不再一一撰述。

4 结束语

性能测试是一项找到软件系统性能瓶颈“攻坚战”中的重要过程,需要通过对系统层层深入的分析,才能对问题进行更加准确的定位。本文对基于B/S架构软件系统的性能测试提出了一套较为全面的性能测试方法论。通过测试用例设计、Virtual User脚本开发、测试场景运行、测试结果分析等一系列测试工序,发现软件系统的性能瓶颈,同时找出引起性能下降的原因,为优化系统提供重要依据。

参考文献:

[1] 张大陆,伟力.基于WEB应用系统的评测方法和技术[J].计算机工程,2003,29(4).

[2] 中国软件评测中心测试中心. 性能——软件测试的重中之重[J],2003.

[3] 刘群策.LoadRunner和软件项目性能测试[M].北京:机械工业出版社,2008.

[4] 姜昌华,朱敏.Web应用程序压力测试[J].计算机应用,2003,23(10).

[5] 李煜,苗放.LoadRunner在Web应用程序性能测试中的应用[J].软件导刊,2007.

[6] 刘艳会.LoadRunner使用手册[A].软件测试中心,2003-8-21.endprint

猜你喜欢
脚本事务工序
酒驾
基于分布式事务的门架数据处理系统设计与实现
120t转炉降低工序能耗生产实践
河湖事务
大理石大板生产修补工序详解(二)
数据库系统shell脚本应用
快乐假期
人机工程仿真技术在车门装焊工序中的应用
SQLServer自治事务实现方案探析
移动实时环境下的数据一致性研究