笔记loadr课程1、性能测试等级划分_第1页
笔记loadr课程1、性能测试等级划分_第2页
笔记loadr课程1、性能测试等级划分_第3页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Loadrunner课程笔记整理1、性能测试等级划分:外行:只会使用LR等基本性能测试工具入行:中高级:分析、资深:调优、性能自动化:性能2、性能指标:、容量(1) 并发量:在某同一时刻有多少用户或者多少个请求来(2) 响应时间:反映完成某个业务所需要的时间。系统的某一个功能举例:从单击登录按钮到登录完成返回登录页面需要消耗1秒钟,那么就是说这个操作的响应时间是1秒。响应时间由请求(3)吞吐量:反映时间、网络传输时间和服务器处理时间 部分组成。时间内能够处理的事物数目,直接体现软件系统的性能承载能力。举例:对于系统来说一个用户登录需要1秒钟,如果系统同时支持10个用户登录,且响应时间是秒钟,那

2、么系统的吞吐量就 是10个/秒。在性能测试工具中,吞吐量也被称为TPS(Transaction Per Second,每秒事务数)也就是说在计算一般是通过的事务数除以时间。另一概念,PRS(Request Per Second):每秒请求数时间内能完成的事务数目。TPS的(4)服务器占用:反映在负载下系统的利用率。的占用率越低,说明系统越优秀。有统计,对于一个用户来说,如果某系统的响应时间小于2秒,那么用户会感觉很快,比较满意;如果某系统的响应时间在2-5秒,可以接受,但是对速度有些不满;如果响应时间超过10秒,用户将无法接受。服务器(网络以及数据库)的CPU利用率、内存利用率、磁盘利用率、网

3、络带宽利用率等。除了上述,我们还应该考虑数据库连接池使用情况,JVM内存使用情况,sql执行效率等。3、做性能是要有并发参照物:响应时间、工具和系统;响应时间与并发量是成对出现的,缺少任何一个都全,都会出现缺少参照物的情况4、http协议也就是通过浏览器前端加载的js或者jQuery数据)5、性能测试分类:的响应时间包括前端页加载时间,但lr里不包括此部分时间(因为lr中的都是数据包,不包含那些(1)负载测试(Load Testing):在一定的软件、硬件以及网络环境下,运行一种或多种业务,在不同虚拟用户数量的情况下,测试服务器的性能指标是否在用户的要求范围内,以此确定系统所能承载的最大用户数

4、、最大有效用户数以及不同用户数下的系统响应时间以及服务器的利用率。负载测试强调的是在一定环境下系统能够达到的峰值指标。(2)测试(Stress Testing):在一定的软件、硬件以及网络环境下,模拟大量的虚拟用户向服务器产生负载,使服务器的处于极限状态下并长时间连续运行。(3) 容量测试(Volume Testing):在一定的软件、硬件以及网络环境下,在数据库中构造不同数量级别的数据,运行一种或者多种业务在一定虚拟用户数量的情况下,获取不同数量级别的服务器性能指标,以确定数据库的最佳容量和最大容量。负载测试和容量测试的区别在于:负载测试同时关注how much和how fast;而容量测试

5、主要关系how much。(4) 配置测试(Configuration Testing):在一定的软件、硬件以及网络环境下,运行一种或多种业务,在一定的虚拟用户数量情况下,获得不同配置的性能指标,用于选择最佳的设备以及参数配置。(5) 基准测试(Benchmark Testing):在一定的软件、硬件以及网络环境下,模拟一定数量的虚拟用户运行一种或者多种业务,将测试结果作为基线数据,在系统调优或系统评测的过程中,通过运行相同的业务场景比较测试结果,确定调优的结果是否达到预期效果或者为系统的选择提供决策数据。(6)并发测试(Concurrency Testing):通过模拟多个用户并发在死锁、数

6、据错误等故障。同一个应用、过程或数据以及其他并发操作,测试是否存6、性能测试流程:2. LoadRunner简介3. LoadRunner工具组成4.Virtual User Generator:简称VuGen,提供了基于录制的可视化图形开发环境,可以方便、简洁地生成用于负载的性能。5.调度和系统Controller:负载对整个系统的过程进行设置,制定负载的方式和周期,同时提供了系统监测的功能;6.Load Generator:负责将VuGen成大量虚拟用户对系统生成负载。7. 结果分析工具Analysis:对负载生成后的相关数据进行整理分析。8. 性能测试原理9. 用户行为模拟:不同用户使用

7、不用的数据(LR通过“参数化”实现);多用户并发操作(LR通过“集合点”实现);用户请求间的依赖关系(LR通过“关联”实现); 请求间的延时时间(LR通过“思考时间”实现)。2. 性能指标请求响应时间服务器处理能力:(LR通过“事务”实现);(LR通过“事务”计算吞吐量获得)服务器利用率(LR提供全面简洁的计数器接口)3. 性能调优:后期补充会学到的4. 介绍VuGen(1) VuGen仅能录制Windows平台上的会话。但是录制的Vuser(2) Recording Options选项设置位置:tools->Recording Options;既可以在Windows平台上运行,也可以在

8、UNIX平台上运行。General-Recording页:选择哪种录制方式HTML-based scriptURL-based scriptAdvanced页:可以设置录制时的think time,支持的字符集标准等Correlation4. 创建测试操作步骤:页:手工设置关联1. 启动VuGen:选择需要新建的协议,可以创建单协议,或是多协议;2. 点击Start Record按钮,输入程序地址,开始进入录制;3. 使用VuGen进行录制:创建的每个Vuser都至少包含 部分:vuser init、一个或多个actions及vuser end。录制期间,可以选择中VuGen要已录制函数的部分

9、。运行多次迭代的Vuser时,只有的Actions部分重复,而vuser init和vuser end部分将不重复。4. 完善测试事务A.事务为衡量服务器的性能,需要定义事务。LR运行到该事务的开始点时,LR就会开始计时,直到运行到该事务的结束点,这个事务的运行时间在结果中会有反映。选择性能测试工具设计性能测试分析系统性能调优制定性能测试 标事务操作可以在录制过程中进行,也可以在录制结束后进行。LR运行在中不限数量的事务。在菜单中点击Insert->Start Transaction 后,输入事务名称,也可在录制过程中进行,在需要定义事务的操作后面事务的“结束点”。默认情况下,事务的名称

10、列出最近的一个事务名称。一般情况下,事务名称不用修改。事务的状态默认情况下是LR AUTO。一般情况下,我们也不需要修改状态的。B.集合点(Rendezvous)集合点是为了衡量在加重负载的情况下服务器的性能情况。在测试计划中,可能会要求系统能够承受1000人同时提交数据,在LR中可以通过在提交数据操作前面加入集合点,当虚拟用户运行到提 交数据的集合点时,LR就会检查同时有多少用户运行到集合点,从而达到测试计划中的需求。具体得的操作方法如下:在需要集合点的前面,点击菜单Insert->Rendezvous,也可在录制时安集合点按钮。注意:集合点经常和事务结合起来使用。集合点只能C.模拟用

11、户思考时间到Action部分,vuser init和vuser end中不能集合点。用户在执行两个连续操作期间等待的时间称为“思考时间”。Vuser使用lr think time函数模拟用户思考时间。录制Vuser时,VuGen将录制实际的思考时间并将相应的lr think time语句到Vuser。可以编辑已录制的lr think time语句,也可在中手动添加lr think time语句。以秒为指定所需的思考时间。D.参数化输入a 参数的类型介绍数据文件:文件(现有文件或者用VuGen或MS Query创建的文件)中包含的数据分配内部数据:Vuser内部生成的数据。这包括日期/时间、组名

12、、迭代编号、负载用户定义的函数:使用外部DLL函数生成的数据。b 参数化设置属性界面名、随机编号、唯一编号和Vuser IDc 参数属性设置定义选取列:表示指定选取哪一列的值定义“列分隔符“:用来分隔表格中的列的字符选取下一个值的方式:表示在Vuser执行期间如何选择表格数据。选项包括:顺序、随机和唯一。从”更新值的时间“列表中选择更新选项。选项包括”每次迭代“、”每次出现“和“一次“。d 从现有数据库中导入数据通过lr,可以从数据库中导入数据以用于参数化。可通过以下方法导入数据:一是新建;二是指定SQL语句VuGen提供一个指导您完成从数据库中导入数据的过程的向导。在该向导中,您可以指定如何

13、导入数据;导入数据之后,它被另存为一个扩展名为.dat的文件,并且Text/Imag检查点为常规参数文件。E.在进行比较大的测试时,为了检查web服务器返回的网页是否正确,这些检查点验证网页上是否存在指定的Text或者Image,还可以测试在测试环境中,被测的功能是否保持正确。操作步骤:a 可以将视图切换到TreeView视图;b 在树形菜单中选中需要(Insert After);检查点的一项,然后点击鼠标右键,选择将检查点插到该操作执行前(Insert Before)还是执行后c 在弹出框中选择web checks 下面的Image Check或者Text Checkd 对需要检查点设置相关

14、的属性F.关联语句定义:就是把中某些写死的数据,转变成是截取自服务器所送的、动态的、每次都不一样的数据。简单的说,就是每一次执行都会变动的值,就有可能需要做关联。VuGen提供两种方式帮助找出需要做关联的值:自动关联、手动关联关联函数:web reg save param:最常用来做关联的函数。 a 自动关联b 手动关联首先,录制二份业务过程与数据其次,使用winDiff工具比较两份的数据最后,使用web reg save param函数手动建立关联。G.Run-time Setting选项Run Logic:用来设置Action部分重复运行几次Pacing:用来设置以怎样式开始下一次反复Lo

15、g:设置是否启用日志Think Time:关于中think time的设置Miscellaneous:配置其他运行时设置Speed Simulation:用来模拟网速Browser Emualation:设置浏览器属性 Proxy:设置试1. 单机运经过以上的各个步骤后,点击Run按钮,即可运行;VuGen会先编译行。,检查是否有语法错误。如果有错误,VuGen将会提示错误。双击错误提示VuGen能够到出现错误的那一为了验证的正确性,我们还可以调试,比如在中加断点等。如果编译通过,就会开始运行。然后会出现运行结果,运行结束后自动弹出一个结果窗口。1. Controller:可以使用Contro

16、ller来管理和维护方案。LR使您可以从一个单一的2. Controller窗体介绍3. 创建运行场景点简单有效地所有的Vuser。计划方案:按方案计划:定义整个方案的设置。”加压“选项卡,”持续时间“选项卡、”减压“选项卡。按组计划:定义各个组的设置。从左侧的框中,选择要计划的Vuser组。”开始时间“选项卡、”加压”选项卡、“持续时间”选项 卡、“减压”选项卡。注:Vuser组设置不适用于百分比模式。1. 创建手动方案2. 创建面向目标的方案&Controller设置:单场景下,一般加压时间为15分钟,如果选择慢就压的方式,如果在最开始的时候,首先设置一个用户来跑数据:目的是跑基准

17、数据;没有好,那么很可能得到不符合条件的值;配置如上,并且跑2分钟。然后好时间。注:测试的时候除了跑一下需求是否满足,也要把最大值测试出来lr的场景:单场景(同一个)、混合场景、稳定性场景单场景:一定要做全,目的是测试单个接口或者这一类的接口是否满足性能要求,是否能发现性能瓶颈混合场景:一个场景中包含多个请求。目的是为了测试多场景一块压测的时候是否会发生线程死锁和数据库死锁混合场景有读混合(登录,帖子,回帖),写混合(、发帖,回帖,删帖,编辑帖子)和读写混合(所有的都叫) 稳定性场景:就是增加时间。目的是测试项目长时间运行下,是否会出现内存泄露的情况,然后再看其稳定性。注:以上的东西都要看日志

18、Generator常见报错:1、一旦出现了超时,就改timeout的120秒超时时间的配置是不可取的; 正确的解决方法是:应该去超时的,而不是去改120秒的超时;2、连不上服务器,如500和302等等;此时需要看看的页面是否有问题了然后在具体:某事务响应时间为2秒的最大并发数,主要看LAST。如果标准方差太小,就看平均值。:用这个去看最大TPS支持数如果TransResponseTime中的std(标准方差)不是很大的话,那么就不看last了,就取平均的响应时间,做最终的响应时间;如果std很大(5或者8以上)的话,那么就取analysis中的这个来看;TPS得到的方法:当每次加并发数的时候,

19、如果曲线每次都一点点往上涨,那么就一直加用户,然后看曲线平稳时的数据 如果曲线有下降趋势,那么就是拐点出现了如果想测试200个用户的响应时间:Vuser设置为200,然后run15分钟,然后看响应时间 一般在做性能测试时可能需要测试的东西:测试并发、测试响应时间、测试tps,其中测试并发和测试响应时间需要成对出现,如200个并发在响应时间为2秒下是否符合需求一般是258原则,2秒是合理,5秒是勉强能接受,8秒完全无法接受;目前一些接口的响应时间一般都是毫秒级的;如搜狗输入法的一些接口就是100毫秒集合点的使用:如果觉得并发量不大,可以加集合点;或者如果觉得必须加那就加;加集合点的时候一定会出现

20、响应时间加大的情况,如果觉得报告不好看,那么就去掉集合点;如果是秒杀的话,那么就加集合点吧当tps的曲线突然下降了的:vuser太大了(这个是主因),数据库了,环境了,等等等(其他的都是外因)一般情况下压测环境是的,是不可以让其他人动的,这样才能在的环境内没有外界的干扰;一个action中有一个请求或者两个请求的区别:1、如果很理想的话,那就前期把准备工作都做完,最后集中对一个请求测试,如回帖和发帖中测试回帖,那么我们可以把发帖都搞完, 然后最后单压回帖;2、如果很懒得话,那么就把发帖和回帖放在一个action中,一个中是单事务还是多事务,对响应时间没有影响,唯一区别就是在并发用户数相同的情况

21、下,时间内哪种事务数会多一点。然后可能会影响下tps的数据,这种情况可以通过提高Vuser的并发数来解决。场景一般跑15分钟,windows的组件:perfmon.exeperformance monitorLinux工具:spotlight Nmon的书的P2221、lr页面时响应时间不包含前端页面的加载时间;2、jmeter和lr接受返回结果,接受整个结果包,apacheAB等两款工具,只会建立3次握手, 么的会比lr的快。=1、并发和并发数返回数据的结果,所以他的响应时间什并发:在某一同时刻有多少用户或者多少个请求来系统的某一个功能;并发分为广义并发和狭义并发;并发数(并发用户数):并发

22、是指在某一个给定时间内,某个特定点上进行会话操作的用户数;(分为用户和系统)LR对外提供多少个并发,指的就是多少个VU,是多少个人 2、http 协议重点掌握webservice 要掌握JDBC 数据库协议 - jmeter学习Java接口 - jmeter学习Sockets协议 - 额外的作业3、HTML和URL recording的区别4、录制htp协议时,选在录入level为WinlNet level data 5、运行lr:F5:run allF10:单步调试6、事务的添加要对称,比如说start叫,那么end也要叫7、检查点:请求是不是返回了正确的返回结果函数:web reg fin

23、d()进入insert-new step函数是预的,所以检查点要方便被检查的函数前面; 为了系统的测试性能,尽量少用检查点;对于insert update delete等写操作,不建议加入检查点,这种写操作最好在数据库里面去看。对于select操作,需要加入检查点 ,检查点必须是后一定能返回的唯一的标示。8、做性能测试要保证事务的率,行业中的标准是率为99.99%LR中Contorllor中的pass数并不代表真正的率,只能说明请求过去了,但是不代表请求了,这种就要查数据库了!9、参数化:适用于场景:1)唯一字段或者用完了以后再不能使用了,这样的就需要参数化。2)数据库有缓存,为了避免一直数据

24、库的缓存,所以要加入参数化避免去缓存。避免缓存这种有两种方式:一是参数化,使每次请求不同;二是关闭数据库缓冲池功能。市面上SB的想法:为了真实的模拟用户的用户行为(面试时先说这个吧然后在写的理解)10、为了防止多个用户之间取相同的值,就会用到参数化-取值选择unique、习题:100个用户并发,每个用户1秒钟能处理10个请求,服务器的tps=50,运行10分钟,问题测试参数化文件有多少个? 60秒*10分钟=600s600*50=30000 因此是3W个值 给每个用户分配30000/100个用户=300个值,所以准备数据时要造大于3W个值注:因为服务器的tps=50,所以无论多少个用户并发,服

25、务器的最大处理数据就是每秒50个,所以不要在乘以100个并发用户了若服务器的tps无限大,那么参数化文件的数据就准备60秒*10分钟*10个参数*100个用户=60W个,因此给每个用户分配6000个参数关联:将服务器返回给我们的动态变化的值保存称为一个参数,以供后面用到这个值得地方来使用 1、什么值需要关联:和数据库打交道的,session和cookie,数据与数据之间存在关联关系,并且需要用到这种关联关系生成的数据,后面有其他操作需要用到这个数据(只要是数据库的insert的操作,后面如果需要调取这个insert语句中的id信息,那么这个信息的主键id就需要关联)2、关联函数放置在哪里:哪一

26、步请求执行完之后,需要哪一步他返回给我们的值,就把这个值放在这一步之前3、左右边界怎么确定&关联1、为什么要关联:有些数据如果不关联就过不去,会报错2、什么样的值需要关联:动态的且后面需要用到的值;方法:首先session和hash必须要参数化,其次url中有些参数需要关联,可以通过业务去想一下参数里的东西要有敏感性,像输入的东西只要参数化3、关联函数放在哪里:永远放在第一次有这个关联数据的请求前面关联设置快捷方式:在response中找到需要关联的函数,然后右键选择create parameter,然后就会添加一个关联,需要注意的是如果关联的左右边界是中文,会出现乱码,此时只要将乱码

27、手动改成中文即可。关联定义:找到服务器动态变化的值,把它保存成一个参数,以供后面需要的地方来使用ctrl+h:快捷键,替换4、什么时候需要进行关联:(1)和数据库关联的东西需要关联:a、前面一条数据,后面需要对这条数据进行使用:update和deleteb、数据与数据之间有关联关系:insert 用到了外键的类型c、返回给我们的信息,后面需要使用,就需要关联:select(2)应用程序需要对传入的参数进行校验:比如usersession面试如如果有人问:回放不正确。我们首先要考虑的是关联或者就是数据重复了,应该不唯一注:面试时参数化和关联会经常被问到你做过哪些类型的接口测试:比如说http(90%)、webservice(socp)、api、java、json,socket,jdbc等等等需要掌握的:http javauser jdbc webservice api socket5、手动关联怎么写tps上不去:把思考时间去掉、服务器tps到了极限lr默认50个用户为一个进程在做手动关联时,取边界值的时候,会经常用到转义字符,现将转义字符整理如下:b 退格f 换页n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论