1、 最详细的 LOADRUNERR 进阶学习目录第 1 部分 基础篇第 1 章 性能测试基础 21.1 性能测试的意义 21.1.1 性能测试的划分 31.1.2 性能测试的术语 81.2 性能测试简介 121.2.1 性能测试策略 131.2.2 性能测试原则 151.3 LoadRunner 简介 161.3.1 LoadRunner 工作原理 171.3.2 LoadRunner 工作过程 191.3.3 LoadRunner 内部结构 191.3.4 LoadRunner 测试步骤 221.3.5 LoadRunner 注意事项 251.4 本章小结 26第 2 章 LoadRunner
2、 入门 272.1 LoadRunner 创建测试脚本 272.1.1 录制普通脚本 282.1.2 录制 Web Services 脚本 342.1.3 回放脚本及调试 392.1.4 完善脚本 422.1.5 脚本回放问题解决 482.2 LoadRunner 创建运行场景 512.2.1 创建方案 512.2.2 计划方案 572.2.3 配置方案 612.2.4 方案模式类型 702.3 LoadRunner 分析测试结果 752.3.1 配置数据选项 762.3.2 图表分析说明 812.3.3 分析报告类型 912.4 本章小结 99第 2 部分 提高篇第 3 章 LoadRunn
3、er 脚本编写 1023.1 插入检查点 1033.2 设置参数化方法 1073.2.1 参数化定义 1073.2.2 创建参数 1093.2.3 参数类型属性 1103.2.4 导入数据方法 1153.2.5 数据文件存储 1153.3 语句关联 1183.3.1 关联的意义 1193.3.2 自动关联方法 1203.3.3 手动关联方法 1223.3.4 关联中常见问题 1273.4 本章小结 129第 4 章 LoadRunner 场景设计 1304.1 集合点设置策略 1304.2 联机监视器方法 1324.3 IP 欺骗配置方法 1384.4 如何添加计数器 1424.4.1 添加
4、Oracle 计数器 1434.4.2 添加 SiteScope 计数器 1464.4.3 添加 Windows 资源计数器 1474.4.4 添加 SQL Server 计数器 1484.4.5 添加 J2EE 计数器 1484.4.6 J2EE 监控器的初始配置 1504.4.7 添加 RealPlayer 计数器 1514.5 本章小结 152第 5 章 LoadRunner 结果分析 1535.1 Analysis 分析图表说明 1545.1.1 虚拟用户图 1555.1.2 错误图 1575.1.3 事务图 1595.1.4 Web 资源图 1655.1.5 网页细分图 1725.1
5、.6 系统资源图 1815.2 Analysis 分解页面详解 1825.3 使用 TestDirector 管理分析结果 1905.4 本章小结 196第 6 章 LoadRunner 性能指标 1976.1 HTTP 服务器状态代码 1976.1.1 消息 1XX(Informational 1XX) 1976.1.2 成功 2XX(Successful 2XX) 1986.1.3 重定向 3XX(Redirection 3XX) 1986.1.4 客户端错误(Client Error 4XX ) 2006.1.5 服务器错误(Server Error 5XX) 2016.2 LoadRu
6、nner 默认计数器 2026.3 LoadRunner 性能计数器 2066.3.1 Processor 计数器 2066.3.2 Memory 计数器 2096.3.3 Disk 计数器 2126.3.4 Network 计数器 2136.3.5 Thread 计数器 2146.3.6 SQL Server 计数器 2156.3.7 IIS 计数器 2176.3.8 Tuxedo 中间件计数器 2186.3.9 WebSphere MQ 中间件计数器 2216.3.1 0Sybase 计数器 2246.4 Oracle 性能计数器 2276.4.1 Oracle 数据库优化策略 2286.
7、4.2 Oracle 监控视图添加方法 2286.4.3 Oracle 性能视图指标详解 2306.5 LoadRunner 函数介绍 2336.5.1 LoadRunner 函数 2356.5.2 Action 类函数 2376.5.3 Check 类函数 2516.5.4 Concurrent Group 类函数 2576.6 LoadRunner 性能计数器监控实例 2586.7 本章小结 267第 7 章 LoadRunner 高级应用 2687.1 规范应用之-测试脚本有效性 2687.2 规范应用之-脚本编写规范性 2707.3 高级应用之-测试脚本修改的策略 2737.3.1 测
8、试脚本加载判断标识方法 2737.3.2 测试脚本加载定义参数方法 2767.3.3 测试脚本编写判断代码方法 2787.3.4 测试过程加载验证脚本方法 2797.4 高级应用之-测试场景施压方法 2807.5 高级应用之-复杂系统关联取值方法 283本章小结 288第 3 部分 实战篇第 8 章 信息系统性能测试实例 2908.1 业务介绍 2928.1.1 用户群体 2928.1.2 应用功能 2938.1.3 应用模式 2948.2 测试概述及策略 2948.2.1 估算方法说明 2948.2.2 性能需求指标 2968.2.3 估算过程参考的行业标准 2978.3 估算各种测试性能指
9、标 2988.3.1 用户访问量估算 2988.3.2 系统可扩缩性和延续性估算 2988.3.3 容灾用户访问量估算 2998.3.4 系统处理能力计算 3008.3.5 业务处理能力估算 3018.3.6 网络流量分析估算 3018.3.7 业务处理和系统响应时间 3028.4 测试方法 3038.4.1 测试目的 3038.4.2 测试策略 3038.4.3 测试环境 3048.4.4 测试工具 3058.4.5 测试方法 3058.5 测试用例与方案 3068.5.1 测试用例 3068.5.2 系统测试方案一 3068.5.3 系统测试方案二 3078.5.4 系统测试方案三 308
10、8.5.5 系统测试方案四 3098.6 测试结果分析 3108.6.1 Weblogic 测试结果摘要 3108.6.2 测试结果分析 3128.7 测试用例实例 3128.7.1 文件查询测试记录(并发数 60) 3138.7.2 文件查询测试记录(并发数 100) 3138.7.3 文件查询测试记录(150 并发) 3148.7.4 文件查询测试记录(并发数 170) 3158.7.5 文件查询最大负载时资源情况 3158.8 本章小结 317第 9 章 应用软件性能测试报告 3199.1 测试项目简介 3199.2 测试方案 3219.2.1 性能测试计划 3239.2.2 测试网络拓
11、扑图 3249.2.3 测试范围 3249.2.4 测试策略 3259.2.5 测试文档 3269.3 测试资源的分配 3279.3.1 人力资源 3279.3.2 测试环境 3279.3.3 测试工具 3289.4 测试的实施与控制 3299.4.1 用户场景设计 3299.4.2 测试用例设计 3329.4.3 制定测试场景 3369.5 其他注意事项 3519.5.1 软件测试完成标准 3519.5.2 软件测试中止标准 3519.5.3 测试风险 3529.6 测试用例执行 3529.6.1 测试结果记录 3529.6.2 测试结果分析 3529.6.3 测试结果综述 371本章小结
12、371附录 A 函数列表 378附录 B Load Runner 调用 DLL 383附录 C 工作流构建系统性能负载测试计划模板 389附录 D 名词解释 3922.1 LoadRunner 创建测试脚本第 2 章 LoadRunner 入门LoadRunner 是一个强有力的压力测试工具。它的脚本可以录制生成,自动关联;测试场景可以面向指标,多方监控;测试结果可以用图表显示,并且可以拆分组合。作为专业的性能测试工具,通过模拟成千上万的用户对被测系统进行操作和请求,能够在实验室环境中重现生产环境中可能出现的业务压力,再通过测试过程中获取的信息和数据来确认和查找软件的性能问题,分析性能瓶颈。2
13、.1 LoadRunner 创建测试脚本开发 LoadRunner 脚本需要经过图 2-1 所示的几个步骤。图 2-1 脚本开发在录制脚本时要遵循以下录制原则:1提高脚本执行效率所录制的脚本内容要精练,而且是用户的真实操作,不可增加多余或重复性的操作,这样的脚本执行起来更能准确地模拟用户的真实行为,减少了执行时间,执行结果更准确。2录制具有代表性的功能在一个软件中有很多不同的功能,但要录制所有的功能几乎是不可能的,所以要选择常用的、使用频率较高的业务功能来进行测试。3选择具有影响的事务测试人员要对被测功能具有一定的认识和了解,选择一些对于整个测试过程中有影响的事务来测试,否则测试结果是无意义的
14、。当启动 Visual User Generator 后会出现选择脚本类型的对话框,在此对话框中,请选择我们常用的脚本类型,也就是 Web(HTTP/HTML)协议,这是最为常见的。以下脚本介绍以此类型为例。2.1.1 录制普通脚本(1) 启动 Visual User Generator,在弹出的对话框中选择需要新建的协议脚本,通过 VuGen可以采用单协议或多协议模式,进行脚本的录制。选择单协议还是多协议,根据测试程序的实际需要而定。1选择协议采用单协议模式时,VuGen 将只录制指定的协议;采用多协议模式时,VuGen 将录制多个协议中的操作。下列协议支持多协议脚本:COM、FTP 、IM
15、AP 、Oracle NCA、 POP3、RealPlayer、Window Sockets(原始)、SMTP 和 Web。“ 双协议 Web/Web Services“的引擎使用一种不同的机制,应视为单协议,不能与其他多协议类型结合使用。各种 Vuser 类型之间的另一个区别是多操作支持功能。大多数协议都可支持多个操作部分,如 Oracle NCA、Web、RTE、General(C Vusers)、 WAP、i-Mode 和 VoiceXML等协议。对于大多数 Vuser 类型,在每次录制时都会新建一个 Vuser 脚本,而不能在现有脚本中进行录制。但是,在录制 Java、CORBA-Ja
16、va、RMI-Java 、Web、WAP、i-mode、Voice XML、Oracle NCA 或 RTE Vuser 脚本时,可以在现有脚本中进行录制。创建脚本时,单击“New“(新建)打开 “New Virtual User“(新建 Vuser)对话框,该对话框可提供选择录制脚本协议的快捷方式。(1)单协议脚本:创建单协议 Vuser 脚本,这是“Startup“(启动)对话框打开时的默认选项。从 Vuser 生成器的“类别“中进行选择,并选择录制脚本的协议,如图 2-2 所示。(点击查看大图)图 2-2 选择单协议脚本(2)多协议脚本:创建多协议 Vuser 脚本,VuGen 将显示所
17、有可用的协议。选择一个协议后,单击右箭头,将其移入“Selected Protocols“ (选定的协议)部分中,如图 2-3 所示。(点击查看大图)图 2-3 选择多协议脚本(3)使用最近使用过的协议新建脚本:从最近创建脚本的协议中选择已经使用过的协议,并且这些协议已经体现了录制脚本类型,如图 2-4 所示。 (点击查看大图)图 2-4 选择最近使用的协议2开始录制假设需要测试的是 Web 应用,选择“Web(HTTP/HTML) “协议,单击“OK“按钮确定后,进入主窗体,如图 2-5 所示。(点击查看大图)图 2-5 录制结果的主窗体单击工具栏中“Start Record“按钮,根据录制
18、的对话框,输入要测试程序的地址,开始进行录制。通过“Vuser“ 菜单来启动录制脚本的命令,如图 2-6 所示。(点击查看大图)图 2-6 选择录制按钮也可以在工具栏中直接单击“Start Recording“按钮,但录制之前还要进行相应的设置,如图2-7 所示。(点击查看大图)图 2-7 录制配置界面2.1.1 录制普通脚本(2)(1)环境设置首先,勾选“Record the application startup“,单击“OK“ 后,就会自动启动要测试的程序,还可以选择要把录制的脚本放到哪一个部分,默认情况下是“Action1“。然后,单击左下角的“Options“按钮,进入录制环境设置界
19、面,如图 2-8 所示。“Recording“标签页:默认情况下选择“HTML-based Script“,说明脚本中采用 HTML 页面的形式,这种方式的 Script 脚本容易维护和理解,推荐用这种方式录制。“URL-based Script“说明脚本中的表示采用基于 URL 的方式,WAS 和 ACT 中的录制方式就是这种,这种方式看上去比较乱。其他标签页功能说明如下,如有需要可作相应的设置。“Browser“标签页:浏览器的选择。“Recording Proxy“标签页:浏览器上的代理设置。(点击查看大图)图 2-8 环境设置界面“Advanced“标签页:可以设置录制时的思考时间(T
20、hink Time)、支持的字符集标准等。“Correlation“标签页:手工设置关联,通过关联可在测试执行过程中保存动态值。使用这些设置可以配置 VuGen 在录制过程中执行的自动关联的程度。(2)脚本内容在录制过程中,可以单击“Pause“(暂停录制)按钮,在脚本中插入事务、注释和集合,防止在录制完成后再插入这些事务找不到具体位置。当业务流程完成后,单击“Stop“(停止录制)按钮,会自动生成脚本,退出录制过程,如图 2-6 所示。单击“Save“(保存)按钮,起个与实际业务有关系的名字,保存到相应的位置。使用 VuGen 录制之后生成的每个 Vuser 脚本都至少包含 vuser_in
21、it、一个或多个Actions 及 vuser_end 等三部分。在通常情况下,将登录到服务器的活动记录在 vuser_init 部分中,将客户端活动录制到Actions 部分中,并将注销过程录制到 vuser_end 部分中。因为运行多次迭代的 Vuser 脚本时,只有脚本的 Actions 部分重复,而 vuser_init 和 vuser_end 部分将不重复。脚本图例如图 2-9 所示。(点击查看大图)图 2-9 脚本图例在录制脚本期间,发出的消息可以通过日志来查看,选择“View“Output Window“,然后选择“Recording Log“选项卡。可以在“Run time S
22、etting“的“Log“ 选项卡中设置该日志的详细级别,如图 2-10 所示。(点击查看大图)图 2-10 录制日志录制时,VuGen 会创建一系列配置、数据和源代码文件。这些文件包含 Vuser 运行时和设置信息。VuGen 会将这些文件连同脚本一起进行保存。至此,一个完整的 Vuser 脚本录制完成。多协议脚本的录制与单协议脚本的录制过程基本相同,只是比单协议脚本的录制多一个选项界面,如图 2-11 所示。在此界面中单击协议,可以进行添加和删除协议的操作。在协议前的复选框中打对号,即为选中,否则删除。(点击查看大图)图 2-11 添加协议2.1.2 录制 Web Services 脚本(
23、1)在进行性能测试时,大部分对 Web 性能测试,选择“Web(HTTP/HTML)“ 协议即可,但录制完脚本后,回放脚本过程中有时会发生中断或停止的情况,查看错误时,如果无法找到 SOAP 文件字样时,就需要考虑更换脚本录制协议了。通常首先考虑更换 Web Services 协议,再次录制脚本,问题就相应解决了。在录制 Web Services 脚本前,首先对 Web Services 做一个简要的介绍,这样有助于读者或者测试人员能够更好地利用 Web Services 协议录制脚本。1什么是 Web ServicesWeb Services 是一种构建应用程序的普通模型,并能在所有支持 I
24、nternet 通信的操作系统上实施运行。Web Services 令基于组件的开发和 Web 的结合达到最佳,基于组件的对象模型,如:分布式组件对象模型(Distributed Component Object Model, DCOM)、远程方法调用(Remote Method Invocation, RMI)、互联网内部对象请求代理协议(Internet Inter-Orb Protocol, IIOP)都已经发布很长时间,但是它们都依赖于特殊对象模型协议。而 Web Services 利用 SOAP 和 XML 对这些模型在通信方面作了进一步的扩展,以消除特殊对象模型的障碍。进一步地,W
25、eb Services 还基于 HTTP 和 SOAP 协议,使得 Web 用户通过 Web 调用的方法使用 SOAP 和 HTTP 来调用远程对象,确保业务数据得以在 Web 上传输。2Web Services 结构客户根据 WSDL 描述文档,会生成一个 SOAP 请求消息。 Web Services 都是放在 Web服务器(如 IIS)后面的,客户生成的 SOAP 请求会被嵌入在一个 HTTP POST 请求中,发送到 Web 服务器,Web 服务器再把这些请求转发给 Web Services 请求处理器。请求处理器的作用在于,解析收到的 SOAP 请求,调用 Web Services,
26、然后再生成相应的 SOAP 应答。Web 服务器得到 SOAP 应答后,会再通过 HTTP 应答的方式把信息送回到客户端。3Web Services 体系Web Services 体系主要包括以下几个方面:(1)Web Services 包括 3 种组件。服务提供者:提供服务,进行注册以使服务可用;服务代理者:服务交换所,服务提供者和服务请求者之间的媒体;服务请求者:向服务代理请求服务,调用这些服务创建应用程序。(2)Web Services 提供 3 种操作。发布/不发布(Publish/Unpublish ):服务提供者向服务代理者发布(注册)服务或不发布(移去)这些服务的注册;发现(Fi
27、nd):由服务请求者向服务代理者执行发现操作,服务请求者描述要找的服务,服务代理者分发匹配的结果;绑定(Bind ):在服务请求者和服务提供者之间绑定,这两部分协商以使请求者可以访问和调用提供者的服务。(3)UDDI 规范统一描述、发现和集成(Universal Description Discovery and Integration, UDDI)是一个Web Services 的信息注册规范,基于 UDDI 的 Web Services 注册可以被发现。UDDI 的核心部分是 UDDI 业务登记逻辑,即在 Web 上有一种分布的注册服务,这种服务以一种通用的XML 格式进行描述。通过 XM
28、L 中的结构化描述,可以很方便地在互联网上发现需要的数据,进而方便进行分析和操作。从概念上看,一个 UDDI 业务登记逻辑所提供的信息包括三个部分:“白页 “包括地址、协议和已有标识; “黄页“包括基于分类标准的工业类型; “绿页“ 是关于企业所包含的服务技术信息,包括网络服务说明参考和根据发现机制对各种文件和网址提供的标识支持。(4)网络服务描述语言(WSDL)网络服务描述语言(Web Services Description Language, WSDL)遵循 XML 语法,为服务提供者提供了描述构建在不同协议或编码方式之上的 Web Services 请求基本格式的方法。WSDL 用来描
29、述一个 Web Services 能做什么,它的位置在哪里,如何调用它等。在假定以 SOAP/HTTP/MIME 作为远程对象调用机制的情况下,WSDL 会发挥最大作用。UDDI注册描述了 Web Services 绝大多数方面,包括服务的绑定细节。WSDL 可以看作是 UDDI服务描述的子集。WSDL 将服务定义为一个网络端点的集合,或者说端口的集合。在 WSDL 里面,端点及消息的抽象定义与它们具体的网络实现和数据格式绑定是分离的。这样就可以重用这些抽象定义:消息(需要交换的数据的抽象描述)和端口类型(操作的抽象集合)。针对一个特定端口类型的具体协议和数据格式规范构成一个可重用的绑定。一个
30、端口定义成网络地址和可重用的绑定的连接,端口的集合定义为服务。因此,一个 WSDL 文档在定义Web Services 时使用如下的元素:类型-使用某种类型系统定义数据类型的容器;消息-通信数据抽象的有类型的定义;操作-服务支持动作的抽象描述;端口类型-操作的抽象集合,该操作由一个或多个端点支持;绑定-针对一个特定端口类型的具体协议规范和数据格式规范;端口-单一的端点,定义成一个绑定和一个网络地址的链接;服务-相关端点的集合。不难看出,WSDL 给客户提供了一个模板,方便客户描述和绑定服务。上面简单介绍了 Web Services 基本的知识,下面采用 Web Services 单协议进行简要
31、的脚本录制,读者可结合录制脚本的过程进一步了解它,具体步骤如下:选择“开始“程序“LoadRunner“Virtual User Generator“(Vuser 生成器),启动VuGen。在 VuGen 的“File“下拉菜单中选择 “New“,新建一个脚本;从“Category“(类别)列表中选择“Web Services“ 协议,单击 “OK“按钮开始录制 Vuser 脚本。首先配置 Web Services 录制向导,配置程序录制的方式。“Record Client Application“方式是通过客户端进行录制的,“Scan WSDL file“方式需要录入 WSDL 文件才可录制
32、,在这里选择“Record Client Application“进行录制,如图 2-12 所示。“Specify WSDL files for recording“向导用于配置 WDSL 文件,由于选择 “Record Client Application“的录制方式,所以在此选择 “Do not use WSDL file during recording“,表示不利用 WSDL 文件进行录制,如图 2-13 所示。(点击查看大图)图 2-12 Web Services 录制界面 1(点击查看大图)图 2-13 Web Services 录制界面 22.1.2 录制 Web Service
33、s 脚本(2)“Specify application to record“向导用于配置程序的访问地址、浏览器和录制脚本中的一些初始化设置。在 URL 中添加测试程序的访问地址;如果程序需要其他的浏览器,选择“Record any application“进行其他浏览器的设置,这里不需要特殊的浏览器,所以不选择此项;“Record into action“选项用于指定把录制的脚本放到哪一个部分,一般初始化放在vuser_init 中,循环部分在 Action 中,结束退出部分放在 vuser_end 中,如图 2-14 所示。如有需要请单击后面的“Advanced Details“按钮,可以详
34、细地配置“Options Recording“用来录制脚本,这里不介绍 Options Recording,在以后的章节中有详细的介绍。单击“完成“ 按钮即可完成 Web Services 的向导配置。然后 VuGen 将根据程序的访问地址自动启动应用程序,并显示“Recording“(录制)工具栏,开始脚本的录制,如图 2-15 所示。(点击查看大图)图 2-14 Web Services 录制界面 3图 2-15 “Recording“工具栏在整个操作过程完成后,单击“停止“ 按钮,脚本录制结束, LoadRunner 自动把录制的内容保存在脚本中。在录制完毕的脚本中会出现一些函数,在后面
35、章节中会详细介绍这些函数的使用方法。一个生成的 Web Services 的脚本节选如图 2-16 所示。(点击查看大图)图 2-16 Web Services 脚本图例这样就完成了 Web Services 单协议脚本的录制过程2.1.3 回放脚本及调试录制完脚本后,需要单机运行一下脚本,因为在录制脚本的过程中可能会出现错误。例如:有些连接、图片或界面无法找到,需要调试;有些地方需要参数化,只有唯一值才能执行通过;还有可能回放脚本时出现-404、-500 等错误页面,发生超时等现象。这时就需要把这些问题解决掉。单击工具栏中的“Compile“按钮,查看脚本中是否有语法或者乱码错误,如果出现错
36、误需要手工及时调试,如果没有错误,在执行日志中显示“No error detected“消息提示。然后,单击工具栏中的“Run“按钮,开始执行脚本,在执行脚本期间,同样可以通过日志来查看发出的一些消息。选择“View“Output Window“,再选择“Execution Log“ 选项卡。如果有错误,VuGen 将会提示错误。双击错误提示, VuGen 能够定位到出现错误的那一行,如图 2-17 所示。(点击查看大图)图 2-17 提示运行脚本错误单机运行测试脚本后,如果编译通过,就会开始运行,运行结果如图 2-18 所示。在每次单击回放脚本后,都会出现如图 2-18 所示的运行结果页。在
37、结果页中可以清楚地看到脚本运行的情况,显示整个运行过程中出现成功、失败和警告情况各自的运行时间,并且记录下整个运行开始、结束的日期和时间。(点击查看大图)图 2-18 单机运行脚本结果如果整个运行过程成功,在页面的左侧是整个脚本的树型结构,显示出的每个脚本的控件名称前都有绿色对号的标志,例如图片、链接、提交表单等,如图 2-19 所示。(点击查看大图)图 2-19 运行成功时的结果页单击某个控件,在其右边便显示出其控件的页面或相应的运行步骤,如图 2-20 所示。(点击查看大图)图 2-20 显示运行成功步骤在此结果页中还可以检测脚本中控件或者其他错误,如果脚本回放出现错误的话,会在相应控件前
38、出现红色叉号的错误提示,如图 2-21 所示。(点击查看大图)图 2-21 运行失败的结果页单击其控件后,在右边出现脚本未通过的具体原因,以便查找出错位置进行改正,如图 2-22 所示。(点击查看大图)图 2-22 定位运行失败脚本录制、调试完成后,还可以通过插入事务、集合点等操作来完善、增强脚本。2.1.4 完善脚本(1) 为什么要完善增强脚本呢?首先,为了衡量服务器的性能,需要定义事务(Transaction)。例如在脚本中有一个数据查询操作,为了衡量服务器执行查询操作的性能,可以把这个操作定义为一个事务。这样在运行测试脚本时,LoadRunner 运行到该事务的开始点时,就会开始计时,直
39、到运行到该事务的结束点,计时结束。这个事务的运行时间在测试结果中会有反映。LoadRunner允许在脚本中插入不限数量的事务。在方案执行期间,控制台将测量执行每个事务所用的时间。方案运行后,可使用LoadRunner 的图和报告来分析各个事务的服务器性能。其次,使用集合点是为了衡量在加重负载的情况下服务器的性能情况。在测试计划中,可能会要求系统能够承受多人同时提交数据,LoadRunner 通过在提交数据操作前面加入集合点的方法,检查同时有多少用户运行到集合点,人数不足时,LoadRunner 会命令已经到集合点的用户等待,当在集合点等待的用户达到要求容纳的人数(如 1000 人)时,Load
40、Runner 向系统提交数据。在脚本中加入集合点后,控制台运行脚本时,可以对集合点进行策略设置,这样就可以根据实际情况在系统上模拟用户负载了。再次,在录制过程中最好加入注释,因为在录制完脚本后看到的都是脚本代码,操作复杂的业务无法找到相应的位置进行关联或者参数化的动作,这时,注释就显得尤为重要。最后,LoadRunner 提供了很多函数,有些函数是在录制时根据不同的协议自带的函数。其中有些函数是供手工添加的,这就要根据实际情况进行添加了。例如脚本关联,有些变量无法实现系统自动关联,只能添加函数进行手动关联。在录制完成的脚本中,还可以根据实际情况,添加事务、集合点、注释、函数等内容来增强脚本,进
41、一步完善。下面逐一进行介绍。1插入事务脚本中插入事务既可以在录制过程中直接插入,也可以在脚本录制结束后经编辑插入。建议采用在脚本的录制过程中插入事务的方法,这样不至于遗漏程序中应插入事务的操作。在需要插入事务的操作前,通过工具栏上的“Start Transaction“(开始事务)按钮插入事务,事务的名称最好有意义,这样在最后分析系统时,有助于发现系统的瓶颈点是否在具体的事务中。具体的操作方法如下:在录制 Vuser 脚本时,在需要定义事务的操作前面,单击“录制“工具栏上的“Start Transaction“ 菜单项,将打开“Start Transaction“对话框,如图 2-23 所示。接着出现如图 2-24 所示的对话框。(点击查看大图)图 2-23 插入事务开始点 图 2-24 输入事务开始名称