LOADRUNNER学习笔记
loadrunner8.1操作笔记学习要点
loadrunner8.1操作笔记学习要点一、概述LAODRUNNER8.1 作为专业的性能测试工具,通过模拟成千上万的用户对被测应用进行操作和请求,在实验室环境中精确重现生产环境中任意可能出现的业务压力,然后通过在测试过程中获取的信息和数据来确认和查找软件的性能问题,分析性能瓶颈.LOADRUNNER提供了三个大主要模块,这三个模块既可以作为独立的工具分别完成各自的功能,又可以作为LOADRUNNER的一部分彼此衔接,与其他模块共同完成软件性能的整体测试.这三大模块主要是: VITUAL USER GENERATOR--------用于录制脚本MERCURY LOADRUNNER CONTROLLER---------用于创建,运行和监视场景MERCURY LOADRUNNER ANALYSIS--------用于分析测试结果;二、LOADRUNNER8.1 安装LAODRUNNER8.安装过程比较简单,只需按系统的提示一步一步操作就可以了,这里对安装过程中的一些要点进行简要的说明.安装类型安装盘内有两个盘片,MERCURY LOADRUNNER8.1和MECURY LOADRUNNER 8.0ADD-INS.前者包括了LR安装程序及常用组件,后者全部为组件,各组件的作用在安装盘中都有详细的提示.LICENSE 类型LICENSE类型说明如下:PERMANENT 永不过期的LICENSE;TIME LIMITED 限定了使用的起始时间和使用周期;TEMPORARY 从安装后开始计算,限定了使用的天数;VUD-BASED 限定了虚拟用户数量PLUGGED 需要DONGLE,也就是HARDWARE KEY,DONGLE在中国被音译为“狗”,主要是防止软件被盗用RPM和WEB SERVER之间的鉴权如果在安装时选择安装REMOTE PERFORMANCE MONITOR SERVER,LOADRUNNER会弹出一个要求输入用户名和密码的对话框, REMOTE PERFORMANCE MONITOR SERVER是一个远程监视场景的服务器,为测试人员提供WEB化的场景页面,用于实现多台及其通过浏览器同时在线监视场景.这里设定用户名和口令的目的主要是为了REMOTE PERFORMANCE MONITOR(RPM)和运行了IIS的WEB SERVER之间进行鉴权.在RPM安装完毕之后,只有在LOADRUNNER CONTROLLER的RPM用户配置对话框中输入指定的用户名和口令,系统才能允许进行远程监控.设定LOADRUNNER GENERATOR如何登陆到CONTROLLERLOADRUNNER提供了两种方式让LOAD GENERATOR的虚拟用户登陆到CONTROLLER,n ALLOW VIRTUALUSERS TO RUN ON THIS MACHINE WITHOUT USER LOGINn MANUAL LOG IN TO THE LOAD GENERATOR MACHINE三、使用VITUAL USER GENERATOR录制开发脚本LOADRUNNER脚本的开发过程一般需要以下几个过程使用LOADRUNNER的VIRTUAL USER GENERATOR录制基本的测试脚本;根据系统需求编辑测试脚本,看能否通过,在单机模式下运行脚本看能否通过,1.选择协议要想正确的选择LOADRUNNER的脚本协议,首先要从LOADRNNER的工作原理上深入理解协议的作用和意义。
LoadRunner学习笔记
LoadRunnerLoadRunner是MI公司的自动化的Windows 95/98,Windows NT和UNIX系统的client/server性能测试工具。
它施压于你的整个的应用程序,来隔离和识别潜在的客户端、网络、服务器瓶颈。
它使你能在受控的和高峰负载条件下测试你的系统。
通过运行分布在网络上的成千上万的虚拟用户(取代真实用户)来产生负载,一台机器上可以运行许多虚拟用户。
使用最小的硬件资源,这些虚拟用户提供一致的、可重复的、可度量的负载来像真实用户那样操作你的应用程序。
它的深入的报告和图表提供给你评价应用程序性能的信息。
LoadRunner模拟多用户并发环境进行负载测试,精确度量、监测和分析系统性能与功能。
它的在线监测器使你能在测试执行期间调校你的系统。
当性能delay发生时,LoadRunner检查网络或客户端delay、CPU性能、I/O delay、数据库locking和数据库服务器的其他问题。
LoadRunner监测网络和服务器资源来帮助你提高性能。
完整的应用程序性能测试方案必须:测试一个结合多种软件应用程序和硬件平台的系统对给定的应用程序决定一个适宜的SERVER在必需的客户端软件开发之前测试SERVER模拟多用户和单一服务器应用程序交互的环境在几十个、几百个甚至成千上万个潜在用户的负载下测试一个应用程序AUT The application under testVuser A virtual user—a LoadRunner-created user that emulates a human userLoad Generator machine The workstation used to host the Loadrunner Vusers Controller machine The workstation used to host the LoadRunner ControllerVuser Group A collection of Vusers with common characteristics, such as the machine on whichthey run, or the client that they useLoadRunnerWINDOWS最小系统配置:Standalone installation:在一个单用户计算机上安装LoadRunner CH2Network installation:在一个网络驱动器上安装LoadRunner,对具有该网络驱动器访问权限的所有用户可用CH3在一个网络上安装LoadRunner 后,用户可以使用workstationinstallation 来使用网络上的LoadRunner 共享版本。
LoadRunner学习总结
LoadRunner学习小结今年十月份我到北京跟张坤学习性能测试知识,共花了三个星期学习LoadRunner。
以下是我的学习小结。
一.什么是LoadRunnerLoadRunner是一种预测系统行为和性能的工业标准级负载测试工具。
通过以模拟多个用户实施并发负载测试及实时性能检测的方式来确认和查找问题,能对整个企业架构进行测试。
二.LoadRunner的优点1.轻松创建虚拟用户:通过记录下业务流程转为测试脚本,在机器上产生多个用户访问,减少负载测试需要的硬件和人力资源。
2.创建真实的负载:可以通过Controller设定负载方案,如定义用户在什么时候访问系统以产生负载,所有用户同时执行一个动作来模拟峰值负载情况等。
3.实时监测器:可以实时显示交易性能数据(如响应时间)和其他系统组件如数据库,网络等的实时性能。
4.分析结果以精确定位问题所在:LoadRunner能收集汇总所有测试数据,提供高级的分析和报告工具。
三.LoadRunner的安装与使用1.安装过程详见上传的LoadRunner使用手册,在此不再详细介绍。
2.具体使用:点击File新建录制文件,也可以点击下面的NEW快捷键进行新建。
使用File新建,会弹出协议选择窗口,选择新的单协议脚本(New Single Protocol Script)的Web(HTTP/HTML)项,确定即可(选择Web项是因为我们测试的是Web应用)。
接着会弹出开始录制的设置项,需要写入录入系统的地址,点击确定后就会根据录入地址展现系统页面,开始录制脚本,出现小工具条:第一个按钮为录制键第二个为回放脚本键第三个为停止录制键第四个为暂停录制键第五个为编译脚本键第六个为创建新的Action键。
LR的录制脚本分为三个部分,vuser_init、vuser_end 和Action。
脚本循环执行时,只执行一次vuser_init和vuser_end,而多次循环Action 部分。
LoadRunner 知识点日积月累
通过web_set_user解决Windows登录验证问题。
The web_set_user function is a Service function that specifies a login string and password for a Web server or proxy server. It can be called more than once if several proxy servers require authentication. web_set_user overrides the run-time proxy authentication settings for user name and password.When you log onto a server that requires user and password validation, VuGen records a web_set_user statement containing the login details. However, there are some more stringent, authentication methods for which VuGen is unable to insert web_set_user statements. See User Authentication for more detail. In such cases, you can add web_set_user into your script manually.When you run the script, LoadRunner automatically submits the user authorization along with every subsequent request to that server. At the end of the script, LoadRunner resets the authorization.例子:web_set_user("mercury", "mercury", "mansfield:80");如果要进行域验证的话,需要在用户名前面加上域名,如web_set_user("domain\\mercury", "mercury", "mansfield:80");关于时间、日期格式的设置Datetime Format Codes%a day of week, using locale's abbreviated weekday names%A day of week, using locale's full weekday names%b month, using locale's abbreviated month names%B month, using locale's full month names%c date and time as %x %X%d day of month (01-31)%H hour (00-23)%I hour (00-12)%j number of day in year (001-366)%m month number (01-12)%M minute (00-59)%p locale's equivalent of AM or PM, whichever is appropriate%S seconds (00-59)%U week number of year (01-52), Sunday is the first day of the week. Week number 01 is the first week with four or more January days in it.%w day of week; Sunday is day 0%W week number of year (01-52), Monday is the first day of the week. Week number 01 is the first week with four or more January days in it.%x date, using locale's date format%X time, using locale's time format%y year within century (00-99)%Y year, including century (for example, 1988)%Z time zone abbreviation%% to include the "%" character in your output string例子:lr_save_datetime("today is %Y-%B-%d", DATE_NOW , "today");lr_output_message(lr_eval_string("{today}"));英文操作系统中的执行结果:today is 2007-April-06中文操作系统中的执行结果:today is 2007-四月-06调用库函数,生成随机数str=rand(); //生成任意随机数str=rand()%200 //生成最大值为200的随机数str=rand()%100+200 //生成200-300之间的随机数ThinkTime设置在录制完脚本进行运行时默认是忽略ThinkTime的,此时需要在RumTimeSettings中进行设置,才能使lr_think_time正常工作。
LoadRunner知识总结
LoadRunner知识总结一、需求分析1.正规:分析需求,需求方面的测试(功能有无重复,有没有遗漏,有没有二义性,有没有不同的),提取需求点,2.不正规:产品,项目。
绿色通道?1)经常调用的模块;2)关键业务;3)业务量大的模块;4)问下开发,测试组长,自己模拟客户习惯a)自己画出功能结构图(上网查,询问需求人员,然后把思路写出来,根据自己的理解画出来)b)看实际效果c)和他们确认是不是这样的二、指标提取1.并发数:如果没有要求,根据业务量和时间段去算。
业务量可以问一下客户,也可以问问开发或者凭自己的经验,时间段可以询问客户,或者查看系统日志,但是前提是有系统日志。
如果什么都没有的话可以用2,8原则。
2.响应时间:响应时间不包括思考时间,仅仅是服务器的响应时间,一般遵循2,5,8,10的原则,并且大多数情况下要求响应时间在5S之内。
3.业务成功率:一般要求100%4.系统资源占用:包括CPU,内存,网络,硬盘,其它。
一般都要在75%以下,这是经验值。
但是网络带宽一般是50%以下。
三、建立模型深入分析系统业务流程,考虑以下几个方面:1.有没有约束条件2.业务逻辑方面:系统中对数据有没有唯一性3.系统中有没有消耗性数据(用完数据就丢了)4.有没有需要特殊说明的5.在注释中写出来需要做关联,文本检查点和集合点的地方四、设计用例约束条件,操作步骤,期望值,测试项。
测试数据,如果是参数化了的,写一个数据,后面括号,参数化。
尽量在这里考虑全五、录制脚本录制脚本的时候最重要的是选择协议数据库ODBC选择协议出错代码为空的首先知道什么协议(问程序员),划分Action编译,回放脚本LR可以随机链接其他页面,做参数化即可六、优化脚本做完以后进行语法检查进行回放——看是否需要参数化和关联系统对客户端输入的东西有唯一性要求:做参数化(Log中的参数替换勾上,看参数化是否正确)服务器给客户端的东西不同:做关联文本检查点成功标志位1)树视图下界面上面,右键添加文本检查点2)Server下找相应的字段3)到界面的源代码下去找调优比较测试事务点:分析结果的时候可以确定响应的结果,确定代码在哪一块有问题,比Action更细化,反应响应时间。
loadrunner学习笔记
Loadrunner计算器添加windows resources 计数器先决条件:本机使用管理员权限连接到要监控的服务器机器。
有两种方法:A.net use \\主机ip\ipc$ “[密码]”/user:”用户名”示例:net use \\10.10.100.17\ipc$“[密码]”/user:”administrator”注释:我一开始输入了密码,但是无法连接,后来把密码去掉,输入命令回车,系统提示输入密码,采取这种方式才连接上。
B.1:在available graphic列表中选择要添加的计数器windows resources,双击或open,在右边显示出来。
2:在右边的windows resources窗口中点击右键,选择add measurement项,弹出windows resources对话框。
如图。
3:在windows resources对话框中,添加要监控的服务器。
点击add,弹出add machine对话框。
Name编辑框中输入服务器机器的ip或者机器名。
Platform列表选择服务器机器的操作系统。
添加好机器后如果连接成功,resource measurements on:列表框中会显示默认的监控指标项目,如果不够可以点击add继续添加指标。
添加oracle计数器1:同windows resources步骤。
2:打开oracle计数器指标添加框,monitored server machines-add添加oracle服务器,如图:A.添加机器名称:Add machine对话框中添加oracle服务器,name编辑框中一个名称,自定义。
这里与windows resources中不一样,那里一定要输入主机ip地址。
B.连接机器:Oracle logon对话框中输入oracle用户名和密码,以及oracle服务名称,oracle name中输入oracle客户端配置文件tnsnames.ora中的连接字符串。
LoadRunner学习笔记
Load Runner 学习笔记1,IE打开新窗口无法录制脚本。
解决办法:1)首先要把ie设置中的第三方支持取消掉2)在系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen.exe3)卸载IE developer tollbar 和Http Watch 等IE扩展工具。
2,脚本录制成功后使用到的函数web_reg_save_paramweb_set_max_html_param_lenweb_submit_datalr_think_timeweb_urlweb_concurrent_startweb_concurrent_endweb_custom_request3,A well-constructed performance test answers questions such as:➤Does the application respond quickly enough for the intended users?➤Will the application handle the expected user load and beyond?➤Will the application handle the number of transactions required by thebusiness?➤Is the application stable under expected and unexpected user loads?➤Are you sure that users will have a positive experience on go-live day?4 flight页面打不开,发现PERL5LIB变量中的值与LOG文件的匹配,值为:D:\oracle\product\10.2.0\db_2\perl\5.8.3\lib\MSWin32-x86;D:\oracle\product\10.2.0\db_2\perl\5.8.3\lib;D:\oracle\product\10.2.0\db_2\perl\5.8.3\lib\MSWin32-x86;D:\oracle\product\10.2.0\db_2\perl\site\5.8.3;D:\oracle\product\10.2.0\db_2\perl\site\5.8.3\lib;D:\oracle\product\10.2.0\db_2\sysman\admin\scripts;只保留D:\oracle\product\10.2.0\db_2\sysman\admin\scripts;5 9.5破解用两个dll文件覆盖bin中的同名dll文件,再删除注册表中的相关地方,最后加上License。
博客园loadrunner摘抄
LoadRunner的简单使用《第一篇》LoadRunner是一个用压力测试的软件。
这东西比较难上手,光安装就非常麻烦。
好不容易一步步跟着安装说明安装好之后,还是用不了。
记录一个问题如下:导入脚本的时候报错fail to create on online ,无效指针:关掉杀毒软件,360之类的,然后修复安装就是在控制面板-程序中找到了Hploadrunner然后点击修复在解决了安装问题之后,使用的方法并不难。
LoadRunner提供了脚本录制功能。
这个功能实际上相当于后台监控并记录你发送的HTTP请求,然后当你开启多线程的时候,再多线程发送这些请求,当然一些参数在LoadRunner中是可以替换的。
LoadRunner入门试验LoadRunner测试分为两个步骤;第一步:录制脚本,其实就是监控并记录你这段时间发送的HTTP请求。
第二步:启动多个线程,用录制的脚本,模拟多线程发送请求。
1、录制脚本如果是录制本机,要用localhost 填127.0.0.1的话就会不录制脚本。
录制脚本的操作步骤如下:1、启动LoadRunner后点击 "Create/Edit Scripts";打开如下窗口:2、点击Web(HTTP/HTML)3、设置各种信息4、设置完成之后点击OK,当出现如下Banner条时,脚本就开始录制了,此时LoadRunner会用你刚才设置的浏览器打开你刚才设置的地址。
录制完成之后,只要点击那个正方形的stop按钮,脚本就录制完成了。
5、脚本录制完成后会打开如下界面,里面的代码就是刚才录制的脚本。
当然,如果你足够牛B,也可以自己手动敲。
最好在录制脚本的时候,关掉无关的软件,否则可能会录入不少杂质,如上面那个迅雷的地址。
6、替换内容在代码中,可能有时候你希望将一些内容进行替换。
如登录账号及密码。
我们只需要将值替换为一个参数。
然后为该参数设置不同的值。
设置完成之后,先测试一次,看脚本有没有报错。
LoadRunner 操作技巧(个人经验总结)
LoadRunner 操作技巧(个人经验总结)loadrunner操作技巧(个人经验总结)loadrunner相关概念解析集合点1)集合点用来同步交互式用户以便恰好同一时刻继续执行任务。
在没性能测试工具之前,要实现用户的并发是很困难的,最常见的方法就是把公司的所有或者部分员工召集起来,有一个同志喊123开始。
然后大家一起提交数据。
2)loadrunner的集合点则可以完全实现用户的同步问题,而且可以模拟成千上万的用户操作方式就是轻而易举的事情。
3)集合点的设置方法a.在录制过程中可以设置集合点。
b.在使用loadrunner的controller进行负载时,可以通过依次选择【scenario】>【rendezvous…】项同时实现。
c.可以挑选某个交互式用户后单击enablerendezvous或disablerendezvous.可以设置许启用或者禁止某个集合点.d.可以设置集合点策略,在rendezvousinformation,页面policy按钮。
这个很重要。
有三种情形。
e.在集合点设计策略窗体中也可以设计集合点释放比例。
还可以设置timeoutbetweenvusers交互式用户之间的超时间隔。
通常预设就是30秒。
可以根据实际情况展开设置。
事务事务就是必须度量其服务器响应时间的任务或操作方式集。
一个完备的事务由事务已经开始、事务完结以及一个或多个业务操作方式/任务形成。
重点提示信息事务必须是成对出现,即一个事务有事务开始,必然要求有事务结束。
不要将lr_think_time放在事务里,影响分析和统计,除非有特殊的情况需要这么做。
检查点检查点的作用是在回放脚本期间搜索特定的文本字符串或者图片等内容,从而验证服务器响应内容的正确性。
添加检查点方法:转换至脚本数视图,然后在左侧转换至“serverresponse”页,然后嵌入一个文本addatextcheck。
也可以检查图片。
p14重点提示信息检查点设置完成后,要保证检查点能使用,需要在runtimesettingscpreferences>enableimageandtextcheck复选框选上,否则的话检查点失效。
软件测试工具LoadRunner使用笔记
软件测试工具LoadRunner使用笔记工具介绍LoadRunner: LoadRunner是一种预测系统行为和性能的工业标准级负载测试工具。
通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题。
10字真言:虚拟的用户,真实的负载VuGen: 脚本录制工具Controller:场景控制器Analysis: 结果分析工具经验总结1.测试需求及目标a.性能测试的第一步工作就是要“明确客户的需求“,这一阶段我称之为命题作文。
作文如果跑题了即使长篇大论也无济于事。
b.这一阶段的参与者包括需求提出人员和测试人员,由于性能测试一般没有需求变更的情况,要求需求人员一定是比较权威。
c.一般来说,项目级性能测试客户自身会根据系统使用者范围(总用户数或在线用户数),系统使用环境(集中或分布),高峰作业量(并发用户)提出明确的要求,测试人员也可以提出一些供参考的经验值作为预期的目标。
d.如果系统测试属于产品测试,那么除了经验值目标外还应包含产品比对,这也是很多产品性能测试采用的一般模式。
e.性能测试的需求的大致分为两种:一种是压力需求,要求××场景××并发用户下平均响应时间小于可接受值;另一种是负载需求,要求××场景响应时间在××内支持××用户数。
二种测试的方法略有不同,但都能够通过测试工具简单操作完成切换。
2.测试设计a.测试设计的原则:从简单到复杂b.测试设计主要是测试人员根据测试目标准备测试方案和选取案例。
c.对于项目级测试,在测试需求中一般都会进行相关的说明,大多数情况下是将系统中关键业务处理场景作为性能测试案例,d. 考虑到减少测试的复杂性,可以对业务场景中的测试案例进行进一步加工,比如实际场景中可能在一次请求中包含多次子操作(既查询,又修改),那么可以将这些操作拆分,这样更有利于分析结果数据,同时可以抛开业务操作功能之外的消耗(比如有些复杂页面包含很多查询结果,可以拆开分别进行测试,或者页面中包含较多的图片或flash也可以剥离出去,当然也可以利用测试工具中功能达到类似效果)3.测试环境a.测试环境=硬件环境+软件环境b.测试环境在整个性能测试中是一个非常重要的工作。
LoadRunner学习笔记
下面是对LoadRunner学习笔记,深入中。
1\集合点:插入集合点是为了衡量在加重负载的情况下服务器的性能情况。
在测试计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,从而达到测试计划中的需求。
2\事务(Transaction):为了衡量服务器的性能,我们需要定义事务。
比如:我们在脚本中有一个数据查询操作,为了衡量服务器执行查询操作的性能,我们把这个操作定义为一个事务,这样在运行测试脚本时,LoadRunner 运行到该事务的开始点时,LoadRunner 就会开始计时,直到运行到该事务的结束点,计时结束。
这个事务的运行时间在结果中会有反映。
插入事务操作可以诼贾乒 讨薪 校 部梢栽诼贾平崾 蠼 小 oadRunner 运行在脚本中插入不限数量的事务。
3\参数化输入如果用户在录制脚本过程中,填写提交了一些数据,比如要增加数据库记录。
这些操作都被记录到了脚本中。
当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且有可能引起冲突。
为了更加真实的模拟实际环境,需要各种各样的输入。
参数化输入是一种不错的方法。
4\参数化包含以下两项任务:①在脚本中用参数取代常量值。
②设置参数的属性以及数据源。
(注:不是所有的函数都可以参数化的。
)5\参数的类型。
DateTime:很简单,在需要输入日期/时间的地方,可以用DateTime 类型来替代。
其属性设置也很简单,选择一种格式即可。
当然也可以定制格式。
Group Name:暂时不知道何处能用到,但设置比较简单。
LoadRunner结果分析笔记
LoadRunner结果分析笔记Transactions(用户事务分析)----用户事务分析是站在用户角度进行的基础性能分析。
Transation Sunmmary(事务综述)----对事务进行综合分析是性能分析的第一步,通过分析测试时间内用户事务的成功与失败情况,可以直接判断出系统是否运行正常。
Average Transaciton Response Time(事务平均响应时间)----事务平均响应时间”显示的是测试场景运行期间的每一秒内事务执行所用的平均时间,通过它可以分析测试场景运行期间应用系统的性能走向。
例:随着测试时间的变化,系统处理事务的速度开始逐渐变慢,这说明应用系统随着投产时间的变化,整体性能将会有下降的趋势。
Transactions per Second(每秒通过事务数/TPS)----每秒通过事务数/TPS”显示在场景运行的每一秒钟,每个事务通过、失败以及停止的数量,使考查系统性能的一个重要参数。
通过它可以确定系统在任何给定时刻的时间事务负载。
分析TPS主要是看曲线的性能走向。
将它与平均事务响应时间进行对比,可以分析事务数目对执行时间的影响。
例:当压力加大时,点击率/TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈。
Total Transactions per Second(每秒通过事务总数)----每秒通过事务总数”显示在场景运行时,在每一秒内通过的事务总数、失败的事务总署以及停止的事务总数。
Transaction Performance Sunmmary(事务性能摘要)----事务性能摘要”显示方案中所有事务的最小、最大和平均执行时间,可以直接判断响应时间是否符合用户的要求。
重点关注事务的平均和最大执行时间,如果其范围不在用户可以接受的时间范围内,需要进行原因分析。
Transaction Response Time Under Load(事务响应时间与负载)----事务响应时间与负载”是“正在运行的虚拟用户”图和“平均响应事务时间”图的组合,通过它可以看出在任一时间点事务响应时间与用户数目的关系,从而掌握系统在用户并发方面的性能数据,为扩展用户系统提供参考。
Loadrunner系统知识(非常好)
LoadRunner内部结构1,被测系统是由驱动进程mdrv.exe(多线程驱动的进程)和r3vuser.exe 来产生压力的,其中r3vuser.exe仿真应用程序的客户端,如IE浏览器。
它执行了三个主要的操作:Kli> cpp (C 语言pre-processor)1)cci (C语言编译器),建立ci文件,然后使用被测系统的协议相关的驱动来执行。
通过在Windows批处理脚本中启动Mdrv.exe来默默地启动运行。
Mdrv能自动停止加载Vuser,因为他们与Vuser和Windows负载生成器上的CPU使用监视器之间互相通信。
在Windows机器上,对于每一个基于Java的Vuser都有一个独立的JVM。
2,虚拟用户通过在负载生成器客户端机器上使用agent(3900 magentproc.exe)作为服务或者进程来按照组(在指定的负载生成器上运行相同脚本的虚拟用户的集合)启动虚拟用户。
3,每一个拥有代理的机器维护一个在.qtp文件中的执行日志。
4,当日志被启用后,代理同样会在结果文件中为每一个虚拟用户(由虚拟用户组分开)建立一系列日志文件。
5,在执行过程中,这些文件可以通过在Controller机器上的view > Show Output窗口中显示。
6,在预先设置延时上,Controller上运行的Scheduler指导代理(通过Windows 54345端口,或者Unix上的动态端口)去初始化场景会话.Controller(wlrun.exe)在请求中发送一份场景的拷贝.7,代理是由每一个负载生成器上的Remote Agent Dispatcher进程(以前叫Remote Command Launcher(RCL))启动的.8,每一个根据场景(.lrs)定义文件中设置的代理来决定哪一个虚拟用户组和脚本需要在主机上运行.## 这就是说Controller可以从DOS的批处理文件(.batch)中启动. REM Start Controller:SET M_ROOT=C:\Program Files\Mercury Interactive\LoadRunner\bincd %M_ROOT%wlrun.exe -TestPath D:\Dev\Dev1.lrs -port 8080 -Run -DontClose●包含的-Run 参数与手动的点”开始场景”自动运行是一样的. 这不是一个很好的方法,因为你可能需要决定从以前的运行中收集文件或者想改变输出文件夹.●这是假设系统环境变量PATH已经被更新了,包括LoadRunner的安装.9, Controller通过使用Windows 操作系统文件夹里的参数值来启动.因为LoadRunner被设计成在一个机器上一次只能运行一个Controller实例,所以需要使用Windows文件夹.## 为了在几个应用之间快速的切换, 在Controller工作之后保存LoadRunner的ini文件, 然后使用记事本来制作一个批处理文件. 在执行wlrun之前拷贝应用程序的指定版本的ini文件. 下面是一个应用程序文件拷贝的例子:copy %WinDir%/wlrun7-XXX.ini %WinDir%/wlrun7.inicopy %WinDir%/wlrun7-XXX.dft %WinDir%/wlrun7.dft需要修改一些默认值:●在wlrun7.ini文件的output区域,MaxNumberOfOutputMessages=from 10000 to 100000, 这就限制了存储在数据库中的输出信息的数目.●MaxOutputUIRowsToShow限制了在Controller的输出窗口中显示的信息/错误行总数.●在LoadRunner程序文件的dat\protocols 文件夹下的QTWeb.lrp文件的[Vugen]部分, 添加一个MaxThreadPerProcess=5来限制由每个负载生成器mdrv.exe进程管理的线程数.●存储在wlrun5.ini 和wlrun7.dft文件中的DefaultScenarioDir,DefaultscrīptDir, DefaultResultDir,[Recent File List]几个数据的值会在每次Controller改变的时候更新。
LoadRunner 学习笔记
LoadRunner 学习笔记1简介作为初学者和使用者,我们只需要关心如下几个功能点:下面将详细介绍这三部分功能的用途和使用。
2Virtual User Generator从字面意思可以理解为虚拟用户生成器。
我们知道压力测试就是分析多用户并发下所测试系统运行状况的一种行为。
那么怎么实现多用户并发操作呢?这就需要用到Virtual User Generator功能。
该功能用来模拟实体用户的业务操作,感觉有点像按键精灵,不过更加智能,也可以参数化配置。
脚本的录制很简单,工具会自动记录你的页面操作轨迹,并生成相应的脚本文件,其实和录制视频教程很类似。
功能主界面如下:2.1.网页类脚本网页类脚本,也就是指在浏览器中操作的业务,基本上B/S架构都是这个类的,当然如果前端使用flash展示的话,效果未知。
新建Web(HTTP/HTML)类型的脚本脚本创建后我们可以看到如下界面,从界面中我们可以看到一个web脚本分为三个部分:vuser_init、Action、vuser_end。
2.1.1.vuser_init部分这部分的代码是虚拟用户初始化的代码,这部分代码只会调用一次,用在B/S 结构上可以理解为用户登录系统这部分逻辑。
2.1.2.Action部分这部分的代码为活动代码,即用户所操作的具体业务行为,在压力测试的时候可以重复调用。
2.1.3.vuser_end部分这部分的代码是虚拟用户结束时的代码,这部分代码也只会调用一次,用在B/S结构上可以理解为用户退出系统这部分逻辑。
这部分脚本也可以不创建,对测试影像不大。
具体操作,点击菜单栏中的红色按钮(Start Record)就可以开始脚本的录制。
录制开始的时候会弹出如下窗口,稍微说明一下,至于后续的业务操作就自己动手吧,呵呵●URL Address:压力测试的环境地址●Record into Action:脚本的位置(vuser_init、Action、vuser_end),默认开始录制时使用vuser_init部分。
Chapter 13_LoadRunner基础知识
Mercury LoadRunner简介
LoadRunner术语
场景 场景用于描述根据性能要求定义在每一个测试会话运行期间发生的事件 。
Vuser 在场景中, LoadRunner 用虚拟用户(Vuser) 代替实际用户。Vuser 模 拟实际用户的操作来使用应用程序。一个场景可以包含几十、几百甚至 几千个 Vuser。 Vuser 脚本 Vuser 脚本用于描述 Vuser 在场景中执行的操作。 事务 事务表示要度量服务器性能的最终用户业务流程。
注意: 如果打开站点时出现错误,请确保 Web 服务器运行。要启动 服务器,请选择LoadRunner>Sample>web>start web server
创建虚拟用户 - 登陆网站
登录到 Mercury Tours 网站。 在“Member name”框中输入 jojo,在“Password”框中输入 bean。 单击“login”。将打开欢迎页面。
产品典型的性能要求
Tours 是基于 Web 的旅行代理系统。 Tours 用户可以连接到 Web 服务器、搜索航班、预订航班并查看航 班路线。 产品经理向您提出了下列 4 项产品发布必备条件:
T Tours 必须成功处理 10 起并发旅行代理业务。
Tours 必须在不超过 90 秒的响应时间内,处理 10 起并发航班 预订业务。 Tours 必须在不超过 120 秒的响应时间内,处理 10 起并发的旅 行代理要求的航线查询业务。
Mercury LoadRunner性能测试
为什么进行性能测试?
性能测试致力于减少应用程序、升级程序或修补程序部署中的风险。性能测试的 核心原理是通过将生产时的工作量应用于预部署系统来衡量系统性能和最终用户 体验。 构造严密的性能测试可回答如下问题:
LoadRunner学习记录
一、LoadRunner 兼容的浏览器版本8.0 最高ie68.1 最高ie69.0 最高ie79.5 最高ie811.0 最高ie9( win7 32位+LR11+IE10可用,但win7 64位+LR11+IE10不可用,降至IE9可用),支持firefox3.6、24.0二、LR相关术语场景-场景文件根据性能要求定义每次测试期间发生的事件Vuser-在场景中,LR用虚拟用户代替真实用户。
Vuser模仿真实用户的操作来使用应用系统。
Vuser脚本-Vuser脚本描述Vuser在场景中执行的操作事务-要评测服务器性能,需要定义事务。
事务代表要评测的终端用户业务流程。
三、脚本录制1.创建/编辑脚本,协议选择WEB(HTTP/HTML);标红的为选择录制所使用的浏览器,“录制到操作”可以进行新建,即录制的保存位置2.录制完成后进行回放查看-验证回放打开运行时设置,进行对应设置运行逻辑:设置此节点迭代次数或连续重复活动的次数;步:此节点用于控制迭代时间间隔,可以指定随机时间,更贴近用户;日志:设置在运行要记录的信息量思考时间:用户在各步骤之间停下来思考的时间实时查看脚本运行情况:工具-常规选项-显示3.查看回放后的信息查看回放日志:点击回放日志4.添加事务为了记录步骤时间(如记录登录耗时多久),需要添加事务,添加事务方式:方式一:在录制过程中添加事务左边为事务开始时间,右边为事务结束时间,在登录界面点击事务开始,登录结束后点击事务结束,录制结束后,在录制脚本界面可以查看到“lr_start_transaction”字样:方式二:手动插入事务可在脚本界面,找到需要添加事务部分,直接添加“lr_start_transaction("事务")”“lr_end_transaction("事务",LR_AUTO)”,需要注意“事务”名称开始和结束时需要保持一致。
方式三:任务界面选择插入点击“视图”,选择“任务”,在任务栏中选择“事务”,选择需要添加事务的脚本缩略图,点击“新建事务”,可以左右点击加入事务的开始和结束,可对事务名称进行命名:事务查看:可通过树视图脚本,查看插入脚本的实际位置,同时回放后可以在回放日志中查看到事务的时间:5.参数化(1)进入参数属性方式选择视图>树视图进入树视图,双击需要参数化的位置:将常量值变更为变量值-单击选项旁边的ABD图标,打开“选择或创建参数”对话框:或者在脚本视图中,选中需要参数化的内容,右击,选择“替换为脚本”点击确定后参数图标替换常量图标,右击参数图标,选择参数属性:(2)参数化方式方式一点击创建表,在编辑框中进行输入,点击添加行,输入多个参数:方式二:可点击“用记事本编辑”,可以对记事本进行添加数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
六, Loadrunner 的工作原理 1) 录制时、Loadrunner 记录下客户端和服务器二者之间的 对话。 2) 回访时、Loadrunner 模拟真正的客户端、向服务器发出 请求、并根据本来验证服务器的应答。
七, 测试基本流程 1、 2、 3、 lr 自带 tours 系统:jojo/bean 在录制脚本之前,要手工执行操作(熟悉 AUT) 。 录制脚本时,一般把关心的内容录制到 action 中,将登录 录制到 init 中,退出录制到 end 中。因为 action 中能够 实现很多 init 中不具备的功能。 4、 问题:系统如何能产生压力?有如下几个方面可以产生压 力: 1) 2) 3) 5、 6、 7、 8、 用户数量---用户越多,AUT 压力越大。 用户数量固定,发送请求越频繁,则 AUT 压力越大。 。 。 。 (涉及后续知识)
一般情况下综合场景中要求脚本 3 个以上,将虚拟用户分成不 同的组,每组执行不同的脚本。注意:一般不要将 login 脚本 加到综合场景中,因为综合场景一般持续时间很长(1 个小时 左右) ,这段时间内,所有的用户在循环执行操作,而登录不 适合做循环。 5、 注意:在设置综合场景中用户执行操作比例时,大部分的用户 应该做浏览或者查询,少部分做提交操作。 6、 解决端口冲突的问题: 1、 2、 查明哪个服务占用了 1080 端口:netstat-ano(cmd) 。 在任务管理器中找到 PID(进程标识符)所对应的进程, 停止(或者到服务中将该服务禁掉) 7、 并发测试:多用户在同一时刻同时执行某个操作称为并发测试。 并发测试的目的是考察被测系统的瞬间压力的承受能力。 8、 疲劳强度测试:一般指长时间的在线综合场景测试,即在一定 的压力强度下,进行长时间的测试的时间经常为 7*24 小时, 或者 24 小时等等。 9、 内存泄露: 指当系统运行时, 占用的内存没有得到及时的释放, 随着运行时间的增加,被占用的内存越来越多,导致可用物理 内存被用光,系统运行缓慢至宕(down)机,这种现象称为内 存泄露。 10、 内存泄露检测:使用相应的测试软件进行内存指定计数器的监 控,观察是否符合内存泄露的曲线走势,还可以使用专门的内
9、
录制前设置 1) 录制设置->高级->为每个页面 title 点函数 2) 录制设置->高级->选择 UTF-8 字符集, 这样在测试中 自动生成检查
文 AUT 能够减少乱码情况。 10、 脚本中快速查找某行:ctel+G 11、 Replay log---脚本每行的运行结果 12、 编译时,可以快速检查脚本的语法问题(格式) ,但是逻辑 问题不能检查出来。 13、 场景: 1) 2) 3) 14、 八, 课后作业: 1、 录制 3 个脚本,搜索航班,查询购票线路,购买机票。 每个脚本都要添加检查点(页面检查点) 。 2、 英文作业:HP 学习资料,选择题 先将运行通过的脚本加入控制台。 控制台中设置参数。 运行场景
6、
思考题:loadrunner 和 qtp 的相同点和区别? 1、 loadrunner 和 qtp 的相同点:工作方式都是录制 ---回放。 2、 区别: A)loadrunner 关心的是客户端和服务端之间 的对话,关心的是请求(客户端发出)和应答(服 务端发出) ,关心的是网络协议(网络上的语言: HTTP) 。 B) qtp 关心的是 AUT 的界面,以及界面上的对象及 对象的属性。
Hale Waihona Puke 14、 点击率(点击量/sec) :如果用户点击登录按钮,返回的页面 中包括三张图片,则点击量是 4=3+1、3 张图片和 1 个页面。 每秒的点击量称为点击率。如果上述点击过程发生在一秒钟之 内、则点击率为 4。 15、 点击率越大、系统的压力越大。吞吐量/传输时间=吞吐率 1)吞吐率和点击率的区别:吞吐率是服务器每秒处理的数据; 点击率是客户端每秒向服务器提交的 HTTP 请求。 16、 如果在带宽充足的情况下,完美的脱吞吐量应该随着点击率的 增加而(增加) 。 17、 资源利用率:一般指在进行性能测试过程中、要对被测系统 (AUT) 的服务器进行资源监控, 其中资源服务器的 cpu, 内存, 硬盘和网络等,主要的性能计数器、关注其利用情况。 五, Loadrunner 的三大组件 1、 脚本生成器(Virtual User Generator)----录制、调试脚 本 2、 3、 控制台(Controller)----设置场景参数、管理虚拟用户 结果分析器(Analysis)---生成测试报告
1、脚本生成器(Virtual User Generator) 2、控制台(Controller) 3、结果分析器(Analysis) 4、 并发和在线的区别。 1、 并发是指多用户在同一时刻、共同执行某一操作。
2、 5、
在线是指多用户在线去循环操作某一动作。
简述点击率和吞吐量的概念,并简述区别。 1、 2、 点击率,是指客户端发出的请求 HTTP 给服务器 吞吐量,是指服务器返回的数据量
九, 模拟试题考查 1、 什么是性能测试?(性能测试概念) 1、性能测试是指正常、峰值以及异常条件下测试被测系 统(AUT)的各项性能测试指标是满足需求,通过自动化 工具模拟进行。 2、为什么要执行性能测试?(性能测试的目的) 答:1)评估系统的能力。2)识别体系中的弱点。3)系 统调优。4)验证可靠性、稳定性
LoadRunner 学习笔记
一, 什么是性能测试: 1, 2, 在线取款:一个人取款 2000,成功----功能测试通过。 在线取款: 1) 一个人取款(计时)2000,用时 30 分钟。---功能 通过,但是性能测试结果很差。 (性能测试考察的 一个方面:响应时间过长) 2) 1000 人共同取款,系统瘫痪。---性能测试考察的 一个方面:多用户支持程度。 3, 性能测试---必须使用工具测试,但是性能测试不局限于 工具,还包括很多性能测试的理论知识,背景学科(操 作系统, 数据库, 网络知识, 防火墙, 协议, 开发语言。 。 。 。 。 ) 二, 性能测试课程设置: 1, 性能测试的初级部分(3-4 天---达到目的:企业中 60% 到 80%的普通项目,能够搞定) 1) 2) 3) 简单脚本调试(Analysis) 简单的控制台参数设置(Controller) 简单的性能结果分析(Virtual user generator) ----以上为 loadrunner 三大组件基本讲解 2, 性能测试的高级部分(5 天左右---达到的目标:企业中 比较有难度的项目可以(尝试)实现) 1) 复杂脚本调试
3、
脚本中检查点不需要加过多、一两个即可、因为检查点也是函 数、执行时也要耗费资料。---如果脚本添加函数过多、过于 复杂、则需要耗费额外的资料、但是所有服务器的资料监控数 据都会记录在 AUT 的结果报告中、造成报告中数据不准确。
4、
性能测试中的在线测试是以循坏为主、 如查询稿件 (购买机票) 、 则脚本的运行方式:登录---查询稿件---查询稿件---查询稿 件 --- 退 出 系 统 ; 即 脚 本 中 init---action--- action--action---end。
2) 3)
复杂场景中控制台设置方法,原理 性能测试结果分析,尤其是有问题时的分析,调优 过程研究。
----以上为性能测试的深入讲解,包括 loadrunner 的三 大组件的深入研究。 三, 性能测试初探: 1, 性能测试过程中,数据库中不可以为空数据,或者条数很少, 该种情况下测试不符合实际的生产环境。一定要根据系统实际 在线情况(投产使用后) ,插入足够数据(背景数据)后再进 行测试。 2, 性能测试的解释:就是使用工具去模拟实际的生产情况中的业 务压力,去测试系统,去攻击系统,去验证系统,是否能够承 受当前的压力,满足性能的需求指标。 3, 在性能测试之前,要对被测系统(AUT,Application Under Test) 、进行备份(数据库的备份) 。 四, 性能测试基本概念 1、 2、 负载测试和压力测试都是属于性能测试。 负载测试和压力测试的区别: 工人建桥,桥身上标明、该桥的最大载重量为 60 吨。给司 机看的。---负载测试的最大值 2) 该桥的内部建筑资料中、标明该桥的最大载重量为 70 吨。 这个数据是给内部建桥工程师掌握的。----压力测试的最
1)
大值 3、 中间件---也叫应用服务器、如 Jboss、websphere(上百万的 费用) 、weblogic(上百万的费用)等。 4、 并发:指多用户在同一时刻、共同执行某一操作;并发测试要 求比较严格、着重考察系统的瞬间压力。 5、 对一般系统而言,多用户并发和多用户在线对 AUT 的压力是 10:1 的压力、即 50 用户并发相当于 500 用户在线操作。 6、 7、 在线测试(Online)是指多用户在线去循环操作某一动作。 请求的响应时间:从客户端发送一个请求开始计时,到客户端 收到服务器端返回的响应为止、这段时间称为请求的响应时间。 8、 9、 性能测试关心两个词:请求和响应。 正常的顺序,是请求和应答、先发(请求)再收(应答) 。不 存在先手再发的情况。 10、 请求的响应时间=客户端时间+网络时间+服务器时间 11、 实际的项目测试过程中、经常将被测系统(AUT)部署到内网 坏境、这样有充足的带宽,即可规避掉网络的的瓶颈。 12、 瓶颈:原指瓶颈口附近比较细的位置、该处影响水流速度。该 处指软件的问题或弱点。 13、 358 原则:对一般系统而言、如果用户在点击按钮后,系统可 以在 3 秒中内得到应答,则用户比较满意;如果系统在 5 秒中 内得到应答,则用户能够忍受;如果系统在 8 秒中以后得到应 答,用户不能忍受。
问题:录制登录操作,则将登录录制到(action)部分中。 Lr 录制时,每次都要从新点击“new”操作。 Snapshot---快照,一个页面形成一个快照,即一个图片。 注意:当 lr 的脚本运行得出的 result 中全部为 pass 时, 不一定证明脚本正确,因为 lr 只是在网络层面上验证了服 务器收到了客户端发送的数据包并且返回,但是,返回的 应答中数据包是否正确(应答页面是否正确)没有验证。