LoadRunner在软件性能测试中的运用分析
2019-10-21马娟
摘 要:在我国信息化建设的不断发展下,各领域中使用的软件类型越来越多样化,软件规模也逐渐扩大。而随着软件架构复杂程度的不断增加,为了能够有效保障软件可以充分发挥自身应有效用,有必要对软件性能进行精准测试。在这一背景下,本文将从LoadRunner的角度切入,在对其基本组成与测试流程进行阐明的基础上,重点针对软件性能测试中LoadRunner的实际应用进行简要分析研究。
关键词:LoadRunner;软件性能测试;实际应用
引言:利用LoadRunner对系统软件进行性能测试,不仅可以有效帮助相关工作人员判断系统软件是否与设计要求相符,同时也能够在全面了解软件实际运行情况的基础上,分析出其中存在的性能瓶颈,进而可以更有针对性地对软件进行性能优化。因此在软件性能测试中如何有效使用LoadRunner也成为人们较为关心的问题之一,本研究旨在帮助测试人员正确认识LoadRunner的同时,可以为其有效应用在软件性能中提供相应的实践指导。
一、LoadRunner的简要概述
(一)基本组成
虽然目前在软件性能测试中可供使用的工具众多,例如QALoad、WAS等等,但由惠普公司研发的LoadRunner可以对软件系统生产环境、用户实际操作场景进行真实模拟,因此能够更好地帮助工作人员直观、清晰地了解软件性能水平及其存在的性能瓶颈。具体来说,LoadRunner指的就是一种负载测试工具,其可以对系统行为以及实际性能进行精准预测。其主要构成包括脚本生成器、压力调度与监控系统、结果分析工具与负载生成器。其中脚本生成器负责录制并运行相关脚本,同时对其进行有效调试[1]。压力调度与监控系统则主要负责对用户操作场景、软件系统生产环境等进行管理与维护,而结果分析工具则负责提供软件测试所需的脚本与事务信息,同时对系统性能进行精准定位。负载生成器负责向众多负载机分配脚本,在对各个设备硬件资源进行充分利用下,模拟出大量脚本,向软件施压以测试其具体性能水平。
(二)测试流程
在使用LoadRunner测试软件性能的过程中,首先需要测试人员根据软件性能测试的具体要求和实际情况,明确各个负载测试目标,并制定出科学合理的测试计划,为整个软件性能测试的顺利开展奠定良好基础。其次需要利用脚本生成器完成脚本创建,即利用虚拟用户和应用程序交互的方式对真实用户进行模拟,而在运行各场景时,所有虚拟用户执行操作均包含在脚本当中。随后需要测试人员使用压力调度与监控系统进行具体测试场景的有效创建。所建设的场景当中不仅需要包含运行虚拟用户的计算机与脚本列表,同时也需要包括场景运行过程中设置的虚拟用户与虚拟用户组。此后同时利用若干虚拟用户执行任务的方式对真实用户负载进行模拟,而测试人员则可以通过结合实际情况适当增加或删减虚拟用户数量,以达到对负载级别进行灵活调整的目的。场景运行时,LoadRunner将会自动对各负载情况下的软件性能进行录制和运行,此时借助LoadRunner中的结果分析器即可有效帮助相关工作人员,精准评估软件性能水平并准确掌握其中存在的具体性能瓶颈。
二、软件性能测试中LoadRunner的实际运用
(一)被测系统软件概述
为了有效说明LoadRunner在软件性能测试中的应用情况,单一窗口的货申报系统作为被测软件。以该系统中的以下四个功能点作为测试目标,分别为系统登录与新建货申报单证、单证信息查询与单证信息删除。
(二)测试环境与测试需求
在测试过程中,所使用的测试工具除一台测试机以外,还分别各使用一台应用服务器与数据库服务器。其中应用服务器采用IE10.0浏览器,其中间件为Weblogic12,运用Windows操作系统。数据库服务器的硬件配置、操作系统与浏览器,均与应用服务器的配置完全相同,但其采用了Oracle11G数据库,测试机的硬件配置与操作系统也和应用服务器、数据库服务器相同,但其浏览器使用的是IE10.0。应用在局域网环境下的单一窗口的货申报系统软件,要求其各功能单点操作时间不得超过2s,系统并发数可以达到10用户,系统响应时间最长为5s。当用户正处于登录系統、新建单证以及单证信息查询与修改状态时,该系统软件中的10名用户在线吞吐率需要达到8事务/s。
(三)软件性能的测试结果
1.制定软件性能测试计划
通过与该软件性能测试要求相结合,同时为了保障软件日后能够根据实际情况进行业务拓展,本文在使用LoadRunner对该系统软件进行软件性能测试时,模拟10名用户同时进行软件登录操作,用以对软件负载承受能力进行有效监测。在该系统软件当中,用户操作频率最高的操作项即为对单位信息查询,因此为了有效避免用户在操作软件时出现系统软件崩溃无法正常使用的情况,在使用LoadRunner对10用户同时对单证信息查询进行模拟时,设计使用两种测试计划。其一为直接模拟10用户同时登陆软件,后一种测试计划则为初始阶段只有2名用户同时进行操作,而后利用加压模式,每隔一段时间增加2名用户,直至达到10名用户同时查询单证信息。
2.设计脚本以及测试场景
本文在使用LoadRunner进行软件性能测试的过程中,首先通过使用脚本生成器完成测试脚本的新建,在此过程中选择的协议为Windows Scokets。由于本文使用的被测软件采用JAVA系统开发出的B/S系统结构,在完成类型合理选择后,由Action负责对用户登录以及单证信息查询的行为进行实时录制,这一操作具有可重复执行性。在使用第一种测试方案时,用户在软件登录界面中准确键入自己的登录名与密码之后,需要先将一个集合点login rendezvous插入其中,随后设置一个开始事务login,此时用户通过对登录按键进行点击,直到用户成功登录后,将结束事务标识插入其中即可[2]。而在第二种测试计划中,需要将集合点cfg rendezvous插入在用户查询单证信息之前,同时将开始事务cfg设置其中,直到用户顺利完成信息查询操作后,再将结束事务标识插入其中。当录制完毕之后需立即编辑脚本,考虑到该软件不支持众多相同用户在同一时刻登录该软件,故而需要对用户名及密码予以参数化处理。此时对于已经完成录制的脚本需要进行相应编译,对脚本中是否存在错误信息即显示为红色的error进行确认,当编译结果为passed时即可进行脚本运行。
在测试场景的创建与运行过程中,则需要启动压力调度与监控系统,选择手动场景之后,将用户数设置为10人,此时压力机为Localhost,直接在场景当中依次添加相应的脚本即可。在利用相关专业工具对与10个用户相对应的IP地址进行模拟之后,在加载过程中便可以令各虚拟用户,使用不同IP地址登录软件并进行信息修改操作。在第一种测试计划中,设置同时加载全部虚拟用户直至用户完成所有操作。在第二种测试计划中,每隔5s增加2名用户直至运行结束。当完成所有测试场景的配置后,通过直接点击开始场景按键运行测试脚本,此时测试人员便可以对包括运行用户数、通过事务数、运行错误数等在内的各项统计信息进行动态观察,以此为基础对脚本实际运行情况进行实时监测。
3.软件性能测试结果分析
在运行完成所有测试场景之后,LoadRunner当中的结果分析工具将会自动搜集整理各项测试结果数据,以便有效帮助测试人员对被测软件性能的实际水平、运行情况进行准确评估。一旦LoadRunner中得到的测试结果和软件性能设计需求存在明显差距,需要相关工作人员及时锁定软件中具体存在的性能缺陷并对其进行有效处理,从而使得系统软件性能可以实现最优化。一般情况下,LoadRunner中的所有测试结果数据将会统一集中在Result当中,通过使用Analysis工具便可以自动生成总统计表格,该统计表格中集中了所有场景数据[3]。
根据本文在使用LoadRunner对该软件的软件性能测试中,得到的具体测试结果可知,平均事务相应时间均在2s以内,并且在整个软件性能测试过程中,平均事务相应时间并未出现明显的剧烈浮动情况,系统整体运行具有良好的平稳性。当系统用户并发数达到10名,且持续进行20min的软件操作后得到的平均事务响应时间最长不超过5s。在10用户同时进行软件登录时,登录成功率大大了100%。通常在软件性能测试中,如果系统响应时间不超过2s,用户一般可以感觉操作顺畅,而如果系统响应时间在2s至5s,此时用户操作感觉一般,系统响应时间超过5s,则用户可以明显感觉系统运行速度较慢。但在此软件中,测试结果显示login事务平均响应时间在1.77s左右,因此用户操作体验良好,这也与该软件模块数量较少,初始化时间相对较短有关。而在TPS测试当中,测试得到的在线用户吞吐率为8事务/s,与该软件的性能要求相吻合,因此代表该软件确实具有一定的使用性能。
結束语:通过本文的分析研究可知,在软件性能测试当中应用LoadRunner,确实可以有效帮助相关工作人员准确掌握和评估,被测软件的实际性能水平,并及时发现软件中存在的性能瓶颈,以便可以更有针对性地对软件性能进行优化。因此在实际使用LoadRunner进行软件性能测试时,相关工作人员需要结合被测软件的实际情况,科学制定出具体测试计划,并严格按照LoadRunner的使用流程规范完成软件性能测试工作,使得LoadRunner的应有效用得以在软件性能测试中得到充分发挥。
参考文献:
[1]梁琛,马天鸣.LoadRunner在卫星应急网管软件性能测试中的应用[J].电信快报,2018(07):21-25.
[2]王兴野.如何利用LoadRunner开展网站性能测试[J].电脑编程技巧与维护,2018(05):100-102.
[3]郑润萍. 基于LoadRunner的Web软件性能瓶颈分析调优研究与实践[D].华南农业大学,2016.
作者简介:
马娟(1983年),女,籍贯:山东 菏泽,职称和学历:中级工程师,本科,研究方向或专业:计算机科学与技术专业.