LoadRunner性能测试培训学习目标学习目标性能测试是什么性能测试的类型LoadRunner基础性能测试的范畴性能指标介绍性能测试过程性能调优介绍性能测试是什么?定义性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。在线用户数在线用户数是指同时登录应用系统的用户数量。该数据可通过检查系统应用与数据库连接取得。对于已投产系统,该数量一般通过系统跟踪监控获取。新投产系统通过经验值估算。性能测试是什么?并发用户数并发主要是针对服务器而言,是否并发的关键是看用户操作是否对服务器产生了影响。因此,并发用户数量的正确理解为:在同一时刻与服务器进行了交互的在线用户数量,这种交互既可以是单向的传输数据,也可以是双向的传送数据。并发用户数是指系统运行期间同一时刻进行业务操作的用户数量。该数量取决于用户操作习惯、业务操作间隔和单笔交易的响应时间。使用频率较低的应用系统并发用户数一般为在线用户数的5%左右。使用频率较高的应用系统并发用户数一般为主线用户数的10%左右。交易交易分为业务层面和技术层面两种定义。业务层面交易是指完成一次完整的业务操作,如进行一次查询、转账。技术层面交易是指进行一次应用程序至应用程序、或者应用程序至数据库的系统操作。一般的一笔业务交易由多笔技术交易组成。根据业务交易的复杂度和系统应用架构的不同,其比例大致为1:2--1:10性能测试类型负载测试压力测试疲劳强度测试大数据量测试性能测试类型负载测试(LoadTest)通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。压力测试(StressTest)通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能够提供的最大服务级别的测试。压力测试是一种特定类型的负载测试。性能测试类型疲劳强度测试通常是采用系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。疲劳强度测试可以反映出系统的性能问题,例如内存泄漏等。大容量测试(VolumeTest)对特定存储、传输、统计、查询业务的测试。LoadRunner基础LoadRunner常用的版本有哪些?V7.8V8.0V8.1V9.0V9.1V9.5V11LoadRunner是那个公司的产品?Mecury公司,现为HP收购世界500强的企业中,有75%的企业使用其产品TestDirector9.0版本称为QC(MercuryQualityCenter)WinRunnerLoadRunnerQuickTestProfessional(QTP)Loadrunner支持哪些常用的插件?.net和JBuilder两种插件Loadrunner常用的开发语言是什么?CLoadRunner基础Loadrunner常用组件VirtualUserGenerator(Vugen)—创建脚本Controller—设计和运行场景Analysis—分析场景TuningConsole(LoadRunner8.0以上)—调优LoadRunner基础Loadrunner支持哪些常用协议?Web(HTTP/HTML)Sockets.net协议webservices常用数据库协议(ODBC,ORACLE,SQLSERVER等)邮件(SMTP、pop3)其它协议思考问题:为什么LR录完之后VuGen里产生不了脚本?B/S结构的一定选择WEB(HTTP/HTML)?C/S结构的一定是WinSocket协议?JAVA开发的C/S选择什么协议,C开发的B/S如何选择协议?LoadRunner协议选择如何选择协议?很多人使用loadrunner录制脚本时都得不到理想的结果,出现这种情况大多是由于录制脚本时选择了不当的协议。那我们在录制脚本前如何选择合适的通信协议呢?用单协议还是双协议?LoadRunner属于应用在客户端的测试工具,在客户端模拟大量并发用户去访问服务器,从而达到给服务器施加压力的目的。所以说LoadRunner模拟的就是客户端,其脚本代表的是客户端用户所进行的业务操作,即只要脚本能表示用户的业务操作就可以。1.LR支持多种协议,请大家一定要注意,这个地方协议指的是你的Client端通过什么协议访问的Server,Client一般是面向最终使用者的,Server是第一层Server端,因为现在的体系架构中经常Server层也分多个层次,什么应用层,什么数据层等等,LR只管Client如何访问第一层Server.2.特别要注意某些应用,例如一个Web系统,这个系统是通过ActiveX控件来访问后台的,IE只是一个容器,而ActiveX控件访问后台是通过COM/DCOM协议的,这种情况就不能使用Web协议,否则你什么也录制不到,所以,LR工程师一定要了解应用程序的架构和使用的技术。3.象HTTPS,一般来讲一定要选择多协议,但在选择具体协议的时候一定只选Web协议,这时候才能作那个端口映射。LoadRunner协议选择通常协议选择1.对于常见的B/S系统,选择Web(Http/Html)2.测一个C/S系统,根据C/S结构所用到的后台数据库来选择不同的协议,如果后台数据库是sybase,则采用sybaseCTlib协议,如果是SQLserver,则使用MSSQLserver的协议,至于oracle数据库系统,当然就使用Oracle2-tier协议。3.对于没有数据库的C/S(ftp,smtp)这些可以选择WindwosSockets协议。4.至于其他的ERP,EJB(需要ejbdetector.jar),选择相应的协议即可.5.一般可以使用Javavuser协议录制由java编写的C/S模式的软件,,当其他协议都没有用时,只能使用winsocket协议LoadRunner基础设置RecordingOptions选项?(以单协议http/html为例)1.菜单tools-RecordingOptions进入录制的设置窗体2.Recording标签页:选用哪种录制方式3.Browser标签页:浏览器的选择4.RecordingProxy标签页:浏览器上的代理设置5.Advanced标签页:可以设置录制时的thinktime,支持的字符集标准等6.Correlation标签页:手工设置关联,通过关联可在测试执行过程中保存动态值。使用这些设置可以配置VuGen在录制过程中执行的自动关联的程度。LoadRunner基础HTML-Basedscrīpt和URL-Basedscrīpt录制的区别?1.基于浏览器的应用程序推荐使用HTML-Basedscrīpt。2.不是基于浏览器的应用程序推荐使用URL-Basedscrīpt。3.如果基于浏览器的应用程序中包含了Javascrīpt并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL-Basedscrīpt方式录制。4.基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-Basedscrīpt方式录制。5.录制过程中不要使用浏览器的“后退”功能,LoadRunner对其支持不太好。LoadRunner基础创建脚本操作步骤:1.启动VuGen:选择需要新建的协议脚本,可以创建单协议,或是多协议脚本2.点击StartRecord按钮,输入程序地址,开始进行录制3.使用VuGen进行录制:创建的每个Vuser脚本都至少包含三部分:vuser_init、一个或多个Actions及vuser_end。录制期间,可以选择脚本中VuGen要插入已录制函数的部分。运行多次迭代的Vuser脚本时,只有脚本的Actions部分重复,而vuser_init和vuser_end部分将不重复LoadRunner基础完善脚本插入事务插入集合点模拟用户思考时间参数化输入插入Text/Imag检查点Run-TimeSetting选项LoadRunner基础插入事务(Transaction)事务为衡量服务器的性能,需要定义事务。LoadRunner运行到该事务的开始点时,LR就会开始计时,直到运行到该事务的结束点,这个事务的运行时间在结果中会有反映。插入事务操作可以在录制过程中进行,也可以在录制结束后进行。LR运行在脚本中插入不限数量的事务。在菜单中单击InsertStartTransaction后,输入事务名称,也可在录制过程中进行,在需要定义事务的操作后面插入事务的“结束点”。默认情况下,事务的名称列出最近的一个事务名称。一般情况下,事务名称不用修改。事务的状态默认情况下是LR_AUTO。一般情况下,我们也不需要修改状态的LoadRunner基础插入集合点(Rendezvous)集合点:如果脚本中设置集合点,可以达到绝对的并发,但是集合点并不是并发用户的代名词,设置结合点和不设置结合点,需要看你站在什么角度上来看待并发,是整个服务器,还是提供服务的一个事务;插入集合点是为了衡量在加重负载的情况下服务器的性能情况。在测试计划中,可能会要求系统能够承受1000人甚至更多同时提交数据,在LR中可以通过在提交数据操作前面加入集合点,当虚拟用户运行到提交数据的集合点时,LR就会检查同时有多少用户运行到集合点,从而达到测试计划中的需求。具体的操作方法如下:在需要插入集合点的前面,点击菜单InsertRendezvous,也可在录制时按插入集合点按钮注意:集合点经常和事务结合起来使用。集合点只能插入到Action部分,vuser_init和vuser_end中不能插入集合点。LoadRunner基础模拟用户思考时间用户在执行两个连续操作期间等待的时间称为“思考时间”。Vuser使用lr_think_time函数模拟用户思考时间。录制Vuser脚本时,VuGen将录制实际的思考时间并将相应的lr_think_time语句插入到Vuser脚本。可以编辑已录制的lr_think_time语句,也可在脚本中手动添加更多lr_think_time语句。以秒为单位指定所需的思考时间LoadRunner基础参数化如果用户在录制脚本过程中,填写提交了一些数据,这些操作都被记录到了脚本中。当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且有可能引起冲突。为了真实的模拟实际环境,需要各种各样的输入。录制业务流程时,VuGen生成一个包含可以用参数替换已录制的值。这被称为脚本参数化。参数化包含以下两项任务:①在脚本中用参数取代常量值。②设置参数的属性以及数据源。注意:不是所有的函数都可以参数化的。也可以将参数化的内容进行还原LoadRunner基础创建参数化1.选中需要参数化的内容,点击右键,选择Replacewithaparameter2.在“参数名”框中键入参数的名称,或从列表中选择一个现有的参数名。3.在从“参数类型”列表中选择参数类型。4.点击属性,设置参数属性5.也可以点击菜单:VuserParameterList,进行添加参数,设置相应的属性LoadRunner基础参数的类型介绍数据文件:文件(现有文件或者用VuGen或MSQuery创建的文件)中包含的数据分配内部数据:Vuser内部生成的数据。这包括日期/时间、组名、迭代编号、负载生成器名、随机编号、唯一编号和VuserID用户定义的函数:使用外