LoadRunner使用手册
测试中心 刘艳会
1 LoadRunner概要介绍
LoadRunner® 是一种预测系统行为和性能的工业标准级负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。
目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢,系统崩溃等问题。这些都不可避免地导致公司收益的损失。Mercury Interactive 的 LoadRunner 能让企业保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT 资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,可靠性和可扩展性都有良好的评价。
LoadRunner 是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。
1.1 轻松创建虚拟用户
使用LoadRunner 的Virtual User Generator,您能很简便地创立起系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程(如下订单或机票预定),然后将其转化为测试脚本。利用虚拟用户,您可以在Windows ,UNIX 或Linux 机器上同时产生成千上万个用户访问。所以LoadRunner能极大的减少负载测试所需的硬件和人力资源。另外,LoadRunner 的TurboLoad 专利技术能提供很高的适应性。TurboLoad 使您可以产生每天几十万名在线用户和数以百万计的点击数的负载。
用Virtual User Generator 建立测试脚本后,您可以对其进行参数化操作,这一操作能让您利用几套不同的实际发生数据来测试您的应用程序,从而反映出本系统的负载能力。以一个订单输入过程为例,参数化操作可将记录中的固定数据,如订单号和客户名称,由可变值来代替。在这些变量内随意输入可能的订单号和客户名,来匹配多个实际用户的操作行为。
LoadRunner 通过它的Data Wizard 来自动实现其测试数据的参数化。Data Wizard 直接
2003-8-21 第 1 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
连于数据库服务器,从中您可以获取所需的数据(如定单号和用户名)并直接将其输入到测试脚本。这样避免了人工处理数据的需要,Data Wizard 为您节省了大量的时间。
为了进一步确定您的Virtual user 能够模拟真实用户,您可利用LoadRunner 控制某些行为特性。例如,只需要点击一下鼠标,您就能轻易控制交易的数量,交易频率,用户的思考时间和连接速度等。
1.2 创建真实的负载
Virtual users 建立起后,您需要设定您的负载方案,业务流程组合和虚拟用户数量。用LoadRunner 的Controller,您能很快组织起多用户的测试方案。Controller 的Rendezvous 功能提供一个互动的环境,在其中您既能建立起持续且循环的负载,又能管理和驱动负载测试方案。而且,您可以利用它的日程计划服务来定义用户在什么时候访问系统以产生负载。这样,您就能将测试过程自动化。同样您还可以用Controller 来限定您的负载方案,在这个方案中所有的用户同时执行一个动作---如登陆到一个库存应用程序----来模拟峰值负载的情况。另外,您还能监测系统架构中各个组件的性能---- 包括服务器,数据库,网络设备等----来帮助客户决定系统的配置。
LoadRunner 通过它的AutoLoad 技术,为您提供更多的测试灵活性。使用AutoLoad ,您可以根据目前的用户人数事先设定测试目标,优化测试流程。例如,您的目标可以是确定您的应用系统承受的每秒点击数或每秒的交易量。
1.3 实时监测器
LoadRunner 内含集成的实时监测器,在负载测试过程的任何时候,您都可以观察到应用系统的运行性能。这些性能监测器为您实时显示交易性能数据(如响应时间)和其它系统组件包括application server, web server,网路设备和数据库等的实时性能。这样,您就可以在测试过程中从客户和服务器的双方面评估这些系统组件的运行性能,从而更快地发现问题。
再者,利用LoadRunner 的ContentCheck TM ,您可以判断负载下的应用程序功能正常与否。ContentCheck 在Virtual users 运行时,检测应用程序的网络数据包内容,从中确定是否有错误内容传送出去。它的实时浏览器帮助您从终端用户角度观察程序性能状况。
1.4 分析结果以精确定位问题所在
一旦测试完毕后,LoadRunner 收集汇总所有的测试数据,并为您提供高级的分析和报告工具,以便迅速查找到性能问题并追溯原由。使用LoadRunner 的Web 交易细节监测器,您可以了解到将所有的图象、框架和文本下载到每一网页上所需的时间。例如,这个交易细节分析机制能够分析是否因为一个大尺寸的图形文件或是第三方的数据组件造成应用系统运行速度减慢。另外,Web 交易细节监测器分解用于客户端、网络和服务器上端到端的反
2003-8-21
第 2 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
应时间,便于确认问题,定位查找真正出错的组件。例如,您可以将网络延时进行分解,以判断DNS 解析时间,连接服务器或SSL 认证所花费的时间。通过使用LoadRunner 的分析工具,您能很快地查找到出错的位置和原因并作出相应的调整。
1.5 重复测试保证系统发布的高性能
负载测试是一个重复过程。每次处理完一个出错情况,您都需要对您的应用程序在相同的方案下,再进行一次负载测试。以此检验您所做的修正是否改善了运行性能。
1.6 其他特性
利用LoadRunner, 您可以很方便地了解系统的性能。 它的Controller 允许您重复执行与出错修改前相同的测试方案。它的基于HTML 的报告为您提供一个比较性能结果所需的基准,以此衡量在一段时间内,有多大程度的改进并确保应用成功。由于这些报告是基于HTML 的文本,您可以将其公布于您公司的内部网上,便于随时查阅。
所有Mercury Interactive 的产品和服务都是集成设计的, 能完全相容地一起运作。由于它们具有相同的核心技术,来自于LoadRunner和ActiveTest TM 的测试脚本,在Mercury Interactive 的负载测试服务项目中,可以被重复用于性能监测。借助Mercury Interactive的监测功能--Topaz TM 和ActiveWatch TM ,测试脚本可重复使用从而平衡投资收益。更重要的是,您能为测试的前期布署和生产系统的监测提供一个完整的应用性能管理解决方案。
l Enterprise Java Beans的测试
LoadRunner 完全支持EJB 的负载测试。这些基于Java 的组件运行在应用服务器上,提供广泛的应用服务。通过测试这些组件,您可以在应用程序开发的早期就确认并解决可能产生的问题。
l 支持无线应用协议
随着无线设备数量和种类的增多,您的测试计划需要同时满足传统的基于浏览器的用户和无线互联网设备,如手机和PDA。LoadRunner 支持2 项最广泛使用的协议:WAP和I-mode。此外,通过负载测试系统整体架构,LoadRunner 能让您只需要通过记录一次脚本,就可完全检测上述这些无线互联网系统。 l
LoadRunner 还能支持Media Stream应用。为了保证终端用户得到良好的操作体验和高质量Media Stream,您需要检测您的Media Stream应用程序。使用LoadRunner ,您可以记录和重放任何流行的多媒体数据流格式来诊断系统的性能问题,查找原由,分析数据的质量。 l
完整的企业应用环境的支持 支持Media Stream应用
2003-8-21 第 3 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
LoadRunner 支持广泛的协议,可以测试各种IT 基础架构。
2 安装LoadRunner
LoadRunner分为Windows版本和Unix版本。如果我们的所有测试环境基于Windows平台,那么我们只要安装Windows版本即可。
本章讲解的安装过程就是LoadRunner7.51的Windows版本的安装。
2.1 系统要求
目前部门的测试机和工作机器足可以满足LoadRunner7.51的最低要求。不过要比较好的运行LoadRunner,内存最好在128M以上,安装LoadRunner的磁盘空间至少剩余500M。操作系统最好为Windows 2000。
2.2 安装过程
LoadRunner的安装过程比较简单,这里我仅作简单的说明。 要开始安装LoadRunner,以Administrator的身份登陆Windows2000后,运行LoadRunner安装目录中win32下Setup.exe即可进入安装程序。
1. 在“Registration Information”界面中,输入序列号(不用改动,就是n个8)
2. 在安装类型界面中,选择一种安装类型
2003-8-21
第 4 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
下面简单的对这三种安装类型进行介绍
l Standalone Installation 将要安装LoadRunner在一台计算机上
l Network Installation 把LoadRunner安装在一个网络驱动器上,这样任何能连接到这个
网络驱动器的计算机都可以使用LoadRunner的部分或者全部组件。 l Network Installation and shortcuts 和Network Installation类似,不同的只是这种类型将把
自己的计算机配置成Workstation来运行LoadRunner。如果选择了第二项,我们还需要进行2.3的安装来配置Workstation.
考虑到我们部门现在的状况,我认为应该选择第三种安装方法。如果只是自己学习研究,选择第一种安装方法。
3. 在安装方式界面中,需要选择一种安装方式。建议选择“自定义安装”,这样所有的组
件都会一次安装。
下面简单的对各个安装方式进行介绍
l Typical Installation 安装比较通用的组件,包括Controller、Vuser、在线帮助和脚
本例程。该选项适合于控制Vusers的机器。
l Load Generator 只安装运行Vusers产生负载的组件。该选项适合于只产生负载,
而不控制Vusers的机器。
l MI Listener 安装MI Listener组件,用来透过防火墙来运行Vusers并且监视性能。 l Custom Installation 自定义安装,我们将使用该选项,安装全部的组件。
2003-8-21 第 5 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
4. 在“License Information”中输入License Key后,Next,继续
5. 安装路径选择界面 既然是网络安装,当然要安装到一个网络驱动器上。提醒:最好把
网络驱动器映射成本机的一个盘符(比如H:盘),安装LoadRunner的各级目录不要包含中文字符。
2003-8-21 第 6 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
6. Next后进入拷贝文件的界面
7. 拷贝文件完成后,进入“User Login Settings”界面。
l Allow virtual users to run on this machine without user login 需要在下面输入域、用
2003-8-21
第 7 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
l
户名和密码,这样运行Load Generator的机器会自动登陆到网络,
Manual log in to the Load Generator machine 运行Vusers时,自动登陆到网络,无需登陆用户名和密码,这样Vusers就会不用任何干预自动的启动运行。推荐选择该项。
这里选择第一项和第二项都可以。
8. 重新启动,输入映射网络驱动器的密码后,安装完成
2.3 WorkStation 安装
LoadRunner安装在网络驱动器上后,其他的计算机可以访问网络驱动器,安装Workstation,这样大家就可以通过网络使用LoadRunner的共享版本。 安装过程的主要步骤如下:
1. 把网络驱动器映射到本机的一个盘符。
2. 打开网络驱动器,运行其中的Setup目录下的Setup.exe 3. 剩下的步骤可以参考2.2中的步骤了。
3 使用LoadRunner对Web应用进行负载/压力测试
LoadRunner包含很多组件,其中最常用的有 Visual User Generator(以下简称VuGen)、Controller,Analysis。 使用LoadRunner进行测试的过程可以用下图表示
2003-8-21
第 8 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
摘自LoadRunner在线帮助
下面我们就按照上图的步骤来简单说明使用LoadRunner的测试过程。
3.1 制定负载测试计划
在任何类型的测试中,测试计划都是必要的步骤。测试计划是进行成功的负载测试的关键。任何类型的测试的第一步都是制定比较详细的测试计划。一个比较好的测试计划能够保证LoadRunner能够完成负载测试的目标。 关于比较详细的信息请参考第4章。
3.2 开发测试脚本
LoadRunner使用虚拟用户的活动来模拟真实用户来操作Web应用程序,而虚拟用户的活动就包含在测试脚本中,所以说测试脚本对于测试来说是非常重要的。 开发测试脚本要使用VuGen组件。测试脚本要完成的内容有:
u 每一个虚拟用户的活动 u 定义结合点 u 定义事务
关于比较详细的信息请参考第5章。
2003-8-21 第 9 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
3.3 创建运行场景
运行场景描述在测试活动中发生的各种事件。一个运行场景包括一个运行虚拟用户活动的Load Generator机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组。
我们使用Controller来创建运行场景。关于比较详细的信息请参考第6章。
3.4 运行测试
一切配置妥当,开始运行测试。无需多讲!
3.5 监视场景
在运行过程中,可以监视各个服务器的运行情况(DataBase Server、Web Server等)。监视场景通过添加性能计数器来实现。 关于比较详细的信息请参考第7章。
3.6 分析测试结果
所有前面的准备都是为了这一步。我们需要分析大量的图表,生成各种不同的报告,最后会得出结论。 关于比较详细的信息请参考第8章。
4 制定负载测试计划
制定负载测试计划一般情况下需要三个步骤,可以用下图表示
摘自LoadRunner在线帮助
下面简单的对这三个过程进行介绍。
2003-8-21 第 10 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
4.1 分析应用程序(Analyze the Application)
制定负载测试计划的第一步是分析应用程序。你应该对系统的软硬件以及配置情况非常的熟悉,这样才能保证你使用LoadRunner创建的测试环境真实的反映实际运行的环境。 l
确定系统的组成
画出系统的组成图。组成图要包括系统中所有的组件,以及相互之间是如何通讯的。下面是一个系统组成图的例子,可以参考。
l
描述系统配置
画出系统组成图后,试着回答以下问题,对组成图进行完善。 ü 预计有多少用户会连到系统
ü 客户机的配置情况(硬件、内存、操作系统、软件工具等) ü 服务器使用什么类型的数据库以及服务器的配置情况 ü 客户机和服务器之间如何通讯
ü 还有什么组件会影响Response Time指标(比如Modem等)
ü 通讯装置(网卡、路由器等)的吞吐量是多少?每个通讯装置能够处理多少并发用
户
分析最普遍的使用方法
了解该系统最常用的功能,确定那些功能需要优先测试、什么角色使用该系统以及每个角色会有多少人、每个角色的地理分布情况等,从而预测负载的最高峰出现的情况。
l
4.2 确定测试目标(Defining Testing Objectives)
这里借用一段文字来说明如何确定测试目标。
2003-8-21 第 11 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
摘自LoadRunner在线帮助 在这里还要确定何时开始负载测试,在不同的阶段进行什么内容的负载测试。可以用下表来说明。
4.3 计划怎样执行LoadRunner
确定要使用LoadRunner度量那些性能参数,根据测量结果计算那些参数,从而可以确定Vusers(虚拟用户)的活动,最终可以确定那些是系统的瓶颈等。 在这里还要选择测试环境,测试机器的配置情况等等。
2003-8-21
第 12 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
5 开发测试脚本
开发测试脚本需要几个步骤,可以用下图来表示
创建用户脚本需要用到VuGen。提示:运行VuGen最好在1024*768的分辨率下,否则有些工具栏会看不到。
5.1 录制基本的用户脚本
启动Visual User Generator后,通过菜单
新建一个用户脚本,选择系统通讯的协议。
2003-8-21 第 13 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
这里我们需要测试的是Web应用,所以我们需要选择Web(HTTP/HTML)协议,确定后,进入主窗体。
2003-8-21
第 14 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
通过菜单
来启动录制脚本的命令。
u 在URL中添入要测试的Web站点地址,这里我们以著名的Duwamish应用为例子
来进行录制。
u 选择要把录制的脚本放到哪一个部分,默认情况下是“Action1”。
这里简单说明一下: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中的部分。
u “Record the application startup”默认情况下是选中的,说明应用程序一旦启动,
VuGen就会开始录制脚本;如果没有选中,应用程序启动后,VuGen出现以下对话框,并且暂时不会开始录制脚本,用户操作应用程序到需要录制的地方,按下“Record”按钮,VuGen才开始录制。
2003-8-21
第 15 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
u 点“Options”按钮,进入录制的设置窗体,这里一般情况下不需要改动。
Ø Recording标签页:默认情况下选择“HTML-based Script”,说明脚本中采用
HTML页面的形式来表示,这种方式的Script脚本容易维护,容易理解,推荐这种方式录制(微软在ACT中附带的Duwamish7例子采用的就是这种方式)。“URL-based Script”说明脚本中的表示采用基于URL的方式,WAS和ACT中的录制方式就是这种,这种方式看上去比较乱。 选择哪种方式录制,有以下参考原则:
1 基于浏览器的应用程序推荐使用HTML-based Script
2 不是基于浏览器的应用程序推荐使用URL-based Script。
3 如果基于浏览器的应用程序中包含了JavaScript并且该脚本向服务器产生
了请求,比如DataGrid的分页按钮等,也要使用URL-based 方式录制 4 基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-based方式
录制
Ø Advanced标签页:取默认情况即可。下面的图简单的说明了各项的含义。 Ø Correlation标签页:这里的内容比较重要,需要定制,主要是为了在录制过程
中设置自动关联。这里资料比较少,现在还没有进行深入的研究。 由于内容比较多,就不再一一介绍各项的含义了。
根据自己的需求,选择适当的设置,然后点“OK”后,VuGen开始录制脚本。 在录制过程中,不要使用浏览器的“后退”功能,LoadRunner支持不太好!
第 16 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
2003-8-21
LoadRunner使用说明 制作单位:软件测试中心
录制过程中,在屏幕上会有一个工具条出现。 下面我们简单介绍一下各个按钮的功能。
录制的过程和WinRunner有些类似,不再多介绍。
录制完成后,按下“结束录制”按钮,VuGen自动生成用户脚本,退出录制过程。脚本参考下页的图。
2003-8-21 第 17 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
5.2 完善测试脚本
当录制完一个基本的用户脚本后,在正式使用前我们还需要完善测试脚本,增强脚本的灵活性。一般情况下,我们通过以下方法来完善测试脚本。
5.2.1 插入事务
事务(Transaction):为了衡量服务器的性能,我们需要定义事务。比如:我们在脚本中有一个数据查询操作,为了衡量服务器执行查询操作的性能,我们把这个操作定义为一个事务,这样在运行测试脚本时,LoadRunner运行到该事务的开始点时,LoadRunner就会开始计时,直到运行到该事务的结束点,计时结束。这个事务的运行时间在结果中会有反映。 插入事务操作可以在录制过程中进行,也可以在录制结束后进行。LoadRunner运行在脚本中插入不限数量的事务。 具体的操作方法如下:在需要定义事务的操作前面,通过菜单或者工具栏插入。
2003-8-21 第 18 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
出现以下对话框:
输入该事务的名称。注意:事务的名称最好要有意义,能够清楚的说明该事务完成的动作。 插入事务的开始点后,下面需要在需要定义事务的操作后面插入事务的“结束点”。同样可以通过菜单或者工具栏插入。
出现以下对话框:
默认情况下,事务的名称列出最近的一个事务名称。一般情况下,事务名称不用修改。 事务的状态默认情况下是LR_AUTO。一般情况下,我们也不需要修改,除非在手工编写代码时,有可能需要手动设置事务的状态。 脚本中事务的代码如下:
2003-8-21 第 19 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
5.2.2 插入集合点
插入集合点是为了衡量在加重负载的情况下服务器的性能情况。在测试计划中,可能会要求系统能够承受1000人同时提交数据,在LoadRunner中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner就会检查同时有多少用户运行到集合点,如果不到1000人,LoadRunner就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000人时,LoadRunner命令1000人同时去提交数据,从而达到测试计划中的需求。
注意:集合点经常和事务结合起来使用。集合点只能插入到Action部分,vuser_init和vuser_end中不能插入集合点。 具体的操作方法如下:在需要插入集合点的前面,通过菜单或者工具栏操作
出现对话框
输入该集合点的名称。注意:集合点的名称最好要有意义,能够清楚的说明该集合点完成的动作。 脚本中集合点的代码如下:
5.2.3 插入注释
注释的作用就不多说了,不过插入注释最好是在录制过程中。
具体的操作方法如下:在需要插入注释的前面,通过菜单或者工具栏操作
2003-8-21 第 20 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
出现对话框
脚本中注释的代码如下:
5.2.4 参数化输入
如果用户在录制脚本过程中,填写提交了一些数据,比如要增加数据库记录。这些操作都被记录到了脚本中。当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且有可能引起冲突。为了更加真实的模拟实际环境,需要各种各样的输入。参数化输入是一种不错的方法。
用参数表示用户的脚本有两个优点: ① 可以使脚本的长度变短。
② 可以使用不同的数值来测试你的脚本。例如,如果你企图搜索不同名称的图书,你仅仅需要写提交函数一次。在回放的过程中,你可以使用不同的参数值,而不只搜索一个特定名称的值。
参数化包含以下两项任务:
① 在脚本中用参数取代常量值。 ② 设置参数的属性以及数据源。
参数化仅可以用于一个函数中的参量。你不能用参数表示非函数参数的字符串。 另外,不是所有的函数都可以参数化的。
参数化输入的讲解,我们采用一个例子的方式来进行。
2003-8-21 第 21 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
假如有以上的一个提交数据的窗体,我们想参数化高亮显示的部分(31)。操作方法很简单,我们只要选中“31”,然后点鼠标右键
选择“Replace with a parameter.”,出现以下窗口:
下面我们重点介绍一下参数的类型。
n DateTime:很简单,在需要输入日期/时间的地方,可以用DateTime类型来替代。
其属性设置也很简单,选择一种格式即可。当然也可以定制格式。 n Group Name:暂时不知道何处能用到,但设置比较简单。在实际运行中,LoadRunner
使用该虚拟用户所在的Vuser Group来代替。但是在VuGen中运行时,Group Name将会是None
第 22 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
2003-8-21
LoadRunner使用说明 制作单位:软件测试中心
n
Load Generator Name:在实际运行中,LoadRunner使用该虚拟用户所在Load Generator的机器名来代替。
n Iteration Number:在实际运行中,LoadRunner使用该测试脚本当前循环的次数来
代替。
n Random Number:随机数。很简单。在属性设置中可以设置产生随机数的范围 n Unique Number:唯一的数。在属性设置中可以设置第一个数以及递增的数的大小。
注意:使用该参数类型必须注意可以接受的最大数。例如:某个文本框能接受的最大数为99。当使用该参数类型时,设置第一个数为1,递增的数为1,但100个虚拟用户同时运行时,第100个虚拟用户输入的将是100,这样脚本运行将会出错。 注意:这里说的递增意思是各个用户取第一个值的递增数,每个用户相邻的两次循环之间的差值为1。举例说明:假如起始数为1,递增为5,那么第一个用户第一次循环取值1,第二次循环取值2;第二个用户第一次循环取值为6,第二次为7;依次类推。
n Vuser ID:设置比较简单。在实际运行中,LoadRunner使用该虚拟用户的ID来代
替,该ID是由Controller来控制的。但是在VuGen中运行时,Vuser ID将会是 –1。 n File:需要在属性设置中编辑文件,添加内容,也可以从现成的数据库中取数据(下
面我们将会介绍)
n User Defined Function:从用户开发的dll文件提取数据。就目前我认为,这种方式
没有必要。VuGen支持C语言的语法,在VuGen中重新编写类似的函数应该不难。(一家之言,仅供参考)
上面的例子中,我们取随机数即可。
点“Properties…..”按钮,进行属性设置窗口
2003-8-21 第 23 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
添入随机数的取值范围为(1-50),选择一种数据格式。在Update Value on 中有以下几个选项:
n Each Occurrence:在运行时,每遇到一次该参数,便会取一个新的值 n Each iteration:运行时,在每一次循环中都取相同的值 n Once:运行时,在每次循环中,该参数只取一次值 这里我们用的是随机数,选择Each Occurrence非常合适。
下面我们再举一个file的例子。我们要用数据库中的用户名来参数化登陆用户名。
选择要参数化的数据,右键,选择“Replace with a parameter.”,出现以下窗口:
2003-8-21
第 24 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
点“Properties…..”,按钮,出现以下窗口
注意:参数的文件名不要使用con.dat、pm.dat或者lpt*.dat等系统装置名
下面我们将会连接数据库,从数据表中选择用户名。点“Data Wizard”按钮
使用第2项,下一步
2003-8-21 第 25 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
添入连接字符串和SQL语句后,点Finish按钮,出现查询结果。
提醒:在参数数据显示区,最多只能看到100行,如果数据超过100行,只能点“Edit”按钮,进入记事本看。
“Select next row ”有以下几种选择:
n Sequential:按照顺序一行行的读取。每一个虚拟用户都会按照相同的顺序读取 n Random:在每次循环里随机的读取一个,但是在循环中一直保持不变
2003-8-21
第 26 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
n Unique:唯一的数。注意:使用该类型必须注意数据表有足够多的数。比如
Controller中设定20个虚拟用户进行5次循环,那么编号为1的虚拟用户取前5个数,编号为2的虚拟用户取6-10的数,依次类推,这样数据表中至少要有100个数据,否则Controller运行过程中会返回一个错误。 n Same Line As 某个参数(比如Name):和前面定义的参数Name取同行的记录。
通常用在有关联性的数据上面。 我们这里取值Sequential即可。
Advance row each iteration选中即可,表示每一次循环都往前走一行。 手工输入数据比较简单,这里就不再单独介绍了。
5.2.5 插入函数
VuGen中可以使用C语言中比较标准的函数和数据类型,语法和C语言相同。下面简单介绍一下比较常用的函数和数据类型。
1. 控制脚本流程
if { } else { } for{ } while{ } ……………
总之 C语言的控制流程的语句这里都可以直接使用 2. 字符串函数
由于在VuGen脚本中使用最多的还是字符串,所以字符串函数在脚本中使用非常频繁。具体的语法请参考帮助说明。
strcmp 比较两个字符串 strcat 连接两个字符串 strcpy 拷贝字符串
……………..
注意:在VuGen中,以char*声明的字符串是只读的,如果试图给char*类型的字符串赋值的话,编译会通过,但在运行时会产生“Access Violation”的错误。解决这类问题,就是把字符串声明为字符数组,比如char[100]。 3. 输出函数
输出函数在调试脚本时非常有用。 lr_output_message 输出一条消息 ………………..
4. LoadRunner提供的标准函数
lr_eval_string 该函数功能是得到参数(参数化输入中)当前的值
exg: lr_output_message(\"temp = %s\lr_save_string 该函数功能是把一个字符串保存到参数中 exg: lr_save_string(\"439\
2003-8-21 第 27 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
5.2.6 插入Text/Imag检查点
在进行压力测试时,为了检查Web服务器返回的网页是否正确,VuGen允许我们插入Text/Imag检查点,这些检查点验证网页上是否存在指定的Text或者Imag,还可以测试在比较大的压力测试环境中,被测的网站功能是否保持正确。检查点的含义和WinRunner中的检查点功能基本上一致,这里就不再作过多的说明。 VuGen在测试Web时,有两种视图方式:TreeView/Script View。前面我们见到的一直都是Script View。在插入Text/Imag检查点时,我觉得用TreeView视图会比较方便。 在这种视图之间切换,可以通过菜单或者工具栏的方式
现在我们就切换到TreeView视图
插入检查点的步骤比较简单。添加Text/Imag检查点,可以在录制过程中,也可以在录制完
2003-8-21 第 28 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
成后进行。推荐最好能在录制过程中添加Text/Imag检查点。 先在树形菜单中选择需要插入检查点的一项,然后点鼠标右键,选择将检查点插到该操作执行前还是该操作执行后。如果在该操作执行前,则选择“Insert Before”,否则选择“Insert After”。
然后弹出对话框,如下,选择“Text Check”(这里以Text检查点为例说明)
OK后,出现Text Check Properties对话框
2003-8-21 第 29 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
注意:这里要搜索的字符串可以使用正则表达式。 然后切换到“General”标签页
2003-8-21 第 30 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
确定后,即可完成添加Text检查点的任务。
添加Imag检查点的操作步骤和Text检查点差不多,这里仅仅对Imag Check Properties窗口进行说明。其他的和Text检查点类似,不再详细说明。
当然VuGen还允许插入其他类型的检查点函数,比如web_reg_find、Web_global_verification等。而且这里也可以对搜索Text/Imag值的参数化,这里就不再一一说明。
注:如果Web窗体中包含有JavaScript脚本,那么在TreeView视图中显示可能会有问题。解决这个问题,可以设置一下。
进入设置窗口
2003-8-21 第 31 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
5.3 Run-Time Setting
当完善了测试脚本后,需要对VuGen的Run-Time Setting进行配置。 下面对经常需要设置的几个标签页进行说明。
首先打开Run-Time Setting 窗口,可以通过菜单或者工具栏进行。
操作后出现Run-Time Setting窗口,打开“General”标签页
2003-8-21 第 32 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
切换到“NetWork”标签页
2003-8-21
第 33 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
注意:带宽越大,给Web服务器造成的压力就越大。
切换到“Preferences”标签页,这里仅仅对两个经常需要改动的选项进行说明。
切换到“ContentCheck”标签。这里的设置是为了让VuGen检测何种页面为错误页面。如果被测的Web应用没有使用自定义的错误页面,那么这里不用作更改;如果被测的Web应用使用了自定义的错误页面,那么这里需要定义,以便让VuGen在运行过程中检测,服务器返回的页面是否包含预定义的字符串,进而判断该页面是否为错误页面。如果是,VuGen就停止运行,指示运行失败。
2003-8-21 第 34 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
切换到“Think Time”标签
其它的标签设置采用默认值即可,这里不再详细的介绍。
2003-8-21 第 35 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
5.4 单机运行测试脚本
经过以上的各个步骤后,脚本就可以运行了。运行脚本可以通过菜单或者工具栏来操作。
执行“运行”命令后,VuGen先编译脚本,检查是否有语法等错误。如果有错误,VuGen将会提示错误。双击错误提示,VuGen能够定位到出现错误的那一行。为了验证脚本的正确性,我们还可以调试脚本,比如在脚本中加断点等,操作和在VC中完全一样,相信大家谁都不会感到陌生。
如果编译通过,就会开始运行。然后会出现运行结果。
2003-8-21 第 36 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
结果和WinRunner中格式一样,这里不再多说明。
2003-8-21 第 37 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
5.5 VuGen其他有用的功能
5.5.1 压缩脚本文件
2003-8-21 第 38 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
5.5.2 tools菜单
6 创建运行场景
运行场景描述在测试活动中发生的各种事件。一个运行场景包括一个运行虚拟用户活动的Load Generator机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组。
创建运行场景使用Controller。
在开始菜单中,启动Controller程序,出现“New Scenario”窗口。如果没有出现,可以在菜单或者工具栏中点击“New”。
2003-8-21 第 39 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
在新建场景的窗口,选择一种场景类型。下面对三种类型进行简单的说明。
l 1 Manual Scenario:该项要完全手动的设置场景。更加详细的信息,请参考6.1。 l 1.1 Manual Scenario with Percentage Mode:该项只有在“Manual Scenario”选中
的情况下才能选择。选择该项后,在场景中我们需要定义要使用的虚拟用户的总数,Load Generator machine机器集,然后我们为每一个脚本分配要运行的虚拟用户的百分比。更加详细的信息,请参考第6.2章。 l 2 Goal—Oriented Scenario: 在测试计划中,一般都包括性能测试要达到的目标。
选择该项后,LoadRunner基于这个目标,自动为你创建一个场景。在场景中,我们只要定义好我们的目标即可。更加详细的信息,请参考第6.3章。
6.1 选择场景类型为Manual Scenario
6.1.1 选择Vuser Groups
在上图中,把脚本添加到场景操作很简单。
2003-8-21 第 40 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
如果在已经打开的场景中,添加脚本
6.1.2 添加Load Generator Machines
点右边的“Generators”按钮,出现Load Generators窗口
2003-8-21 第 41 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
添加LoadGenerator后,执行“Connect”操作,使Status为Ready,表示该机器联接正常,如果为Failed,表示该机器不能联接,请检查原因。 可以把这个列表保存下来,执行菜单命令即可。
6.1.3 添加虚拟用户
首先设置虚拟用户总数。
2003-8-21 第 42 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
点右边的“VUsers”按钮即可设置,该虚拟用户将在那个Load Generators上运行。
6.1.4 设置Schedule
这里的设置是非常重要的,也是三种场景类型最重要的区别之处。点
按钮,即可进入Schedule设置窗口。
2003-8-21 第 43 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
点
按钮,进入Scenario Start Time窗口
6.1.5 设置集合点
如果在脚本中设置了集合点,还需要在Controller中设置集合点策略。 在菜单中调出 设置集合点策略的窗口.
2003-8-21 第 44 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
点
按钮,进入策略设置窗口
2003-8-21 第 45 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
6.1.6 设置结果文件保存路径
通过菜单操作
调出结果文件的保存路径
该路径最好在每次场景运行前重新设置一下。
6.1.7 Run-Time Setting
请参考5.3
2003-8-21 第 46 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
6.2选择场景类型为Manual Scenario with Percentage Mode
该场景类型和“Manual Scenario”类型非常类似,下面简单的对他们不一样的地方进行设置。
6.3选择场景类型为Goal—Oriented Scenario
同样,只对不同的地方进行设置讲解。 点
按钮,编辑该场景的目标。
2003-8-21 第 47 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
注:以上的说明是以选择的目标为Virtual Users时为基础的。选择不同的目标,内容会稍微有一点不同。
下面重点说一下目标的种类。每次场景运行只能设置一个目标。
6.3.1 Virtual Users Goal
如果需要测试多少人可以同时运行Web应用,那么推荐定义Virtual Users Goal。运行定义该目标类型的场景和运行Manual类型的场景类似。
2003-8-21 第 48 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
具体的定义方法很简单,不再详细的说明。
6.3.2 Hits per Second
如果想测试Web Server的真正实力,推荐定义目标类型为:Hits per Second、Pages per Minute或者Transactions per Second,这些类型都需要指定一个虚拟用户的最小值和最大值的范围。 Controller试图使用最少的虚拟用户来达到定义的目标。如果使用最少的用户,不能达到目标,Controller增加用户数,直到定义的最大值。如果使用了最多的虚拟用户数,定义的目标还没有实现,那么需要增加最大用户数,重新执行场景。
6.3.3 Transactions per Second
6.3.4 Transactions Response Time
如果想知道在多少用户并发访问网站时,事务的响应时间达到性能指标说明书中规定响应时间的最大值,那么推荐使用Transactions Response Time类型。指定需要测试的事务的名称,虚拟用户数量的最小值和最大值,还有预先定义好的事务的响应时间。
在场景运行中,如果使用了最多的虚拟用户,还不能达到定义的最大响应时间,说明Web Server还有能力接纳定义的虚拟用户的最多数量;如果在使用了部分虚拟用户,就达到了定义的最大的响应时间,或者LoadRunner提示如果使用最多数量的虚拟用户时将要超过最大响应时间,那么需要重新设计或者修补应用程序,同时可能需要升级Web Server的软硬件。
2003-8-21
第 49 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
6.3.5 Pages per Minute
6.3.6 理解各种类型
如果你定义的类型是Pages per Minute、Hits/Transactions per Second,Controller首先用最小用户数除以定义的目标,得到一个值,然后确定每个用户应该达到的hits/transactions或者pages per minute,然后controller开始按照以下的策略加载用户:
l 如果选择的是自动的加载虚拟用户,LoadRunner会首先加载50个用户。如果定义的最
大用户数小于50,LoadRunner就会一次加载所有的虚拟用户。
l 如果选择的是在场景运行一段时间后达到目标,LoadRunner就会尝试在定义的这段时
间内达到目标,根据时间限制和计算出的每个用户的hits、transactions或者pages,LoadRunner确定第一批加载多少用户。 l 如果选择的是按照一定的阶段达到目标(也就是先在x长时间内达到y pages/hits,然后
再达到下一个目标),LoadRunner计算每个用户应该达到的数字后,再确定第一批加载多少用户。
每加载一批用户后,LoadRunner会判断是否达到这批用户的目标。如果这批用户的目标没有达到,LoadRunner重新计算每一个用户应该达到的目标数字后,重新调整下一批加载用户的数量。默认情况下,LoadRunner每两分钟加载一批用户。 如果Controller加载了最多数量的用户还没有达到预定的目标,LoadRunner会重新计算每个用户的目标,然后同时运行最大数量的用户,尝试达到预定的目标。 如果出现以下情况,Pages per Minute、Hits/Transactions per Second类型的场景会置于“Failed”状态:
l Controller使用了指定的最大数量的用户,并且两次都没有达到目标 l 所有的用户运行都失败
l 没有足够的Load Generators机器(现有的机器已经超载运行的情况下) l Controller增加了几批用户后,pages per minute或者hits/transactions per second没有
增加
l Controlller加载第一批用户后,定义的目标没有被捕捉到
2003-8-21 第 50 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
6.4 其他有用的设置
6.4.1 场景类型的转化
使用这个选项,可以在Percentage Mode和Vusers Group之间互相转化,不过一些设置可能会丢失。更详细的信息请参考帮助文档。
6.4.2 启用IP Spoofer(IP欺骗)
当运行场景时,虚拟用户使用它们所在的Load Generator的固定的IP地址。同时每个Load Generator上运行大量的虚拟用户,这样就造成了大量的用户使用同一IP同时访问一个网站的情况,这种情况和实际运行的情况不符,并且有一些网站会根据用户IP来分配资源,这些网站会限制同一个IP的登陆,使用等等。为了更加真实的模拟实际情况,LoadRunner允许运行的虚拟用户使用不同的IP访问统一网站,这种技术称为“IP欺骗”。
启用该选项后,场景中运行的虚拟用户将模拟从不同的IP地址发送请求。该选项非常的有用。注意:IP Spoofer在连接Load Generators之前启用。
要使用IP欺骗,各个Load Generator机器必须使用固定的IP,不能使用动态IP(即DHCP)。
使用IP Spoofer的步骤如下:
1. 使用IP Wizard:在“开始”菜单程序中,找到LoadRunner——Tools——IP Wizard,
运行它
2003-8-21
第 51 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
注意:运行IP Wizard程序的机器必须使用固定的IP,不能使用动态IP
第一次运行IP Wizard需要选择第一项“Create new settings”,如果以前运行过,可以选择第二项“Load previous settings from file”,选择保存好的文件;第三项用于使用IP 欺骗进行测试完成后,释放IP的过程(因为该机会占用大量的IP资源,可能会导致其他机器没有IP可用的尴尬局面,使用该项,可以恢复到原来的状况)。
这里选择第一项,“Next”,出现IP Wizard的第二个窗口
这里输入Web Server的IP地址,然后 Next,出现向导的第三个窗口。 从“From IP”文本框中输入要使用IP范围的第一个IP值,然后在“Numbers to Add”输入一个数字,表示IP范围的值;假如第一个IP为 192.168.6.100,范围大小为100,那么IP Wizard将会使用192.168.6.N(100<=N<200),当然这个范围内已经使用的IP地址除外,否则会引起IP冲突。“Submask”采用默认情况即可,取决于使用的那种类型的网络IP,一般局域网内采用Class C即可。
然后“OK”,然后IP Wizard开始检查该范围内没有使用的IP,并把没有使用的IP添加到本机的IP窗口中。到最后一个窗口,直接点“Finish”,
使用IP Wizard后,最后重新启动机器。
2003-8-21 第 52 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
2. 在Controller的场景中,启用IP Spoofer即可。启用方法很简单。
2003-8-21 第 53 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
6.4.3 Options设置
首先使用Export Mode(专家模式)
然后选择上述菜单中的Options
由于我们在Controlller的Run-Time Setting中设置了以多线程方式运行,所以这里我们应该选择第二项,为每一个线程分配不同的IP。 其他设置采用默认即可,这里不再详细说明。
6.4.4 优化Controller和Load Generators计算机
如果控制机(Controller machine)和Load Generators计算机运行的都是Windows2000,那么下面两个简单的技巧可以提高性能
l 在Load Generators计算机上,依次进入“控制面板”——“系统”——选择“高级”
标签页,点“性能选项”按钮,选择优化“后台服务”选项,这样可以提高性能,从而可以在每个Load Generators上运行更多的虚拟用户
l 在Controller计算机上,按照以上的步骤,进入“性能选项”窗口,不过这里选择优化
“应用程序”
2003-8-21 第 54 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
7 分析以及监视场景
在运行过程中,可以监视各个服务器的运行情况(DataBase Server、Web Server等)。监视场景通过添加性能计数器来实现。这一章非常的重要,确定系统瓶颈全靠它了。
下面重点讲讲需要添加那些计数器,以及那些计数器代表什么意思。
由于Win2000 Professional、Server以及Advanced Server提供的计数器不完全相同,这里我们讨论将以Server为基准。
监视场景需要在Run视图中设置
然后,出现添加计数器的对话框
其他的操作就和控制面板“性能”中添加性能计数器的操作一样,这里不再详细说明。 本章主要说明一下各个系统计数器的含义(数据库的计数器不做重点,只是拿SQL Server2000作为例子进行说明。因为数据库各个版本之间差异比较大,请参考您使用的数据库系统的帮助)。
2003-8-21 第 55 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
7.1 Memory相关
内存是第一个监视对象,确定系统瓶颈的第一个步骤就是排除内存问题。内存短缺的问题可能会引起各种各样的问题。
Object(对象) Counters(计数器
名称) Memory
Available MBytes
Description(描述)
参考值
物理内存的可用数(单位 Mbytes)。默至少要有认情况下IIS5.0使用50%的可用物理内10%的物理存,作为IIS的文件缓存(file cache)。内存值 IIS 基本占用 2.5 MB,每个附加连接将在此基础上占用 10 KB 左右。 当处理器向内存指定的位置请求一页(可能是数据或代码)出现错误时,这就构成一个Page Fault。如果该页在内存的其他位置,该错误被称为软错误(用Transition Fault/sec计数器衡量);如果该页必须从硬盘上重新读取时,被称为硬错误。许多处理器可以在有大量软错误的情况下继续操作。但是,硬错误可以导致明显的拖延。Page Faults/sec是处理器每秒钟处理的错误页(包括软错误和硬错误)。
Pages Input/sec是为了解决硬错误页,从硬盘上读取的页数,而Page Reads/sec是为了解决硬错误,从硬盘读取的次数。如果 Page Reads/Sec 比率持续保持为 5,表示可能内存不足。
Pages/sec 是指为解析硬页错误从磁盘读取或写入磁盘的页数。
Page/sec推荐00-20(如果服务器没有足够的内存处理其工作负荷,此数值将一直很高。如果大于 80,表示有问题)。
这些计数器的值比较低,说明Web服务器响应请求比较快,否则可能是服务器系统内存短缺引起(也可能是缓存太大,导致系统内存太少)。Page Input/sec的值可以衡量出硬错误页发生的速率,通常它的值会大于或者等于Page Reads/sec。
Memory
Page/sec
Page Faults/sec Pages Input/sec Page Reads/sec Transition Faults/sec
Memory
2003-8-21
Cache Bytes 文件系统缓存(File System Cache),默默认情况下
第 56 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
Internet Information Services Global
认情况下为50%的可用物理内存。如 IIS5.0运行内存不够时,它会自动整理缓存。需要关注该计数器的趋势变化。
是文件缓存命中全部File Cache Hits % File Cache Hits %
File Cache 缓存需求的比例,反映了IIS的文件缓
存设置的工作情况。而File Cache HitsFlushes
是文件缓存命中的具体值,File Cache File Cache Hits
Flushes是自服务器启动之后文件缓存刷新次数,如果刷新太慢,会浪费内存;如果刷新太快,缓存中的对象会太频繁的丢弃生成,起不到缓存的作用。通过File Cache Hits和File Cache Flushes可以得到一个适当的刷新值(参考IIS的设置ObjectTTL、MemCacheSize、MaxCacheFileSize)。
为50%的可
用物理内存 (对于一个大部分是静态网页组成的网站)File Cache Hits% 在80%左右属于非常好!
Memory
Pool Paged Bytes 这两个计数器监视服务器上各个进程在访问数比较固定的情Pool Nonpaged 的分页池字节数和非分页池字节数。
况下,Pool Bytes
Nonpaged Bytes是比较固定的,如果访问数逐步增加,该值会缓慢的增加。 Virtual Bytes(实
例inetinfo、dllhost) Working Set(实例inetinfo 、dllhost) Dllhost#n进程都要添加计数器
Virtual Bytes计数器监视IIS5.0保留的 虚地址空间的数量,实例化为inetinfo进程(IIS运行的核心)和Dllhost进程(隔离/连接池 的应用程序必需的)。Working Set计数器反映了每个进程使用的内存页的数量。系统的内存页(pool Page)只能由操作系统的核心模块直接访问,用户进程不能访问。运行IIS5.0的服务器上,负责web连接的线程以及它需要的一些对象都保存在未分页的池中(nonpaged pool),比如文件句柄和socket 连接
指这个处理不能与其他处理共享的、已分配的当前字节数。
Committed Byte 是指以字节表示的确认虚拟内存。(确认内存是指为磁盘分页文件在磁盘上保留的空间以便在需要将其写回磁盘时使用)。
推荐不超过物理内存的 75%
Process
Process Memory
Private Bytes Committed Bytes
内存问题主要检查应用程序是否存在内存泄漏。如果发生了内存泄漏,Process\\Private Bytes
2003-8-21
第 57 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
计数器和Process\\Working Set计数器的值往往会升高,同时Available Bytes的值会降低。 内存泄漏应该通过一个长时间的,用来研究分析当所有内存都耗尽时,应用程序反应情况的测试来检验。
7.2 Processor相关
Object(对象) Counters(计数器
名称) Sytem
Description(描述)
参考值 小于2。显示在由 Web 服务器所有处理器共享的队列中等待执行的线程数。处理器瓶颈会导致该值持续大于 2。 小于75%。排除内存因素,如果该计数器的值比较大,而同时网卡和硬盘的值比较低,那么可以确定CPU瓶颈 如果切换次数到5000*CPU个数和10000*CPU个数中,说明它忙于切换线程而不是处理ASP脚本。
Processor Queue Processor Queue Length 是指处理列队
中的线程数。即使在有多个处理器 的Length
计算机上处理器时间也会有一个单列队。不象磁盘计数器,这个计数器仅 计数就绪的线程,而不计数运行中的线程。如果处理器列队中总是有两个以上的线程 通常表示处理器堵塞。
Processor %Processor Time
CPU使用率。这是查看处理器饱和状况的最佳计数器。显示所有 CPU 的线程处理时间。如果一个或多个处理器的该数值持续超过 90%,则表示此测试的负载对于目前的硬件过于沉重。为多处理器服务器添加该计数器的 0 到 x 个实例。
System
Context
Switches/sec
Context Switches/sec 指计算机上的所有处理器全都从一个线程转换到另一个线程的综合速率。当正在运行的线程自动放弃处理器时出现上下文转换,由一个有更高优先就绪的线程占先或在用户模式和特权(内核)模式之间转换以使用执行或分系统服务。它是在计算机上的所有处理器上运行的所有线程的Thread: Context Switches/sec 的总数并且用转换数量衡量。在系统和线程对象上有上下文转换计数器。
Processor %Privileged Time
% Privileged Time 是在特权模式下处 理线程执行代码所花时间的百分比。当调用 Windows 系统服务时,此服务经常在特权模式运行,以便获取对系统专
MSN:huior_99@hotmail.com
2003-8-21 第 58 页 共 76 页 作者:huior
LoadRunner使用说明 制作单位:软件测试中心
有数据的访问。在用户模式执行的线程无法访问这些数据。 对系统的调用可以是直接的(explicit)或间接的(implicit),例如页面错误或中断。不像某些早期的操作系统,Windows 除了使用用户和特权模式的传统保护模式之外,还使用处理边界作为分系统保护。某些由 Windows 为您的应用程序所做的操作除了出现在处理的特权时间内,还可能在其他子系统处理出现。
Thread
Context
Switches/sec(实例化inetinfo和dllhost进程
如果你决定要增加线程字节池的大小,你应该监视这三个计数器(包括上面的一个)。增加线程数可能会增加上下文切换次数,这样性能不会上升反而会下降。如果十个实例的上下文切换值非常高,就应该减小线程字节池的大小。 这两个计数器能够反映处理器用在处理中断以及推迟处理调用的时间。 Interrupts/sec 指处理器每秒钟接收并维护的硬件中断的平均值。正常的线程操作在中断时悬停。大多数的系统时钟每隔 10 毫秒中断处理器一次,形成了间隔活动的后台。
Processor
Interrupts/sec %DPC Time
如果处理器使用率超过 90% 且 % Interrupt
Time 大于 15%,则处理器可能负荷过重,并发生中断。
判断应用程序是否存在处理器瓶颈的方法:如果Processor Queue Length显示的队列长度保持不变(>=2)个并且处理器的利用率%Processor Time超过90%,那么很有可能存在处理器瓶颈。
如果发现Processor Queue Length显示的队列长度超过2,而处理器的利用率却一直很低,那么或许更应该去解决处理器阻塞问题,这里处理器一般不是瓶颈。
如果系统由于应用程序代码效率低下或者系统结构设计有缺陷而导致大量的上下文切换(Context Switches/sec显示的上下文切换次数比较大),那么就会占用大量的系统资源。如果系统的吞吐量降低并且CPU的使用率很高,并且此现象发生时切换水平在15000以上,那么意味着上下文切换次数过高
同时还可以比较Context Switches/sec和%Privileged Time来判断上下文切换是否过量。如果后者的值超过40%,且上下文切换的速率也很高,那么应该检查为什么会产生这样高的上下文切换。
7.3 网络吞吐量以及带宽
Object(对象) Counters(计数器
名称)
Description(描述)
参考值
2003-8-21 第 59 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
Network Interface
Bytes Total/sec
Bytes Total/sec 为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较
该计数器的值和目前网络的带宽相除,结果应该小于50%
Web Service
Maximum Connections :“最大连接数” 是和 Web 服务同时建立起的最大连接
Total Connection 数。
Total Connection Attempts :“连接尝试Attempts
总数”是从服务启动时利用 Web 服务尝试连接的总数。该计数器应用于全部所列的实例。 Maximum Connections、
7.4 磁盘相关
Object(对象) Counters(计数器
名称) Network Interface
Bytes Total/sec
Description(描述)
Bytes Total/sec 为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较
参考值
Processor
PhysicalDisk
PhysicalDisk PhysicalDisk
%Processor Time CPU使用率 % Privileged Time 该计数器对应于处理器执行 Windows® 2000 内核命令(如处理 SQL Server I/O 请求)所用时间的百分比。如果 Physical Disk 计数器的值很高时该计数器的值也一直很高,则考虑使用速度更快或效率更高的磁盘子系统。
% Disk Time 指所选磁盘驱动器忙于为 %Disk Time
读或写入请求提供服务所用的时间 的百分比。如果三个计数器都比较大,那么硬盘不是瓶颈。如果只有%Disk Time比较大,另外两个都比较适中,硬盘可能会是瓶颈。在记录该计数器之前,请在 Windows 2000 的命令行窗口中运行 diskperf -yD。若数值持续超过 80%,则可能是内存泄漏。
Average Disk 指读取和写入请求(为所选磁盘在实例
间隔中列队的)的平均数。 Queue Length
Average Disk 指读取请求(为所选磁盘在实例间隔中 Read Queue 列队的)的平均数。 Length
2003-8-21 第 60 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
PhysicalDisk
PhysicalDisk PhysicalDisk PhysicalDisk PhysicalDisk
Average Disk Write Queue Length
Average Disk sec/Read
Average Disk sec/Transfer Disk Reads/sec Disk Writes/sec
指写入请求(为所选磁盘在实例间隔中 列队的)的平均数。
指以秒计算的在此盘上读取数据的所 需平均时间。
指以秒计算的在此盘上写入数据的所 需平均时间。
指在此盘上读取操作的速率。 指在此盘上写入操作的速率。
判断磁盘瓶颈的方法是通过以下公式来计算:
每磁盘的I/O数 = [读次数 + (4 * 写次数)] / 磁盘个数
如果计算出的每磁盘的I/O数 大于 磁盘的处理能力,那么磁盘存在瓶颈。
7.5 Web应用程序
这里以ASP.NET开发的Web应用程序为例进行说明。 Object(对象) Counters(计数器
名称) ASP.NET Applications
Description(描述)
参考值 如果Request/Sec的值比较小,你的Web程序可能是瓶颈
每秒执行的请求数。 Request/Sec
Request Executing 当前执行的请求数。
ASP.NET
Request Wait Time
Request Executing Time
Request Queued
最近的请求在队列中等待的毫秒数。
执行最近的请求所用的毫秒数。
Request Wait Time和Request Queued在理想状况下应该接近0,
等候处理的请求数。该计数器应保如果这两个值太持接近 0。超过 IIS 队列长度会出大,那么需要重现“服务器太忙”错误。 写代码提高性能
7.6 IIS5.0
Object(对象) Counters(计数器
名称) Web Service
Bytes Sent/Sec
Description(描述)
“送出字节数/秒”是 Web 服务送出数据字节的比率。
参考值
Web Service
Bytes
Received/Sec
“接收字节数/秒” 是 Web 服务接 收数据字节的比率。
2003-8-21 第 61 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
Web Service Get Request/Sec
Web Service
POST
Request/Sec
使用 Get 方法的 HTTP 请求速 率。Get 请求用于基本文件获取或图象地图,它们可和表格一起使用。 使用 Post 方法的 HTTP 请求速 率。 Post 请求用于表格或网关请求。
7.7 SQL Server
这里针对SQL Server2000,而且只是列出比较关键的几个。更加详细的信息可以参考SQL Server的联机文档。
Object(对象) Processor
Counters(计数器名称) %Processor Time
Description(描述)
CPU使用率
参考值
SQL Server: Logins/sec General Statistics
这是每秒登录到 SQL Server 的计数。
SQLServer:Cache Cache Hit Ratio 显示在高速缓存中找到数据的命中
率。如果数值持续小于 85%,则表Manager (all instances)
示内存有问题。 SQL Server: User
General Statistics Connections
显示当前 SQL 用户数。与 Active Server Pages:Requests/Sec 计数器进行比较,可帮助了解脚本对 SQL Server 的影响程度。如果差别过大,则表示测试脚本不能有效地对 SQL Server 进行应力测试。
SQLServer:Locks Lock Waits/sec 显示在当前进程完成之前强制其他
进程等待的每秒锁定请求的数量。如果该值始终大于 0,则表示事务有问题。
SQL Server: Buffer Cache 计数器值依应用程序而定,但比率
最好为 90% 或更高。增加内存直Buffer Manager Hit Ratio
到这一数值持续高于 90%,表示 90% 以上的数据请求可以从数据缓冲区中获得所需数据。 SQL Server: SQL Statistics
Batch
Requests/sec
每秒收到的 Transact-SQL 命令批 数。这一统计信息受所有约束(如 I/O、用户数、高速缓存大小、请求
MSN:huior_99@hotmail.com
2003-8-21 第 62 页 共 76 页 作者:huior
LoadRunner使用说明 制作单位:软件测试中心
的复杂程度等)影响。批请求数值高意味着吞吐量很好。
SQL Server: Buffer Manager
Lazy Writes/sec 每秒被缓冲区管理器的惰性写入器
写入的缓冲区数。惰性写入器是一个系统进程,其主要任务是刷新成批的老化的脏缓冲区(指包含更改的缓冲区,这些更改必须写回磁盘,才能使该缓冲区由其它页重新使用),并使之可由用户进程使用。 惰性写入器消除了为创建可用缓冲区而频繁执行检查点的需要。
Page Reads/sec 每秒发出的物理数据库页读取数。
这一统计信息显示的是在所有数据库间的物理页读取总数。由于物理 I/O 的开销大,可以通过使用更大的数据高速缓存、智能索引、更高效的查询或者改变数据库设计等方法,使开销减到最小。 Transactions/sec 每秒为数据库启动的事务数。
SQL Server: Buffer Manager
SQL
Server:Databases
7.8 Network Delay
如果要监视的两台计算机在同一个局域网络内,建议不要使用Network Delay Monitor。因为在同一局域网内,Network Delay会非常的小,网络监视器会有足够的时间在每秒钟内发送成百上千的请求,这样会导致源计算机(source machine)的CPU和内存超负荷工作。
默认情况下“Enable display of network nodes by DNS names”选择是没有选中的,因为选中它会明显的降低该监视器的速度。
8 分析实时监视图表
这一章仅仅介绍几个最重要的图表。
Q1事务响应时间是否在可接受的时间内?哪个事务用的时间最长?
看Transaction Response Time图,可以判断每个事务完成用的时间,从而可以判断出那个事务用的时间最长,那些事务用的时间超出预定的可接受时间。
下图可以看出,随着用户数的不断增加,login事务的响应时间增长的最快!
2003-8-21 第 63 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
Q2 网络带宽是否足够?
“Throughput”图显示在场景运行期间的每一秒钟,从Web Server上接受到的数据量的值。拿这个值和网络带宽比较,可以确定目前的网络带宽是否是瓶颈。
如果该图的曲线随着用户数的增加,没有随着增加,而是呈比较平的直线,说明目前的网络速度不能够满足目前的系统流量。
Q3 硬件和操作系统能否处理高负载?
“Windows Resources”图实时地显示了Web Server系统资源的使用情况。利用该图提供的数据,可以把瓶颈定位到特定机器的某个部件。
2003-8-21 第 64 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
9 利用Analysis分析结果
场景运行结束后,需要使用Analysis组件分析结果。Analysis组件可以在“开始程序”菜单中启动,也可以在Controller中启动。
由于我本人对怎样分析结果最有效没有进行比较多的实践,所以这里只能按照常规的方法进行简单介绍。
注意:这里介绍的分析方法只适用于Web测试。
9.1 分析事务的响应时间
第一步,看“Transaction Performance Summary”图,确认那个事务的响应时间比较大,超出了我们的标准。看下图,login事务的平均响应时间最长。
然后我们再看“Average Transaction Response Time”,观察login在整个场景运行中每一秒的情况。从图中可以看出,login事务的响应时间并不是一直都比较高,只是随着用户数的增加,响应时间才明显增加的。
2003-8-21 第 65 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
为了定位问题,明白为什么login事务的响应时间比较长,现在我们要分解login事务,分析该页面上每一个元素的性能。在上图中,选择要分解的事务曲线,然后点鼠标右键,选择“Web Page Breakdown for login”
9.2 分解页面
通过分解页面可以得到:比较大的响应时间到底是页面的哪个组件引起的?问题出在服务器上还是网络传输上。
这里为了解说各个时间(比如:DNS解析时间、连接时间、接受时间等)
下面简单说一下浏览器从发送一个请求到最后显示的全过程。 1. 浏览器向Web Server发送请求,一般情况下,该请求首先发送到DNS Server把DNS
名字解析成IP地址。解析的过程的时间就是
。这个度量时间可以
确定DNS服务器或者DNS服务器的配置是否有问题。如果DNS Server运行情况
比较好,该值会比较小。
2. 解析出Web Server的IP地址后,请求被送到了Web Server,然后浏览器和Web
Server之间需要建立一个初始化连接,建立该连接的过程就是
。这个
度量时间可以简单的判断网络情况,也可以判断Web Server是否能够响应这个请求。如果正常,该值会比较小。
3. 建立连接后,从Web Server发出第一个数据包,经过网络传输到客户端,浏览器
成功接受到第一字节的时间就是
。这个度量时间不仅可以表示Web
Server的延迟时间,还可以表示出网络的反应时间。
2003-8-21
第 66 页 共 76 页 作者:huior
MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
4. 从浏览器接受到第一个字节起,直到成功收到最后一个字节,下载完成止,这段时
间就是
。这个度量时间可以判断网络的质量(可以用size/time比来计算
接受速率)
其他的时间还有SSL Handshaking(SSL握手协议,用到该协议的页面比较少)、Client Time(请求在客户端浏览器延迟的时间,可能是由于客户端浏览器的think time或者客户端其他方面引起的延迟)、Error Time(从发送了一个HTTP请求,到Web Server发送回一个HTTP错误信息,需要的时间)。
熟悉了以上各个时间的含义后,我们开始看分解页面的图形。
首先看“Downlaod Time Breakdown”,可以看出login事务分解的各个组件的大小,以及各个组件的下载时间。
从下图可以看出,login页面有5个组件组成,其中next.gif下载用的时间最长,并且几乎所有的时间都用在了First Buffer上,而其大小为1.256KB,并不是很大。
上图提供的组件大小的信息比较简单,更详细的信息参考“Download Component Size Graph”。利用该图可以看出该页面各种组件的大小所占的比例关系。
同样,要看各个组件下载时间的更详细的信息,可以参考“Page Component Breakdown”。利用该图可以看出该页面各种组件下载时间的比例关系。
2003-8-21 第 67 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
选择“Component Breakdown(Over Time)”,可以以图形曲线的形式看出各个组件在场景运行中的每秒钟的下载时间,比较具体。要看到具体的值,可以参考Page Component Breakdown(Over Time)
2003-8-21 第 68 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
然后再选择“Download Time BreakDown(Over Time)”,从中可以看出在场景运行中的每一秒钟,组件用在传输的各部分的时间。要看到具体的值,可以参考Page Download Time Breakdown(Over Time)
2003-8-21 第 69 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
为了确认问题缘由到底是服务器还是网络,选择“Time to First Buffer Breakdown”,可以看出Server时间比network时间要高的多,从而确定问题是服务器引起的。然后我们就可以参考Web Server的相关图表,来确定问题是由服务器的哪个部分引起。遵从这样的步骤,可以一步步的接近问题源;如果问题由网络引起,可以参考NetWork相关的图表,确定什么样的网络问题是性能的瓶颈。同时可以参考“Time To First Buffer BreakDown(Over Time)”
2003-8-21 第 70 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
9.3 确定WebServer的问题
网站的性能问题可能是由多种因素引起的,其中大约有一半的性能问题最终归结到Web Server、Web应用程序和数据库服务器上。采用编程语言(ASP、JSP、ASP.NET等)的网站非常依赖于数据库操作,这些都可能是引起性能问题的因素。 最常见的数据库问题是效率比较低的索引设计,数据碎片太多,过时的统计表以及不完善的应用程序设计。 在20%的压力测试中,发现Web Server和Web应用程序是性能的瓶颈。这些瓶颈主要是由于服务器配置不当和资源不足。比如,编程比较差的代码以及形成的DLL能够使用所有的计算机处理器资源,导致了CPU的瓶颈。同样,对内存的操作不当和管理不善也很容易造成内存的瓶颈,所以我们建议在排除其他可能的因素外,首先检查CPU和物理内存。
2003-8-21 第 71 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
9.4 其他有用的功能
9.4.1 比较每次运行的结果
一般情况下,我们进行性能测试的步骤是这样:
1 首先进行一次性能测试,记录下结果,然后分析结果,提出改进的建议 2 开发人员根据建议对代码或者服务器的配置进行修改 3 测试人员在相同的条件下进行第二轮测试
4 测试人员对两轮测试结果比较,确定开发人员修改的结果是否有效 那么在Analysis中怎样进行对两轮结果进行比较呢? 可以采用菜单操作:
然后出现对话框,需要选择需要比较的结果文件(lrr),选择多个
OK即可。
2003-8-21 第 72 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
9.4.2 对图表进行组合合并
Analysis默认的图表都是以时间作为横坐标,然而在分析结果的过程中,我们可能需要以“运行的用户数”作为横坐标,来比较结果。
假如我们要画出 Windows Resources——VUsers的图表,可以这样操作。
首先打开Windows Resources图表,然后在图表上点鼠标右键,选择Merge Graphs
出现Merge Graphs对话框
选择第一项“Overlay”,出现以下的图表,这样是把两个图表进行了合并,两条曲线的纵轴
2003-8-21 第 73 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
共用一个原点,横轴还是时间轴。
选择第二项“Title”,出现以下的图表,这样是把两个图表进行了合并,两条曲线的纵轴不再共用一个原点,VUsers的原点在Windows Resouces的上面,横轴还是时间轴。
选择第三项“Correlate”,LoadRunner提示信息
我们应该这样,打开Running VUsers图表,在图表上执行前面提到的操作,不过选择第三项“Correlate”,即可,显示图表如下图
2003-8-21 第 74 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
这样就是以运行的用户数为横轴,Windows Resouces为纵轴画出的图。
10 经常遇到的问题
10.1 VuGen的问题
在使用VuGen中经常会遇到的问题。
10.2 Controller的问题
在使用Controller中经常会遇到的问题。
1. 在添加完Load Generators机器时,连接老是失败;添加的机器明明已经安装了
loadrunner,并且网络通讯正常。
解决方法:在安装loadrunner的第七步骤,应该选择第2项,如果选择了第一项,就会有这种问题。重新安装一下即可。
2. 在VuGen中运行良好的脚本,到Controller中运行却出问题。
这种问题可能会遇到。为了确定问题出在Controller中的场景,而不是脚本的问题,你应该在所有的Load Generators机器上使用VuGen运行测试脚本,确保都能够运行正确。因为VuGen和Controller运行的机制不一样。在VuGen中运行时使用的是完整的浏览器,而在Controller中运行时使用的只是浏览器的基本的部分。
10.3计数器的问题
在使用性能计数器中经常会遇到的问题。
1. 添加了Windows Resources计数器后,却看不到实时的数据。
2003-8-21 第 75 页 共 76 页 作者:huior MSN:huior_99@hotmail.com
LoadRunner使用说明 制作单位:软件测试中心
解决方法:要得到监视的数据,必须要在被监视的服务器(Web Server)上获得管理员权限。最简单的方法是在“网络邻居”中以administrator身份登陆Web Server。当然使用下面的控制台命令也可以:net use \\\\<机器名> 然后登陆用户名和密码即可。(登陆的用户名必须具有管理员权限)
2. 添加了一些默认的性能计数器后,出现了错误。
解决方法:可能是一些LoadRunner默认的计数器在WebServer上已经不存在的原因,尤其是数据库的计数器方面。简单的解决方法,就是删除有问题的计数器,添加比较接近的计数器(可能需要参考Windows帮助或者数据库的帮助)
2003-8-21 第 76 页 共 76 页作者:huior MSN:huior_99@hotmail.com
因篇幅问题不能全部显示,请点此查看更多更全内容