基于LoadRunner的网络考试系统性能测试实践

2019-09-24 06:03张艳华
电脑知识与技术 2019年21期
关键词:性能测试脚本

张艳华

摘要:文章根据用户的性能需求设计测试用例,借助LoadRunner录制测试脚本并对脚本进行相应的二次开发,设计合适的场景并对场景进行合理配置,模拟多用户对网络考试系统的并发操作,最后对测试运行结果进行分析,得出系统性能指标的满足情况以及系统的瓶颈。

关键词:LoadRunner;脚本;性能测试

中图分类号:G642        文献标识码:A

文章编号:1009-3044(2019)21-0106-03

开放科学(资源服务)标识码(OSID):

Abstract: This paper designs test cases according to user's performance requirements, records test scripts with LoadRunner and redevelops the scripts accordingly, designs appropriate scenarios and configures them reasonably, simulates the concurrent operation of multi-user network test system, and finally analyses the test results, obtains the system performance indicators and system bottlenecks.

Key words: LoadRunner; scripts; performance

1 引言

軟件的质量是软件的生命,它直接影响软件的使用与维护。ISO/IEC9126中规定了软件的6个质量特性,即功能性、可靠性、易用性、效率性、维护性和可移植性。其中软件可靠性的测试与软件性能测试关系密切,一般也是通过性能测试的方法来完成系统可靠性测试工作[1]。软件测试要求以较少的测试用例、时间和人力找出软件中潜在的各种错误和缺陷,以确保软件的质量。软件性能是与软件功能相对应的一种非常重要的非功能特性,软件性能从时间及时性及资源经济性方面对系统提出了要求。对于一个具体的软件系统来说,执行速度越快、占用系统资源越少,则软件性能相对越好。随着Web应用技术的发展,用户对Web服务应用的质量要求更高[2]。

现代的基于Web的软件网站数据量大业务量也大用途也更广泛。Web 服务器可能在同一时间内会接受大量来自不同地域的数据请求,一旦Web 服务器崩溃,会造成巨大的损失,这就对网站的稳定性提出了要求[3]。本文针对开发的网络考试系统进行性能测试研究,以LoadRunner作为测试工具对软件进行压力负载测试,对软件性能进行验证并及时发现系统瓶颈。

2 常用性能指标

常用的软件性能测试指标有响应时间、最大并发用户数、吞吐量、资源利用率等[1]。

响应时间:是对系统执行速度提出的性能要求,是用户感受到的软件系统为其服务所消耗的时间。

最大并发用户数:定义了系统处理容量,是描述网络系统的重要指标。是系统能够同时处理的用户请求的数目。

吞吐量:单位时间内系统处理的客户请求数量,体现系统的整体处理能力。在制定吞吐量时需要考虑指标的选择、功能的选择、指标范围的确定。常用的指标有RPS、TPS、PPS。

资源利用率:刻画了系统使用过程中资源的占用情况,是反应系统执行状态的最直观的指标。服务器或操作系统性能的一些数据指标,在性能测试中发挥着监控和分析的重要作用。

3 软件性能测试的目标

能力验证、缺陷发现、能力规划、性能调优为软件性能测试的目标。

验证软件性能是否符合软件需求文档中的性能指标要求是软件系统性能测试最主要的目标。软件是否符合预定的设计目标,是否符合用户现在或将来的应用要求称之为性能符合性验证即能力验证。

缺陷发现性能测试的主要目的是通过性能测试的手段来发现系统中存在的缺陷,并不需要验证性能指标是否满足需求的要求。

能力规划应用领域关心的是“应该如何使系统具有用户要求的性能能力”或是“在某种可能发生的条件下,系统如何调整才能具有用户要求的性能能力”。性能调优的前提是进行性能瓶颈定位,在性能测试工作中是一项难度非常大的工作。在性能测试过程中,如果发现了性能指标不合格,需要在众多因素中进行逐步甄别。

4 性能测试流程

基于LoadRunner的性能测试的一般流程为:制定测试计划->设计性能测试方案->录制VU脚本->创建测试场景->执行性能测试->进行结果分析。

在制定测试计划阶段进行测试需求的收集、典型场景的确定;测试设计阶段进行测试用例的设计;创建VU脚本阶段根据设计的用例录制操作脚本;创建测试场景阶段需要按照测试设计方案进行测试场景的设置,包括用户数量、并发策略、测试时长、监控指标等的设定;执行性能测试指将设定好的测试场景运行起来,收集测试数据;分析测试结果阶段进行结果分析和报告的编制。

5 具体实现

5.1 明确性能测试需求

根据系统的特点需要验证系统能够支持20个用户并发操作;登录最大响应时间0.5S;系统峰时访问下CPU利用率不超过40%,内存利用率不超过40%。

5.2 书写测试用例

根据性能需求书写测试用例,登录测试用例如下。

5.3 测试环境搭建

考试系统的测试环境为:Windows7操作系统,MySQI数据库,服务器为Tomcat7.0。

5.4 脚本录制与开发

首先启动LoadRunner的Virtual User Generator选用http协议进行登录测试脚本的录制,录制完脚本后对自动录制的脚本进行二次开发。

添加事务:添加事务开始的标记Lr_start_transaction()及Lr_end_transaction()事务结束的标记。LoadRunner采集完成其定义的每个事务所花费的时间段,并在测试后在Analysis中进行统计分析。

添加检查点:为检查执行成功率系统在执行过程中需要明确判断某个操作是否通过,在相应的位置插入检查点函数Web_reg_find()并添加检查点内容。

参数化:为了更加真实的模拟实际环境,需要在脚本中用参数取代常量值,将登录用户名及密码参数化,并建立用户名及密码的测试数据文件。

集合点:用来模拟多用户对系统的并发访问,在脚本中相应位置插入集合点函数Rendezvous()。

思考时间:为了模拟真实的情况,添加思考时间函数。

5.5 场景设计及运行

录制的测试脚本调试通过后,将其添加至Controller中创建场景,在Controller中有两种测试场景分别是手动场景和面向目标场景。根据需求选用手动测试场景。在Controller中设置虚拟用户的数量和行为方式,运行方式选择Basic Schedule:每20秒增加2个虚拟用户,增加至20个,持续运行5分钟,然后每20秒递减4个,减少至0个;添加监控的Windows资源CPU及内存,然后运行测试场景对系统产生压力并监控相应的指标。

5.6 Analysis分析的结果

根据执行的场景,分析测试结果。

通过Analysis分析场景运行结果,可以发现登录事务的最小响应时间为0.008,平均响应时间为0.034,最大响应时间为0.105,可以判断登录的系统的实际最大响应时间小于性能需求的最大响应时间,判断系统满足登录的性能需求。

图3是测试用例场景运行过程中的系统CPU使用情况,测试用例场景共运行两次,通过两次场景运行结果的交叉比较,可以发现在图3中第一次运行结果中CPU使用率为17.312%,第二次运行结果中CPU使用率为37.251%,满足系统峰时访问下CPU利用率不超过40%的性能需求。图4是测试用例场景运行过程中的系统内存使用情况。在图4中第一次运行结果中内存使用率为49.78%,第二次运行结果中内存使用率为41.17%,不满足系统峰时访问下内存利用率不超过40%的性能需求。

5.7 系统瓶颈

从测试结果分析,系统满足相应时间的请求,满足峰时访问CPU使用率低于40%的需求,但内存使用率略高于性能需求中的40%。因此判断系统存在性能瓶颈,主要是占用资源较高,建议调优方案为重构代码,及时释放系统资源。

6 结语

本文是小型网络考试系统的性能测试,首先设计了完整的测试及验证方案,然后借助LoadRunner测试工具,录制测试脚本并对脚本进行二次开发,选择合适的场景模拟多用户并发操作,最后收集并整理测试数据,对数据进行合理的组合与分析,最终得出系统性能测试的需求满足情况及系统瓶颈。

参考文献:

[1] 修佳鹏.软件性能测试及工具应用[M].清华大学出版社,2014:1.

[2] Bozic J, Garn B, Kapsalis I, et al. Attack Pattern-Based Com?binatorial Testing with Constraints for Web Security Testing[C].IEEE International Conference on Software Quality, Reliability and Security. IEEE, 2015:207-212.

[3] Novak S, Stefanovi? D, Popovi? M, et al. Web based systemfor automatic testing[C]. IEEE International Workshop on Consumer Electronics. IEEE, 2017:30-31.

【通聯编辑:王力】

猜你喜欢
性能测试脚本
酒驾
数据库系统shell脚本应用
快乐假期
神奇的数学
小编的新年愿望
车联网专用短程通信技术