LoadRunner压力测试实例步骤.docx
- 文档编号:25318884
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:49
- 大小:662.06KB
LoadRunner压力测试实例步骤.docx
《LoadRunner压力测试实例步骤.docx》由会员分享,可在线阅读,更多相关《LoadRunner压力测试实例步骤.docx(49页珍藏版)》请在冰豆网上搜索。
LoadRunner压力测试实例步骤
LoadRunner压力测试实例
摘要:
本文通过实例讲解介绍了LoadRunner工具的使用,介于公司的实际情况,文中主要是对工具的基本使用做了详细描述,高级运用方面除性能计数器与参数设置外其它均未涉及,待以后补充。
目的是使公司人员根据该手册便可以独立运用Loadrunner进行压力测试
主题词:
Loadrunner工具压力测试
1LoadRunner概要介绍
LoadRunner是一种预测系统行为和性能的工业标准级负载测试工具。
通过以模拟上
千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个
企业架构进行测试。
通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。
目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。
难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢,系统崩溃等问题。
这些都不可避免地导致公司收益的损失。
MercuryInteractive的LoadRunner能让企业保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,可靠性和可扩展性都有良好的评价。
LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。
LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。
此外,LoadRunner能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。
b5E2RGbCAP
1.1基本步骤
使用LoadRunner完成测试一般分为四个步骤:
1)VvitrualUserGenerator创建脚本
✧创建脚本,选择协议
✧录制脚本
✧编辑脚本
✧检查修改脚本是否有误
2)中央控制器 ✧创建Scenario,选择脚本 ✧设置机器虚拟用户数 ✧设置Schedule ✧如果模拟多机测试,设置IpSpoofer 3)运行脚本 ✧分析scenario 4)分析测试结果 2安装LoadRunner中文版 LoadRunner分为Windows版本和Unix版本。 如果我们的所有测试环境基于Windowsp1EanqFDPw 平台,那么我们只要安装Windows版本即可。 本章讲解的安装过程就是LoadRunner7.8中文的Windows版本的安装。 DXDiTa9E3d 2.1系统要求 目前部门的测试机和工作机器足可以满足LoadRunner7.8的最低要求。 不过要比较好 的运行LoadRunner,内存最好在512M以上,安装LoadRunner的磁盘空间至少剩余500M。 操作系统最好为Windows2000。 RTCrpUDGiT 2.2安装过程 LoadRunner7.8中文版安装基本分两个步骤: 首先安装LoadRunner7.8英文原版,然后安装中文语言插件包5PCzVD7HxA LoadRunner7.8英文原版存放位置: \\10.138.149.139\testtools\LR7.8nt.rar将压缩文件拷贝解压到本机的安装,过程比较简单要开始安装LoadRunner,以Administrator的身份登陆Windows2000后,运行LoadRunner安装目录下Setup.exe即可进入安装程序。 jLBHrnAILg 1.在“RegistrationInformation”界面中,输入序列号<不用改动,就是n个8)xHAQX74J0X 2.在安装类型界面中,选择一种安装类型 下面简单的对这三种安装类型进行介绍 ●StandaloneInstallation将要安装LoadRunner在一台计算机上 ●NetworkInstallation把LoadRunner安装在一个网络驱动器上,这样任何能连接到这个LDAYtRyKfE 网络驱动器的计算机都可以使用LoadRunner的部分或者全部组件。 ●NetworkInstallationandshortcuts和NetworkInstallation类似,不同的只是这种类型将把Zzz6ZB2Ltk 自己的计算机配置成Workstation来运行LoadRunner。 如果选择了第二项,我们还需要 进行2.3的安装来配置Workstation.。 考虑到我们是自己学习研究学习,选择第一种安装方法。 dvzfvkwMI1 3.在安装方式界面中,需要选择一种安装方式。 建议选择“自定义安装”,这样所有的组件都会一次安装。 rqyn14ZNXI 下面简单的对各个安装方式进行介绍 ●TypicalInstallation安装比较通用的组件,包括Controller、Vuser、在线帮助和脚EmxvxOtOco 该选项适合于控制Vusers的机器。 ●LoadGenerator只安装运行Vusers产生负载的组件。 该选项适合于只产生负载,SixE2yXPq5 而不控制Vusers的机器。 ●MIListener安装MIListener组件,用来透过防火墙来运行Vusers并且监视性能。 6ewMyirQFL ●CustomInstallation自定义安装,我们将使用该选项,安装全部的组件。 4.在“LicenseInformation”中输入LicenseKey后,Next,继续kavU42VRUs 100个用户<无时间限制): AEAMAUIK-YAFEKEKJJKEEA-BCJGI 10000个用户<有时间限制): AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGBy6v3ALoS89 5.如果是网络安装,最好把网络驱动器映射成本机的一个盘符,安装LoadRunner的各级目录不要包含中文字符。 M2ub6vSTnP 6.Next后进入拷贝文件的界面 7.拷贝文件完成后,进入“UserLoginSettings”界面。 ●Allowvirtualuserstorunonthismachinewithoutuserlogin需要在下面输入域、用0YujCfmUCw 户名和密码,这样运行LoadGenerator的机器会自动登陆到网络, ●ManuallogintotheLoadGeneratormachine运行Vusers时,自动登陆到网络,eUts8ZQVRd 无需登陆用户名和密码,这样Vusers就会不用任何干预自动的启动运行。 推荐 选择该项。 这里选择第一项和第二项都可以。 8.重新启动,安装完成 LoadRunner7.8英文原版存放位置: \\10.138.149.139\testtools\LoadRunner7.8中文版.rarsQsAEJkW5T 将压缩文件拷贝解压到本机的安装.。 过程比较简单要开始安装以Administrator的身份登陆Windows2000后,<注意要退出已经运行的英文原版)运行安装目录下Setup.exe即可进入安装程序,安装过程中一切人机交流窗口多选择默认“下一步”即可GMsIasNXkA 注意: 解压文件存放的文件夹不可起中文名字,安装目录最好使用默认,如果更改则安装目录不要使用中文名! 3.工程背景介绍 3.1背景概述 “LMS网校考试平台”是一个典型的三层B/S架构的MIS系统<客户端/应用服务器/数据库管),中间层是业务逻辑层,应用服务器处理所有的业务逻辑,但应用服务器本身不提供负载均衡的能力,而是利用开发工具提供的ORB<对象请求代理)软件保证多个应用服务器间的负载均衡。 本次测试的目的是: 进行应用服务器的压力测试,找出应用服务器能够支持的最大客户端数。 方法是: 按照正常业务压力估算值的1~10倍进行测试,考察应用服务器的运行情况。 TIrRGchYzg 3.2压力测试用例 场景描述一: 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进行负载/压力测试 4.1录制基本的用户脚本 创建用户脚本需要用到VuGen。 提示: 运行VuGen最好在1024*768的分辨率下,否则有些工具栏会看不到。 7EqZcWLZNX 启动VisualUserGenerator后,通过菜单新建一个用户脚本,选择系统通讯的协议。 lzq7IGf02E 这里我们需要测试的是Web应用,同时考虑到后台SQL数据库所以我们需要选择Web(HTTP/HTML>协议+SQLSERVER协议,确定后,进入主窗体。 通过菜单来启动录制脚本的命令。 zvpgeqJ1hk ●在URL中添入要测试的Web站点地址..。 ●测试默认情况下是“Action”。 NrpoJac3v1 这里简单说明一下: VuGen中的脚本分为三部分: vuser_init、vuser_end和Action。 其1nowfTG4KI 中vuser_init和vuser_end都只能存在一个,不能再分割,而Action还可以分成无数多个部分<通过点击New按钮,新建ActionXXX)。 在录制需要登陆的系统时,我们把登陆部分放到vuser_init中,把登陆后的操作部分放到Action中,把注销关闭登陆部分放到vuser_end中。 <如果需要在登陆操作设集合点,那么登陆操作也要放到Action中,因为vuser_init中不能添加集合点)在其他情况下,我们只要把操作部分放到Action中即可。 注意: 在重复执行测试脚本时,vuser_init和vuser_end中的内容只会执行一次,重复执行的只是Action中的部分。 fjnFLDa5Zo ●点“选项”按钮,进入录制的设置窗体,这里一般情况下不需要改动。 ●然后点“OK”后,VuGen开始录制脚本。 在录制过程中,不要使用浏览器的“后退”功能,LoadRunner支持不太好! 录制过程中,在屏幕上会有一个工具条出现。 录制的过程和WinRunner有些类似,不再多介绍。 录制完成后,按下“结束录制”按钮,VuGen自动生成用户脚本,退出录制过程。 tfnNhnE6e5 4.2完善测试脚本 当录制完一个基本的用户脚本后,在正式使用前我们还需要完善测试脚本,增强脚本的 灵活性。 一般情况下,我们通过以下几种方法来完善测试脚本。 插入事务、插入结合点、插入注解、参数化输入。 这里只举例介绍参数化如何设置,其它只作简单介绍。 HbmVN777sL 4.2.1插入事务 事务 为了衡量服务器的性能,我们需要定义事务。 比如: 我们在脚本 中有一个数据查询操作,为了衡量服务器执行查询操作的性能,我们把这个操作定义为一个事务,这样在运行测试脚本时,LoadRunner运行到该事务的开始点时,LoadRunner就会开始计时,直到运行到该事务的结束点,计时结束。 这个事务的运行时间在结果中会有反映。 V7l4jRB8Hs 插入事务操作可以在录制过程中进行,也可以在录制结束后进行。 LoadRunner运行在 脚本中插入不限数量的事务。 具体的操作方法如下: 在需要定义事务的操作前面,通过菜单或者工具栏插入。 输入该事务的名称。 注意: 事务的名称最好要有意义,能够清楚的说明该事务完成的动作。 插入事务的开始点后,下面需要在需要定义事务的操作后面插入事务的“结束点”。 同样可以通过菜单或者工具栏插入。 默认情况下,事务的名称列出最近的一个事务名称。 一般情况下,事务名称不用修改。 事务的状态默认情况下是LR_AUTO。 一般情况下,我们也不需要修改,除非在手工编写代码时,有可能需要手动设置事务的状态。 83lcPA59W9 4.2.2插入集合点 插入集合点是为了衡量在加重负载的情况下服务器的性能情况。 在测试计划中,可能会 要求系统能够承受1000人同时提交数据,在LoadRunner中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner就会检查同时有多少用户运行到集合点,如果不到1000人,LoadRunner就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000人时,LoadRunner命令1000人同时去提交数据,从而达到测试计划中的需求。 mZkklkzaaP 注意: 集合点经常和事务结合起来使用。 集合点只能插入到Action部分,vuser_init和vuser_end中不能插入集合点。 具体的操作方法如下: 在需要插入集合点的前面,通过菜单或者工具栏操作输入该集合点的名称。 注意: 集合点的名称最好要有意义,能够清楚的说明该集合点完AVktR43bpw 成的动作。 4.2.3插入注释 注释的作用就不多说了,不过插入注释最好是在录制过程中。 具体的操作方法如下: 在需要插入注释的前面,通过菜单或者工具栏操作ORjBnOwcEd 4.2.4参数化输入 如果用户在录制脚本过程中,填写提交了一些数据,比如要增加数据库记录。 这些操作 都被记录到了脚本中。 当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且有可能引起冲突。 为了更加真实的模拟实际环境,需要各种各样的输入。 参数化输入是一种不错的方法。 2MiJTy0dTT 用参数表示用户的脚本有两个优点: ①可以使脚本的长度变短。 ②可以使用不同的数值来测试你的脚本。 例如,如果你企图搜索不同名称的图书,你 仅仅需要写提交函数一次。 在回放的过程中,你可以使用不同的参数值,而不只搜索一 个特定名称的值。 参数化包含以下两项任务: ①在脚本中用参数取代常量值。 ②设置参数的属性以及数据源。 参数化仅可以用于一个函数中的参量。 你不能用参数表示非函数参数的字符串。 另外,不是所有的函数都可以参数化的。 参数化输入的讲解,我们采用一个例子的方式来进行。 在本例中我们参数化用户的登陆名: 先看如下脚本,通过脚本录制找到用户登陆部分,如图 框选住登陆名,点鼠标右键,弹出对话框,选择“替换为新参数”弹出对话框 参数名随意取,建议取通俗易懂的名字,下面我们重点介绍一下参数的类型。 ●DateTime: 很简单,在需要输入日期/时间的地方,可以用DateTime类型来替代。 其属性设置也很简单,选择一种格式即可。 当然也可以定制格式。 .●GroupName: 暂时不知道何处能用到,但设置比较简单。 在实际运行中,LoadRunner 使用该虚拟用户所在的VuserGroup来代替。 但是在VuGen中运行时,GroupName 将会是None .●LoadGeneratorName: 在实际运行中,LoadRunner使用该虚拟用户所在LoadGenerator的机器名来代替。 gIiSpiue7A .●IterationNumber: 在实际运行中,LoadRunner使用该测试脚本当前循环的次数来uEh0U1Yfmh 代替。 .●RandomNumber: 随机数。 很简单。 在属性设置中可以设置产生随机数的范围 .●UniqueNumber: 唯一的数。 在属性设置中可以设置第一个数以及递增的数的大小。 注意: 使用该参数类型必须注意可以接受的最大数。 例如: 某个文本框能接受的 最大数为99。 当使用该参数类型时,设置第一个数为1,递增的数为1,但100个 虚拟用户同时运行时,第100个虚拟用户输入的将是100,这样脚本运行将会出错。 注意: 这里说的递增意思是各个用户取第一个值的递增数,每个用户相邻的两次循 环之间的差值为1。 举例说明: 假如起始数为1,递增为5,那么第一个用户第一 次循环取值1,第二次循环取值2;第二个用户第一次循环取值为6,第二次为7; 依次类推。 ●VuserID: 设置比较简单。 在实际运行中,LoadRunner使用该虚拟用户的ID来代 替,该ID是由Controller来控制的。 但是在VuGen中运行时,VuserID将会是–1。 IAg9qLsgBX File: 需要在属性设置中编辑文件,添加内容,也可以从现成的数据库中取数据<下 面我们将会介绍) ●UserDefinedFunction: 从用户开发的dll文件提取数据。 就目前我认为,这种方式WwghWvVhPE 没有必要。 VuGen支持C语言的语法,在VuGen中重新编写类似的函数应该不难。 上面的例子中,我们取随机数即可。 点“Properties…..”按钮,进行属性设置窗口 添入随机数的取值范围为<1-50),选择一种数据格式。 在“属性”中有以下几 个选项: ◆EachOccurrence: 在运行时,每遇到一次该参数,便会取一个新的值 ◆Eachiteration: 运行时,在每一次循环中都取相同的值 ◆Once: 运行时,在每次循环中,该参数只取一次值 这里我们用的是随机数,选择EachOccurrence非常合适。 下面我们再介绍用数据库中的用户名来参数化登陆用户名。 框选住登陆名,点鼠标右键,弹出对话框,选择“替换为新参数”弹出对话框,此时参数名输入: name,参数类型选择File,如图asfpsfpi4k 点“属性”按钮,出现以下窗口 注意: 参数的文件名不要使用con.dat、pm.dat或者lpt*.dat等系统装置名下面我们将会连接数据库,从数据表中选择用户名。 点“数据向导”按钮,显示如图ooeyYZTjj1 使用第2项,选择“使用手动指定SQL语句”点下一步,出现如图窗口 添入连接字符串,点“创建”按钮,选择事先配置好的ODBC连接。 在SQL语句里输入select查询语句,出现如图窗口BkeGuInkxI 提醒: 在参数数据显示区,最多只能看到100行,如果数据超过100行,只能点“编辑”按钮,进入记事本看。 PgdO0sRlMo “选择下一行”有以下几种选择: ●Sequential: 按照顺序一行行的读取。 每一个虚拟用户都会按照相同的顺序读取 ●Random: 在每次循环里随机的读取一个,但是在循环中一直保持不变 ●Unique: 唯一的数。 注意: 使用该类型必须注意数据表有足够多的数。 比如Controller中设定20个虚拟用户进行5次循环,那么编号为1的虚拟用户取前5个数,编号为2的虚拟用户取6-10的数,依次类推,这样数据表中至少要有100个数据,否则Controller运行过程中会返回一个错误。 3cdXwckm15 “按编号”指选择列表中的那一列数据,从左到右分别是1、2、3依次 通常用在有关联性的数据上面。 我们这里取值Sequential即可。 完成设置关闭即可 4.3单机运行测试脚本 经过以上的各个步骤后,脚本就可以运行了。 运行脚本可以通过菜单或者工具栏来操作。 执行“运行”命令后,VuGen先编译脚本,检查是否有语法等错误。 如果有错误,VuGen 将会提示错误。 双击错误提示,VuGen能够定位到出现错误的那一行。 为了验证脚本的正 确性,我们还可以调试脚本,比如在脚本中加断点等,操作和在VC中完全一样,相信大家谁都不会感到陌生。 如果编译通过,就会开始运行。 然后会出现运行结果。 h8c52WOngM 5实施测试 5.1选择脚本,创建虚拟用户 启用“controller”弹出如图窗口 选择刚才录制并保存好的脚本,添加到方案中,点“确定”出现如图 根据需要修改虚拟用户数量,这里我们取“100”根据实现场景设计,取不同数字 点“编辑计划”细化方案,计划名里选择计划种类: 加压,缓慢加压、默认计划或新建立计划。 ✧默认计划: 同时加载所有vuser,直到完成 ✧加压: 每15秒启动2个vuser持
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LoadRunner 压力 测试 实例 步骤
![提示](https://static.bdocx.com/images/bang_tan.gif)