loadrunner学习总结
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 复选框选上,否则的话检查点失效。
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学习笔记

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一些不常用的功能总结背景这两天各种通过项目给新人培训,没想到培训期间在给新人讲解的时候发现好多功能或者菜单自己也没用过也不知道干啥用。
趁着这两天有点时间,赶紧总结下来,目的有二:一是能够补充自己认识不足;二是知道多一个功能在以后遇到问题的时候也能够多一条路子进行解决,别默默守着好用的工具或者好用的功能却因为不知道而被困难绊住。
那个,实际上本文其实也就是翻译下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问题总结

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使用总结报告

在打开的Launcher窗口中,选择Create/Edit Scripts菜单,打开虚拟用户脚本生成器。
打开协议 新建协议 通过模板新 建协议
快捷工具栏
协议顾问
最近使用的协议
最近使用的脚本
打开新建脚本窗口,选择协议,并创建新的脚本。
从本地硬盘打开已保存的脚本。
根据已有脚本模板创建新的脚本。
打开录制窗口,录制用户操作,系统会自动判断使用使用的协 议,有可能有多个协议,但系统建议的协议并不一定是最优协 议。
LoadRunner包含以下组件: Virtual User Generator:虚拟用户生成器。录制最终用户业务流程并创建自动 化性能测试脚本,即Vuser脚本。
Controller:组织、驱动、管理并监控负载测试。
Load Generator:通过运行Vuser产生负载。负载生成器可以在别的计算机上安 装,然后在测试机通过Controller连接。 Analysis:用于查看、剖析和比较性能结果。 Launcher:使用户可以从单个访问点访问所有LoadRunner组件。
Comment:注释。为代码或者方法、类添加注释。 Log Message:通过LR的日志系统输出日志。
New Parameter:创建参数化新参数。
Toggle Breakpoint:设置当前行为断点,当在脚本编辑窗口,通 过运行命令,程序执行到当前行时挂起,和eclipse的breakpoint 是一样的功能。
如果不设置Pacing时间,即在上次循环结束后,立即进入下次循环,可能会出现因为请求在排队,没有 进入执行状态,而导致的事务相应时间很长,甚至超时。这样得到的最终相应时间,包含了队列等待时 间,会导致结果不准确。 设置Pacing后,会减轻服务器压力,得到的测试结果是服务器非极限状态下的数据。
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学习笔记,深入中。
1\集合点:插入集合点是为了衡量在加重负载的情况下服务器的性能情况。
在测试计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,从而达到测试计划中的需求。
2\事务(Transaction):为了衡量服务器的性能,我们需要定义事务。
比如:我们在脚本中有一个数据查询操作,为了衡量服务器执行查询操作的性能,我们把这个操作定义为一个事务,这样在运行测试脚本时,LoadRunner 运行到该事务的开始点时,LoadRunner 就会开始计时,直到运行到该事务的结束点,计时结束。
这个事务的运行时间在结果中会有反映。
插入事务操作可以诼贾乒 讨薪 校 部梢栽诼贾平崾 蠼 小 oadRunner 运行在脚本中插入不限数量的事务。
3\参数化输入如果用户在录制脚本过程中,填写提交了一些数据,比如要增加数据库记录。
这些操作都被记录到了脚本中。
当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且有可能引起冲突。
为了更加真实的模拟实际环境,需要各种各样的输入。
参数化输入是一种不错的方法。
4\参数化包含以下两项任务:①在脚本中用参数取代常量值。
②设置参数的属性以及数据源。
(注:不是所有的函数都可以参数化的。
)5\参数的类型。
DateTime:很简单,在需要输入日期/时间的地方,可以用DateTime 类型来替代。
其属性设置也很简单,选择一种格式即可。
当然也可以定制格式。
Group Name:暂时不知道何处能用到,但设置比较简单。
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学习总结

问题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,开启对应服务即可)。
LoadRunner性能测试学习笔记

一、性能测试基本概念1、性能测试:模拟真实的生产环境,以各种不同的压力(模拟大量用户)去测试被测系统、去"攻击"测试系统。
同时记录下被测系统中各台服务器的各种重要资源情况,包括cpu、内存、磁盘和网络等资源。
2、性能测试的目的?识别系统中的弱点、评估系统能力、进行系统调优,提高系统的可靠性、稳定性。
3、在具备什么条件下可以开展性能测试工作。
答:功能测试通过;一般需要进行性能测试的系统,大多是用户量比较大、业务使用比较频繁、对响应时间要求较高、比较重要的功能模块。
(注意:性能测试之前要做好系统备份)4、性能测试时首先看性能需求,如果没有需求,这时要根据与客户交流、被测系统的相关资料、以及性能测试工程师的经验,去编写测试计划,进行性能测试。
5、被测系统SUT (System Under Test)AUT (Application Under Test)EUT (Environment Under Test)6、LoadRunner工作原理:(录制--回放的工作方式)和QTP类似1)录制时,LoadRunner记录下客户端和服务器二者之间的对话。
2)回放时,LoadRunner模拟真实的客户端向服务器发起请求,并按照脚本去验证服务器的应答7、LoadRunner的三大组件及功能:(三个火枪手)OALoad工具类似(触类旁通)1)虚拟用户脚本生成器(Virtual User Generator)VuGen VUG功能:录制、编辑、调试测试脚本2)压力调度控制台(Controller)功能:创建场景、运行场景、监控场景、收集测试数据(场景:就是一个大型的配置文件)3)压力结果分析器(Analysis)功能:把收集到的测试数据以图表的形式展示出来,生成测试报告8、LoadRunner基本测试流程:1)指定性能测试计划(部分) Word2)创建测试脚本3)编辑、运行测试脚本4)创建场景5)运行、监控场景,收集数据6)生成测试报告,分析测试结果9、什么是事务,为何要创建事务?答:事务分为事务的开始、结束和之间的业务操作,事务用于度量服务器性能的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Loadrunner学习总结LoadRunner,是一种预测系统行为和性能的负载测试工具。
通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。
企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。
LoadRunner可适用于各种体架构的自动负载测试,能预测系统行为并评估系统性能。
操作流程如下:1.录制脚本:选择适当的协议,web服务器一般选择http协议。
录制方式一般选择HTML-based Script,但有下列情况选择URL-based Script:不是基于浏览器的应用程序,应用程序中包含javaScript脚本且产生了请求,基于浏览器的应用程序使用了https协议默认设置记录的浏览器为IE,不要使用其他浏览器在录制过程中不要后退页面2.录制结束后点绿色方块按钮结束录制,系统会自动生成录制脚本。
3.录制完之后就是对脚本的回放处理,可以在运行时设置界面设置回放的设置,如:迭代(重复次数)、步(开始新迭代时候的时间设置)、思考时间(录制时间的停留时间)等,设置好之后就开始回放。
4.回放结束后,回放的情况会显示出来,没有错误表示录制的进程没有问题。
5.负载测试运行选择录制的脚本添加,然后确认。
可以在场景计划可以在场景计划这里设置要测试的参数,比如开始用户数,持续时间,停止方式等。
如果想测定某个操作的响应时间,可以在脚本中插入事务,使用事务把该操作包装起来。
分析执行结果的时候可以查看到该事务的响应时间。
插入集合点,可以使多个用户并发进行同一操作,提高操作的并发程度,以对服务器增加负载,测试并发能力。
在Run-Time Setting设置中,设置网络带宽以模拟不同带宽的网络;设置block、action的迭代次数。
对脚本进行参数化,设置参数变更方式运行设置界面可以添加用户数,场景的开始等操作。
设置完成后就开始运行。
等待结果分析。
设置场景主要包含:选择脚本,设定执行用户数,选择测试负载机,设置脚本执行的方式,设置集合点点,设置Run-Time Setting。
设置脚本的执行方式:设置用户的启动方式,设置用户的终止方式。
6.分析结果查看分析结果,查看事务的响应时间、服务器的平均吞吐量,执行用户人数,查看线程图,用户变化图,响应时间图,吞吐量图。
查看服务器监控的计数器图。
分析各个性能指标是否符合需求。
比如:可用内存曲线是否正常,是否存在内存泄漏;CPU利用率曲线是否平缓,是否低于90%;线程数是否正常,而不是一直在增长;网络带宽是否满足流量需求;磁盘是否满足用户操作要求等等分析各个曲线图是否存在异常情况。
比如:响应时间是否满足需求;系统是否支持要求的并发;随着负载的增加,吞吐量是否同样增加,吞吐量是否存在瓶颈等等。
有时候分析单个要素并不能反映存在的问题,需要多个要素联系起来进行分析。
比如,可以把用户数的变化图和吞吐量图联系起来进行分析。
LoadRunner 的分析工具支持把两个表合并进行分析,把用户数变化图和吞吐量变化图合并,就可以观察吞吐量是否随着用户数的变化而相应时间。
如果随着用户数的增加,吞吐量持平或者下降,说明此时系统吞吐量达到了最大值,系统达到了瓶颈。
分析名词解释:Transactions(用户事务分析):用户事务分析是站在用户角度进行的基础性能分析。
1、Transation Sunmmary(事务综述)对事务进行综合分析是性能分析的第一步,通过分析测试时间内用户事务的成功与失败情况,可以直接判断出系统是否运行正常。
2、Average Transaciton Response Time(事务平均响应时间)“事务平均响应时间”显示的是测试场景运行期间的每一秒内事务执行所用的平均时间,通过它可以分析测试场景运行期间应用系统的性能走向。
例:随着测试时间的变化,系统处理事务的速度开始逐渐变慢,这说明应用系统随着投产时间的变化,整体性能将会有下降的趋势。
3、Transactions per Second(每秒通过事务数/TPS)“每秒通过事务数/TPS”显示在场景运行的每一秒钟,每个事务通过、失败以及停止的数量,使考查系统性能的一个重要参数。
通过它可以确定系统在任何给定时刻的时间事务负载。
分析TPS主要是看曲线的性能走向。
将它与平均事务响应时间进行对比,可以分析事务数目对执行时间的影响。
例:当压力加大时,点击率/TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈。
4、Total Transactions per Second(每秒通过事务总数)“每秒通过事务总数”显示在场景运行时,在每一秒内通过的事务总数、失败的事务总署以及停止的事务总数。
5、Transaction Performance Sunmmary(事务性能摘要)“事务性能摘要”显示方案中所有事务的最小、最大和平均执行时间,可以直接判断响应时间是否符合用户的要求。
重点关注事务的平均和最大执行时间,如果其范围不在用户可以接受的时间范围内,需要进行原因分析。
6、Transaction Response Time Under Load(事务响应时间与负载)“事务响应时间与负载”是“正在运行的虚拟用户”图和“平均响应事务时间”图的组合,通过它可以看出在任一时间点事务响应时间与用户数目的关系,从而掌握系统在用户并发方面的性能数据,为扩展用户系统提供参考。
此图可以查看虚拟用户负载对执行时间的总体影响,对分析具有渐变负载的测试场景比较有用。
7、Transaction Response Time(Percentile)(事务响应时间(百分比))“事务响应时间(百分比)”是根据测试结果进行分析而得到的综合分析图,也就是工具通过一些统计分析方法间接得到的图表。
通过它可以分析在给定事务响应时间范围内能执行的事务百分比。
8、Transaction Response Time(Distribution)(事务响应时间(分布))“事务响应时间(分布)”显示在场景运行过程中,事务执行所用时间的分布,通过它可以了解测试过程中不同响应时间的事务数量。
如果系统预先定义了相关事务可以接受的最小和最大事务响应时间,则可以使用此图确定服务器性能是否在可以接受的范围内。
其他相关设置:1.事务插入打开录入的脚本,找到要插入的位置,右键鼠标,点插入—>开始事务,输入事务名称即可.然后在相应的结束位置,右键鼠标,点插入—>结束事务,即可。
2.设置集合点右键鼠标,插入-->集合,输入集合点名称即可。
3.参数化选中要参数化的内容。
方法一,右键---【Replace with a new parameter】方法二,菜单【insert】----【new Parameter…】Parameter Properties (参数属性对话框)----我们的参数化设置就通过这个对话框完成。
参数化的方式:其实参数化得方式有很多种,这里简述几种比较常见人方式。
其实方式略有不同,但其结果都是将数据添加进来。
1、编辑数据点击Create Table 会出现表格,在表格,再次点击Edit with Notepad ,然后会打开一个记事本,我们可以对记事本进行添加数据2、添加dat数据文件点击File输入框后面的“Browse..”按钮,找到本地的txt数据文件,进行添加就可以了。
需要注意的是,文件里面的数据不要乱写,每条数据一行,不然会读取有误。
3、数据库添加数据在很多情况下,我添加的数据不是十条二十条,也不是一百两百,如果还通过上面的两种方式添加,我想会是一件非常纠结的事情。
所以我们可以通过数据库将数据导入。
你是否疑虑数据库的数据怎么弄,数据库的数据生成非常简单,可以写一段简单的代码生成,也可以通过数据库数据生成工具来完成点击Date Wizard 打开连接数据库向导。
这里先告诉你有这种方式,后面再介绍具体操作。
^_^4、其他类型设置如果我们要参数化的不是一个文件,比如是特定的日期时间,可以从Parameter type列表中进行选择这里可以设置日期时间格式,循环迭代方式,不过除了file类型外,其他用的不多。
其他类型用法我也不是十分了解。
参数化之间的关联前面我们已经对用户名进行了参数化,或对密码进行了参数化,这样是不是脚本就能正常跑了,不好说。
因为用户名和密码不是一一对应关系,每次运行脚本时取的用户名和密码没有对应上的话肯定就会出问题。
假设,我们已经对用户名已经进行了参数化,参数名为【username】,下面设置密码参数化与用户名关联。
点击“Properites…”会打开编辑用户名参数化窗口。
File列表框中,刚才保存用户名信息的文件"username.dat"。
点击“Add Column…”,添加新的一列信息,用于放置密码。
点击“Edit with Notepad”再次编辑参数化数据文件,使用户名密码建立一一对应关系。
完成之后,我们已经成功对用户名和密码进行了参数化,并且让用户名和密码形成了对应关系。
数据分配与更新方式脚本设置完参数化,脚本运行的每一遍所取的参数化的值都不一样,那么这个值按照个什么情况来取呢?会有很多种方式Select next row【选择下一行】:顺序(Sequential):按照参数化的数据顺序,一个一个的来取。
随机(Random):参数化中的数据,每次随机的从中抽取数据。
唯一(Unique):为每个虚拟用户分配一条唯一的数据Update value on【更新时的值】:每次迭代(Each iteration):每次迭代时取新的值,假如50个用户都取第一条数据,称为一次迭代;完了50个用户都取第二条数据,后面以此类推。
每次出现(Each occurrence):每次参数时取新的值,这里强调前后两次取值不能相同。
只取一次(once):参数化中的数据,一条数据只能被抽取一次。
(如果数据轮次完,脚本还在运行将会报错)上面两个选项都有三种情况,如果将他们进行组合,将产生九种取值方式。
Select Next Row 【选择下一行】Update Value On【更新时的值】Replay Result【结果】顺序(Sequential)每次迭代(Each iteration)结果:分别将15条数据写入数据表中功能说明:每迭代一次取一行值,从第一行开始取。
当所有的值取完后,再从第一行开始取如:如果参数化文件中有15条数据,而迭代设置为16次,那执行结果中,参数化文件第一行的数据有两条顺序(Sequential)每次出现(Each occurrence)结果:分别将15条数据写入数据表中功能说明:每迭代一次取一行值,从第一行开始取。