Loadrunner工具原理及分析

性能测试工具,从广义上讲,在性能测试过程中使用到的所有工具都可以称其为性能测试工具。从狭义上来讲,我们可以把性能测试工具分为服务器端性能测试工具与前端性能测试工具。

服务器端性能测试工具也我们测试人员通常所认为的性能测试工具。LoadRunner、JMeter、SilkPerformance、服务器端压力性能工具需要支持产生压力和负载,录制和生成脚本,设置和部署场景,产生并发用户和向系统施加持续的压力。

前端性能测试工具应用比较广泛,开发人员,前端开发人员、测试人员都会经常用到。Firebug 、fildder2、Yslow、HttpWatch,前端性能测试工具只需要关于心浏览器等客户端工具对具体需要展现的页面的处理过程。

性能测试工具原理

Loadrunner简介

LoadRunne是一种预测系统行为和性能的工业级负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。通过使用 LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。

LoadRunner能够完成:1)轻松创建虚拟用户;2)创建真实的负载;3)定位性能问题;4) 分析结果以精确定位问题所在;5)重复测试保证系统发布的高性能。

Loadrunner原理

根据LoadRunner的总体架构图,包括各个组件VUGen, ControllerLoad Generator(s)Analysis之间的关系,从而分析LoadRuuner工具原理如下:代理(Proxy)是客户端和服务器端之间的中介人,LoadRunner就是通过代理方式截获客户端和服务器之间交互的数据流。

1、LoadRunner的总体架构图:

Loadrunner总体架构图

2、LoadRunner的工作原理图:

 Loadrunner工作原理图

3、下面为Loadrunner内部流程图,图示LoadRunner内部各个组件之间如何进行交互,数据流和文件流之间如何进行:

Loadrunner内部流程图

Loadrunner工具组件

1、VUGen(虚拟用户生成器)

该组件主要用于录制或手动编写脚本模拟用户在被测应用下的一系列活动,以便后面通过对该虚拟用户进行大量复制进行负载测试。该部分主要包括三个部分:脚本的录制、录制选项设置、运行时设置

1)协议支持

Loadrunner是一个基于协议的性能测试工具,则测试的对象都需要使用通信协议。该工具支持的协议见下面列表:

协议分类

具体支持协议

应用程序部署解决方案

Citrix ICA

客户端/服务器

DB2 CLI、DNS、Informmix、MS SQL Server、ODBC、Oracle(2层)、Sybase Ctlib、Sybase Dblib和Windows Sockets协议。

自定义

C模版、Visual Basic模版、Java模版、Javascript和VBScript类型的脚本。

分布式组件

适用于COM/DCOM、Corba-Java和Rmi-Java协议。

电子商务

FTP、LDAP、Palm、PeopleSoft 8 mulit-lingual、SOAP、Web(HTTP/HTML)和双Web/WinSocket协议。

Enterprise Java Bean

EJB测试和Rmi-Java协议。

ERP/CRM

Baan、Oracle NCA、Peoplesoft-Tuxedo、SAP-Web、SAPGUI、Siebel-DB2 CLI、Siebel-MSSQL、Siebel-Web和Siebel-Oracle协议。

传统

终端仿真(RTE)

邮件服务

Internet邮件访问协议(IMAP)、MS Exchange(MAPI)、POP3和SMTP。

中间件

Jacada和Tuxedo(6、7)协议。

流数据

Media Player(MMS)和Real协议。

无线

i-Mode、VoiceXML和WAP协议。

Loadrunner提供三种选择协议的方式:1)单协议脚本;2)多协议脚本;3)最近新建脚本类型使用过的协议。

2)脚本编写和录制

Loadrunner支持手动编写录制两种方式生成脚本。

手动编写支持常见的编程语言,如C++、Java、Visual Basic等。该工具按支持的编程语言,以及应用分类封装了一些常用方法,当手动编写脚本时,可以查阅函数库说明文档进行使用。

脚本录制时,VuGen模拟数据库客户终端并追踪所有用户发出的请求与用户从服务器接收的请求

Loadrunner录制关系图

停止录制时,所有客户端和服务器交互协议会被放在Generation Log内。VuGen根据Generation log进行协议交互分析,最终生成脚本。

回放期间, Vuser scripts通过调用服务器API直接与服务进行交流。因为不需要客户端界面,所以可以允许大量用户运行或使用更少的机器进行测试,同时在客户端未开发的时候执行测试。

Loadrunner回放关系

①录制过程控制

在录制过程中,用户可以进行控制。包括开始录制、暂停录制、继续录制、插入集合点、插入开始和结束事务以及插入注释等功能。

②脚本参数化

在脚本录制完成后,可以对其中的可变数据进行参数化,以便获取真实的用户取值。

  1. 参数化提取数据行支持以下方式:
  • Sequential:顺序,所有虚拟用户按照顺序读取数据表;
  • Random:随机,所有虚拟用户随机形式读取数据表 ;
  • Unique:唯一,所有虚拟用户每次各取一值(不重复)。
  1. 参数的获取方式支持:
  • Each iteration:每次迭代以后;
  • Each occurrence:每次出现参数;
  • Once:每出现一个虚拟用户。

③脚本回放

脚本可以进行回放,可选“回放过程页面展现”的方式。回放过程中以日志呈现,如果出现错误将说明原因并标红处理,执行完后进行日志保存。用户可以在运行日志中查看到相应的执行信息。

并且回放完后,以页面统计方式呈现执行结果。包括回放的总体结果(成功/失败),失败的事务(步骤)数,以及以目录树的结构呈现每步骤的运行情况,如果出错的需要显示具体的错误信息。最后结果可以以HTML的形式导出。

3)录制选项设置

该部分主要包括对编写录制脚本所选语言、通信协议的选择、录制模式、录制结果处理、录制时错误处理、字符集支持、关联属性等的设置。

HTML-baseURL-base两种方式:

HTML-base方式:是对每个页面录制形成一条语句,在该模式下,访问一个页面,首先会与服务器之间建立一个连接获取页面的内容,然后从页面中分解得到其他的元素(component),然后建立几个连接分别获取相应的元素。

URL-base方式:是将每条客户端发出的请求录制成一条语句,对在该模式下,一条语句只建立一个到服务器的连接,并将通讯过程中的很多隐藏的信息都录制出来(如session、cookie)。

上一页123下一页

喜欢 | 7 不喜欢 | 3