loadrunner工具介绍的组成部分有哪些 应用服务器

LoadRunner性能测试基础知识问答
每天15篇文章
不仅获得谋生技能
更可以追随信仰
LoadRunner性能测试基础知识问答
作者: aovenus , 发布于
Q1:什么是负载测试?什么是性能测试?
A1:负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试,例如,访问一个页面的响应时间规定不超过1秒,负载测试就是测试在响应时间为1秒时,系统所能承受的最大并发访问用户的数量。
性能测试:指在一定的约束条件下(指定的软件、硬件、网络环境等),确定系统所能承受的最大负载压力。
Q2.性能测试包含了哪些测试(至少举出3种)
A2:性能测试包含负载测试、压力测试、大数据量测试、疲劳强度测试等。
Q3.简述性能测试的步骤
Q4.简述使用Loadrunner的步骤
A4:制定性能测试计划―&开发测试脚本―&设计测试场景―&执行测试场景―&监控测试场景―&分析测试结果
Q5.什么时候可以开始执行性能测试?
A5:功能测试通过;一般需要进行性能测试的系统,都是用户量比较大、业务使用比较频繁、比较重要的功能模块。
Q6.LoadRunner由哪些部件组成?
A6:主要有三部分组成:
Q7.你使用LoadRunner的哪个部件来录制脚本?
A7:使用Virtual User Generator录制测试脚本
Q8.LoadRunner的哪个部件可以模拟多用户并发下回放脚本?
A8:LoadRunner的Controller组件。
Q9.什么是集合点?设置集合点有什么意义?Loadrunner中设置集合点的函数是哪个?
A9:在性能测试过程中,需要模拟大量用户在同一时刻,访问系统并同时操作某一任务,可以通过配置集合点来实现,多个用户同时进行某操作;
集合点可以在服务器上创建密集的用户负载,使LoadRunner能够测试服务器在负载状态下的性能。
设置集合点函数:lr_rendezvous(&Meeting&);
// Meeting是集合点名称
Q10.什么是场景?场景的重要性有哪些?如何设置场景?
A10:场景用于模拟用户实际业务操作;
LoadRunner中场景有手工场景和面向目标的场景。
设置场景:选择场景类型、设置运行时设置、模拟用户数、加减压方式、持续时间,配置负载生成器。
Q11.请解释一下如何录制web脚本?
A11:利用Virtual User Generator录制测试脚本,录制步骤:
1、选择合适的协议
2、设置录制选项
3、开始录制
Q12.为什么要创建参数?如何创建参数?
A12:LoadRunner在录制脚本的时候,只是忠实的记录了所有从客户端发送到服务器的数据,而在进行性能测试的时候,为了更接近真实的模拟现实应用,对于某些信息需要每次提交不同的数据,或者使用多个不同的值进行循环输入。这时,在LoadRunner中就可以进行参数化设置,以使用多个不同的值提交应用请求。
【参数化】:使用指定数据源中的值来替换脚本录制生成的语句中的参数。
【参数化好处】
减少脚本的大小
提供使用不同的值执行脚本的能力,更加真实的模拟现实应用。
【参数化步骤】
用参数替换Vuser脚本中的常量值
为参数设置属性和数据源
Q13.什么是关联?请解释一下自动关联和手动关联的不同。
A13:【关联的定义】简单的说:就是把脚本中某些写死(固定)的数据,转变成动态的数据,或者说将前面语句的结果数据保存下来,然后在后面的语句提交请求时使用这些数据。
【需要关联的前提条件】:
客户端需要从服务器端返回数据中获取部分数据,并将这些部分数据处理后作为自己下一次请求的一部分发出。
【自动关联与手工关联的不同】:自动关联是在脚本录制过程中,VuGen会根据已经制定好的规则,自动找出需要关联的值或脚本录制完成后,执行脚本一次,通过Correlation
Studio自动找出需要关联的数据,并建立关联;而手动关联是需要录制两份相同业务流程的脚本,输入的数据要相同,利用WinDiff工具,找出两份脚本之间不同之处,也就是需要关联的数据,再通过web_reg_save_param函数手动建立关联,将脚本中用到关联的数据参数化。
Q14.你如何找出哪里需要关联?请给一些你所在项目的实例。
1、录制两份相同业务流程的脚本,输入的数据要相同
2、利用WinDiff工具,找出两份脚本之间不同之处,也就是需要关联的数据
3、通过web_reg_save_param函数手动建立关联,将脚本中用到关联的数据参数化。
通过录制两份脚本,进行对比,可知jsessionid、sap-ext-sid、sap-wd-cltwndid、sap-wd-tstamp需要进行关联。
Q15.你在哪里设置自动关联选项?
A15:录制选项中进行设置,如下图所示:
Q16.哪个函数是用来截取虚拟用户脚本中的动态值?(手工关联)
A16:Web_reg_save_param函数主要根据需要做关联的动态数据前面和后面的固定字符串来识别、提取动态数据,所以在做关联时,需要找出动态数据的左、右边界字符串。
1.函数原型:
int web_reg_save_param (const char *ParamName,
&List of Attributes&, LAST);
2.参数说明:
ParamNam:存放动态数据的参数名称
List of Attributes:其它属性,包含Notfound、LB、RB、RelFrameID、Search、ORD、SaveOffset、Convert、SaveLen。
Notfound:指当找不到要找的动态数据时,怎么处理。
Notfound=error,当找不到动态数据时,发出一个错误信息,为LoadRunner的默认值。
Notfound=warning,当找不到动态数据时,不发出错误信息,只发出警告,脚本会继续执行下去不会中断。
LB:动态数据的左边界字符串,该参数为必选参数,并区分大小写。
RB:动态数据的右边界字符串,该参数为必选参数,并区分大小写。
ORD:指提取第几次出现的左边界的数据,该参数为可选参数,默认值是1。假如值为All,则查找所有符合条件的数据并把这些数据存储在数组中。
Search:搜寻的范围。可以是Headers(只搜寻Headers)、Body(只搜寻Body部分,不搜寻Headers)、Noresources(只搜寻Body部分,不搜寻Header与Resource)或是All(搜寻全部范围,此为默认值),该参数为可选参数。
RelFrameID:相对于URL而言,欲搜寻的网页的Frame,此属性可以是All或是具体的数字,该参数为可选参数。
SaveOffset:当找到符合的动态数据时,从第几个字符开始才存储到参数中,该参数为可选参数,此属性值不可为负数,其默认值是0.
Convert:可能的值有两种:
HTML_TO_URL:将HTML-encoded数据转成URL-encoded数据格式。
HTML_TO_TEXT:将HTML-encoded数据转成纯文字数据格式。
SaveLen:从Offset开始算起,到指定长度内的字符串,才储存到参数中,该参数为可选参数,默认值为-1,表示储存到结尾整个字符串。
Q17.你在VUGen中何时选择关闭日志?何时选择标准和扩展日志?
A17:在测试场景执行时,关闭日志,因为日志信息过多,也会影响性能测试结果;在调试测试脚本时,可以选择标准或扩展日志,用于输出调试信息。
可以在运行时设置中,进行日志设置,如下图所示:
Q18.你如何调试LoadRunner脚本?
A18: 通常采用以下方法调试LoadRunner测试脚本
【方法】在脚本的任意一行上按右键菜单或F9增加断点。
【方法】通过菜单命令VUser―&Run Step by Step或F10,可以控制脚本以语句为单位执行。
【方法】通过日志输出函数lr_message、lr_log_message、lr_output_message输出。
对话框输出
综上,在实际测试工作中,基本上使用前三种方法,对话框输出基本上没用过。
Q19、你在LR中如何编写自定义函数?请给出一些你在以前进行的项目中编写的函数。
A19:在编写用户自定义函数之前,需要首先为函数创建外部库(DLL)文件,将这些库文件放在bin目录下,一旦库文件已经被添加并且将用户自定义函数作为参数,函数应该为以下格式:__declspec
(dllexport) char* (char*, char*)
Q20.在运行设置下你能更改那些设置?
A20:可以修改Run Logic、pacing、Log、Think Time等,见下图;可以测试实际需要,修改相关选项。
Q21.你在不同的环境下如何设置迭代?
A21:在“运行时设置”中设置,如下图所示:
Q22.你如何在负载测试模式下执行功能测试?
A22:在负载测试模式下,可以通过同时运行数个虚拟用户,通过增加虚拟用户数,确定服务器在多大的负载量下,仍然可以正常运行,我一般进行核心功能操作,验证核心功能运行是否正常。
Q23.什么是逐步递增?你如何来设置?
A23:虚拟用户数随着负载时间逐渐增加,可以帮助确定系统响应时间减慢的准确时间点。
可以在“加压”选项卡中进行设置:如下图所示,将设置更改为:“每 30 秒启动
2 个 Vuser”
Q24.以线程方式运行的虚拟用户有哪些优点?
A24:以线程方式运行的虚拟用户,在默认情况下,Controller为每50个用户仅启动一个mmdrv进程,而每个用户都按线程方式来运行,这些线程用户将共享父进程的内存,这就节省了大量内存空间,从而可以在一个负载生成器上运行更多的用户。
Q25.当你需要在出错时停止执行脚本,你怎么做?
A25:取消运行设置中的“Continue on error”复选框。
或者使用lr_abort函数。
Q26.响应时间和吞吐量之间的关系是什么?
A26:当系统吞吐量未达到系统处理极限时,系统性能不会衰减,交易平均响应时间一般也不会递增,当系统达到吞吐量极限时,客户端交易会在请求队列中排队等待,等待的时间会记录在响应时间中,故交易平均响应时间一般会递增。
Q27.说明一下如何在LR中配置系统计数器?
A27:以windows资源监控为例,可右键点“添加度量”,输入系统IP、选择平台类型,确定即可,详细参加LR自带操作手册^_^。
对于监控不同类型的操作系统,需要做一些准备工作,可参见监控操作系统资源部分。
Q28.你如何识别性能瓶颈?
A28:性能瓶颈分为:硬件瓶颈和软件瓶颈
性能瓶颈可以通过监控器来分析发现,这些监控器包括应用服务器监控、web服务器监控、数据库服务器监控器和网络监控器;它们可以帮助分析导致响应时间增加的原因;性能度量一般包括响应时间、吞吐量、每秒点击率、网络延迟等等。
Q29.如果web服务器、数据库以及网络都正常,问题会出在哪里?
A29:问题可能出在系统本身或应用服务器、或为应用编写的代码编写中。
Q30.如何发现web服务器的相关问题?
A30:可以利用web资源监控器发现web服务器相关问题,在场景执行过程中,可以利用监控器分析web服务器吞吐量、每秒点击率、每秒HTTP响应数、每秒页面下载数,以及web服务器硬件资源使用情况等。
Q31.如何发现数据库的相关问题?
A31:可以通过数据库监控器和数据资源图发现数据库相关的问题,例如在运行Controller之前,可以指定需要度量的资源,之后可以根据监控的数据,分析数据库相关的问题。
Q32.解释所有web录制配置?
A32:选择录制协议、设置录制选项、选择浏览器、选择存放路径、开始录制。
Q33.解释一下覆盖图和关联图的区别?
A33:覆盖图:合并两个图的内容,使用同一个X轴,合并图左Y轴显示当前图的值,合并图右Y轴显示被合并图的值。
关联图:当前活动图的Y轴变为合并图的X轴,被合并图的Y轴变成合并图的Y轴。
Q34.你如何设计负载?标准是什么?
A34:负载测试计划多少用户数量、使用什么类型的机器、以及在什么环境下进行。主要基于两个重要的文档,任务分布图和事务信息,任务分布图告诉我们在负载时间段内,某一个事务使用的用户数,高峰使用率及低峰使用率均来自该文档;
事务信息告诉我们事务名及优先级,在设计场景时可以参考。
Q35.Vuser_init中包括什么内容?
A35:Vuser_init中包含在脚本执行过程中只需执行一次的脚本。一般来说,所有需要初始化的都可以放在vuser_init里面,比如登录。
Q36. Vuser_end中包括什么内容?
A36:vuser_end中一般包含退出的过程,比如退出系统,主要在脚本执行完成或停止时运行,在设置了迭代次数时,vuser_end和vuser_int均只执行一次。
Q37.什么是think time?think_time有什么用?
A37:思考时间:用户在各步骤之间停下来进行思考的时间,由于用户基于其经验水平和目标而与应用程序进行交互操作,因此技术水平更高的用户工作起来可能会比新用户要快。
通过启用思考时间,可以使 Vuser在负载测试期间更准确地模拟其对应的真实世界用户。
Q38.标准日志和扩展日志的区别是什么?
A38:标准日志:脚本执行过程中,将函数集及信息发送到日志文件中
扩展日志:可以将详细的脚本执行信息输出到日志文件中,可以选择以下三种扩展日志信息:
参数替换:脚本运行过程中,可以将参数及当前参数值输出到日志文件中
服务器返回的数据:将服务器返回给客户端的数据输出到日志文件中
高级跟踪:所有的虚拟用户信息和函数调用输出到日志文件中
Q39.解释以下函数及他们的不同之处。
A39:lr_debug_message:发送调试信息到输出窗口或业务监控日志文件中
lr_output_message:发送日志信息到输出窗口或业务监控日志文件中
lr_error_message:发送错误信息到输出窗口或业务监控日志文件中
lrd_stmt:赋予一个SQL语句用于处理
lrd_fetch:获取结果集中的下一行数据
Q40.什么是吞吐量?
A40:客户端每秒从服务器接收到的数据,或系统服务器每秒能处理通过的交易数。一般随着虚拟用户数的增加,吞吐量也增加,说明网络带宽比较充足,反之,吐过随着虚拟用户数的增加,吞吐量比较平稳,呈直线状态,则说明网络带宽成为瓶颈,限制了数据传输。
Q41.场景设置有哪几种方法?
A41:面向目标的场景设置和手动场景
更多课程...&&&
更多咨询...&&&
每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
|&京ICP备号&京公海网安备号测试对象/loadrunner
LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快地查找和发现问题。此外,LoadRunner能支持广泛的协议和技术,为您的特殊环境提供特殊的解决方案。
主要功能/loadrunner
虚拟用户LoadRunner性能虚拟用户模拟测试使用LoadRunner的Virtual User Generator,您能很简便地创立起系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程(如下订单或机票预定),然后将其转化为测试脚本。利用虚拟用户,您可以在Windows ,UNIX 或Linux 机器上同时产生成千上万个用户访问。所以LoadRunner能极大的减少负载测试所需的硬件和人力资源。用Virtual User Generator 建立测试脚本后,您可以对其进行参数化操作,这一操作能让您利用几套不同的实际发生数据来测试您的应用程序,从而反映出本系统的负载能力。以一个订单输入过程为例,参数化操作可将记录中的固定数据,如订单号和客户名称,由可变值来代替。在这些变量内随意输入可能的订单号和客户名,来匹配多个实际用户的操作行为。真实负载Virtual users 建立起后,您需要设定您的负载方案,业务流程组合和虚拟用户数量。用LoadRunner的Controller,您能很快组织起多用户的测试方案。Controller 的Rendezvous 功能提供一个互动的环境,在其中您既能建立起持续且循环的负载,又能管理和驱动负载测试方案。而且,您可以利用它的日程计划服务来定义用户在什么时候访问系统以产生负载。这样,您就能将测试过程自动化。同样您还可以用Controller 来限定您的负载方案,在这个方案中所有的用户同时执行一个动作---如登陆到一个库存应用程序----来模拟峰值负载的情况。另外,您还能监测系统架构中各个组件的性能---- 包括服务器,数据库,网络设备等----来帮助客户决定系统的配置。定位性能LoadRunner内含集成的实时监测器,在负载测试过程的任何时候,您都可以观察到应用系统的运行性能。这些性能监测器为您实时显示交易性能数据(如响应时间)和其它系统组件包括application server,web server,网路设备和数据库等的实时性能。这样,您就可以在测试过程中从客户和服务器的双方面评估这些系统组件的运行性能,从而更快地发现问题。利用LoadRunner的ContentCheck TM ,您可以判断负载下的应用程序功能正常与否。ContentCheck 在Virtual users 运行时,检测应用程序的网络数据包内容,从中确定是否有错误内容传送出去。它的实时浏览器帮助您从终端用户角度观察程序性能状况。分析结果一旦测试完毕后,LoadRunner收集汇总所有的测试数据,并提供高级的分析和报告工具,以便迅速查找到性能问题并追溯原由。使用LoadRunner的Web 交易细节监测器,您可以了解到将所有的图象、框架和文本下载到每一网页上所需的时间。例如,这个交易细节分析机制能够分析是否因为一个大尺寸的图形文件或是第三方的数据组件造成应用系统运行速度减慢。另外,Web 交易细节监测器分解用于客户端、网络和服务器上端到端的反应时间,便于确认问题,定位查找真正出错的组件。例如,您可以将网络延时进行分解,以判断DNS 解析时间,连接服务器或SSL 认证所花费的时间。通过使用LoadRunner的分析工具,您能很快地查找到出错的位置和原因并作出相应的调整。重复测试负载测试是一个重复过程。每次处理完一个出错情况,您都需要对您的应用程序在相同的方案下,再进行一次负载测试。以此检验您所做的修正是否改善了运行性能。LoadRunner完全支持EJB 的负载测试。这些基于Java 的组件运行在应用服务器上,提供广泛的应用服务。通过测试这些组件,您可以在应用程序开发的早期就确认并解决可能产生的问题。利用LoadRunner,您可以很方便地了解系统的性能。它的Controller 允许您重复执行与出错修改前相同的测试方案。它的基于HTML 的报告为您提供一个比较性能结果所需的基准,以此衡量在一段时间内,有多大程度的改进并确保应用成功。由于这些报告是基于HTML 的文本,您可以将其公布于您公司的内部网上,便于随时查阅。接下来的文章编者就将辑录一篇网上的使用LoadRunner&来测试BEA中间件产品文章来与大家分享如何使用LoadRunner进行实际的性能测试。
性能测试/loadrunner
虚拟用户LoadRunner使用虚拟用户(Virtual users)来模拟实际用户对业务系统施加压力。虚拟用户在一个中央控制器(controller station)的监视下工作。在做一个测试方案时,要做的第一件事就是创建虚拟用户执行脚本。LoadRunner提供了Virtual User Generator来录制或编辑虚拟用户脚本。使用Vugen创建虚拟用户执行脚本A.从菜单中选择运行Virtual User Generator:B.创建一个单协议脚本,选择协议类型为"Tuxedo 7"C.在弹出的窗口中输入Tuxedo客户机程序的可执行文件名(SimpApp.exe),并选择"Record into Action"为Action。点击"OK"开始录制脚本,这时Vugen就会启动Simpapp.exe,如下图所示,输入WSNADDR,输入字符串(Tuxedo is powerful!)之后,点击TOUPPER,TUXEDO服务器完成请求后把输出字符串(TUXEDO IS POWERFUL!)写到"Output string"中,点击停止录制按钮。D.编辑Vuser脚本。在C中做的所有操作都被录了下来,记录到一个脚本文件中,其内容如下,把它存为simpapp。脚本内容如下:#include "lrt.h"#include "replay.vdf"Actions(){lrt_tuxputenv("WSNADDR=//172.22.32.25:7110");lr_think_time⑶;tpresult_int = lrt_tpinitialize(LRT_END_OF_PARMS);lrt_abort_on_error();data_0 = lrt_tpalloc("STRING","",1);lrt_strcpy(data_0,sbuf_1);data_1 = lrt_tpalloc("STRING","",1);tpresult_int = lrt_tpcall("TOUPPER",data_0,0,&data_1,&olen,0);lrt_abort_on_error();lrt_tpfree(data_0);lrt_tpfree(data_1);lrt_tpterm();return 0;}代码中加粗的函数是LoadRunner对TUXEDO函数的二次包装。E.点击工具栏中的"执行"按钮来执行我们刚才录制的脚本,确保执行无误。使用控制器来调度虚拟用户A.从菜单中选择运行Controller:B.创建一个新的Scenario,选择刚才录制的脚本(simpapp):点击"OK",弹出Scenario调度界面。在"Quantity"中输入100,表示使用100个虚拟用户。(虚拟用户与购买的LICENSE有关联)C.点击"Edit Schedule"来编辑压力调度。D.选择"Runtime settings"来作运行时设置。在Pacing的设置中,"Number of Iterations"用于设置Vusers的Actions被执行的次数;"Start new iteration"用于设置调度器在什么时机迭代执行Vusers的Actions。"Think Time"用于设置Vusers的反应和思考时间,以尽量做到和正常人一样来施压。"Ignore think time"表示忽略思考时间,这是理想状态,一般不使用。"As recorded"表示按照录制时的实际操作时间。"Multiply recorded think time by"表示Vusers的思考时间是实际录制时间的若干倍。在"Miscellaneous"中设置一些杂项,如使用进程还是使用线程等。对于TUXEDO,好象只能选进程模式。E.选择"Start scenario"来开始本次压力测试调度。执行结果分析如下:施压时间为5分41秒,Vusers数量为100,一共完成的Actions交易数量为5625笔,平均响应时间为5.561秒,TPS为17.8。测试组件1.(虚拟用户生成器)用于捕获最终用户业务流程和创建自动性能测试脚本 (也称为虚拟用户脚本)。2.Controller (控制器)用于组织、驱动、管理和监控负载测试。3.Analysis (分析器)有助于您查看、分析和比较性能结果。
实例应用/loadrunner
随机函数在软件测试工具中如何巧用LoadRunner的随机函数LoadRunner有自带的随机函数,如果巧妙的加以采用,能解决一些看似很困难的实际问题。一个项目的性能测试。与数据库直连,根据外部传入的SQL ID和SQL参数,从指定数据库中读取SQL模版,拼装成真实的SQL语句、执行,并将得到的结果放入缓存中。目的是减少数据库的压力。该系统将支撑大量的SQL操作,性能自然成为备受关注的焦点之一。由于它跟SQL语句相关,在真实环境下,同一时间可能执行着不同类型的SQL,即便是同一类型,其参数也各式各样。那么,怎样才能模拟出最符合实际情况的性能测试场景呢?首先设计场景,即,在LoadRunner中按照比例随机取到某一类型的SQL,再随机传入参数给它,让最终的每条SQL都是随机生成,各不相同。从场景中,可以看到,此处涉及双重随机。只采用loadruner的参数设置是无法实现的。此时需要想办法先按设定好的比例随机取到SQL,然后在每条SQL上随机取参数列表中的参数。于是想到了loadrunner的随机函数。先实现随机取SQL ID,之后再在特定的SQL中随机取参数列表中的参数。LoadRunner中,随机函数是rand(),它用来产生0到rand_max之间的随机整数。函数原型是int rand (void);然而调用rand之前,必须给随机数产生一个随机种子。这个种子由srand()函数产生。其原型是int srand (seedTime);举例采用上述两个函数,就能实现第一重随机了。具体脚本代码如下:通过上面的脚本,实现了性能测试设计的场景。调试通过后,放入Controller中执行。实际执行过程中,Vuser将会按比例随机取到不同类型的SQL,并随机取到SQL中的参数,执行特定的SQL语句。注:sqlid_name是SQL ID名称;random_para是通过file方式实现的随机参数;tn是web_url函数的快照名称。巧用LoadRunner的随机函数,能解决不少实际问题。分析占用率LoadRunner分析页面1. 平均事务响应时间Average Transaction Response Time 优秀:<2s良好:2-5s及格:6-10s不及格:>10s2. 每秒点击率Hits per Second当增大系统的压力(或增加并发用户数)时,吞吐率和TPS的变化曲线呈大体一致,则系统基本稳定。若压力增大时,吞吐率的曲线增加到一定程度后出现变化缓慢,甚至平坦,很可能是网络出现带宽瓶颈,同理若点击率/TPS曲线出现变化缓慢或者平坦,很可能是服务器响应时间增加,观察服务器资源使用情况,确定是否是服务器问题。3. 请求响应时间Time to Last Byte4. 每秒系统处理事务数Transaction per second5. 吞吐量Throughout6. CPU利用率Processor / %Processor Time 好:70%坏:85%很差:90%+7. 数据库操作消耗的CPU时间Processor / %User Time 如果该值较大,可以考虑是否能通过友好算法等方法降低这个值。如果该服务器是数据库服务器, Processor\%User Time 值大的原因很可能是数据库的排序或是函数操作消耗了过多的CPU时间,此时可以考虑对数据库系统进行优化。8. 核心态CPU平均利用率Processor /%Privileged Time 如果该参数值和"Physical Disk"参数值一直很高,表明I/O有问题。可考虑更换更快的硬盘系统9. 处理队列中的线程数Processor / Processor Queue Length 如果该值保持不变(>=2)个并且%Processor Time 超过90%,那么可能存在处理器瓶颈。如果发现超过2,而处理器的利用率却一直很低,那么或许更应该去解决处理器阻塞问题,这里处理器一般不是瓶颈。10. 文件系统缓存Memory / Cache Bytes 50%的可用物理内存11. 剩余的可用内存Memory / Avaiable Mbytes 至少要有10% 的物理内存值12. 每秒下载页数Memory / pages/sec 好:无页交换坏:CPU每秒10个页交换很差:更多的页交换13. 页面读取操作速率Memory / page read/sec 如果页面读取操作速率很低,同时 % Disk Time 和 Avg.Disk Queue Length的值很高,则可能有磁盘瓶径。但是,如果队列长度增加的同时页面读取速率并未降低,则内存不足。14. 物理磁盘利用率Physical Disk / %Disk Time 好:<30%坏:<40%很差:<50%+15. 物理磁盘平均磁盘I/O队列长度Physical Disk / Avg.Disk Queue Length 该值应不超过磁盘数的1.5~2 倍。要提高性能,可增加磁盘16. 网络吞吐量Network Interface / Bytes Total/sec 判断网络连接速度是否是瓶颈,可以用该计数器的值和当前网络的带宽,结果应该小于50%17. 数据高速缓存区命中率 命中率应大于0.90最好18. 共享区库缓存区命中率 命中率应大于0.9919. 监控 SGA 中字典缓冲区的命中率 命中率应大于0.8520. 检测回滚段的争用 小于1%21. 监控 SGA 中重做日志缓存区的命中率应该小于1%22. 监控内存和硬盘的排序比率 最好使它小于 10%安装版本要求LoadRunner 分为Windows 版本和Unix 版本。如果所有测试环境基于Windows平台,那么只要安装Windows 版本即可。LoadRunner的Unix版本仅提供Load Generator组件的安装(即LoadRunner中的负载生成器)。也就是说,这个负载生成器可以在Unix环境下安装和运行,并提供给Controller进行远程管理。但是,脚本的录制和场景的设计必须在Windows平台完成。系统要求运行LoadRunner,内存最好在128M 以上,LoadRunner7.8 的最低要求。内存最好在512M 以上,安装LoadRunner 的磁盘空间至少剩余500M。操作系统最好为Windows 2000。
最新版本/loadrunner
目前(2012年7月)可用的最新版本为:HPLoadRunner11.50
参数对照/loadrunner
LR函数lr_start_transaction 为性能分析标记事务的开始lr_end_transaction 为性能分析标记事务的结束lr_rendezvous 在 Vuser 脚本中设置集合点lr_think_time 暂停 Vuser 脚本中命令之间的执行lr_end_sub_transaction 标记子事务的结束以便进行性能分析lr_end_transaction 标记 LoadRunner 事务的结束Lr_end_transaction("trans1",Lr_auto);lr_end_transaction_instance 标记事务实例的结束以便进行性能分析lr_fail_trans_with_error 将打开事务的状态设置为 LR_FAIL 并发送错误消息lr_get_trans_instance_duration 获取事务实例的持续时间(由它的句柄指定)lr_get_trans_instance_wasted_time 获取事务实例浪费的时间(由它的句柄指定)lr_get_transaction_duration 获取事务的持续时间(按事务的名称)lr_get_transaction_think_time 获取事务的思考时间(按事务的名称)lr_get_transaction_wasted_time 获取事务浪费的时间(按事务的名称)lr_resume_transaction 继续收集事务数据以便进行性能分析lr_resume_transaction_instance 继续收集事务实例数据以便进行性能分析lr_set_transaction_instance_status 设置事务实例的状态lr_set_transaction_status 设置打开事务的状态lr_set_transaction_status_by_name 设置事务的状态lr_start_sub_transaction 标记子事务的开始lr_start_transaction 标记事务的开始Lr_start_transaction("trans1");lr_start_transaction_instance 启动嵌套事务(由它的父事务的句柄指定)lr_stop_transaction 停止事务数据的收集lr_stop_transaction_instance 停止事务(由它的句柄指定)数据的收集lr_wasted_time 消除所有打开事务浪费的时间lr_get_attrib_double 检索脚本命令行中使用的 double 类型变量lr_get_attrib_long 检索脚本命令行中使用的 long 类型变量lr_get_attrib_string 检索脚本命令行中使用的字符串lr_user_data_point 记录用户定义的数据示例脚本lr_whoami 将有关 Vuser 脚本的信息返回给 Vuser 脚本lr_get_host_name 返回执行 Vuser 脚本的主机名lr_get_master_host_name 返回运行 LoadRunner Controller 的计算机名lr_eval_string 用参数的当前值替换参数lr_save_string 将以 NULL 结尾的字符串保存到参数中lr_save_var 将变长字符串保存到参数中lr_save_datetime 将当前日期和时间保存到参数中lr _advance_param 前进到下一个可用参数lr _decrypt 解密已编码的字符串lr_eval_string_ext 检索指向包含参数数据的缓冲区的指针lr_eval_string_ext_free 释放由 lr_eval_string_ext 分配的指针lr_save_searched_string 在缓冲区中搜索字符串实例,并相对于该字符串实例,将该缓冲区的一部分保存到参数中lr_debug_message 将调试信息发送到输出窗口lr_error_message 将错误消息发送到输出窗口lr_get_debug_message 检索当前消息类lr_log_message 将消息发送到日志文件lr_output_message 将消息发送到输出窗口lr_set_debug_message 设置调试消息类lr_vuser_status_message 生成带格式的输出,并将其写到 ControllerVuser 状态区域lr_message 将消息发送到 Vuser 日志和输出窗口lr_load_dll 加载外部 DLLlr_peek_events 指明可以暂停 Vuser 脚本执行的位置lr_think_time 暂停脚本的执行,以模拟思考时间(实际用户在操作之间暂停以进行思考的时间)lr_continue_on_error 指定处理错误的方法lr_continue_on_error (0);lr_continue_on_error ⑴;lr_rendezvous 在 Vuser 脚本中设置集合点TE_wait_cursor 等待光标出现在终端窗口的指定位置TE_wait_silent 等待客户端应用程序在指定秒数内处于静默状态TE_wait_sync 等待系统从 X-SYSTEM 或输入禁止模式返回TE_wait_text 等待字符串出现在指定位置TE_wait_sync_transaction 记录系统在最近的 X SYSTEM 模式下保持的时间WEB函数列表web_custom_request 允许您使用 HTTP 支持的任何方法来创建自定义 HTTP 请求web_image 在定义的图像上模拟鼠标单击web_link 在定义的文本链接上模拟鼠标单击web_submit_data 执行“无条件”或“无上下文”的表单web_submit_form 模拟表单的提交web_url 加载由“URL”属性指定的 URLweb_set_certificate 使 Vuser 使用在 Internet Explorer 注册表中列出的特定证书web_set_certificate_ex 指定证书和密钥文件的位置和格式信息web_set_user 指定 Web 服务器的登录字符串和密码,用于 Web 服务器上已验证用户身份的区域web_cache_cleanup 清除缓存模拟程序的内容web_find 在 HTML 页内搜索指定的文本字符串web_global_verification 在所有后面的 HTTP 请求中搜索文本字符串web_image_check 验证指定的图像是否存在于 HTML页内web_reg_find 在后面的 HTTP 请求中注册对 HTML源或原始缓冲区中文本字符串的搜索web_disable_keep_alive 禁用 Keep-Alive HTTP 连接web_enable_keep_alive 启用 Keep-Alive HTTP 连接web_set_connections_limit 设置 Vuser 在运行脚本时可以同时打开连接的最大数目web_concurrent_end 标记并发组的结束web_concurrent_start 标记并发组的开始web_add_cookie 添加新的 Cookie 或修改现有的 Cookieweb_cleanup_cookies 删除当前由 Vuser 存储的所有 Cookieweb_remove_cookie 删除指定的 Cookieweb_create_html_param 将 HTML 页上的动态信息保存到参数中。(LR 6.5 及更低版本)web_create_html_param_ex 基于包含在 HTML 页内的动态信息创建参数(使用嵌入边界)(LR 6.5 及更低版本)。web_reg_save_param 基于包含在 HTML 页内的动态信息创建参数(不使用嵌入边界)web_set_max_html_param_len 设置已检索的动态 HTML 信息的最大长度web_add_filter 设置在下载时包括或排除 URL 的条件web_add_auto_filter 设置在下载时包括或排除 URL 的条件web_remove_auto_filter 禁用对下载内容的筛选web_add_auto_header 向所有后面的 HTTP 请求中添加自定义标头web_add_header 向下一个 HTTP 请求中添加自定义标头web_cleanup_auto_headers 停止向后面的 HTTP 请求中添加自定义标头web_remove_auto_header 停止向后面的 HTTP 请求中添加特定的标头web_revert_auto_header 停止向后面的 HTTP 请求中添加特定的标头,但是生成隐性标头web_save_header 将请求和响应标头保存到变量中web_set_proxy 指定将所有后面的 HTTP 请求定向到指定的代理服务器web_set_proxy_bypass 指定 Vuser 直接访问(即不通过指定的代理服务器访问)的服务器列表web_set_proxy_bypass_local 指定 Vuser 对于本地 (Intranet) 地址是否应该避开代理服务器web_set_secure_proxy 指定将所有后面的 HTTP 请求定向到服务器web_set_max_retries 设置操作步骤的最大重试次数web_set_timeout 指定 Vuser 等待执行指定任务的最长时间web_convert_param 将 HTML 参数转换成 URL 或纯文本web_get_int_property 返回有关上一个 HTTP 请求的特定信息web_report_data_point 指定数据点并将其添加到测试结果中web_set_option 在非 HTML 资源的编码、重定向和下载区域中设置 Web 选项web_set_sockets_option 设置套接字的选项
产品背景/loadrunner
Mercury(美科利)已于2006年被HP(惠普)收购。
&|&相关影像
互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。未经许可,禁止商业网站等复制、抓取本站内容;合理使用者,请注明来源于。
登录后使用互动百科的服务,将会得到个性化的提示和帮助,还有机会和专业认证智愿者沟通。
此词条还可添加&
编辑次数:8次
参与编辑人数:7位
最近更新时间: 03:41:27
认领可获得以下专属权利:
贡献光荣榜}

我要回帖

更多关于 压测工具 loadrunner 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信