LoadRunner压力测试实例.docx
《LoadRunner压力测试实例.docx》由会员分享,可在线阅读,更多相关《LoadRunner压力测试实例.docx(49页珍藏版)》请在冰豆网上搜索。
![LoadRunner压力测试实例.docx](https://file1.bdocx.com/fileroot1/2023-2/6/53681121-0591-4cc7-b36c-b7584e5a830b/53681121-0591-4cc7-b36c-b7584e5a830b1.gif)
LoadRunner压力测试实例
LoadRunner压力测试实例
摘要:
本文通过实例讲解介绍了LoadRunner工具的利用,介于公司的实际情形,文中主若是对工具的大体利用做了详细描述,高级运用方面除性能计数器与参数设置外其它均未涉及,待以后补充。
目的是使公司人员依照该手册即能够独立运用Loadrunner进行压力测试
主题辞:
Loadrunner工具压力测试
1LoadRunner概要介绍
LoadRunner是一种预测系统行为和性能的工业标准级负载测试工具。
通过以模拟上
万万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个
企业架构进行测试。
通过利用LoadRunner,企业能最大限度地缩短测试时刻,优化性能和加速应用系统的发布周期。
目前企业的网络应用环境都必需支持大量用户,网络体系架构中含各类应用环境且由不同供给商提供软件和硬件产品。
难以预知的用户负载和愈来愈复杂的应用环境使公司不时担忧会发生用户响应速度过慢,系统崩溃等问题。
这些都不可幸免地致使公司收益的损失。
MercuryInteractive的LoadRunner能让企业爱惜自己的收入来源,无需购买额外硬件而最大限度地利用现有的IT资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,靠得住性和可扩展性都有良好的评判。
LoadRunner是一种适用于各类体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。
LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮忙您更快的查找和发觉问题。
另外,LoadRunner能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。
大体步骤
利用LoadRunner完成测试一样分为四个步骤:
1)VvitrualUserGenerator创建脚本
✧创建脚本,选择协议
✧录制脚本
✧编辑脚本
✧检查修改脚本是不是有误
2)中央操纵器(Controller)来调度虚拟用户
✧创建Scenario,选择脚本
✧设置机械虚拟用户数
✧设置Schedule
✧若是模拟多机测试,设置IpSpoofer
3)运行脚本
✧分析scenario
4)分析测试结果
2安装LoadRunner中文版
LoadRunner分为Windows版本和Unix版本。
若是咱们的所有测试环境基于Windows
平台,那么咱们只要安装Windows版本即可。
本章讲解的安装进程确实是中文的Windows版本的安装。
系统要求
目前部门的测试机和工作机械足能够知足的最低要求。
只是要比较好
的运行LoadRunner,内存最好在512M以上,安装LoadRunner的磁盘空间至少剩余500M。
操作系统最好为Windows2000。
安装进程
中文版安装大体分两个步骤:
第一安装英文原版,然后安装中文语言插件包
英文原版寄存位置:
将紧缩文件拷贝解压到本机的安装,进程比较简单要开始安装LoadRunner,以Administrator的身份登岸Windows2000后,运行LoadRunner安装目录下即可进入安装程序。
1.在“RegistrationInformation”界面中,输入序列号(不用改动,确实是n个8)
2.在安装类型界面中,选择一种安装类型
下面简单的对这三种安装类型进行介绍
●StandaloneInstallation将要安装LoadRunner在一台运算机上
●NetworkInstallation把LoadRunner安装在一个网络驱动器上,如此任何能连接到那个
网络驱动器的运算机都能够利用LoadRunner的部份或全数组件。
●NetworkInstallationandshortcuts和NetworkInstallation类似,不同的只是这种类型将把
自己的运算机配置成Workstation来运行LoadRunner。
若是选择了第二项,咱们还需要
进行的安装来配置Workstation.。
考虑到咱们是自己学习研究学习,选择第一种安装方式。
3.在安装方式界面中,需要选择一种安装方式。
建议选择“自概念安装”,如此所有的组件都会一次安装。
下面简单的对各个安装方式进行介绍
●TypicalInstallation安装比较通用的组件,包括Controller、Vuser、在线帮忙和脚
该选项适合于操纵Vusers的机械。
●LoadGenerator只安装运行Vusers产生负载的组件。
该选项适合于只产生负载,
而不操纵Vusers的机械。
●MIListener安装MIListener组件,用来透过防火墙来运行Vusers而且监视性能。
●CustomInstallation自概念安装,咱们将利用该选项,安装全数的组件。
4.在“LicenseInformation”中输入LicenseKey后,Next,继续
100个用户(无时刻限制):
AEAMAUIK-YAFEKEKJJKEEA-BCJGI
10000个用户(有时刻限制):
AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB
5.若是是网络安装,最好把网络驱动器映射本钱机的一个盘符,安装LoadRunner的各级目录不要包括中文字符。
6.Next后进入拷贝文件的界面
7.拷贝文件完成后,进入“UserLoginSettings”界面。
●Allowvirtualuserstorunonthismachinewithoutuserlogin需要在下面输入域、用
户名和密码,如此运行LoadGenerator的机械会自动登岸到网络,
●ManuallogintotheLoadGeneratormachine运行Vusers时,自动登岸到网络,
无需登岸用户名和密码,如此Vusers就会不用任何干与自动的启动运行。
推荐
选择该项。
那个地址选择第一项和第二项都能够。
8.从头启动,安装完成
英文原版寄存位置:
将紧缩文件拷贝解压到本机的安装.。
进程比较简单要开始安装以Administrator的身份登岸Windows2000后,(注意要退出已经运行的英文原版)运行安装目录下即可进入安装程序,安装进程中一切人机交流窗口多项选择择默许“下一步”即可
注意:
解压文件寄存的文件夹不可起中文名字,安装目录最好利用默许,若是更改那么安装目录不要利用中文名!
3.项目背景介绍
背景概述
“LMS网校考试平台”是一个典型的三层B/S架构的MIS系统(客户端/应用效劳器/数据库管),中间层是业务逻辑层,应用效劳器处置所有的业务逻辑,但应用效劳器本身不提供负载均衡的能力,而是利用开发工具提供的ORB(对象请求代理)软件保证多个应用效劳器间的负载均衡。
本次测试的目的是:
进行应用效劳器的压力测试,找出应用效劳器能够支持的最大客户端数。
方式是:
依照正常业务压力估算值的1~10倍进行测试,考察应用效劳器的运行情形。
压力测试用例
场景描述一:
1.用户登录的lmm模块,总共登岸24个用户,所有效户都同时并发操作。
2.用户点击“记录的教程”
3.用户点击“启动”,进行课程学习,进入DS模块
4.在DS模块中进行学习,进程包括:
第一,点击一次课程结构树;然后,进行课程内容的学习。
5.点击“返回LMS”按钮,返回到lmm模块,点击“退出”按钮,退出系统
场景描述二:
1.用户登岸lmm模块,总共登录48个用户,每1秒登录1个用户
2.用户点击“已记录教程”
3.用户点击“启动”,进行课程学习,进入DS模块
4.在DS模块中进行学习,进程包括:
第一,点击一次课程结构树;然后,进行课程内容的学习;
5.点击“返回LMS”按钮,返回到lmm模块,点击“退出”按钮,退出系统
场景描述三:
1.用户登录的lmm模块,总共登岸48个用户,所有效户都同时并发操作。
2.用户点击“记录的教程”
3.用户点击“启动”,进行课程学习,进入DS模块
4.在DS模块中进行学习,进程包括:
第一,点击一次课程结构树;然后,进行课程内容的学习。
5.点击“返回LMS”按钮,返回到lmm模块
点击“退出”按钮,退出系统
场景描述四:
1.用户登录的lmm模块,总共登岸48个用户,每秒同时登录10个用户。
2.用户点击“记录的教程”
3.用户点击“启动”,进行课程学习,进入DS模块
4.在DS模块中进行学习,进程包括:
第一,点击一次课程结构树;然后,进行课程内容的学习。
5.点击“返回LMS”按钮,返回到lmm模块,点击“退出”按钮,退出系统
场景描述五:
1.用户登录的lmm模块,总共登岸100个用户,所有效户同时并发操作。
2.用户点击“记录的教程”
3.用户点击“启动”,进行课程学习,进入DS模块
4.在DS模块中进行学习,进程包括:
第一,点击一次课程结构树;然后,进行课程内容的学习。
5.点击“返回LMS”按钮,返回到lmm模块
场景描述六:
1.用户登录的lmm模块,总共登岸200个用户,所有效户同时并发操作
2.用户点击“记录的教程”
3.用户点击“启动”,进行课程学习,进入DS模块
4.在DS模块中进行学习,进程包括:
第一,点击一次课程结构树;然后,进行课程内容的学习。
5.点击“返回LMS”按钮,返回到lmm模块,点击“退出”按钮,退出系统
场景描述七:
1.户登录的lmm模块,总共登岸24个用户。
所有效户都同时并发操作
2.所有效户都同时并发操作,户点击“记录的教程”中“test”课件
利用自发测试工具,目的测试24个用户同时打开课件时效劳器性能
场景描述八:
1.登录的lmm模块,总共登岸60个用户。
所有效户都同时并发操作
2.有效户都同时并发操作,户点击“记录的教程”中“test”课件
利用自发测试工具,目的测试60个用户同时打开课件时效劳器性能
4.利用LoadRunner进行负载/压力测试
录制大体的用户脚本
创建用户脚本需要用到VuGen。
提示:
运行VuGen最好在1024*768的分辨率下,不然有些工具栏会看不到。
启动VisualUserGenerator后,通过菜单新建一个用户脚本,选择系统通信的协议。
那个地址咱们需要测试的是Web应用,同时考虑到后台SQL数据库因此咱们需要选择Web(HTTP/HTML)协议+SQLSERVER协议,确信后,进入主窗体。
通过菜单来启动录制脚本的命令。
●在URL中添入要测试的Web站点地址..。
●测试选择要把录制的脚本放到哪个部份,默许情形下是“Action”。
那个地址简单说明一下:
VuGen中的脚本分为三部份:
vuser_init、vuser_end和Action。
其
中vuser_init和vuser_end都只能存在一个,不能再分割,而Action还能够分成无数多个部份(通过点击New按钮,新建ActionXXX)。
在录制需要登岸的系统时,咱们把登岸部份放到vuser_init中,把登岸后的操作部份放到Action中,把注销关闭登岸部份放到vuser_end中。
(若是需要在登岸操作设集合点,那么登岸操作也要放到Action中,因为vuser_init中不能添加集合点)在其他情形下,咱们只要把操作部份放到Action中即可。
注意:
在重复执行测试脚本时,vuser_init和vuser_end中的内容只会执行一次,重复执行的只是Action中的部份。
●点“选项”按钮,进入录制的设置窗体,那个地址一样情形下不需要改动。
●然后点“OK”后,VuGen开始录制脚本。
在录制进程中,不要利用阅读器的“后退”功能,LoadRunner支持不太好!
录制进程中,在屏幕上会有一个工具条显现。
录制的进程和WinRunner有些类似,再也不多介绍。
录制完成后,按下“终止录制”按钮,VuGen自动生成用户脚本,退出录制进程。
完善测试脚本
当录制完一个大体的用户脚本后,在正式利用前咱们还需要完善测试脚本,增强脚本的
灵活性。
一样情形下,咱们通过以下几种方式来完善测试脚本。
插入事务、插入结合点、插入注解、参数化输入。
那个地址只举例介绍参数化如何设置,其它只作简单介绍。
插入事务
事务(Transaction):
为了衡量效劳器的性能,咱们需要概念事务。
比如:
咱们在脚本
中有一个数据查询操作,为了衡量效劳器执行查询操作的性能,咱们把那个操作概念为一个事务,如此在运行测试脚本时,LoadRunner运行到该事务的开始点时,LoadRunner就会开始计时,直到运行到该事务的终止点,计时终止。
那个事务的运行时刻在结果中会有反映。
插入事务操作能够在录制进程中进行,也能够在录制终止后进行。
LoadRunner运行在
脚本中插入不限数量的事务。
具体的操作方式如下:
在需要概念事务的操作前面,通过菜单或工具栏插入。
输入该事务的名称。
注意:
事务的名称最好要成心义,能够清楚的说明该事务完成的动作。
插入事务的开始点后,下面需要在需要概念事务的操作后面插入事务的“终止点”。
一样能够通过菜单或工具栏插入。
默许情形下,事务的名称列出最近的一个事务名称。
一样情形下,事务名称不用修改。
事务的状态默许情形下是LR_AUTO。
一样情形下,咱们也不需要修改,除非在手工编写代码时,有可能需要手动设置事务的状态。
插入集合点
插入集合点是为了衡量在加重负载的情形下效劳器的性能情形。
在测试打算中,可能会
要求系统能够经受1000人同时提交数据,在LoadRunner中能够通过在提交数据操作前面加入集合点,如此当虚拟用户运行到提交数据的集合点时,LoadRunner就会检查同时有多少用户运行到集合点,若是不到1000人,LoadRunner就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000人时,LoadRunner命令1000人同时去提交数据,从而达到测试打算中的需求。
注意:
集合点常常和事务结合起来利用。
集合点只能插入到Action部份,vuser_init和vuser_end中不能插入集合点。
具体的操作方式如下:
在需要插入集合点的前面,通过菜单或工具栏操作输入该集合点的名称。
注意:
集合点的名称最好要成心义,能够清楚的说明该集合点完
成的动作。
插入注释
注释的作用就不多说了,只是插入注释最好是在录制进程中。
具体的操作方式如下:
在需要插入注释的前面,通过菜单或工具栏操作
参数化输入
若是用户在录制脚本进程中,填写提交了一些数据,比如要增加数据库记录。
这些操作
都被记录到了脚本中。
当多个虚拟用户运行脚本时,都会提交相同的记录,如此不符合实际的运行情形,而且有可能引发冲突。
为了加倍真实的模拟实际环境,需要各类各样的输入。
参数化输入是一种不错的方式。
用参数表示用户的脚本有两个优势:
①能够使脚本的长度变短。
②能够利用不同的数值来测试你的脚本。
例如,若是你企图搜索不同名称的图书,你
仅仅需要写提交函数一次。
在回放的进程中,你能够利用不同的参数值,而不只搜索一
个特定名称的值。
参数化包括以下两项任务:
①在脚本顶用参数取代常量值。
②设置参数的属性和数据源。
参数化仅能够用于一个函数中的参量。
你不能用参数表示非函数参数的字符串。
另外,不是所有的函数都能够参数化的。
参数化输入的讲解,咱们采纳一个例子的方式来进行。
在本例中咱们参数化用户的登岸名:
先看如下脚本,通过脚本录制找到用户登岸部份,如图
框选住登岸名,点鼠标右键,弹出对话框,选择“替换为新参数”弹出对话框
参数名随意取,建议取通俗易懂的名字,下面咱们重点介绍一下参数的类型。
●DateTime:
很简单,在需要输入日期/时刻的地址,能够用DateTime类型来替代。
其属性设置也很简单,选择一种格式即可。
固然也能够定制格式。
.●GroupName:
临时不明白何处能用到,但设置比较简单。
在实际运行中,LoadRunner
利用该虚拟用户所在的VuserGroup来代替。
可是在VuGen中运行时,GroupName
将会是None
.●LoadGeneratorName:
在实际运行中,LoadRunner利用该虚拟用户所在LoadGenerator的机械名来代替。
.●IterationNumber:
在实际运行中,LoadRunner利用该测试脚本当前循环的次数来
代替。
.●RandomNumber:
随机数。
很简单。
在属性设置中能够设置产生随机数的范围
.●UniqueNumber:
唯一的数。
在属性设置中能够设置第一个数和递增的数的大小。
注意:
利用该参数类型必需注意能够同意的最大数。
例如:
某个文本框能同意的
最大数为99。
当利用该参数类型时,设置第一个数为1,递增的数为1,但100个
虚拟用户同时运行时,第100个虚拟用户输入的将是100,如此脚本运行将会犯错。
注意:
那个地址说的递增意思是各个用户取第一个值的递增数,每一个用户相邻的两次循
环之间的差值为1。
举例说明:
假设起始数为1,递增为5,那么第一个用户第一
次循环取值1,第二次循环取值2;第二个用户第一次循环取值为6,第二次为7;
依次类推。
●VuserID:
设置比较简单。
在实际运行中,LoadRunner利用该虚拟用户的ID来代
替,该ID是由Controller来操纵的。
可是在VuGen中运行时,VuserID将会是–1。
File:
需要在属性设置中编辑文件,添加内容,也能够从现成的数据库中取数据(下
面咱们将会介绍)
●UserDefinedFunction:
从用户开发的dll文件提取数据。
就目前我以为,这种方式
没有必要。
VuGen支持C语言的语法,在VuGen中从头编写类似的函数应该不难。
上面的例子中,咱们取随机数即可。
点“Properties…..”按钮,进行属性设置窗口
添入随机数的取值范围为(1-50),选择一种数据格式。
在“属性”中有以下几
个选项:
◆EachOccurrence:
在运行时,每碰到一次该参数,便会取一个新的值
◆Eachiteration:
运行时,在每一次循环中都取相同的值
◆Once:
运行时,在每次循环中,该参数只取一次值
那个地址咱们用的是随机数,选择EachOccurrence超级适合。
下面咱们再介绍用数据库中的用户名来参数化登岸用户名。
框选住登岸名,点鼠标右键,弹出对话框,选择“替换为新参数”弹出对话框,现在参数名输入:
name,参数类型选择File,如图
点“属性”按钮,显现以下窗口
注意:
参数的文件名不要利用、或lpt*.dat等系统装置名下面咱们将会连接数据库,从数据表当选择用户名。
点“数据向导”按钮,显示如图
利用第2项,选择“利用手动指定SQL语句”点下一步,显现如图窗口
添入连接字符串,点“创建”按钮,选择事前配置好的ODBC连接。
在SQL语句里输入select查询语句,显现如图窗口
从哪一行开始取值
按列名称取值
提示:
在参数数据显示区,最多只能看到100行,若是数据超过100行,只能点“编辑”按钮,进入记事本看。
“选择下一行”有以下几种选择:
●Sequential:
依照顺序一行行的读取。
每一个虚拟用户都会依照相同的顺序读取
●Random:
在每次循环里随机的读取一个,可是在循环中一直维持不变
●Unique:
唯一的数。
注意:
利用该类型必需注意数据表有足够多的数。
比如Controller中设定20个虚拟用户进行5次循环,那么编号为1的虚拟用户取前5个数,编号为2的虚拟用户取6-10的数,依次类推,如此数据表中至少要有100个数据,不然Controller运行进程中会返回一个错误。
“按编号”指选择列表中的那一列数据,从左到右别离是一、二、3依次
通经常使用在有关联性的数据上面。
咱们那个地址取值Sequential即可。
完成设置关闭即可
单机运行测试脚本
通过以上的各个步骤后,脚本就能够够运行了。
运行脚本能够通过菜单或工具栏来操作。
执行“运行”命令后,VuGen先编译脚本,检查是不是有语法等错误。
若是有错误,VuGen
将会提示错误。
双击错误提示,VuGen能够定位到显现错误的那一行。
为了验证脚本的正
确性,咱们还能够调试脚本,比如在脚本中加断点等,操作和在VC中完全一样,相信大伙儿谁都可不能感到陌生。
若是编译通过,就会开始运行。
然后会显现运行结果。
5实施测试
选择脚本,创建虚拟用户
启用“controller”弹出如图窗口
修改数量
选择适才录制并保留好的脚本,添加到方案中,点“确信”显现如图
依照需要修改虚拟用户数量,那个地址咱们取“100”依如实现场景设计,取不同数字
点“编辑打算”细化方案,打算名里选择打算种类:
加压,缓慢加压、默许打算或新成立打算。
✧默许打算:
同时加载所有vuser,直到完成
✧加压:
每15秒启动2个vuser持续时刻5分种
✧缓慢加压:
:
每2分种启动2个vuser持续时刻10分种
那个地址咱们选择“加压”显现如图
单位秒内同时加载几个vuser
点“加压”标签设置加压方式,点“持续时刻”标签选择完成时刻,点“加压”标签选择退出方式,点“方案开始时刻”能够概念时刻后自动到点执行,并在一个限定的时刻范围内终止,所有设置完毕后,点“ok”返回上一级窗口,点“开始方案”启动运行,显现如图窗口
Windows资源监视窗口
打开可用图中目录树,选择系统资源找到windows资源
添加windows资源监视窗口
loadruner默许性能监视窗口四个,别离是“运行vuser“、”事务响应时刻“、
“每秒点击次数”最后一个能够依照用户自己选择现实什么窗口。
打开可用图中目录树,
选择系统资源,找到windows资源双击,那么windows资源监视窗口便自动替换原窗口如上图。
固然loadrunner也能够同时显示1-16个窗口,方式是点右键,在弹出菜单当选择“查看图”选择显示的图数,也能够自概念数字。
添加windows性能计数器
鼠标选择windows资源监视窗口,点击右键弹出菜单当选择“ADDMeasurements..”弹出如图窗口
点“添加”把监视的效劳器ip地址输入,点确信,如图
若是能够正常联机到效劳器,那么在资源气宇中会显示全数计数器,现在若是点“确信”那么系统默许全数选中,在监视窗口中会显示所有性能曲线,无法单独过滤显示某条曲线,若是选中某个计数器后点“添加”那么弹出该项目下的其它性能指标,选择需要的计数器后点“添加”如图
现在要注意,你登岸客户端(也确实是你装有loadrunner机械)的用户应该是治理员身份,同时还要保证该用户在被监视的效劳器上也是治