Loadrunner性能测试软件技术介绍
来源:NET | 作者:广州泰息特 | 发布时间: 2020-03-01 | 1697 次浏览 | 分享到:

Loadrunner简介

随着新的应用技术的发展及业务系统用户数的增加,业务系统的上线性能要求越来越高,要求进行性能测试的项目数量迅速增长、性能测试范围迅速扩大。为适应业务发展需要,需要进行性能测试。性能测试目的是在业务应用性能调优、容量规划部署、投产架构验证等方面进行性能测试能力建设。Loadrunner是性能测试领域非常知名的测试工具软件,在市场占有率上遥遥领先,是性能测试领域的标杆性测试软件。Loadrunner是企业级的具有极高规模适应性的自动负载测试工具,它能预测企业IT系统的行为,优化性能,它强调的是整个企业的业务系统。通过模拟实际用户的操作行为和实时性能监测,可以帮助更快的确认和查找各关键系统可能出现的性能瓶颈问题。


Loadrunner性能测试工作流程

Loadrunner工作流程图及结构说明:



Loadrunner组件如下:

Loadrunner典型部署结构如下图:



性能测试过程设计及执行如下:


1、    创建虚拟用户脚本

使用LoadRunnerVirtual User Generator引擎,用户能很简便地创立起系统负载。该引擎能够生成代理或虚拟的用户模拟业务流程和真正用户的操作行为。它先记录下业务流程,如网银查询或转帐,然后将其转化为测试脚本。利用虚拟用户,用户可以在Windows UNIX Linux机器上同时运行成千上万个测试。所以LoadRunner能极大的减少负载测试所需的硬件和人力资源。另外,使用了LoadRunnerTurboLoad专利技术,用户能获得最高的规模适应性水平。TurboLoad使用户有能力创立与每天几十万名在线用户和数以百万计的点击数相匹配的负载。


1 脚本样例

2创建真实的负载

虚拟用户建立起后,用LoadRunner的控制器,用户能很快组织起多用户的测试方案。控制器的提供一个互动的环境,在其中用户既能建立起持续且循环的负载,又能管理和驱动负载测试方案。

2 创建真实的性能场景和负载

3、定位性能问题

LoadRunner内含集成的实时监测器,在负载测试过程的任何时候,您都可以观察到应用系统的运行性能。这些被动监测器为您实时显示交易性能数据,如反映时间,和其它系统组件包括应用服务器,Web服务器,网路设备和数据库等的即时性能。



4、分析结果精确定位问题所在

一旦测试完毕后,LoadRunner收集汇总所有的测试数据,并提供用户高级分析和汇报能力,以便迅速查找到性能问题并追溯原由。例如使用LoadRunnerWeb 交易细节监测器,用户可以确定将每一网页上所有的图象,框架和文本下载所需得的时间。




分析示例:

     DB CPU=25.7, DB Time=29.2,则25.7/29.2=88.01% 说明CPU利用率比较高.

     Redo Size:535119字节/s=0.51m/s说明DML操作或者系统并不是特别繁忙.

     Logical reads=918550block/s=918550*8192/1024/1024=7176m/s,说明sql并发比较多.

     Block changes=2914.4,说明每秒中有2914.4block被修改.

     Physical reads/writes都比较小,说明我们的buffer cache可以满足需求.

     Parses=5560,每秒解析5560,包括fast parse,soft parse hard parse,Hard parses=0说明大部分的都是fast parsesoft parse.这样子减少CPU的消耗.












Loadrunner的技术特点:

1.    针对GUI界面应用和无界面应用的性能测试

一般而言,普通的性能测试工具是通过录制应用系统前端的用户界面操作而产生脚本的,这能够满足大多数的实际应用需求。在这些接口当中,普通的性能测试工具都可以录制,但是其它接口就没有通常的人机界面供性能工具录制使用。如果我们希望对前置机产生足够的压力,模拟出更加真实的业务压力状况,那么就需要进行无界面录制脚本。

因此,能否提供对所谓“无界面”程序产生的压力进行录制的手段,对于客户来说应该是非常有意义的。 LoadRunner除了支持一般的界面录制之外,其Port Mapping技术完全支持“无界面”程序的录制功能,如下图所示,在客户中常见的中间件Tuxedo/ TCP Server环境中都能完美的使用,支持的平台跨越Windows, UnixLinux等各类平台。

2.    真实的负载能力

使用LoadRunner的虚拟用户生成器模块,用户能很简便地创建性能测试的脚本。该模块能够录制基于真实用户的业务流程和操作行为,如下订单或订单处理,然后将其自动转化为测试脚本。利用虚拟用户,用户可以在多台机器上同时运行成千上万个测试。所以LoadRunner能极大的减少负载测试所需的硬件和人力资源。

3.    易用的操作方式

在性能测试中,灵活性是不容忽视的问题,一般来说,性能测试任务往往是时间非紧,任务重,环境复杂,为了在有限的时间和环境内完成性能测试工作,测试产品的易用性将起到决定性作用。

从实际工作的效果来看,仅仅由于LoadRunner的易用性一方面,保守的估计,仅仅参数化一项功能的实现,至少可以使得正式的压力测试工作缩短50%以上的时间。这具有非常重大的现实意义。

4.    灵活的参数化

为了模拟真实的业务压力状况,通常采用一个脚本带多组测试数据的方式,利用脚本里面的参数,让一个脚本在不同的循环中执行不同的业务数据。LoadRunner既快速完成简单的参数化功能:如从数据库或文件中获得不同数据进行参数化;同时,LoadRunner具有广泛的平台支持和良好的编程支持能力,通过其灵活性的特点,很容易集成用户现有的API对脚本进行参数化的功能,特别是对于一些加密解密的处理,从而能够模拟出更加真实的业务压力来。

5.    产生压力的方式

测试脚本创建好后,通过LoadRunner的控制台模块,用户能很快组织起多用户的测试方案。控制台提供一个互动的环境,在其中用户既能建立起持续且循环的负载,又能管理和驱动负载测试方案。

另外,使用了LoadRunnerTurboLoad专利技术,用户能获得最高的规模适应性水平。TurboLoad使用户有能力创立与每天几十万名在线用户和数以百万计的点击数相匹配的负载。

6.    自定义测试场景

Loadrunner允许用户自定义各种测试场景,如:定时自动测试、递增式加压、随时间任意变化加压(即是说进入自动化性能测试产品后,其中应提供直观的界面用来配置随时间的任意组合加压场景)、多个脚本组合加压等。总体来说,可以任意组合来实现实际需要的各种方式。

Loadrunner不仅可以建立手工场景进行压力测试,同时用户可以根据需要建立面向目标的加压模式,如基于每秒事务数,事务相应时间,最大承受虚拟用户数,每秒点击次数等等。方式灵活多变,有利于用户根据实际需要进行相应的选择。

在加压的时候,LoadRunner还可以对每个虚拟用户的行为进行个性化处理,如虚拟用户的访问可以模拟成来自不同IP地址的访问,这样能够更加有效地模拟实际应用中来自于不同地点的访问,同时我们还可以模拟不同的访问带宽,模拟广域网环境等等。

7.    实时的性能监控

一般而言性能测试的目的并不仅仅是得出系统的吞吐能力,评价系统的当前性能,更主要的是发现系统可能存在的瓶颈,确认性能瓶颈并优化和调整应用。

很显然,如果需要来实现这样的目标,在性能测试的同时,没有一套实时的同步系统监控功能是无法实现的。我们不可能在使用性能测试软件的同时,借助第三方的系统软件来完成“实时”监控。因为第三方监控软件即使能够监控,也很难和性能测试软件实现同步,而且会添加大量的手工工作,例如记录加压时间,将性能测试报表与系统监控软件报表关联等等。

Loadrunner性能测试解决方案在提供强大的性能测试的同时还提供了功能丰富的服务器监控功能,在性能测试过程中能够监测系统各层面的每一部件的性能。通过记录整个系统所有性能数据,测试人员可以将这些信息对应最终用户的负载和响应时间,以此定位瓶颈所在。更为重要的是:对于待测服务器的同步监控,不需要安装任何代理,只要进行简单的配置就可获得服务器上相关的性能数据,这样就以一种完全无干扰原先系统的方式进行,最大限度地减少了对被测服务器性能的影响。

相比其他同类性能测试产品来说,LoadRunner监控功能尤为突出,支持各类环境、操作系统、网络、应用服务器和数据库服务器。对于客户有WindowsUnix以及Linux等众多环境的情况尤为适合,客户将不必为由于测试环境的改变而改换其他测试产品。下面是LoadRunner所提供的部分监控功能:

   运行时间监控虚拟用户状态,用户指定的数据站

   交易监控反应时间,交易成功与否

   网络服务器资源监控单位秒的点击数,吞吐量

   多操作系统资源监控 – CPU,内存,I/O

   中间件监控 – Tuxedo, Weblogic, Websphere

   数据库服务器监控 – OracleSQLServerDB2Sybase

8.    强大的关联分析

性能测试测试结束,通过高度准确的记录达到模拟真实用户的行为,与此同时实时对应性能监控数据也采集完毕,但这并不能说明性能测试完毕,因为分析性能测试结果才是性能测试过程中最后压轴戏。如何通过对测试数据的分析,提供数据关联的功能,尽可能自动查找到与所测业务最为相关的性能数据,帮助定位性能瓶颈,这才是性能测试解决方案必须完成的工作。市场上有相当多的性能测试产品也能提供一定的性能测试功能,借助第三方的软件还能够集成性能监控数据,但是往往只能提供一些简单的报表。但它们恰恰忽略了最重要的分析,用户在性能测试完毕后,面对大量的数据通常是无从入手,简单的报表离分析瓶颈更是相差甚远,因此如何能够提供良好的分析功能往往会成为衡量性能测试解决方案是否优秀的一个重要标准。

Loadrunner 除了提供性能测试的功能之外,还提供了一个分析模块:AnalysisAnalysis主要了提供一个集成环境,集中收集所有在测试周期中产生的数据。由于这个工具功能强大且使用简单,测试人员可以创建跨场景的图表数据比较,增强数据分析的能力和速度。

同时LoadRunner 的分析功能利用内置的先进数学分析模式提供了高水平的问题定位能力,能帮助测试人员找出这些场景中的瓶颈所在,再辅以利用一系列复杂的图表和文字说明来解释问题。其关联功能更是大大提高了智能分析能力,加快帮助用户分析结果。例如:可以在一个时间段内将多个视图叠加进行比较,还可以将两次运行的结果放在一起进行对比,了解性能是否得到提高。最后LoadRunner通过自动关联分析能够自动生成测试分析报告,可以是基于wordhtml的,也可以是Crystal Report格式。

下面是LoadRunner 提供的部分性能图表

    百分比分析在一定时间段内完成执行的交易所占百分比

    负载下的性能指明在场景执行中,任何方位运行虚拟用户的数量和与之相关的交易时间

    交易性能在场景执行过程中每秒内完成交易平均花费的时间

    交易性能概述显示场景中所有交易的最长,最短和平均时间

    虚拟用户反应交易性能显示每个虚拟用户各自完成交易所需时间

    交易分布情况显示执行各个交易占用到的时间分布状况

9.    Loadrunner更多技术特点

    采用无代理的性能监控器,用于采集被测系统的性能参数,在被测试系统上,不安装任何代理软件,消除对被监测系统的外源性影响。

    全面分析压力测试结果,使用类似自动关联的技术,自动拟合应用性能参数(如应用响应时间,应用并发用户数)和系统性能参数(如网络性能指标,操作系统性能指标,数据库性能指标等),得出应用系统性能的瓶颈。

    产生基于各类格式的测试报告。

    支持最广泛的业界标准:WinsocketMS SQL ServerODBCOracleWebLDAPFTPSOAPDNSSAPSiebelPeople-SoftRMIEJBCorbaCOMTuxedoMQSeriesCitrixRTEReal playerMS media player.Net及移动应用等各类环境。

    中文版产品,包括安装文件,帮助文档,使用界面,测试报告均为中文。