LoadRunner 是 一种预测系统行为和性能的工业标准级负载测试工具。通过以模拟上
千万用户实施并发负载及实时性能监测的方式来确认和查找问题, LoadRunner 能够对整个
企业架构进行测试。通过使用 LoadRunner , 企业能最大限度地缩短测试时间, 优化性能和加速应用系统的发布周期。目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应 商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢, 系统崩溃等问题。这些都不可避免地导致公司收益的损失。 Mercury Interactive 的 LoadRunner 能让企业保护自己的收入来源, 无需购置额外硬件而最大限度地利用现有的 IT 资源, 并确保终端用户在应用系统的各个环节中对其测试应用的质量, 可靠性和可扩展性都有良好的评价。 LoadRunner 是一种适用于各种体系架构的自动负载 测试工具, 它能预测系统行为并优化系统性能。 LoadRunner 的测试对象是整个企业的系统, 它通过模拟实际用户的操作行为和实行实时性能监测, 来帮助您更快的查找和发现问题。此外, LoadRunner 能支持广范的协议和技术, 为您的特殊环境提供特殊的解决方案。
使用 LoadRunner 完成测试一般分为四个步骤:
1 ) Vvitrual User Generator 创建脚本
² 创建脚本,选择协议
² 录制脚本
² 编辑脚本
² 检查修改脚本是否有误
2 ) 中央控制器( Controller ) 来调度虚拟用户
² 创建 Scenario , 选择脚本
² 设置机器虚拟用户数
² 设置 Schedule
² 如果模拟多机测试,设置 Ip Spoofer
3 ) 运行脚本
² 分 析 scenario
4 ) 分析测试结果
LoadRunner 分 为 Windows 版 本和 Unix 版本。 如果我们的所有测试环境基于 Windows
平台, 那 么我们只要安装 Windows 版 本即可。本章讲解的安装过程就是 LoadRunner7.8 中 文的 Windows 版 本的安装。
目前部门的测试机和工作机器足可以满足 LoadRunner7.8 的最低要求。不过要比较好
的运行 LoadRunner , 内存最好在 512M 以上, 安 装 LoadRunner 的 磁盘空间至少剩余 500M 。操作系统最好为 Windows 2000 。
LoadRunner7.8 中 文版安装基本分两个步骤:首先安装 LoadRunner7.8 英 文原版,然后安装中文语言插件包
LoadRunner7.8 英 文原版存放位置: \\10.138.149.139\ test tools\LR7.8nt.rar 将压缩文件拷贝解压到本机的安装,过程比较简单要开始安装 LoadRunner ,以 Administrator 的身份登陆 Windows2000 后,运行 LoadRunner 安装目录下 Setup.exe 即可进入安装程序。
1. 在“ Registration Information ” 界面中, 输入序列号( 不 用改动, 就是 n 个 8 )
2. 在 安装类型界面中, 选择一种安装类型
下面简单的对这三种安装类型进行介绍
● Standalone Installation 将要安装 LoadRunner 在一台计算机上
● Network Installation 把 LoadRunner 安装在一个网络驱动器上, 这样任何能连接到这个
网络驱动器的计算机都可以使用 LoadRunner 的部分或者全部组件。
● Network Installation and shortcuts 和 Network Installation 类似,不同的只是 这种类型将把
自己的计算机配置成 Workstation 来运行 LoadRunner 。如果选择了第二项, 我们还需要
进行 2.3 的 安装来配置 Workstation. 。 考虑到我们是自己学习研究学习, 选择第一种安装 方法。
3. 在 安装方式界面中, 需要选择一种安装方式。建议选 择“ 自定义安装”, 这样所有的组件都会一次安装。
下面简单的对各个安装方式进行介绍
● Typical Installation 安装比较通用的组件, 包括 Controller 、 Vuser 、在线帮助和脚
该选项适合于控制 Vusers 的机器。
● Load Generator 只安装运行 Vusers 产生负载的组件。该选项适合于只产生负载,
而不控制 Vusers 的机器。
● MI Listener 安装 MI Listener 组件, 用 来透过防火墙来运行 Vusers 并 且监视性能。
● Custom Installation 自定义安装, 我们将使用该选项, 安 装全部的组件。
4. 在“ License Information ” 中输入 License Key 后, Next , 继续
100 个 用户(无时间限制): AEAMAUIK-YAFEKEKJJKEEA-BCJGI
10000 个 用户(有时间限制): AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB
5. 如 果是网络安装,最好把网络驱动器映射成本机的一个盘符, 安 装 LoadRunner 的 各级目录不要包含中文字符。
6. Next 后 进入拷贝文件的界面
7. 拷 贝文件完成后, 进入“ User Login Settings ” 界面。
● Allow virtual users to run on this machine without user login 需 要在下面输入域、用
户名和密码, 这 样运行 Load Generator 的 机器会自动登陆到网络,
● Manual log in to the Load Generator machine 运 行 Vusers 时, 自动登陆到网络,
无需登陆用户名和密码, 这 样 Vusers 就会 不用任何干预自动的启动运行。推荐
选择该项。这里选择第一项和第二项都可以。
8. 重 新启动, 安装完成
LoadRunner7.8 英 文原版存放位置: \\10.138.149.139\test tools\ LoadRunner7.8 中文版 .rar
将压缩文件拷贝解压到本机的安装 . 。过程比较简单要开始安装以 Administrator 的身份登陆 Windows2000 后,(注意要退出已经运行的英文原 版)运行安装目录下 Setup.exe 即 可进入安装程序,安装过程中一切人机交流窗口多选择默认“下一步”即可
注意:解压文件存放的文件夹不可起中文名字,安装目录最好使用默认,如果更改则安装目录不要使用中文名 !
“ 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 个用户同时打开课件时服务器性能
创建用户脚本需要用到 VuGen 。提示: 运行 VuGen 最 好在 1024*768 的 分辨率下, 否则有些工具栏会看不到。
启动 Visual User Generator 后, 通过菜单新建一个用户脚本, 选 择系统通讯的协议。
这里我们需要测试的是 Web 应用,同时考虑到后台 SQL 数据库所以我们需要选择 Web(HTTP/HTML) 协议+ SQL SERVER 协议,确定后, 进入主窗体。通过菜单来启动录制脚本的命令。
●在 URL 中 添入要测试的 Web 站 点地址 .. 。
●测试 http://lms.ah.sp.com.cn/lms-lmm/loginForm.do 选 择要把录制的脚本放到哪一个部分, 默认情况下是 “ 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 类型来替代。
其属性设置也很简单, 选 择一种格式即可。当然也可以定制格式。
. ● Group Name :暂时不知道何处能用到,但设置比较简 单。在实际运行中, LoadRunner
使用该虚拟用户所在的 Vuser Group 来代替。但是在 VuGen 中运行时, Group Name
将会是 None
. ● Load Generator Name : 在实际运行中, LoadRunner 使用该虚拟用户所在 Load Generator 的机器名来代替。
. ● Iteration Number : 在实际运行中, LoadRunner 使用该测试脚本当前循环的次数来
代替。
. ● Random Number : 随机数。很简单。在属性设置中可以设置产生随机数的范围
. ● Unique Number :唯一的数。在属性设置中可以设 置第一个数以及递增的数的大小。
注意: 使 用该参数类型必须注意可以接受的最大数。例如: 某 个文本框能接受的
最大数为 99 。 当使用该参数类型时, 设置第一个数为 1 , 递增的数为 1 , 但 100 个
虚拟用户同时运行时,第 100 个虚拟用户输入的将是 100 ,这样脚本运行将会出错。
注意: 这 里说的递增意思是各个用户取第一个值的递增数, 每 个用户相邻的两次循
环之间的差值为 1 。 举例说明: 假如起始数为 1 , 递增为 5 , 那么第一个用户第一
次循环取值 1 , 第二次循环取值 2 ; 第二个用户第一次循环取值为 6 , 第 二次为 7 ;
<