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

下载本文档

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

文档简介

1、性能测试及性能测试及 LoadRunner入门入门 上海久彰电子商务有限公司张小燕 2016年3月30日内容概述性能测试性能测试 概要介绍概要介绍性能测试工具性能测试工具使用使用LR VuGen 创建测试脚本创建测试脚本使用使用LR controller创建运行场景创建运行场景监控场景及结果分析监控场景及结果分析性能测试概要介绍 定义定义 : 性能测试是指在一定的负载情况下,系统性能测试是指在一定的负载情况下,系统的响应时间等特性是否满足特定的需求。的响应时间等特性是否满足特定的需求。 性能指标:性能指标: 对于一个应用系统,需要监控的性能指标对于一个应用系统,需要监控的性能指标主要有以下三个

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

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

4、行性能测试的基本方法。使用LR进行性能测试的一般步骤l在VuGenerator组件中进行用户行为模拟l在Controller组件中实现负载生成及监控l在Analysis中进行数据收集分析即脚本实现 虚拟场景 结果分析在VuGenerator组件中进行用户行为模拟l报文l脚本l回放验证脚本l参数化使得脚本动态运行l添加事务捕获响应时间l添加集合点形成并发6步VuGenerator组件l报文报文转换:(转换规则:1. ;2. uu。)l接口规范http协议 一般选择post方法 ,想到web_submit_form()和web_submit_data()两个函数,提交表单到某个页面;web_cus

5、tom_request()是一个可以用于自定义http请求的“万能”函数,具有web_link()、web_url()、web_submit_data()函数的功能,可以自由定义需要的http的get和post请求。 l需要写接口测试的脚本。 VuGenerator组件lweb_reg_save_param 语法和使用语法和使用语法语法2.示例 VuGenerator组件lweb_custom_request()函数函数语法语法Body 3.事例VuGenerator组件l接口测试脚本VuGenerator组件图中的“URL=?”输入你所需要测试报文中的网址。如: CodeSend 发码: h

6、ttp:/7:16070/Verify/sand/CodeSend; CodeVerify 核销: 7:16070/Verify/sand/CodeVerify; GetCode 查询: 7:16070/Verify/sand/GetCode。 橙色Pose: 36:8080/marketing/remote/httpInterface。VuGenerator组件2.图中的“json=?”输入转换好格式的报文。如:json=mid:,apiName:,phoneN

7、umbersaleChannelNo:10001,orderId:20160307,orderDate:20160307135542,smsFlag:0,catId:0,num:3,signType:,sign:演示核销接口发码和橙色Pose返现l脚本参数化 在模拟多用户并发发码业务场景时,对脚本进行参数化改造是必不可少的,否则会因为数据库对订单号参数的唯一性限制而导致场景运行失败,达不到真实模拟多个不同用户的并发发码等实际业务的效果。 方法:在脚本中选中需要进行参数化的字段:如订单号,右键选择“使用参数代替”即可。 VuGenerator组件核销发码接口:订单号 o

8、rderId橙色Pose返现:支付订单号 payOrderIdVuGenerator组件l脚本参数化 在发码时,订单号有唯一性要求,在发码接口测试脚本中找到orderId字段,orderId值就是我们输入的值,按住右键选中,点击replace with a parameter 。 VuGenerator组件l脚本参数化 在弹出的创建参数栏中,给参数设定个名称,点击OK,参数创建完成 ,字体变为紫色。实际项目中核销发码接口参数名为orderid,橙色Pose参数名为ord,参数名一般设置成英文就可以。 VuGenerator组件l脚本参数化 点击菜单栏的参数列表按钮 (open paramete

9、r list)弹出参数编辑框,可对参数进行赋值和更新策略设置。 VuGenerator组件l脚本参数化 将Excel中事先准备好的参数数据复制到参数列表中(点击edit with notepad) 根据实际业务类型设置不同的参数更新策略 假设现在要测试的业务场景是180人并发3500单,参数列表的值可以如此设置: 演示VuGenerator组件l脚本参数化 注:Runtime-settings其他一些设置可以参考相关书籍l 添加事务 事务是指用户在客户端做一种或多种业务所需要的操作集,通过事务函数可以统计用户操作的响应时间,事务响应时间是用户请求的开始时间和服务器返回内容到客户时间的差值。 结

10、合当前业务,可以将用户操作划分为一个事务: 核销接口发码 橙色Pose返现VuGenerator组件l 添加事务 分别在脚本的一个事务前后加入事务开始点和结束点。注意 事务的开始点和结束点都是配对的。 添加事务可以通过主菜单 下 INSERT-START TRANSACTION,END TRANSACTION或者菜单栏图标 (演示)。 VuGenerator组件l 添加集合点 集合点函数主要用于让用户在同一时间点上进行操作来测试系统并发处理的能力。 在核销发码接口测试业务场景下,如果需要考察系统对180个用户并发3500单接口处理能力,需要在发码前增加集合点。 注意:集合点通常需要与事务结合起

11、来运用。 添加集合点在主菜单 INSERTRENDEZVOUS (演示) VuGenerator组件l 添加集合点 现在 ,模拟用户行为的VUGenerator组件脚本创建及优化基本完成,更复杂的业务逻辑脚本还需要在今后的工作中不断的去学习积累。负载生成及监控controller组件 l选择执行脚本以橙色Pose为例负载生成及监控controller组件 l脚本联调负载生成及监控controller组件 l联调成功负载生成及监控controller组件 当虚拟用户脚本开发完成后,使用LR的 controller组件将执行这个脚本的用户从单人 转化为多人,从而模拟大量用户操作,形成负载。 而通过

12、对负载进行设计配置,便形成了场景。执行场景可以向服务器形成负载,验证各系统性能指标是否达到用户要求。负载生成及监控controller组件l设计场景 点击VUGenerator 组件的Tools-Create Controller Scenario 菜单进入目标场景 负载生成及监控controller组件l设计场景 目标场景(goal scenario) 主要是设置一个运行目标,通过Controller 的Auto load功能进行自动化负载,如果测试的结果达到目标,则说明系统的性能符合测试目标,否则就提示无法达到目标。 目标场景一般是在性能指标需求明确的情况下,由LR自动加压,但是无法设置集

13、合点策略。 假定现在要考察系统应对180人并发3500单的响应时间,在没有明确需求的情况下,可以考虑采取另一种场景设计方式 手工场景(Manual Scenario) 有关目标场景的策略设置,可以参考相关书籍。 负载生成及监控controller组件l设计场景 手工场景(Manual Scenario)通过设计用户的添加和减少过程,来模拟真实的用户请求模型,实现负载的生成。在性能需求不明确,且需要测试并发操作的情况下,可以通过手工场景进行负载测试和并发测试。 当前演示(180人并发3500单)采用手工场景进行设计 场景计划 及组计划 负载生成及监控controller组件l设计场景 Real

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

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

16、双击stop vusers 每一秒2个用户逐渐退出负载生成及监控controller组件l设计场景 负载生成及监控controller组件l监控场景 场景运行时需要进行对相关图表进行监控以进行分析。Scenario groups 该图表主要显示当前运行用户数、等待用户数、处于集合点用户数 、失败用户数等。含义: 80个用户处于挂起状态,40个用户初始化,60个用户准备就绪。负载生成及监控controller组件l监控场景 Scenario status(场景状态) 场景状态信息,包括运行用户数、消耗时间、每秒点击数、通过/失败 事务数、错误信息 负载生成及监控controller组件l监控场景

17、 Available graphs(可用的图表)可以从该列表中拖取若干关心的指标放到右边的方格中一般我们比较关心的是trans response time(平均事务响应时间)、hits per second (每秒点击数)、unix resources (服务器资源利用)、throughput(吞吐量)等指标负载生成及监控controller组件l结果分析 吞吐量图含义:整个场景过程平均吞吐量为3827.015。负载生成及监控controller组件l结果分析 响应时间图含义:事件平均响应时间为2.498负载生成及监控controller组件l结果分析 点击率注:系统平均点击率为14.776负载生成及监控controller组件l结果分析 Transaction Summary图通过率:97.715%(pass事物数/总事物数)负载生成及监控controller组件l服务器资源占用率实时监控服务器资源占用率实时监控 负载生成及

温馨提示

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

评论

0/150

提交评论