基于LoadRunner的Web系统性能测试实践

2019-07-08 02:23张艳华
电脑知识与技术 2019年13期
关键词:性能测试脚本

张艳华

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

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

中图分类号:TP311        文獻标识码:A

文章编号:1009-3044(2019)13-0113-03

Abstract:This paper uses LoadRunner to test the performance of the Banking System. Starting from the analysis of performance requirements, we design corresponding test cases, record test scripts and redevelop scripts to simulate real multi-user concurrent operations, design scenarios and configure scenarios rationally. Finally, we collate and analyze the test results, and get the system performance indicators and system bottlenecks.

Key words:LoadRunner;scripts;performance

1 引言

为确保软件的质量,需对开发的软件进行相应的测试。从不同方面测试可以有多中分类。软件性能是与软件功能相对应的一种非常重要的非功能特性,表明了软件系统对时间及时性及资源经济型的要求[1]。对于一个具体的软件系统来说,执行速度越快、占用资源越少,则软件性能相对越好。随着Web应用技术的发展,用户对Web服务应用的质量要求更高[2]。

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

2 常用性能指标

进行软件测试常用的性能指标有响应时间、并发用户数、吞吐量等。

响应时间:用户感受到的软件系统为其服务所消耗的时间。

并发用户数:是系统能够同时处理的用户请求的数目。

吞吐量:单位时间内系统处理的客户请求数量,体现系统的整体处理能力。常用的指标有RPS、TPS、PPS

服务器性能计数器:指服务器或操作系统性能的一些数据指标,在性能测试中发挥着监控和分析的作用。

3 性能测试流程

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

4 具体实现

4.1明确测试范围

根据银行的业务特点,分析得出测试的范围为:登录、存款、转账、取款、查询余额、退出。

4.2明确性能测试需求

由于系统是小型系统,需要系统能够支持20个用户并发操作;登录最大响应时间1S,平均响应时间0.5s;查询最大响应时间1.5S,平均响应时间0.5s;存款最大响应时间1S,平均响应时间0.5s;取钱最大响应时间1.5S,平均响应时间1s;系统CPU利用率低于70%,内存利用率低于80%。

4.3书写测试用例

根据性能需求给出测试用例,现给出登录及查询测试用例。

4.4 搭建测试环境

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

4.5 脚本录制与开发

首先启动LoadRunner,用VG进行登录测试脚本的录制,选用http协议进行录制。录制完脚本后可以对自动录制的脚本进行二次开发,此时可以根据要求添加相应的脚本函数。

① 添加事务:软件系统的性能是依靠事务来度量的,在执行测试时LoadRunner会采集完成其定义的每个事务所花费的时间段,并在测试后在Analysis中进行统计分析。用Lr_start_transaction()标记事务的开始,用Lr_end_transaction()标记事务的结束。

② 添加检查点:

在执行性能测试的过程中,执行成功率是一项重要的指标,如果多用户并发过程中有很多请求失败,说明系统对业务的支撑能力出现了问题。因此系统在执行过程中需要明确判断某个操作是否通过,可以利用Web_reg_find()在脚本中相应的位置插入检查点,并设置检查点内容。

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

④ 思考时间:为了模拟真实的情况,如有必要可以添加添加思考时间。

4.6 场景设计及运行

虚拟用户测试脚本调试完成后,将其添加至Controller中创建场景,在Controller中设置好虚拟用户的数量和行为方式后,即可运行测试场景。对系统产生压力。在Controller中有两种测试场景设置,分别是手动和面向目标两种场景。根据需求选用手动设置测试场景。选择Real-world schedule(真实场景模式)加压方式:每15秒增加3个虚拟用户,增加至10个,持续运行2分钟,然后每30秒递减5个,减少至5个,持续30秒,每20秒增加5个,增加至10个,持续20秒,每20秒减少5个,减少至0个;添加需要监控的windows指标。场景设计完成后执行场景测试监控相应的指标。

4.7 Analysis分析的结果

系统性能测试的目的是查找系统的性能问题,找到系统的瓶颈并分析原因。

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

从图2中得出并发用户数为10时满足用户的性能需求。当并发用户数为20时由图3表可以看出最大响应时间为3.748秒,不符合最大响应时间不超过1秒的要求。

4.8 系统瓶颈

从图4中分析到存钱的响应时间很长,远远超过系统性能需求,通过操作系统分配给进程的物理内存总量减少,导致时间消耗过长。

5 结束语

通过对基于Web的银行系统进行性能分析,然后设计出一套完整的测试方案。使用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, Reliabilityand 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脚本应用
快乐假期
神奇的数学
小编的新年愿望
车联网专用短程通信技术