性能测试及LoadRunner入门培训_第1页
性能测试及LoadRunner入门培训_第2页
性能测试及LoadRunner入门培训_第3页
性能测试及LoadRunner入门培训_第4页
性能测试及LoadRunner入门培训_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、性能测试及性能测试及 LoadRunner入门入门 上海网达软件股份有限公司 2012年11月内容概述性能测试性能测试 概要介绍概要介绍性能测试工具性能测试工具使用使用LR VuGen 创建测试脚本创建测试脚本使用使用LR controller创建运行场景创建运行场景监控场景及结果分析监控场景及结果分析性能测试概要介绍 定义定义 : 性能测试是指在一定的负载情况下,系统性能测试是指在一定的负载情况下,系统的响应时间等特性是否满足特定的需求。的响应时间等特性是否满足特定的需求。 性能指标:性能指标: 对于一个应用系统,需要监控的性能指标对于一个应用系统,需要监控的性能指标主要有以下三个:主要有以

2、下三个: 响应时间、吞吐量、服务器资源占用率响应时间、吞吐量、服务器资源占用率 响应时间反映完成某个业务所需要的时间,比如从提交登录按钮到服务器返回登录成功信息所需时间是1秒,那么登录这个操作的响应时间就是1秒。吞吐量反映单位时间内系统所能完成的某个操作(事务)数,比如系统支持1000人同时登录,且平均响应时间为0.5秒,则系统的吞吐量为2000次(登录)/秒服务器资源占用反映在负载条件下系统的资源利用率,主要是指cpu的占用率、内存使用率等。一个优秀的系统应能够在一定的成本约束条件下尽可能的降低资源占用率。 因为系统最终是要面向客户的,因此响应时间往往是客户最为关心,也是对系统性能好坏最直观

3、的评价,一般情况下,用户所作的操作响应时间应在5秒之内才被接受。性能测试工具 由于性能测试往往需要模拟大量用户的并发操作,如果采用人工方式,耗资将十分巨大而且并不可行,因此,往往采用工具来执行,性能测试的工具主要有: Loadrunner 预测系统行为和性能的负载测试工具 Jmeter Apache组织开发的基于Java的压力测试工具 WEBLODE RadView公司推出的一个性能测试和分析工具 目前主流的性能测试工具是HP公司的loadrunner(下文简称LR),本文将主要介绍应用LR 进行性能测试的基本方法。使用LR进行性能测试的一般步骤l在VuGenerator组件中进行用户行为模拟

4、l在Controller组件中实现负载生成及监控l在Analysis中进行数据收集分析在VuGenerator组件中进行用户行为模拟l录制脚本l回放验证脚本l参数化使得脚本动态运行l添加事务捕获响应时间l添加集合点形成并发VuGenerator组件l录制脚本 从开始菜单找到LR程序项并选择启动Virtual User Generator组件,选择新建。 VuGenerator组件l录制脚本 选择协议,目前我们所做绝大多数性能测试都是基于B/S 架构下的http协议,因此这里选择web(http/html)即可。 VuGenerator组件l录制脚本 在开始录制前,需要了解几个比较重要的录制选项

5、。点击OPTION按钮,出现录制选项栏。 VuGenerator组件l录制脚本 一般来说如果测试的系统是B/S架构,选择HTML-BASED SCRIPT,如果测试的系统是C/S 架构的,选择URL-BASED SCRIPT。VuGenerator组件l录制脚本 在HTML ADVANCED选项中进行脚本类型的选择因为通常性能测试不关心用户的鼠标动作和键盘动作,只关心发送的请求和服务器返回的请求,因此录取时脚本只需要包含请求地址和请求数据,不需要详细录制用户的鼠标键盘等操作,选择下面一项VuGenerator组件l录制脚本 在HTTP-Properties-advanced下选择录制Heade

6、rVuGenerator组件l录制脚本 录制选项设置完成后,便返回到最开始的录制框 选择浏览器类型,输入录制的URL,点击OK就可以开始录制了。(演示discuz论坛的用户注册)VuGenerator组件l回放脚本 操作结束如果要停止录制,点击录制框的停止按钮即可。 脚本录制完后,点击菜单栏的回放按钮可对刚录制的脚本进行回放检验,以找出脚本中需要进行调整的地方。 LR回放是通过下面的回放日志(Replay LOG)来显示脚本运行结果的。 如果需要直观的显示录制与回放时每一步操作的过程,可在回放结束后,点击菜单栏Tree 按钮,点击左边树形目录下每一步操作,查看回放结果,并与录制时的情况进行比较

7、。VuGenerator组件l回放脚本 l脚本参数化 在模拟多用户并发注册、登陆等业务场景时,对脚本进行参数化改造是必不可少的,否则会因为数据库对用户名、邮箱等参数的唯一性限制而导致场景运行失败,达不到真实模拟多个不同用户的并发注册、登录、发贴等实际业务的效果。 方法:在脚本中选中需要进行参数化的字段:如用户名、密码、邮箱,右键选择“使用参数代替”即可。 (演示) VuGenerator组件 (演示录制、回放注册用户的过程)通过回放看到,由于录制时的用户名已经注册成功,导致回放时用该用户名进行注册时失败,因此需要对脚本进行进一步的优化。VuGenerator组件l脚本参数化 在注册时,用户名和

8、邮箱有唯一性要求,在注册脚本中找到username 和email两个字段,value值就是录制时我们输入的值,按住右键选中,点击replace with a parameter 。 VuGenerator组件l脚本参数化 在弹出的创建参数栏中,给参数设定个名称,点击OK,参数创建完成 。 VuGenerator组件l脚本参数化 点击菜单栏的参数列表按钮 (open parameter list)弹出参数编辑框,可对参数进行赋值和更新策略设置。 VuGenerator组件l脚本参数化 将excel表中事先准备好的参数数据复制到参数列表中(点击edit with notepad) 根据实际业务类型

9、设置不同的参数更新策略 假设现在要测试的业务场景是100人并发注册,且每个人注册2个帐号,参数列表的值可以如此设置: 参数分配策略(select next row)应该是 unique (唯一的),代表100个用户每个人的 注册时所用的都不一样 参数更新策略(update value on) 应该选择 each iteration (每次迭代更新),这样可确保这100个人注册第二个账号时,用户名与第一次的不一样。 通过这样的设置,可确保每次注册时,100个用户所采用的用户名都是不一样的c) 点击simulate parameter通过参数模拟直观反映取值变化 , (演示) VuGenerato

10、r组件l脚本参数化 VuGenerator组件l脚本参数化 设置每个用户的迭代次数(在此可理解为每个用户进行注册脚本的次数) 点击菜单Vuser RuntimeSettings,设置迭代次数为2VuGenerator组件l脚本参数化 注:Runtime-settings其他一些设置可以参考相关书籍l 添加事务 事务是指用户在客户端做一种或多种业务所需要的操作集,通过事务函数可以统计用户操作的响应时间,事务响应时间是用户请求的开始时间和服务器返回内容到客户时间的差值。 结合当前业务,可以将用户操作划分为三个事务: 进入首页 进入注册页面 填写注册信息并提交VuGenerator组件l 添加事务

11、分别在脚本的三个事务前后加入事务开始点和结束点。注意 事务的开始点和结束点都是配对的。 添加事务可以通过主菜单 下 INSERT-START TRANSACTION,END TRANSACTION或者菜单栏图标 (演示)。 VuGenerator组件l 添加集合点 集合点函数主要用于让用户在同一时间点上进行操作来测试系统并发处理的能力。 在当前业务场景下,如果需要考察系统对100个用户并发注册处理能力,需要在提交注册表单前增加集合点。 注意:集合点通常需要与事务结合起来运用。 添加集合点在主菜单 INSERTRENDEZVOUS (演示) VuGenerator组件l 添加集合点 现在 ,模拟

12、用户行为的VUGenerator组件脚本录制及优化基本完成,更复杂的业务逻辑脚本还需要在今后的工作中不断的去学习积累。负载生成及监控controller组件 当虚拟用户脚本开发完成后,使用LR的 controller组件将执行这个脚本的用户从单人 转化为多人,从而模拟大量用户操作,形成负载。 而通过对负载进行设计配置,便形成了场景。执行场景可以向服务器形成负载,验证各系统性能指标是否达到用户要求。负载生成及监控controller组件l设计场景 点击VUGenerator 组件的Tools-Create Controller Scenario 菜单进入场景 负载生成及监控controller组

13、件l设计场景 目标场景(goal scenario) 主要是设置一个运行目标,通过Controller 的Auto load功能进行自动化负载,如果测试的结果达到目标,则说明系统的性能符合测试目标,否则就提示无法达到目标。 目标场景一般是在性能指标需求明确的情况下,由LR自动加压,但是无法设置集合点策略。 假定现在要考察系统应对100人并发注册的响应时间,在没有明确需求的情况下,可以考虑采取采取另一种场景设计方式 手工场景(Manual Scenario) 有关目标场景的策略设置,可以参考相关书籍。 负载生成及监控controller组件l设计场景 手工场景(Manual Scenario)通

14、过设计用户的添加和减少过程,来模拟真实的用户请求模型,实现负载的生成。在性能需求不明确,且需要测试并发操作的情况下,可以通过手工场景进行负载测试和并发测试。 当前演示(100人并发注册且迭代2次)采用手工场景进行设计 场景计划 及组计划 负载生成及监控controller组件l设计场景 场景计划(scheduled by scenario) 是指所有的脚本使用相同的场景模型。 组计划(scheduled by group)是指各脚本的业务场景不一样,比如一个脚本描述的是银行柜面的交易(9:00-17:00),另外一个脚本描述的是银行主机吸收账单入账(1:00-4:00),这时候就需要通过组计划

15、来设置场景中两个脚本的先后关系模拟系统的负载情况。 当前演示所有的用户都执行1个脚本,而且执行的都是登录首页-点击注册页面-提交注册信息这个业务流程,因此选择schedule by scenario 这种策略 关于组计划的设置可参考其它相关书籍。 负载生成及监控controller组件l设计场景 运行模式 Run ModeReal world schedule 真实场景模式Basic schedule 基本场景模式真实场景模式能够更好的模拟负载反复起伏的过程,相对于基本场景只能设置一次负载的上升持续和下降,更加贴近于真实情况,因此,在这里采取真实场景模式设计场景加压策略。负载生成及监控cont

16、roller组件l设计场景 Real world schedule 真实模拟,通过反复添加start user,duration,stop-user的过程可形成波浪式的负载负载生成及监控controller组件l设计场景 Real world schedule的波浪式负载可应对需求复杂的业务场景 负载生成及监控controller组件l设计场景 Basic schedule 基本场景模式只能设置一次性加压过程演示 中将采用Basic schedule 模式 负载生成及监控controller组件l设计场景 设计用户初始化方式,双击initialize Action 这里一般选择第一项即可,即一

17、次性初始化所有虚拟用户负载生成及监控controller组件l设计场景 设计负载加压策略,双击start vusers 一般选择周期期负载增加方式,以免由于一次负载增加太快,系统无法承受,影响并发性能测试数据准确性。负载生成及监控controller组件l设计场景 设计负载持续时间,双击Duration 一般选择持续10-30分钟,但是在目前业务场景里,由于并发注册参数值只有200个,一旦超过这个数,虚拟用户将面临无参数可用的状态,必将造成注册失败。因此,选择用户任务结束就停止(Run until completion),也就是100个用户,每个用户迭代2次注册结束后就停止。负载生成及监控co

18、ntroller组件l设计场景 设计负载释放过程,双击stop vusers 此时选择一次性释放即可。注 :当Duration 选择 run until completion 时,stop vusers 不可选,因为释放方式已确定为用户迭代注册2次后停止。负载生成及监控controller组件l设计场景 场景其它参数设置:集合点策略 点击场景菜单scenario-rendezvous,设置集合点策略。 (注:只有当脚本中设置了集合点时,此选项才可用)此处选择第一项,即当所有用户到达集合点时进行释放,以达到需求中明确的并发负载生成及监控controller组件l设计场景 场景其它参数设置:Thi

19、nk-time 思考时间 Think-time用于模拟真实用户的操作等待,如果忽略think-time,则认为用户一直在进行登录首页、点击注册、提交表单的操作,而没有间歇时间,这样无法反映真实用户的操作情况,同时也增加了服务器的负担。 脚本中增加思考时间可以在事务中间增加,但最后统计响应时间的时候,需要把增加的思考时间减除。负载生成及监控controller组件l设计场景 点击scenario groups 下的runtime-setting按钮,选择think-time- Replay think-time 启用场景用户思考时间负载生成及监控controller组件Browser Emula

20、tion (浏览器仿真) 每一个虚拟用户都看成是一个新的用户,为更好的模拟真实场景,应设置为禁止缓存、下载非HTML资源、每次迭代清空缓存,如图所示,但具体设置应结合业务需求来定l设计场景 负载生成及监控controller组件l运行场景 场景设置完以后点击场景页面下方的“RUN”标签,再点击“start scenario”就可以开始运行场景了。 场景描述:100个用户打开首页,点击注册页面,并发提交注册,每个用户点击注册按钮、提交注册运行2次。 预期结果:成功注册200个用户。u参数设置:思考时间(think-time):打开首页5秒,点击注册按钮5秒,提交注 册信息15秒,且在场景runt

21、ime-setting中设置为与录制时一致集合点策略:设置为全部100个用户到达集合点后提交注册浏览器仿真:关闭缓存初始化用户:一次性初始化全部用户用户加压方式:每10秒10个用户运行持续时间:2次迭代完成后结束参数化策略:用户名、邮箱公用一个参数username,取值方式设置为唯一且每次迭代更新。 负载生成及监控controller组件l监控场景 场景运行时需要进行对相关图表进行监控以进行分析。Scenario groups 该图表主要显示当前运行用户数、等待用户数、处于集合点用户数 、失败用户数等。含义:80个用户处于等待状态,10个用户正在进行打开首页,点击注册按钮操作,10个用户完成这

22、两步操作,正在集合点等待并发提交注册信息。负载生成及监控controller组件l监控场景 Scenario status 场景状态信息,包括运行用户数、消耗时间、每秒点击数、通过/失败 事务数、错误信息 负载生成及监控controller组件l监控场景 Available graphs可以从该列表中拖取若干关心的指标放到右边的方格中一般我们比较关心的是trans response time(平均事务响应时间)、hits per second (每秒点击数)、unix resources (服务器资源利用)、throughput(吞吐量)等指标负载生成及监控controller组件l结果分析 Running users (运行用户数)含义:整个场景过程平均运行用户数为65,最大运行数为100,即在进行并发提交注册信息时,证明集合点设置有效。负载生成及监控controller组件l结果分析 Linux服务器资源占用含义:当运行到2分20秒时,服务器cpu占用率达到瞬时最大值64.5%,此时运行用户数达到100,正进行并发操作负载生成及监控controller组件l结果分析 平均响应时间在2分20秒时,第一次并发注册开始,同时已

温馨提示

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

评论

0/150

提交评论