LoadRunner学习总结
loadrunnerb学习笔记
性能测试学习通过一段时间的性能测试学习,学习到很多新的知识,但是还是颇感自己在这方面的知识欠缺,针对本次学习,我对性能测试指标做下具体的分析和讲解。
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
负载测试和压力测试都属于性能测试,两者可以结合进行。
通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
性能测试指标的基本概念吞吐量/处理能力处理能力又叫吞吐量,指的是单位时间内处理的客户端请求数量。
通常情况下,吞吐量用请求数/秒 Or 页面数/秒来衡量。
从业务角度看,吞吐量也可以用访问人数/天Or页面访问量/天来衡量。
在此我就针对HP Web Tours 应用程序为例子测试环境:本地计算机本地数据库局域网(1)录制一个订票系统脚本web_submit_data("login.pl","Action=http://127.0.0.1:1080/WebTours/login.pl","Method=POST","RecContentType=text/html","Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home","Snapshot=t2.inf","Mode=HTML",ITEMDATA,"Name=userSession","Value=102933.096962333fcQtzcVpVHfDVHzHpHcHAf", ENDITEM,"Name=username", "Value=tom", ENDITEM,"Name=password", "Value=123", ENDITEM,"Name=JSFormSubmit", "Value=on", ENDITEM,"Name=login.x", "Value=59", ENDITEM,"Name=login.y", "Value=8", ENDITEM,LAST);(2)添加事务事务(Transaction)是这样一个点,我们为了衡量某个action的性能,需要在action 的开始和结束位置插入这样一个范围,这就定义了一个transaction。
LoadRunner 操作技巧(个人经验总结)
Load Runner 相关概念解析集合点1)集合点用以同步虚拟用户以便恰好同一时刻执行任务。
在没有性能测试工具之前,要实现用户的并发是很困难的,最常见的方法就是把公司的所有或者部分员工召集起来,有一个同志喊123开始。
然后大家一起提交数据。
2)Load Runner的集合点则可以完全实现用户的同步问题,而且可以模拟成千上万的用户操作是轻而易举的事情。
3)集合点的设置方法A.在录制过程中可以设置集合点。
B.在使用Load Runner的Controller进行负载时,可以通过依次选择【Scenario】>【Rendezvous…】项实现。
C.可以选择某个虚拟用户后单击enable rendezvous或disable rendezvous.可以设置许启用或者禁止某个集合点.D.可以设置集合点策略,在Rendezvous information,点击Policy按钮。
这个很重要。
有三种情形。
E.在集合点设计策略窗体中也可以设计集合点释放比例。
还可以设置Timeout between Vusers虚拟用户之间的超时间隔。
一般默认是30秒。
可以根据实际情况进行设置。
事务事务是要度量其服务器响应时间的任务或操作集。
一个完整的事务由事务开始、事务结束以及一个或多个业务操作/任务构成。
重点提示事务必须是成对出现,即一个事务有事务开始,必然要求有事务结束。
不要将Lr_think_time放在事务里,影响分析和统计,除非有特殊的情况需要这么做。
检查点检查点的作用是在回放脚本期间搜索特定的文本字符串或者图片等内容,从而验证服务器响应内容的正确性。
添加检查点方法:切换到脚本数视图,然后在左侧切换到“Server response”页,然后添加一个文本Add a Text check。
也可以检查图片。
P14重点提示检查点设置完成后,要保证检查点能使用,需要在Run Time settings –Preferences >Enable Image and Text check 复选框选上,否则的话检查点失效。
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的工作原理上深入理解协议的作用和意义。
LR培训心得
LoadRunner 培训心得1)准备培训环境安装LR脚本编译器VUGen,安装的过程很简单将VUGen的安装包COPY到需要安装的机器上,根据安装想到就可以安装成功,同时安装一个补丁;注意如果使用的机器上已经安装了LR,则不需要这个步骤;安装LR的一个测试实例网站,这是LR用来做培训的一个网站程序,安装后会提供一个JA V A script写的网站同时提供一个Apache的Web服务器;在安装的过程也很简单只需要根据安装向导安装就可以,安装完成后将APPL-MToursPatch-58目录下的5个class 文件覆盖到安装目\MercuryTours\servlets\com\mercurytours\servlet;然后将D:\Program Files\Mercury Interactive\MercuryTours\JavaSoft\JRE\1.2下的bin目录和Lib目录备份更新为新版本的相同信息;将APPL-MToursPatch-58的CascadeMenu.js文件覆盖到安装目录\MercuryTours\public_html\jscript;简单测试:启动服务,启动浏览器输入:http://localhost/servlets/ com.mercurytours.servlet.WelcomeServlet;如果显示正确的页面说明安装成功;2)录制脚本启动VUGen;选择“单协议脚本”—“web(HTTP/HTML)”,如下图所示:点击确定,选择应用程序,输入录制的URL,如下图所示:点击确定后开始录制脚本;录制脚本的过程中需要注意录制脚本的规范化,比如:在开始一个事务的时候直接插入事务,对于不同的交易定义不同的Action,脚本录制完成如下图所示:上图中红框标识出来的就是需要注意规范的地方,在这次培训中收益不小;完成这个步骤我们的脚本就录制完成了。
3)脚本修改及优化;录制完成脚本后我们先运行一下,这个脚本可以运行,但是在运行到删除机票的时候出错,这是因为我们录制的脚本在没有做任何修改的时候是应用是很不灵活的,这个错误是因为我们选择删除的机票已经删除,所以再次运行的时候会找不到表单,所以我们需要对脚本进行修改成为可用的测试脚本,那么下面我们就对脚本进行修改和优化;参数化:脚本中的参数化就是将其中固定的值(或者录制的值)通过参数修改为可变的值,这个过程就是参数化;更详细的参数化,请参与LR的用户手册;在这个脚本中我们可以对登录的用户名和密码进行参数化,脚本如下所示:lr_start_transaction("login");web_submit_form("com.mercurytours.servlet.SignonServlet","Snapshot=t2.inf",ITEMDATA,"Name=userName", "Value=test1", ENDITEM,"Name=password", "Value=111111", ENDITEM,"Name=login.x", "Value=23", ENDITEM,"Name=login.y", "Value=6", ENDITEM,LAST);lr_end_transaction("login",LR_AUTO);在上述的一段脚本中标红的部分是需要参数化的部分,选择红色部分,点击右键,选择“替换为新参数”,如下图所示:在弹出的对话框中,输入参数名:name,如下图所示:下面我们重点介绍一下参数的类型。
Loadrunner的工作总结
Loadrunner的工作总结
Loadrunner的工作总结
刚开始入门用Loadrunner的时候就只会用Web(HTTP/HTML)协议录制网页的,但是公司的很多程序都非得搞个C/S程序端,美名其曰:高级,工作总结1——Loadrunner。
这样我不得不开始尝试录制CS程序的通信。
记得第一次的时候我问项目组用啥协议实现的程序,他们来句不清楚,是调用别人的控件,我很无语,有这么搞开发的吗?于是我就尝试各种协议混合录制了,发现COM/DCOM和Web(HTTP/HTML)可以录制到客户端的行为,于是我用这另个协议创建多协议脚本,然后参数关联化,搞定本个项目的测试了,呵呵~~~小小喜悦一下,毕竟在啥都没的前提下,连个咨询的人都没的情况下,我只能自己摸索,自己给自己鼓励了,工作总结《工作总结1——Loadrunner》。
第二次就是现在从事的项目的,开发组真的很会共享,共享的连哪里来的都不知道了,用的啥都不清楚,我只好问里面比如上传附件用的是啥协议,他来句:应该是FTP协议啊,我用这个脚本一录制,还好他没说错,可以实行,不然我真想揍人,哪有开发组啥都不提供就叫人测试的啊~~我又不是神仙,一看就懂,更何况我还是个新人呢。
这次用的是FTP和Web(HTTP/HTML)协议多协议脚本录制的,成功~~呵呵
每天有一点小进步就很开心~~。
Loadrunner一些不常用的功能总结
Loadrunner一些不常用的功能总结Loadrunner一些不常用的功能总结背景这两天各种通过项目给新人培训,没想到培训期间在给新人讲解的时候发现好多功能或者菜单自己也没用过也不知道干啥用。
趁着这两天有点时间,赶紧总结下来,目的有二:一是能够补充自己认识不足;二是知道多一个功能在以后遇到问题的时候也能够多一条路子进行解决,别默默守着好用的工具或者好用的功能却因为不知道而被困难绊住。
那个,实际上本文其实也就是翻译下loadrunner(以后简称:lr)自带的说明文件,然后网上找点资料啥的再结合一下自己的推测,在任何对应界面或者窗口按f1就有,想看原文的自己看就好,大家看着还是不懂的话建议自己百度,反正我这些也就是百度出来的。
录制option就是这个了,打开啥样自己看,接下来按照左边的菜单一个一个说啦,只说不常用的啦。
GeneralScript(脚本)上面的language我就不用多说了吧,主要说说下面的选项吧。
Close all AUT processes when recording stops官方解释是。
管他呢,AUT是application under test被测应用,整个解释翻译过来就是:当你停止录制时自动关闭被测应用。
我试过了,比如你用ie访问网站录制,如果你点了停止录制,那么lr打开的哪个ie窗口也没了。
顺便一提,这个选项的默认值是关闭的。
Generate fixed think time after end transaction翻译完就是:以秒为单位,在每个事物之后添加一个固定的思考时间。
这个也是默认关闭的,如果开启,默认添加的思考时间是3秒,当然你可以自己设置。
Generate recorded events log生成一个日志记录事件,啥样的事件呢,录制过程中发生的事件都算。
这个默认是关闭的Generate think time greater than threshold为思考时间设置一个坎,超过这个坎的就加思考时间,没超过这个坎的就不加。
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检查点使用小结第一篇:LoadRunner检查点使用小结LR中检查点有两种:图片和文字。
常用检查点函数如下:1)web_find()函数用于从 HTML 页中搜索指定的文本字符串;2)web_reg_find()函数注册一个请求,以在下一个操作函数(如web_url)检索到的HTML网页上搜索指定的文本字符串;3)web_image_check()函数用于从HTML页面中查找指定的图片;4)web_global_verfication()属于注册函数,注册一个在web页面中搜索文本字符串的请求,与web_reg_find只在下一个Action函数中执行搜索不同的是它在之后所有的Action类函数中执行搜索指定的文本字符串;下面分别介绍以上函数的用法:1、web_find()函数参数举例:web_find(“web_find”,“RighOf=a”,“LeftOf=b”,“What= name”,LAST);参数解释:“web_find”定义该查找函数的名称;“LeftOf”和“RighOf=”用来定义查找字符的左右边界;“What=”定义查找内容;例如上述参数举例中的意思就是在页面中查找左边界为b,右边界为a,内容为name的信息;使用该函数注意事项:该函数是在查找页面中的内容,所以要放在要查找的内容的后面;该函数只能在基于HTML模式录制的脚本中进行查找注意事项:使用该函数时,要在Vuser->Run-Tme Settings中更改下设置勾选Enable Image and text check系统默认是不勾选该选项的。
2、web_reg_find()函数参数举例:web_reg_find(“Search=Body”,“SaveCount=ddd”,“T est=aaa ”,LAST);参数解释:Search用来定义查找范围,SaveCount定义查找计数变量名称,该参数可以记录在缓存中查找内容出现的次数,可以使用该值,来判断要查找的内容是否被找到;例如上述参数举例中的意思就是Body中查找内容为aaa的信息,并将出现次数记录在变量ddd中;【代码一:web_reg_find(“T ext=Payment Details”,LAST);代码思路:1.“Payment Details” 为你要检查的文本;2.脚本执行到此处,若在页面上找到了这几个字符串,那脚本继续执行下去;若没有找到,脚本将在此报错并且结束。
Loadrunner学习经验
Loadrunner学习经验目录使用LoadRunner测试时需要注意以下环节的操作: (1)LoadRunner在使用时遇到的问题及解决方法 (2)如何在Controller中添加系统资源检测 (6)LoadRunner监控Windows/Unix系统资源需要做两件事情: (6)监控linux (8)unix/linux的计数器 (12)loadrunner回放脚本常见问题及解决方法 (14)lr_eval_string()函数以及LR中参数、变量的简单使用 (19)给出一部分常用的LoadRunner函数,供大家参考。
(20)使用LoadRunner测试时需要注意以下环节的操作:1、测试服务器再承受压力时,要尽量避免网络造成的瓶颈问题,即服务端和客户端一定要再同一局域网内,否则网络因素可能会造成性能测试的瓶颈,无法发现真正的瓶颈。
2、再性能测试脚本中要注意检查点的设置,否则将难以发现脚本本身的错误。
3、设置参数化和关联是性能测试脚本能顺利回放的关键,所以要对录制好的脚本进行完善。
4、录制脚本时通常会包括一些思考时间(Think Time),因此再回放脚本时,应注意再设置中设置忽略思考时间,否则会影响测试数据的准确性。
对一个系统用同一策略进行两次测试时,忽略思考时间将使测试结果更准确。
5、尽量为每个页面设置一个事务,否则不知哪个页面最慢。
6、运行性能测试脚本时应该关闭日志功能,再调试脚本时在打开。
7、性能测试前的数据准备很重要,如:系统数据库中存在60和60000条数据,测试结果肯定是不一样的,应尽量按照真实环境的数据量进行测试。
8、在性能测试时每个用户登陆的用户名和密码应尽量不同。
9、录制时若录制不到信息,可查看ie局域网设置中,是否去掉了“自动检测网络”一项。
10、通用Vuser函数和特定于协议的函数,他们二者共同构成了LR API,并使Vuser能直接与服务器通信。
录制后的脚本具有跨平台特性。
loadRunner测试要点心得
监控服务器1、监视连接前的准备工作1)进入被监视windows系统,开启以下二个服务Remote Procedure Call(RPC) 和Remote Registry Service (开始—)运行中输入services.msc,开启对应服务即可)。
2)在被监视的WINDOWS机器上:右击我的电脑,选择管理->共享文件夹->共享在这里面要有C$这个共享文件夹(要是没有自己手动加上)。
3)在安装LR的机器上,开始—》运行,输入\\被监视机器IP\C$ 然后输入管理员帐号和密码,如果能看到被监视机器的C盘了,就说明你得到了那台机器的管理员权限,可以使用LR去连接了。
(LR要连接WINDOWS机器进行监视要有管理员帐号和密码才行。
)W'bU#e(uD B0问题:在执行步骤3)时,输入\\被监视机器IP\C$,出现不能以administrator身份访问被监控系统(若采用这种方式用LR对其监控的话,会提示:“找不到网络路径”)的情况,现象就是用户名输入框是灰色的,并且默认用户是guest。
51Testing软件测试网6Lua`Oyz解决办法:这是安全策略的设置问题(管理工具-> 本地安全策略-> 安全选项->“网络访问:本地帐户的共享和安全模式”)。
默认情况下,XP的访问方式是“仅来宾”的方式,如果你访问它,当然就固定为Guest来访问,而guest账户没有监控的权限,所以要把访问方式改为“经典”模式,这样就可以以administrator的身份登陆了。
修改后,再次执行步骤3),输入管理员用户名和密码,就可以访问被监控机器C盘了。
"p"I*K\ gH{eL0若这样都不行的话(可能是其它问题引起的),那只好采取别的方法了。
在服务器的机子上,通过windows自带的“性能日志和警报”下的“计数器日志”中新增加一个监控日志(管理工具—)性能—)性能日志和警报),配置好日志,也能监控服务器的cpu、memory、disk 等计数器。
loadrunner问题总结
Loadrunner问题总结1.录制协议的选择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协议,这时候才能作那个端口映射。
n通常协议选择1.对于常见的B/S系统,选择Web(Http/Html)2.测一个C/S系统,根据C/S结构所用到的后台数据库来选择不同的协议,如果后台数据库是sybase,则采用sybaseCTlib协议,如果是SQL server,则使用MS SQL server的协议,至于oracle 数据库系统,当然就使用Oracle 2-tier协议。
3.对于没有数据库的C/S(ftp,smtp)这些可以选择Windwos Sockets协议。
4.至于其他的ERP,EJB(需要ejbdetector.jar),选择相应的协议即可.5. 一般可以使用Java vuser协议录制由java编写的C/S模式的软件, ,当其他协议都没有用时,只能使用winsocket协议2.Loadrunner出现Connection reset by peer.是什么原因?这个问题不多遇见,一般是由于下载的速度慢,导致超时,所以,需要调整一下超时时间。
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。
以下是我的学习小结。
一.什么是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的分享
本人2011年初开始接触web性能测试,那时公司还有专门做性能测试的团队,我是刚毕业参加工作半年后在一家电子商务公司直接做的web性能测试,不是从开发转过来的,一年来背后一直有股力量在逼着自己去学新东西。
当时的想法是,这我要是会了,我就不要每次去求别人帮我忙了,这样就能节约时间了,呵呵。
下面分享自己一年来的学习路线,希望对想开始学web 性能测试的有一定的帮助。
一. 对于LoadRunner工具的使用就不叙述了,对于WEB的性能测试有需要注意的地方。
1. WEB里面衡量系统的处理能力使用的更多是PV和UV(google analysis 免费),所以在定义事务时,需要把一个完整的页面定义为一个事务,里面有个特别注意的就是302的跳转,对于一些操作,例如登陆一个购物车网站,在成功登陆后会跳转到新的页面。
对于这种情况也需要把跳转后请求的页面也放在事务的边界里面。
在分析响应时间时可以使用web page breakdown功能来分析操作本身以及跳转后的页面。
这个跳转后的页面在操作提交函数里面一般是存在的,参数名为URL,值为具体的URL,一般为相对路径。
2. RTS(Run time settings)里面有个Download non-HTML resource 的选项,这个测试的时候需要注意,根据需要确定是否选上,也是每次做测试之前重点检查的地方3.其他的比如参数的取值方式,参数的数据量的大小等对测试结果影响比较大,需要注意。
对一些提交类的操作,尽量做一些检查点和设计成手工事务(根据提交后返回的结果来判断事务是否成功)二.分享下这一年来我的学习摸索路线,总的按照这样的思想:目前最需要掌握的,会影响执行测试的先学,还有就是对于有些技术理解为主,先把自己的知识面铺开,这是一阶段,然后再挨个去深入学,这是第二阶段,再根据自己感兴趣的领域进一步深入,成就一技之长。
我的学习摸索路线如下系统架构IHS+WAS+DB2,拥有独占的性能测试环境(ctrix+2Web+2WAS+1DB+EIS)(IHS,IBM HTTP SERVER)基于Apache 的IBM HTTP Server 是基于Apache Group开发的Apache Web 服务器的Web 服务器。
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部分。
loadrunner学习总结
问题1:The load generator is currently running the maximum number of Vusers of this type我在测试的时候发现Running vuser 达到1000以后就不能再提高,后面的vuser就会出错,错误是“The load generator is currently running the maximum number of Vusers of this type”解决1:在scenario –>load generators –>details—>Vuser limits—>other Vusers,可以设置running user的最大数目.问题2:Action.c(7): Error -26610: HTTP Status-Code=502 (Bad Gateway) forhttp://192.168.0.41/website/collected.action?userId=5471解决2:这个错与LR没关系,是应用响应不过来了这个错与LR没关系,是应用响应不过来了。
问题3: 1.Error: Failed to connect to server “172.17.7.230″: [10060] Connection Error: timed out Error: Server “172.17.7.230″has shut down the connection prematurely解决3:A、应用服务死掉。
(小用户时:程序上的问题。
程序上处理数据库的问题,实际测试中多半是服务器链接的配置问题)B、应用服务没有死(应用服务参数设置问题)对应的Apache和tomcat的最大链接数需要修改,如果连接时收到connection refused消息,说明应提高相应的服务器最大连接的设置,增加幅度要根据实际情况和服务器硬件的情况来定,建议每次增加25%!C、数据库的连接(数据库启动的最大连接数(跟硬件的内存有关))D、我们的应用程序spring控制的最大链接数太低问题4:Error: Page download timeout (120 seconds) has expired解决4:A、应用服务参数设置太大导致服务器的瓶颈B、页面中图片太多C、在程序处理表的时候检查字段太大多D、实际测试时有些资源需要请求外网,而我们的测试环境是局域网环境问题5:Loadrunner在执行场景监控windows resources什么都不显示怎么办?解决5:一、监控windows系统:1、监视连接前的准备工作进入被监视windows系统,开启以下二个服务Remote Procedure Call(RPC)Remote Registry Service(开始—)运行中输入services.msc,开启对应服务即可)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 部分。
比如录制投保业务时,登陆系统部分放入vuser_init,退出登陆放到vuser_end,中间的投保操作放到Action中,则循环执行时就会登陆一次投保系统开始反复执行投保操作直到结束退出系统。
第七个为用来改变录制的options设置按钮第八个和第九个为插入事务的起始点和结束点键,结合起来构成一个完整事物,用来衡量服务器的性能。
比如录制脚本过程中,投保系统的查询投保单号操作,可以在输入完查询信息后点击查询按钮前插入事务的起始点,查询出数据后插入事务的结束点,这样在运行测试脚本时,Loadrunner在运行到该事务时,便会计算出这个查询操作所花时间,便于衡量服务器执行查询操作的性能。
第十个为插入集合点键,可用于衡量在加重负载的情况下服务器的性能。
比如要验证系统是否能承受100人同时进行报案操作,便可在脚本录入过程中,点击报案确认键操作前插入集合点,这样当脚本运行到集合点时,Loadrunner会让100个虚拟用户同时点击报案确认按钮(如果有的用户还没运行到集合点,先到用户要等未到用户一起操作)进行报案,从而达到测试目的。
最后一个为设置验证点键,在创建事物后,设置一个验证点可以用来确认事物执行是否成功。
比如进行查询事务操作时,LR只要检测到网页的响应,就认为事务pass,而不管显示页面内容是否正确。
因此为了检查Web服务器返回的网页是否正确,可以插入Text/Image检查点,验证网页上是否存在指定的Text或Image。
设置验证点时,如果我们验证的文本内容是中文,有时会返回无法找到验证内容的报错信息,而页面显示又是正确的,出现问题的原因可能是因为LR对中文的支持部好,尽量选择验证信息为数字或字母;也可能是设置问题,可以尝试将Tools->Recording Options->HTTP Properties下的Advanced选项里设置支持UTF-8,再检查开发人员有没有设置支持中文。
录制结束后,先点击保存脚本,同时为脚本命名。
然后编译脚本,看是否存在语法错误,编译成功后,即可回放,看录制脚本是否成功。
LoadRunner录制得到的脚本基本没有错误,不像robot会有录入数据的缺失,只是会录入一些非录入系统的网页信息,根据地址可以识别并删除掉。
四.LoadRunner脚本录制学习小结1.LoadRunner录制脚本,主要是为了进行压力测试,所以跑流程时,跑了主要流程即可,也就是系统必须的信息录入就可以了。
2.LoadRunner的脚本运行过程中,只能用于一次业务办理的数据需要做参数化,如车辆车架号,车牌,报案号等,以免出现重复投保或报案无法立案现象,不能继续进行下去。
参数化步骤:1)将需要做参数化的数据右键点击,选择Replace with a parameter,进行设置。
2)在弹出编辑框里,设置易懂的参数名称,再点击Properties进行属性设置。
3)点击Create Table 按钮,生成参数表格,再点击Edit with Notepad按钮,即可在记事本里添加新的参数,添加完后再次回车(不回车可能最后条数据读取不到)关闭,参数化操作完成。
4)使用Ctrl +H键可以找到替换同样的需要参数化的数据。
3.脚本跑流程过程中,因为业务运转,前面生成的投保单要接着进行提交核保业务,而每次生成的投保单号不一样,用于进行提交核保的单号也要与之前的保持一致,因此需要做关联处理,读取到生成的新投保单号给提交核保流程。
关联步骤:1) .查找关联数据第一次出现的位置,判断该数据是由什么函数返回的。
2) .在树形结构里点击返回该数据值的函数,看它的Server Response信息,用复制的关联数据进行查找它的返回语句,找到区分度明显的语句(不一定要是第一个返回语句),然后使用web_reg_save_param函数进行关联。
注:关联函数一定要写在第一个返回该数据值的函数前。
3) . web_reg_save_param (const char *ParamName, <List of Attributes>, LAST);函数的第一个参数是用来对关联数据进行定义的,取名最好可读性强;第二个参数是用来标识关联数据在返回语句里的具体位置的,写出该数据的左右边界,程序才能识别;LAST表示属性列的结束。
比如办理理赔业务的流程号,在服务器的返回语句里是:<input name=flowID type="hidden" value=L05012009110000035215>做关联为:web_reg_save_param("LogFlowID","LB=name=flowID type=\"hidden\" value=","RB=>",LAST);定义的参数名就叫LogFlowID,表示流程号,易于明白;左边界从name取就可以标识了,也可取长点或短点,只要能区分;右边界只有>,写上就好;最后写上LAST。
在定义的左右边界中,如果有双引号,在脚本中是需要转义的,因为双引号在C中是有意义的,这里只要表示语句信息,加上右斜杠。
尖括号直写。
左右边界也需要用双引号括起来。
定义好的参数写在程序中,需要在加上单尖括号:swfLogFlowID={LogFlowID}五.脚本执行过程中的报错处理1. vuser_init.c(3051): Error -26377: No match found for the requested parameter "proposalNo". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len to increase the parameter size [MsgId: MERR-26377]2. vuser_init.c(3051): web_submit_data("UIPrPoEnInputNext.jsp") highest severity level was "ERROR", 4312 body bytes, 258 header bytes [MsgId: MMSG-26388]两个错误一起出现,出错语句都是在关联函数下的提交数据函数位置,但是具体出错有可能是:1). 关联函数左右边界没写对,所有信息都要用字符输入,不能是中文或其他。
2). 在关联函数确认写对的情况下,看提交数据函数中的业务设置,比如有可能是因为保单查询语句,设置的查询时间是过去的时间,新生成的投保单当然查不到,这样程序也会报这样的错。
3. loadrunner 执行理赔的立案处理,录制好脚本后,回放,报错:脚本日志信息提示:1.Action.c(400): Error -26366: "Text=立案信息提交成功" not found forweb_reg_find [MsgId: MERR-26366]2.Action.c(400): web_submit_data("claimSave.do") highest severity level was "ERROR", 4424 body bytes, 258 header bytes [MsgId: MMSG-26388] 脚本执行过程停止在立案信息提交页面,错误原因:数据问题,可能是有的应该变化的信息没有变。
在该流程中,一个报案号只能做一次立案,而初始脚本没有设置参数、关联,使用保单号进行查询,错误被掩盖。
在立案系统中,一个保单号可以重复报案,但是一个报案号只能一次立案,要跑通流程,需要先将这一保单再重复报案,得到新的报案号。
六.性能测试的场景设置脚本录制完毕后,接着准备测试场景。
1.首先准备测试数据。
比如车险投保,需要投保人和车架号信息来唯一标识一辆被保车,因此就需要将投保人和车架号做参数化处理,编辑文本框录入大量数据让脚本唯一读取:1). 录入投保人参数,车架号参数,过程同脚本录制的参数化处理2). 因为投保人和车架号一起生成一条投保数据,可设置车架号随投保人参数一起读取,设置步骤为:投保人文件存放路径--File path投保人参数数据读取方式脚本按列名读取参数,每行数据读取一次,每次循环取一次新值。