软件性能测试_第1页
软件性能测试_第2页
软件性能测试_第3页
软件性能测试_第4页
软件性能测试_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件性能测试软件性能测试性能测试概要第一章认识LoadRunner第二章VuGen录制Vuser脚本第三章Controller创建运行场景第四章Analysis分析结果第五章课程内容课程内容1、为什么要做性能测试?1、客户有明确要求。2、公司内部想知道目前系统的性能状况。3、找出系统性能瓶颈。4、了解系统在长时间的压力下性能情况。2、性能测试定义 性能测试是通过自动化测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试 。 性能关注点 时间(用户使用的响应时间) 空间(资源消耗情况)3、性能测试范围 p 性能范围(广义) 系统的性能是一个很大的概念,覆盖面非常广泛,对一个软

2、件系统而言包括:执行效率、资源占用、系统稳定性、安全性、兼容性、可靠性、可扩展性。p 负载测试 通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。负载测试的目标目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。p 压力测试 对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。压力测试是为了发现在什么条件下您的应用程序的性能会变得不可接受。负载测试、压力测试和性能测试的区别 负载测试负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同

3、负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。 压力测试压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。 性能测试性能测试是为获取或验证系统性能指标而进行测试。多数情况下,性能测试会在不同负载情况下进行。66、性能测试的类别(其他) 配置测试配置测试主要是通过测试

4、找到系统各项资源的最佳分配原则。例如我们可以不停的调整oracle的内存来决定cpu和内存的匹配情况。(当前配置-调优-未来业务增长) 容量测试 测试系统能够处理的最大会话能力。确定系统可处理同时在线的最大用户数,通常和数据库有关。 可靠性测试 加载一定的业务压力(比如直到Cpu资源在70-90的使用率)的情况下,运行一段时间,检查系统是否稳定。 失败测试 对于有冗余备份和负载均衡的系统,通过这样的测试来检验如果系统局部发生故障用户是否能够继续使用系统,用户受到多大的影响。4、性能测试指标(一) 事务(事务(TransactionTransaction ) 在web性能测试中,一个事务表示一个

5、“从用户web ServerDBweb server用户”的过程,一般的响应时间都是针对事务而言的。 响应时间(响应时间(Response TimeResponse Time) 响应时间指的是从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费的时间。在某些工具中,响应时间通常会称为 “TTLB”,即“time to last byte”,意思是从发起一个请求开始,到客户端收到最后一个字节的响应所耗费的时间。响应时间的单位一般为“秒”或者“毫秒”。一个公式可以表示:响应时间= 网络响应时间 + 应用程序响应时间 。 点击率(客户端点击率(客户端 Hit RateHi

6、t Rate) Hit Rate:是指每秒发送的HTTP请求的数量,点击率越大对server造成的压力就越大。4、性能测试指标(二) 吞吐量吞吐量(ThroughputThroughput)吞吐量指的是单位时间内处理的客户端请求数量。通常情况下,吞吐量用请求数/秒或者页面数/秒来衡量。从业务角度看,吞吐量也可以用访问人数/天 或者页面访问量/天来衡量。 并发用户并发用户(Concurrent users)(Concurrent users)并发数是指同时进行请求的客户的数量,并发数用于模拟用户的真实负载情况(并发情况是对系统最大的考验),并发数同时使用系统的用户数。 同一时刻 对服务器有负载(

7、注意:全部用户、在线用户、并发用户三者之间的区别)4、性能测试指标(三) 资源利用率资源利用率(内存、CPU、网络、I/O的利用率等 Resource utilizationResource utilization)资源利用率指的是对不同系统资源的使用程度,例如服务器的CPU(s),内存,网络带宽等。资源利用率通常以占用最大值的百分比n%来衡量。105、 2/5/10原则一当用户能够在2秒以内得到响应时,会感觉系统的响应很快二当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以三当用户在5-10秒以内得到响应时,会感觉系统的响应速度很慢,但是还可以接受四而当用户在超过10秒后仍然无法得到

8、响应时,会感觉系统糟透了,或者认为系统已经失去响应,而选择离开这个Web站点,或者发起第二次请求。7、性能测试实施过程(一)一 了解被测试项目的性能测试需求二 分析被测试项目的性能测试需求三 编写性能测试计划/测试用例四 脚本维护(编写程序)五 执行脚本(执行程序)六 分析结果七 性能调优9、性能测试工具 商业 Mercury Loadrunner(现为HP) Rational Performance Tester SeagueSilkTest RadviewWebLoad 免费 Microsoft Web Application Stress Tool Microsoft Applicati

9、on Center Test 开源 OpenSTA Jmeter Grinder性能测试概要第一章认识LoadRunner第二章VuGen录制Vuser脚本第三章Controller创建运行场景第四章Analysis分析结果第五章课程内容课程内容1、 LoadRunner简介l LoadRunner是Mercury Interactive公司开发的用于测试应用程序性能的工具。通过LoadRunner,可以在可控制的峰值负载条件下测试系统。l LoadRunner可以模拟产生分布在网络中的数千个虚拟用户(Vuser),通过使用最少的硬件资源,提供一致的、可重复的、可度量的负载,像实际用户一样使用

10、您的应用程序, 并生成评估应用程序性能所需的信息(以报告、图等形式)。安装注意事项:安装注意事项: 操作系统最好为Windows 2000 安装前最好关闭其他应用程序 安装文件存放路径及安装路径中不能包含中文不出现空格,中文,括号Tomcat6.0Pro gram(x86) License的问题,参见安装包中的破解方法。LoadRunner的使用事项 使用IE6.0进行录制(其他浏览器会产生无法预知的兼容性问题) 安装后不能录制的解决方法参见LR打开录制无法弹出IE处理方法2、LoadRunner的安装及使用3、LoadRunner组成结构 VuGen:(Virtual User Genera

11、tor)虚拟用户脚本产生器 Controller:压力调度和监控系统 控制器(创建场景、场景设计、场景监控) 负载器(注意:控制器和负载器不能同一台机器,一定要分开) Analysis:压力结果分析工具4、LoadRunner运行原理5、LoadRunner脚本核心内容l事务l集合点l参数化l检查点l动态控制l关联性能测试概要第一章认识LoadRunner第二章VuGen录制Vuser脚本第三章Controller创建运行场景第四章Analysis分析结果第五章课程内容课程内容1、Vuser的概念p 虚拟用户生成器(也称为VuGen)实际上是一套针对各种应用程序类型和通信协议,开发调试 Vus

12、er 脚本的工具。 p VuGen能够录制、编辑Vuser 脚本,并且可以生成各种函数,来定义您在录制会话过程中执行的操作,还可以运行这些脚本。p Vuser LoadRunner生成的模拟用户实际操作的虚拟用户。Vuser 通过执行典型业务流程模拟实际用户的操作。增加 Vuser 的数量可以增大系统上的负载。LoadRunner 拥有各种 Vuser 类型,每一类型都适合于特定的负载测试环境。 2、Vuser的类型(协议)应用程序部署解决方案:Citrix ICA客户端/服务器: DB2 CLI、DNS、Informix、MS SQL Server、ODBC、Oracle(2 层)、Syba

13、se Ctlib、Sybase Dblib 和 Windows Sockets 协议。自定义:C 模板、Visual Basic 模板、Java 模板、Javascript 和 VBScript 类型的脚本。分布式组件:适用于 COM/DCOM、Corba-Java 和 Rmi-Java 协议。电子商务:FTP、LDAP、Palm、PeopleSoft 8 mulit-lingual、SOAP、Web Web (HTTP/HTML)(HTTP/HTML) 和双 Web/Win Socket 协议。Enterprise Java Bean:EJB 测试和 Rmi-Java 协议。ERP/CRM:

14、Baan、Oracle NCA、Peoplesoft-Tuxedo、SAP-Web、SAPGUI、Siebel-DB2 CLI、Siebel-MSSQL、Siebel-Web 和 Siebel-Oracle 协议。传统:终端仿真 (RTE)。邮件服务:Internet 邮件访问协议 (IMAP)、MS Exchange (MAPI)、POP3 和 SMTP。中间件:Jacada 和 Tuxedo(6、7)协议。流数据:Media Player (MMS) 和 Real 协议。无线:i-Mode、VoiceXML 和 WAP 协议。3、新建Vuser脚本启动LoadRunner,选择“Creat

15、e/Edit Script”,打开VuGen,创建一个新的Vuser脚本注意:使用LR时,最好将分辨率设为1024*768,否则有些菜单显示不完全4、选择系统通讯协议LRClientServerl LR根据协议识别,QTP根据对象l 我们怎么知道用什么协议呢?5、Vuser脚本的基本组成(一)p 创建的每个Vuser脚本都至少包括三部分:一个Vuser_init、一个或多个Action、一个Vuser_end。p LR语言:C、LR自身语言5、Vuser脚本的基本组成(二)脚本部分脚本部分录制部分录制部分执行时间执行时间说明说明Vuser_init登陆到服务器初始化Vuser加载脚本时,执行一

16、次Actions客户端活动Vuser处于运行状态可设置运行参数,重复执行Vuser_end注销过程Vuser完成或停止结束脚本运行时,执行一次6、录制Vuser脚本(一)根据被测对象选择应用类型选择被录制的应用程序,浏览器的一般选择IE6.0,其他浏览器可能会存在问题。在URL中添加要测试的web站点的地址设置录制脚本的存放路径Record into Action中选择把录制的站点放到脚本的哪一个部分Record the application startup 意思是应用程序一旦启动就录制脚本;如果不选此项,也可以在应用程序运行过程中选择开发录制脚本。Options中进行录制前的选项设置6、录

17、制Vuser脚本(二)6、录制Vuser脚本(三)基于浏览器的应用程序推荐使用HTML-based Script,脚本中采用HTML 页面的形式来表示,这种方式的Script脚本容易维护,容易理解。不是基于浏览器的应用程序推荐使用URL-based Script,脚本中的表示采用基于URL 的方式,不是很好阅读。 如果基于浏览器的应用程序中包含了JavaScript,并且该Script向服务器产生了请求,也要使用URL-based Script的方式录制。基于浏览器的应用程序使用了HTTPS安全协议,也要使用URL-based Script的方式录制。选取哪种录制方式,遵循以下原则:6、录制V

18、user脚本(四)6、录制Vuser脚本(五) 通知Vugen去重新设置每个action之间的Http context,缺省是需要的。 保存一个本地的snapshot,可以加速显示 把html的title放到web_reg_find函数里面 支持的字符集标准 Http header的录制,我们采用缺省即可,不需要用web_add_header去录制非标准的header信息。 对录制的content的内容进行filter,不作为resource处理的。6、录制Vuser脚本(六)6、录制Vuser脚本(七)点击“Start Record”开始录制脚本6、录制Vuser脚本(八)注意:录制过程中不

19、要使用浏览器的后退功能,LR支持的不是很好开始、运行、结束、暂停录制编译脚本创建Action插入Text检查点插入事务“起始点”插入事务“结束点”插入集合点插入注释改变录制的Option设置7、增强Vuser脚本-事务事务(Transaction)事务(Transaction)我们为了度量服务器响应指定的Vuser请求所用的时间,需要在任务的开始和结束位置插入这样一个函数,这样就定义了一个事务,LoadRunner 运行到该事务的开始点时,LoadRunner 就会开始计时,直到运行到该事务的结束点,计时结束。这个事务的运行时间在测试结果中会有反映。插入事务操作可以在录制过程中进行,也可以在录

20、制结束后进行。每一个脚本中,可标记的事务数量不受限制,但是名称不能相同,且事务的开始与结束必须匹配。u自动插入u手动插入/开始事务:事务名lr_start_transaction(“login”);/结束事务:事务名,事务状态lr_end_transaction(“login” ,LR_AUTO);7、增强Vuser脚本-插入Text/Image检查点(1)l 在进行压力测试时,为了检查Web服务器返回的网页是否正确,VuGen允许我们插入Text/Image 检查点,这些检查点验证网页上是否存在指定的Text或Image,还可以测试在比较大的压力测试环境中,被测的网站功能是否保持正确。l 插

21、入检查点在树模式下进行插入操作(检查页面之前)l 举例说明:系统登录-要测试200人同时进行登录,但是在应用程序里面没有正确的关闭数据库的连接,导致登录100人后,建立了100个数据库连接,第101一个人登录的时候,由于超出数据库连接的最大数,所以,程序抛出了一个数据库异常。但是LR接收到了客户端的请求并且做出了响应,所以loadrunner会认为程序是正确执行的,但是事实却并非如此。l 注意:LR只会判断Transaction是否被执行,而不会判断你获得的结果是否正确。而我们需要判断的往往是正确执行该次操作(事务)并获得正确的结果。为了保证测试时结果的正确性,一定要添加检查点。7、增强Vus

22、er脚本-插入Text/Image检查点(2)注意:使用Tree View来增加检查点会比较方便、直观;推荐在录制脚本过程中增加检查点7、增强Vuser脚本-插入Text/Image检查点(3)l 插入Text 检查点(推荐使用web_reg_find)l web_find与web_reg_find的区别-Web_find只适合html静态页面的检查,效率低,很少用。-web_reg_find在缓存中查找内容,效率高。7、增强Vuser脚本-插入Text/Image检查点(4)web_reg_find设置Text检查点属性 /LR中显示的脚本 web_reg_find(Text=vince,S

23、aveCount=count,Search=Body,LAST); Text:被搜索的字符串 SaveCount:用count保存搜索到的字符串的次数 Search:搜索范围7、增强Vuser脚本-插入Text/Image检查点(5)设置Image检查点属性/LR中显示的脚本web_image_check(web_image_check,“Src=images/QQ.jpg,LAST);7、增强Vuser脚本-动态控制/利用web_reg_find的SaveCount中的count计数判断测试结果if(atoi(lr_eval_string(count)=1)lr_end_transactio

24、n(login, LR_PASS); lr_message(Test OK); elselr_end_transaction(login, LR_FAIL);lr_message(Test NG); /lr_eval_string(“count”)读参数值/atoi()转化数据类型7、增强Vuser脚本-关联(1)n为什么需要关联语句: 许多应用程序和网站都是按当前日期和时间来标识会话。如果尝试重放脚本,该操作将会失败,因为当前时间与录制的时间不同,通过关联语句可以保存动态数据,并且在整个运行方案过程中使用这些数据。例如:当你回放一次后,LR会自动录找你录制的时候和回放时候的差别,找出动态数据

25、,并作成参数。例如当用户登录时,会产生一个Session id号,访问结束后,该Session id便会失效。录制的时候,在脚本里面获取到了该Session id,但当再回放的时候,这个Session id已经无效了,所以,需要把这个Session id作为一个动态数据,当登陆的时候,便获取一个新的有效的Session id,然后通过web_reg_save_param(“WCSParam_Text2”,“LB=ProcessID=”,“RB=;”,“Ord=1”,“RelFrameId=1”,“Search=body”,LAST);函数保存下来7、增强Vuser脚本-关联(2)关联方法自动关

26、联(Ctrl+F8)手动关联手动关联步骤录制脚本(两个业务完全一致)比较脚本(ToolWdiff)找到需要关联的内容找左右边界值(ServerResponse)添加规则7、增强Vuser脚本-关联(3)int web_reg_save_param (const char * ParamName, , LAST);第一部分:参数名字,用双引号括起,逗号分开;第二部分:List of Attributes,包括:LB、RB、RelFrameID、Ord、Search、SaveOffset、SaveLen等。第三部分:LAST,结束标志。LB是左边界,RB是右边界:比如程序中有这么一个赋值,Proc

27、essID =A53625E18440FCE81F26DCE712E65EBA; 如果 ProcessID 的值是动态的,我想使用动态变量,那我设定查找左边界为LB=ProcessID=,右边界为 ;的字符,如果找到了,就替换成变量.Search:是指查找范围,就是说在哪里查找这些值,可以取这样几个值,我们一般设为ALL,Body等。Headers (Search only the headers),Body (search only Body data, not headers),Noresource (search only the html body, excluding all hea

28、ders and resources),ALL (search Body and headers). The default value is ALL.RelFrameID: The hierarchy level of the HTML page relative to the requested URL.一般取1ORD: This parameter, also known as Instance, indicates the ordinal or instance of the match. 一般取 17、增强Vuser脚本-参数化(1)u对Vuser脚本进行参数化的目的:1、唯一性约束

29、(注册账户)2、日期约束(订票日期限制)3、数据约束(数据库数据,航班动态)4、缓存约束(相同的账户登录和不同账户登录测试结果不一样)u参数化包括两项任务:1、在脚本中用参数取代常量值2、设置参数的属性以及数据源7、增强Vuser脚本-参数化(2)选中要替换的值,然后点鼠标右键, 选择“Replace with a parameter.”,出现以下窗口7、增强Vuser脚本-参数化(3)参数类型解释:DateTime:在需要输入日期/时间的地方,可以用DateTime类型来替代,其属性设置也很简单,选择一种格式即可,当然也可以定制格式。Group Name:在实际运行中,LoadRunner使

30、用该虚拟用户所在的Vuser Group 来代替,但是在VuGen 中运行时,Group Name将会是None。Load Generator Name:在实际运行中,LoadRunner 使用该虚拟用户所在Load Generator的机器名来代替。Iteration Number:在实际运行中,LoadRunner 使用该测试脚本当前循环的次数代替。Random Number:随机数,在属性设置中可以设置产生随机数的范围。Unique Number:唯一的数,在属性设置中可以设置第一个数以及递增数的大小。注意:使用参数类型Unique Number必须注意可以接受的最大数。例如:某个文本框

31、能接受的最大数为99,当使用参数类型时,设置第一个数为1,递增的数为1,但100 个虚拟用户同时运行时,第100虚拟用户输入的将是100,这样脚本运行将会出错。注意:这里说的递增意思是各个用户取第一个值的递增数,每个用户相邻的两次循环之间的差值为1。举例说明:假如起始数为1,递增为5,那么第一个用户第一次循环取值1,第二次循环取值2;第二个用户第一次循环取值为6,第二次为7,依次类推。Vuser ID:在实际运行中LoadRunner使用该虚拟用户的ID 来代替,该ID是由Controller来控制的。但是在VuGen 中运行时,Vuser ID 将会是1。User Defined Funct

32、ion:从用户开发的dll文件提取数据。File:需要在属性设置中编辑文件,添加内容,也可以从现成的数据库中取数据。7、增强Vuser脚本-参数化(4)点击“Vuser”菜单中“Parameter List”按钮,打开参数列表窗口,可以创建、修改脚本中所有参数7、增强Vuser脚本-参数化(5)参数文件注意事项:1、参数化文件不能过大,最大不能超过15M2、文本文件要多出一行7、增强Vuser脚本-参数化(6)【Select next row】有以下几种选择:多个VU如何取值Sequential:按照顺序一行行的读取,每一个虚拟用户都会按照相同的顺序读取Random:在每次循环里随机的读取一个

33、,但是在循环中一直保持不变Unique:每个VU取唯一的值。 注意:使用Unique类型必须注意数据表有足够多的数,比如Controller 中设定20个虚拟用户进行5次循环,那么编号为1的虚拟用户取前5个数,编号为2的虚拟用户取6-10的数,依次类推,这样数据表中至少要有100个数据,否则Controller 运行过程中会返回一个错误。【Update value on】有如下几种选择:多次迭代如何取值Once: 在所有的反复中都使用同一个值,each iteration: 则每次反复都要取新值,each occurrence:则只要发现该参数就要重新取值,也就是如果一个action中有多个该

34、参数,每遇到一个就要重新取一个值。输出参数值:lr_output_message(User: %snn, lr_eval_string(UserName);7、增强Vuser脚本-集合点集合点(Rendezvous)集合点:是一个并发访问的点,在测试计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRu

35、nner 命令1000 人同时去提交数据,达到并发访问的目的。 lr_rendezvous(login);注意:注意:1 1、集合点经常和事务结合起来使用,常放在事务的前面;、集合点经常和事务结合起来使用,常放在事务的前面;2 2、集合点只能插入到、集合点只能插入到ActionAction部分,部分,vuser_initvuser_init和和vuser_endvuser_end中不中不能插入集合点;能插入集合点;7、增强Vuser脚本-其他u 注释:可以插入注释来描述活动或关于某个操作的信息/* * 费用查询 */u 模拟用户思考时间:我们把用户在连续的两个操作之间的等待时间称之为“思考时间

36、” lr_think_time();u 消息函数:lr_debuge_message将调试消息发送到输出窗口lr_error_message将错误消息发送到输出窗口lr_get_debuge_message 检索当前的消息类 lr_log_message将输出消息直接发送到output.txt 文件,此文件位于vuser脚本目录下,为了防止输出信息干扰TCP/IP通信lr_output_message 将消息发送到输出窗口lr_message将消息发送到Vuser日志和输出窗口注意:不要在事务中输出消息,因为这有可能使事务执行时间变长,扭曲事务结果注意:不要在事务中输出消息,因为这有可能使事务

37、执行时间变长,扭曲事务结果8、Run-Time Setting-迭代通过配置运行时的设置,可以模拟不同的用户活动运行逻辑1、迭代2、操作块3、顺序4、权重8、Run-Time Setting-迭代迭代次数:LoadRunner可以按指定的次数重复执行Actions。操作块:操作块是脚本内单独的操作组,可以包含vuser_init、vuser_action、vuser_end,可以单独设置每个块的属性。顺序:可以设置脚本内的操作顺序,是按顺序运行还是随机。权重:对于随机运行的操作块,可以设置块内每个操作的权重或百分比。注意:如果在Controller中设置了方案持续时间,那么将覆盖迭代设置。就意

38、味着如果持续时间为5分钟,那么Vuser将在5分钟内完成任意多次迭代,即使运行设置也只设置了一次迭代。8、Run-Time Setting-运行步设置8、Run-Time Setting-运行日志注意:1、一般在编辑、录制Vuser脚本时,建议开启日志记录。2、在脚本中包含参数传递、或参数值改变时,建议开启“Parameter substitution”,将输出参数值到Exception Log窗口。3、在进行并发测试时,为了避免影响系统运行速度,建议关闭日志记录。8、Run-Time Setting-思考时间注意:ThinkTime的设置会影响服务器的压力,如果忽略的话压力最大。8、Run-

39、Time Setting-其他设置性能测试概要第一章认识LoadRunner第二章VuGen录制Vuser脚本第三章Controller创建运行场景第四章Analysis分析结果第五章课程内容课程内容1、设置场景(一)u运行场景描述在测试活动中所发生的各种事件。u一个运行场景包括:一个运行虚拟用户活动的LoadGenerator机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组。1、设置场景(二)LR包含两种场景类型:u Manual Scenario:该项要完全手动的设置场景,这项下面还可以设置为每一个脚本分配要运行的虚拟用户的百分比,可在Controller的Scenario菜单下

40、设置。u Goal Oriented Scenario:如果你的测试计划是要达到某个性能指标,比如:每秒多少点击,每秒多少transactions,能到达多少VU,某个Transaction在某个范围VU(5001000)内的反应时间等等,那么就可以使用面向目标的场景。1、设置场景(三)Design:设计测试场景的静态部分,设置模拟用户生成器、模拟用户数量、 模拟用户组等。Run:设计测试的动态部分,主要指添加性能计数器,在脚本运行的过程中可以通过这些计数器反馈数据。VU的百分比重要:根据业务运行情况来定(业界、后台)2、添加脚本3、设置Schedule(一) 建立了测试场景后,我们可以对Ed

41、it Schedule进行设置,设置测试开始执行的时间,对于手动设的测试还可以设定它的持续时间,以及何时起用或禁止调用模拟用户。3、设置Schedule(二)3、设置Schedule(三) 场景设计技巧 每隔30秒增加VU 测试15-30Min 释放VU与增加对称 设置相关依赖4、Load Generator Machines(一)点击 Generators 按钮后,出现 Load Generators对话框点击 Details 按钮后,配置Generator4、Load Generator Machines(二) 如何确定需要多少台负载器 OS 协议 LR版本 内存(mmdir进程查看) 控

42、制器如何控制负载机运行:Tool代理 如何设置负载机Run:二进制文件传输信息 运行设置: ThinkTime为3S-5S 进程/线程:根据被测系统设计来定5、设置集合点及其策略如果在脚本中设置了集合点,还需要在Controller中设置集合点策略。在菜单中调出设置集合点策略的窗口.,脚本运行的时候,在这里可以看到VU的状态。(当VU显示模式在Vuser Group Mode下才能设置) 6、分析及监视场景(一)为了监视服务器的运行状况(Database Server、Web Server等),需要添加性能计数器6、分析及监视场景(二)状态状态含义含义关闭(Down)Vuser处于关闭状态挂起

43、(Pending) Vuser初始化已就绪,正在等待可用的负载生成器,或者正在向负载生成器传输文件初始化(Init)Vuser正在进行初始化就绪(Ready)Vuser已经执行了脚本的初始化部分,可以开始运行正在运行(Run)Vuser正在运行。正在负载生成器上执行 Vuser 脚本集合点(Rendezvous)Vuser已经到达了集合点,正在等待释放完成并通过(Passed) Vuser已结束运行。脚本执行通过完成但失败(Failed)Vuser已结束运行。脚本执行失败错误(Error)Vuser发生了错误。要了解错误的完整说明,请查看“输出”窗口或“Vuser”对话框中的“状态”字段逐步退

44、出(Gradula Exiting)Vuser正在运行退出前的最后一次迭代退出(Exiting)Vuser运行结束,正在退出停止(Stopped)设置“停止”命令后, Vuser 即停止状态概要状态概要含义含义场景状态(Scenario Status)场景处于“正在运行”状态,还是处于“关闭”状态正在运行的Vuser(Running Vusers)负载生成器计算机上正在执行的 Vuser数已用时间(Elapsed Time)指自场景开始运行到现在所用的时间每秒点击次数(Hits/Second)指每个 Vuser 运行期间,每秒对所测试网站的点击次数(HTTP请求数)通过的事务数场景运行到现在成

45、功通过的事务数失败的事务数场景运行到现在失败的事务数错误数场景运行到现在发生错误的Vuser数运行状态及状态概要说明6、分析及监视场景(三)LR只能监视它支持的服务器的资源,它支持大部分常见的服务器。p System Resource:包括windows平台,Unix平台等p Web Server:包括Apache、IIS、Sun的iplanet等p Application server:包括Weblogic、WebSphere等p Database server:包括DB2,Oracle,Sql server,Sybase等p Java: ejb,J2ee等,需要一个ejbdetector.

46、jar文件6、分析及监视场景(四)对Windows(Win2k server)的监视:对windows的监视相对比较简单,监视前首先需要用有管理员权限的帐号连接被监server,例如: net use qa-test /user:donny ,输入密码。然后就可以添加计数器,比较常用的计数器有:Memory:Available Mbytes 物理内存的可用数(单位 Mbytes)至少要有10% 的物理内存值Processor:%Processor Time CPU 使用率。这是查看处理器饱和状况的最佳计数器。显示所有 CPU 的线程处理时间。如果一个或多个处理器的该数值持续超过 90%,则表示

47、此测试的负载对于目前的硬件过于沉重。为多处理器服务器添加该计数器的 0 到 x 个实例。Processor Queue Length:是指处理列队中的线程数,小于2。处理器瓶颈会导致该值持续大于 2。Context Switches/sec:如果切换次数到5000*CPU个数和10000*CPU个数中,说明它忙于切换线程。Network Interface:Bytes Total/sec 为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较。SQL Server2000:%Processor Time,CPU 使用率General Stat

48、istics:Logins/sec,这是每秒登录到 SQL Server 的计数。SQL Statistics: Batch Requests/sec,每秒收到的 Transact-SQL 命令批数。这一统计信息受所有约束(如I/O、用户数、高速缓存大小、请求每秒收到的 Transact-SQL 命令批数。这一统计信息受所有约束(如I/O、用户数、高速缓存大小、请求的复杂程度等)影响。批请求数值高意味着吞吐量很好。性能测试概要第一章认识LoadRunner第二章VuGen录制Vuser脚本第三章Controller创建运行场景第四章Analysis分析结果第五章课程内容课程内容1、分析测试结果

49、(一)u场景运行结束之后,需要使用Analysis组件分析结果。Analysis可以在“开始程序”菜单中启动,也可以在Controller中启动。uLR的报表分析功能也异常强大,有各种各样的报表,甚至可以将单个报表组合,也可以导出到Excel文件和Html文件。1、分析测试结果(二)pDNS解析时间:浏览器访问一个网站的时候,一般用的是域名,需要dns服务器把这个域名解析为IP,这个过程就是域名解析时间,如果我们在局域网内直接使用IP访问的话,就没有这个时间了。pConnection:解析出Web Server 的IP地址后,浏览器请求被送到了Web Server,然后浏览器和Web Serv

50、er 之间需要建立一个初始化HTTP连接,服务器端需要做2件事:一是接收请求,二是分配进程,建立该连接的过程就是connection时间。pFirst Buffer:建立连接后,从Web Server 发出第一个数据包,经过网络传输到客户端,浏览器成功接受到第一字节的时间就是First Buffer。这个度量时间不仅可以表示Web Server 的延迟时间,还可以表示出网络的反应时间。pReceive:从浏览器接收到第一个字节起,直到成功收到最后一个字节,下载完成止,这段时间就是receive时间。其他的时间还有SSL Handshaking(SSL 握手协议,用到该协议的页面比较少)、ClientTime(请求在客户端浏览器延迟的时间,可能是由于客户端浏览器的think time 或者客户端其他方面引起的延迟)、Error Time(从发送了一个HTTP 请求,到Web Serve

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论