LoadRunner在蒙古语资源网负载压力测试中的应用与研究

2022-05-27 17:03敖登巴拉
计算机时代 2022年5期
关键词:性能测试脚本

摘  要: 系统的负载压力是系统性能指标的一个重要方面。根据用户对系统性能的需求设计了测试用例,用LoadRunner录制测试脚本,模拟用户并发访问网站页面操作,对蒙古语资源网进行了负载压力测试。通过分析测试结果,初步评估该网站的性能瓶颈,并提出改善网站性能的建议。

关键词: 负载压力测试; Load Runner; 脚本; 性能测试

中图分类号:TP311          文献标识码:A     文章编号:1006-8228(2022)05-89-03

Application and research of LoadRunner in Mongolian resource Web load pressure testing

Aodengbala

Abstract: The load pressure of a system is an important aspect of system performance index. Test cases are designed according to the user's requirements for system performance. Test scripts are recorded with LoadRunner. The concurrent operation of users to access Web pages are simulated, and load pressure test on Mongolian resources Web is carried out. By analyzing the test results, the performance bottleneck of the website is preliminary evaluated and some suggestions are put forward to improve the website performance.

Key words: load pressure testing; LoadRunner; scripts; performance testing

引言

隨着计算机技术和Web应用的日益普及,软件已经覆盖人类生活的方方面面。因此,软件质量的重要性显得日益突出。软件测试是提高软件质量的一个重要手段[1]。GB/T25000.51-2016《就绪可用软件产品(RUSP)的质量要求和测试细则》中规定了软件的八个产品质量特性,即功能性、性能效率、兼容性、易用性、可靠性、信息安全性、维护性和可移植性[1]。其中性能效率主要从时间特性、资源利用性、容量等方面对软件质量提出了要求。随着网络应用技术的不断发展,用户对Web应用系统的性能要求也越来越高。针对蒙古语资源网来说,访问用户越多、执行速度越快、占用资源越少,该网站的性能效率就越好。本文借助LoadRunner测试工具对蒙古语资源网进行负载压力测试,对网站的性能进行验证,发现网站的性能瓶颈并提出了改善网站性能的建议。

1 负载压力测试相关概述

系统的负载压力是指系统在某种指定软件、硬件以及网络环境下所承受的流量,例如并发用户数、持续运行时间、数据量等,其中并发用户数是负载压力的重要体现[2]。例如当一个应用程序在少量用户同时使用时,程序可能会正常运行,但是当有大量用户同时使用时,可能会出现功能失效、性能衰减,甚至系统崩溃的现象。

负载压力测试是指在一定约束条件下测试系统所承受的并发用户量、运行时间、数据量,以确定系统所能承受的最大负载压力。负载压力测试有助于确认被测系统是否能够支持性能需求以及预期的负载增长等[2]。负载压力测试是性能测试的重要组成部分,它包括并发性能测试、疲劳强度测试、大数据量测试等[2-3]。并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加并发用户数负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标、资源监控指标等来确定系统并发性能的过程。疲劳强度测试是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,保证达到系统疲劳强度需求的业务量,通过综合分析交易执行指标和资源监控指标,来确定系统处理最大工作量强度性能的过程。大数据量测试包括独立的数据量测试和综合数据量测试两类。独立的数据量测试是指针对某些系统存储、传输、统计、查询等业务进行的大数据量测试。综合数据量测试是指与压力性能测试、负载性能测试、疲劳性能测试相结合的综合测试。

2 常见的测试指标

常见的测试指标有并发用户数、交易响应时间、吞吐量和交易通过率等[2-3]。

并发用户数是指同时进行请求的客户数量,并发用户数用于仿真用户的真实负载情况。

交易响应时间是指从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费的时间。

吞吐量是指单位时间内处理的客户端请求数量。通常情况下,吞吐量用请求数/秒或者页面数/秒来衡量。

交易通过率是指每秒钟能够成功执行的交易数,描述系统能够提供的“产量”,用户可以以此来评估系统的性能。

3 负载压力测试实施步骤

基于LoadRunner的负载压力测试实施步骤可概括为以下六个阶段[4-6]。

⑴ 计划测试阶段主要进行测试需求的收集、典型场景的确定。

⑵ 测试设计阶段主要是进行性能测试用例设计。

⑶ 创建VU脚本阶段主要是根据设计的用例创建脚本。

⑷ 创建测试场景阶段主要进行测试场景的设计和设置,包括监控指标的设定等。

⑸ 运行测试场景阶段对已经创建的测试场景进行执行,收集相应数据。

⑹ 分析结果阶段主要进行结果分析和报告生成。

4 测试案例分析

4.1 确定测试需求

蒙古语资源网是蒙古语言文字数字资源共享工程的门户网站,是以图书、图片、视频、音频、文档等多种形式展示蒙古语言文字数字资源的网站,资源总量达46TB以上,具有浏览、播放、搜索等功能。根据网站的特点,需要验证网站的登录、图书资源的加载和视频资源的加载方面是否满足系统性能需求。

4.2 测试环境搭建

操作系统为Windows10家庭中文版,CPU为Intel Core™ i5-8400,内存8GB,硬盘1.2TB,浏览器为Google Chrome(64位),负载测试工具为HP LoadRunner 12.6。

4.3 设计测试用例

根据性能测试需求,本案例设计了三个测试用例:系统登录、图书预览和视频观看,其用例标识、用例名称和用例描述如表1所示。

4.4 脚本录制和开发

测试脚本是指Vuser脚本,即虚拟用户回放所使用的脚本。脚本的产生可以采用录制、编写或录制加编写混合模式,初始生成的脚本经过增强编辑之后,必需再经过调试才可用。启动LoadRunner虚拟用户发生器(Virtual User Generator,简称VuGen)选择相应的协议进行脚本录制。为了使脚本满足测试需求,更加真实的接近用户的真实操作,需要对录制完的脚本进行二次开发。

为了衡量服务器对某个动作处理的响应时间,添加事务技术,事务开始函数Lr_start_transaction和事务结束函数Lr_end_transaction。事务的运行时间在结果里反应出来。

为了衡量加重负载的情况下服务器的性能情况,需要使用集合点技术。集合点函数Lr_rendezvous(“集合点名”)。

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

4.5 场景设计与运行

将VuGen组件中编辑调试好的脚本加载到controller(控制器)组件中设计测试场景。根据测试需求选择手动测试场景。在controller组件中设置并发用户数和运行模式如图1所示,启动测试场景,开始运行场景,在监视器里实时监视测试场景的运行情况。

4.6 测试结果分析

通过Analysis(分析器)组件分析测试结果,得出测试结果如表2所示,系统登录事务在50个用户并发情况下,平均响应时间为2.025秒,事务通过率为100%;图书预览事务在50个用户并发情况下,平均响应时间为5.623秒,事务通过率为98%;视频观看事务在50个用户并发情况下,平均响应时间为2.952秒,事务通过率为100%。根据网站的性能需求,系统登录事务和视频观看事务的平均响应时间均小于5秒,满足系统的性能需求。而图书预览事务的平均响应时间大于5秒,不满足系统性能需求。

在表2中,当并发用户数为50时,系统登录和视频观看事务的CPU平均使用率均小于35%,满足系统性能需求,而图书预览事务的CPU平均使用率为56.36%,不满足系统性能需求。由于蒙古语资源网中的图书资源是以PDF格式扫描上传的,内容多,资源量大,需要加载后才能看到内容,例如本案例中所预览的《中华民族大家庭》一书而言,内容共106页,所以导致图书预览事务的响应时间过长、CPU的占用率过高。因此建议对图书资源预览模块的相关代码进行优化,重构代码,提高代码的执行效率;同时增加相应的硬件,及时释放系统资源,从而提高蒙古语资源网图书预览的性能指标。

5 结论

本文借助LoadRunner测试工具对蒙古语资源网进行了负载压力测试。根据用户需求设计了完整的测试方案;用LoadRunner测试工具录制测试脚本,选择合适的测试场景模拟多用户并发操作;通过分析测试结果,找出网站性能瓶颈,并提出了改善网站性能的建议。

参考文献(References):

[1] 张旸旸.软件产品质量要求和测试细则-GB/T 25000.51-

2016标准实施指南[M].北京:电子工业出版社,2019

[2] 柳纯录.软件评测师教程[M].北京:清华大学出版社,2005

[3] 朱少明.软件测试方法和技术[M].北京:清华大学出版社,

2005

[4] 张艳华.基于LoadRunner的网络考试系统性能测试实践[J].

电脑知识与技术,2019,15(21):106-108

[5] 李东昱,苗放.Load Runner在Web应用程序性能测试中的

应用[J].软件导刊,2007(19):49-51

[6] 郭旭敏,王小廳.Load Runner在软件性能测试中的应用与

研究[J].太原学院学报,2018,36(3):32-35

收稿日期:2021-10-28

*基金项目:本文受2020年度内蒙古自治区人才开发基金项目资助

作者简介:敖登巴拉(1985-),女,内蒙古巴彦淖尔市人,高级工程师,硕士研究生,主要研究方向:自然语言处理、软件测试。

猜你喜欢
性能测试脚本
酒驾
数据库系统shell脚本应用
快乐假期
神奇的数学
小编的新年愿望
Hadoop性能测试自动化研究
关于Java软件的性能测试分析
车联网专用短程通信技术
黄麻、洋麻纤维性能研究