admin管理员组

文章数量:1534625

2024年1月25日发(作者:)

loadrunner操作简介

Loadrunner是一门测试软件系统性能的工具,所谓软件系统的性能,是指软件处理事务的时刻,消耗的系统资源,它和软件的实现算法,服务器的性能、设置有关。使用loadrunner,通过大用户量的并发操作,监测系统的响应时刻,IO、内存、CPU使用情形来评定软件系统的性能指标。

使用loadrunner,前期的预备和后期的分析是重点。

前期的预备包括基础数据的预备和脚本的编制。基础数据的预备是指制造和导入大批量数据(上千万,甚至过亿条记录),用以增加数据库的压力和测试的真实性。脚本是指用户的操作定义,通过执行脚本,来模拟用户对系统的操作。

后期的分析是指通过分析测试数据,分析系统的瓶颈所在,这需要扎实的操作系统的知识和有价值的分析体会,在那个地点省去不表。

基础数据的生成,需要借助专门的软件,提供每张表的模版数据(也确实是一条真实的记录),生成相似的批量数据(也确实是一个循环的事),储存到.unl文件中,再用shell的批处理命令导入数据库就行了。

在那个地点,我以一个web应用程序的压力测试为例,简单介绍loadrunner的基础知识。

第一部分:virtual user generator的使用

virtual user generator的要紧作用是编制脚本,它能够自动生成脚本,我们要做的要紧工作是对脚本的调试与修改。

启动virtual user generator,进入如下界面。

点击file菜单的new选项或者工具栏第一个按钮,进入如下界面:

在那个地点,选择应用程序可能使用到的协议。“new single protocol script”选择单一协议,“new multiple protocol script”能够选择多个协议,中间的列表是能够选择的协议,右边的列表是选中的协议,“new script recent propocols”是近期内使用过的协议。在不确定的你程序只使用到一个协议的情形下,请选择“new multiple propocol script”来选择你将要使用到的协议。

我们测试的是web应用程序,将要使用到的是“Web( /HTML)协议”,点击确定,进入如下界面。

在那个地点,指定要录制脚本的程序的相关信息。Application type 指定应用程序的类型。(internet applications:web应用程序,win32 applications:windows应用程序)program to

record:指定应用程序的启动程序,web应用一样为IE或其他扫瞄器,windows应用即要测试的程序的路径。Working directory:测试活动的工作名目。Web应用为loadrunner的bin文件名目,windows应用为程序所在的名目。URL address:web应用特有,应用程序的路径。Program arguments:windows特有,指定使用应用程序打开的文件的路径。(如测试tc.2.0,打开E:hello.c)record the application startup复选框指定录制脚本的开始,选中在启动时就开始生成脚本,不选中则弹出如下信息框,在想开始录制脚本的地点,点击record,往常的操作将不生成脚本,以后的操作将生成脚本。Options按钮将弹出一个对话框,进行脚本录制的高级设置,这一块涉及的内容多,范畴广,不做说明,一样应用,适用默认设置即可。

设置以上信息以后,点击‘OK’按钮,loadrunner自动启动指定程序,你对指定程序的操作将全部生成脚本,包括你输入的各种数据,脚本以c语言语法录制。

在录制过程中,将有如下的工具栏‘悬浮’在应用程序上,你能够将它拖回loadrunner工具栏,也能够让它一直悬浮在应用程序上。

工具栏的各个按钮,从左到右,分别是:

开始录制,暂停录制,停止录制,运行,编译,操作名列表,添加操作,添加检查点,添加事务,终止事务,添加集合点,添加注释,编辑录制设置。

其中,点击停止录制按钮,停止对应用程序的录制工作,生成之前操作的脚本;运行,编译按钮在录制过程中不可用,只有录制完成以后才可用。

操作事实上确实是一个函数,操作名确实是函数名,记录你的一个操作过程,它初始有三个

Vuser_init ,vuser_end和action,前两个是唯独的,一个脚本中只有一个,一样vuser_init存放加载和登陆操作,vuser_end存放退出操作,(一样情形如此,也能够将登陆和退出放在其他函数中。)action能够通过添加操作按钮添加,能够随意命名(符合c的标识符命名规则就行),在脚本运行过程中,vuser_init和vuser_end,每个虚拟用户只运行一次,所有的action能够反复执行。

检查点,事务,集合点,注释是脚本包含的单位.检查点是指一个文本图片,在录制过程中,你能够指定专门的文本或图片为检查点,loadrunner将生成相应的关联数据,在运行过程中,将检查是否加载了指定的文本或图片.事务是一个完整的活动,插入事务是为了检查某一个活动的响应时刻,比如查询客户信息,比如运算保费. 集合点是为了让所有用户同时执行某一操作,以产生对服务器的压力,比如储存,登陆.注释是一些情形说明文字.

编辑录制设置是配置录制信息,和界面三的option按钮功能一样,在这不做过多说明.

如上操作,就完成了脚本录制工作,它是脚本的基础.

录制的脚本有两种视图方式,脚本视图和树视图,如下:

脚本视图左边列出脚本中的操作名,那个地点的操作,是脚本录制过程中通过‘添加操作’按钮添加的各种操作,对应到右边的代码,确实是一个个函数的函数名,你能够右键单击,删除选中的操作,添加新操作,重命名操作等。

脚本视图右边以c语言代码的方式记录了你对页面的操作,能够通过调用的函数名和函数参数查看你的操作和操作的页面。树视图直观清晰,左边列出你操作的页面名,右边列出页面内容。

假如协议选择的时候选择的是多协议,脚本视图将生成相应的.h文件,将相应的函数包含进来,假如是单一协议,将在相应的操作函数定义之前包含。

脚本录制是脚本生成的基础,要想脚本是有价值的,还要对脚本进行优化和调试。

脚本优化要紧有三点:调整Think-time,调整事务,参数化。

Think-time是你录制脚本的时候,在一个操作之前的停留时刻,系统会纪录你的Think-time假如超过三秒,就会纪录下来,think-time对系统的结果分析阻碍专门大,因此一样设置的专门小,能去掉的尽量去掉,然而有些是必须的,去掉系统会走只是去。

事务是一个完整的活动,在可能会阻碍系统执行时刻的地点设置事务(如登陆,查询数据库或其他复杂的算法),通过检测事务响应时刻判定系统性能。事务里不要有think-time,否则会阻碍数据的真实性,也就阻碍性能分析结果。插入事务的方法专门简单,在录制脚本过程中或在将光标停在想插入事务的脚本位置,点击工具栏中insert start transaction和 insert end transaction按钮,给事务命名,即可插入事务。

参数化是指将脚本中那些在每次运行是需要改变的值变量化的过程。脚本录制过程中,你输入的数据会带到脚本中,假如不参数化,每次运行写入读出的差不多上同一数据,不能保证真实性,也阻碍测试结果。

比如有以下脚本:

web_submit_data("",

"Action= ://192.168.30.5:7601/claim/",

"Method=POST",

"RecContentType=text/html",

"Referer= ://192.168.30.5:7601/claim/",

"Snapshot=",

"Mode=HTML",

ITEMDATA,

"Name=loginMessage", "Value=", ENDITEM,

"Name=prpDuserUserCode", "Value=1100003103", ENDITEM,

"Name=prpDuserPassword", "Value=0000", ENDITEM,

"Name=prpDuserComCode", "Value=11000031", ENDITEM,

"Name=imageField.x", "Value=0", ENDITEM,

"Name=imageField.y", "Value=0", ENDITEM,

EXTRARES,

"Url=images/",

"Referer= ://192.168.30.5:7601/claim/common/pub/", ENDITEM,

"Url=images/",

"Referer= ://192.168.30.5:7601/claim/common/pub/", ENDITEM,

LAST);

要对用户名1100003103,密码0000,登陆机构11000031参数化,分别选中这三个值,右键弹出菜单,选replace with a parameter,弹出如下对话框

Parameter name 中输入参数名,parameter type中选择参数类型,original value中储存原始值。

参数类型有:

Datetime:时刻型参数,能够选择输出格式

Random Number:随机数,能够指定随机数的范畴,选择输出格式

Unique Number:一个唯独数,能够指定起始值和块的大小。那个地点的唯独,是指每个虚拟用户取唯独值,因此要指定块的大小。

Iteration Number:当前反复数

Vuser ID:当前虚拟用户的ID,在vuser generator中为-1。

Group Name:用脚本负载生成器的名称替换参数,负载生成器是虚拟用户在运行的运算机。

Load generator Name:用虚拟用户组名称替换参数,在vuser generator中为None。

File:将参数值储存到一个.dat文件中,运行时按指定的方式替换。

User Define Function:调用外部dll函数生成的数据。

这九类参数也能够用一句话总结:

某日(date/time)发觉一个用户自定义的dll(user define function)文件(file),里面有一个序号(vuser id)、两个名字(group name和load generator name),还有三个数字:迭代数(iteration number)、随机数(random number)和唯独数(unique number)。

除vuser id 、group name、load generator name 由运行时自动生成唯独值以外,其他的数据类型都可能有多个值选择,就需要配置选择参数,点击properties,进入配置对话框,不同的参数类型需要配置不同的参数设置,对话框也不一样,比较复杂的是file,以file为例,如下图:

File path 输入文件路径;Create 创建文件;add col在文件里添加一列;data wizard 配置数据库链接属性,能够选择microsoft querry 和sql 链接。Microsoft querry没用过,sql链接通过ODBC 的 dsn链接数据库。

指定链接属性和sql语句。点击creat创建链接属性。

伺服器填数据库名,数据库路径由oracle指定。

在parameter properties对话框中,select column 设置使用哪一列替换参数,能够用列名,也能够用列序号,关于多个参数的脚本文件,能够把参数值全部放在一个.dat文件中,不同参数指定相应的列;file format指定开始的行数和两列间的分隔符,能够从第一行开始,也能够从任意行开始,分隔符能够用逗号(comma)、空格(space)、tab键(tab),这由你的文件中列与列分隔符决定,一样用逗号。

Select next row指定如何查询下一个值,能够是顺序的(sequential)、随机的(random)、唯独的(unique)。假如是唯独的话,就有可能会超显现有的值的个数,在When out of values中能够设置超出时的处理方式。 能够中断(abort vuser)重新循环(continue in a cyclic

manner)以最后一个值运行(continue with last value)

Update value on 指定何时替代参数。能够是每一次反复(each iteration)、每一次显现(each

occurrence)、只在第一次替代(once)。第一次替代指每个用户第一次遇到参数时替代,以后一直用同一个值,不管有没有反复执行;每一次反复是指同一个用户每反复执行一次替代一次;每一次显现指每次碰到参数都替代。

参数化专门复杂,也专门有用,是脚本调制的重点,生成的参数有一个参数列表,能够在param list工具栏中对参数进行爱护,要在同一脚本的另外的地点使用已定义的脚本,

能够右键选择use existing parameters。

在generator中运行,是一个一个用户一个用户的运行,要多个用户同时运行,需要进controller,能够设置运行时参数,要紧修改超时时刻,是否反复执行,是否忽略think-time。

反复和反复次数设置,反复执行时只重复run下的函数,也确实是action和用户自定义函数,init和end不反复执行。能够把不想反复执行的action delete。

Think-time设置:现在选中的是忽略think-time。能够保持脚本时刻,能够倍数于脚本记录时刻,能够在脚本时刻的一个百分比范畴内随机取值,能够限制在一个时刻以内。

超时设置,要紧是 request connect timeout(默认120,最大1000) , request receive

timeout(默认120,最大1000),step download timeout(默认120,最大2000)

第二部:controller的使用

Controller是批量用户执行脚本的环境,有两种界面,design和run。

Design界面设置运行时参数。

Edit schedule能够设置加载方式(全部用户同时加载或每多少秒内加多少用户)、运行时刻(指定时刻内反复运行,随意运行,运行一次。)退出方式(全部用户同时退出或每多少秒内退多少用户)

Generators能够创建联机环境。能够链接指定机器同时联机操作(add->connect)

Vusers添加用户,Add group添加用户组,Run-time settings运行时设置,View script查看脚

Run检测运行情形:

有四个窗口能够检测不同性能,一样检测事务响应时刻和操作执行时刻(transaction response

time), 响应时刻( responses per second),点击率(hits per second)和吞吐量(throughput)。能够跟据你测试目的检测不同参数。

Scenario groups显示用户执行情形,那个地点显示的是一个大致情形,能够点击右边的scenario

Status ,弹出如下界面:

那个地点列出了事务,操作的运行情形。

第三部分:analysis

Controller的执行结果能够在analysis里查询,那个地点记录了分析需要的数据。

压力测试的分析,涉及专门多,在那个地点就不说了,哈哈。

本文标签: 脚本能够操作参数时刻