性能测试及loadrunner入门培训-张小燕

上传人:今*** 文档编号:107742410 上传时间:2019-10-20 格式:PPT 页数:51 大小:1.28MB
返回 下载 相关 举报
性能测试及loadrunner入门培训-张小燕_第1页
第1页 / 共51页
性能测试及loadrunner入门培训-张小燕_第2页
第2页 / 共51页
性能测试及loadrunner入门培训-张小燕_第3页
第3页 / 共51页
性能测试及loadrunner入门培训-张小燕_第4页
第4页 / 共51页
性能测试及loadrunner入门培训-张小燕_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《性能测试及loadrunner入门培训-张小燕》由会员分享,可在线阅读,更多相关《性能测试及loadrunner入门培训-张小燕(51页珍藏版)》请在金锄头文库上搜索。

1、性能测试及 LoadRunner入门,上海久彰电子商务有限公司 张小燕 2016年3月30日,内容概述,性能测试 概要介绍 性能测试工具 使用LR VuGen 创建测试脚本 使用LR controller创建运行场景 监控场景及结果分析,性能测试概要介绍,定义 : 性能测试是指在一定的负载情况下,系统的响应时间等特性是否满足特定的需求。 性能指标: 对于一个应用系统,需要监控的性能指标主要有以下三个: 响应时间、吞吐量、服务器资源占用率,响应时间反映完成某个业务所需要的时间,比如从提交登录按钮到服务器返回登录成功信息所需时间是1秒,那么登录这个操作的响应时间就是1秒。 吞吐量反映单位时间内系统

2、所能完成的某个操作(事务)数,比如系统支持1000人同时登录,且平均响应时间为0.5秒,则系统的吞吐量为2000次(登录)/秒 服务器资源占用反映在负载条件下系统的资源利用率,主要是指cpu的占用率、内存使用率等。一个优秀的系统应能够在一定的成本约束条件下尽可能的降低资源占用率。 因为系统最终是要面向客户的,因此响应时间往往是客户最为关心,也是对系统性能好坏最直观的评价,一般情况下,用户所作的操作响应时间应在5秒之内才被接受。目前项目测试下来,橙色Pose 200用户并发1万单响应时间在2.133s,系统性能较好。,性能测试工具,由于性能测试往往需要模拟大量用户的并发操作,如果采用人工方式,耗

3、资将十分巨大而且并不可行,因此,往往采用工具来执行,性能测试的工具主要有: Loadrunner 预测系统行为和性能的负载测试工具 Jmeter Apache组织开发的基于Java的压力测试工具 WEBLODE RadView公司推出的一个性能测试和分析工具 目前主流的性能测试工具是HP公司的loadrunner(下文简称LR),本文将主要介绍应用LR 进行性能测试的基本方法。,使用LR进行性能测试的一般步骤,在VuGenerator组件中进行用户行为模拟 在Controller组件中实现负载生成及监控 在Analysis中进行数据收集分析,即脚本实现 虚拟场景 结果分析,在VuGenerat

4、or组件中进行用户行为模拟,报文 脚本 回放验证脚本 参数化使得脚本动态运行 添加事务捕获响应时间 添加集合点形成并发,6步,VuGenerator组件,报文 报文转换:(转换规则:1. “;2. uu。) 接口规范http协议 一般选择post方法 ,想到web_submit_form()和web_submit_data()两个函数,提交表单到某个页面;web_custom_request()是一个可以用于自定义http请求的“万能”函数,具有web_link()、web_url()、web_submit_data()函数的功能,可以自由定义需要的http的get和post请求。 需要写接口

5、测试的脚本。,VuGenerator组件,web_reg_save_param 语法和使用 语法 2.示例,VuGenerator组件,web_custom_request()函数 语法 Body,3.事例,VuGenerator组件,接口测试脚本,VuGenerator组件,图中的“URL=?”输入你所需要测试报文中的网址。如: CodeSend 发码: http:/172.28.250.57:16070/Verify/sand/CodeSend; CodeVerify 核销: http:/172.28.250.57:16070/Verify/sand/CodeVerify; GetCode

6、 查询: http:/172.28.250.57:16070/Verify/sand/GetCode。 橙色Pose: http:/192.168.22.136:8080/marketing/remote/httpInterface。,VuGenerator组件,2.图中的“json=?”输入转换好格式的报文。如: json=“mid“:“,“apiName“:“,“phoneNumber“:“15618771111“,“saleChannelNo“:“10001“,“orderId“:“20160307“,“orderDate“:“20160307135542“,“smsFlag“:“0“,

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

8、试脚本中找到orderId字段,orderId值就是我们输入的值,按住右键选中,点击replace with a parameter 。,VuGenerator组件,脚本参数化 在弹出的创建参数栏中,给参数设定个名称,点击OK,参数创建完成 ,字体变为紫色。实际项目中核销发码接口参数名为orderid,橙色Pose参数名为ord,参数名一般设置成英文就可以。,VuGenerator组件,脚本参数化 点击菜单栏的参数列表按钮 (open parameter list)弹出参数编辑框,可对参数进行赋值和更新策略设置。,VuGenerator组件,脚本参数化 将Excel中事先准备好的参数数据复制到

9、参数列表中(点击edit with notepad) 根据实际业务类型设置不同的参数更新策略 假设现在要测试的业务场景是180人并发3500单,参数列表的值可以如此设置:,演示,VuGenerator组件,脚本参数化 注:Runtime-settings其他一些设置可以参考相关书籍 添加事务 事务是指用户在客户端做一种或多种业务所需要的操作集,通过事务函数可以统计用户操作的响应时间,事务响应时间是用户请求的开始时间和服务器返回内容到客户时间的差值。 结合当前业务,可以将用户操作划分为一个事务: 核销接口发码 橙色Pose返现,VuGenerator组件,添加事务 分别在脚本的一个事务前后加入事

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

11、erator组件脚本创建及优化基本完成,更复杂的业务逻辑脚本还需要在今后的工作中不断的去学习积累。,负载生成及监控controller组件,选择执行脚本,以橙色Pose为例,负载生成及监控controller组件,脚本联调,负载生成及监控controller组件,联调成功,负载生成及监控controller组件,当虚拟用户脚本开发完成后,使用LR的 controller组件将执行这个脚本的用户从单人 转化为多人,从而模拟大量用户操作,形成负载。 而通过对负载进行设计配置,便形成了场景。执行场景可以向服务器形成负载,验证各系统性能指标是否达到用户要求。,负载生成及监控controller组件,设

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

13、al Scenario) 有关目标场景的策略设置,可以参考相关书籍。,负载生成及监控controller组件,设计场景 手工场景(Manual Scenario)通过设计用户的添加和减少过程,来模拟真实的用户请求模型,实现负载的生成。在性能需求不明确,且需要测试并发操作的情况下,可以通过手工场景进行负载测试和并发测试。 当前演示(180人并发3500单)采用手工场景进行设计 场景计划 及组计划,负载生成及监控controller组件,设计场景,Real world schedule 真实场景模拟,通过反复添加start user,duration, stop-user的过程可形成波浪式的负载,

14、负载生成及监控controller组件,设计场景,Real world schedule真实场景可应对需求复杂的业务场景,演示中采用Real world schedule真实场景,负载生成及监控controller组件,设计场景,Basic schedule 基本场景模式只能设置一次性加压过程,负载生成及监控controller组件,设计场景 设计用户初始化方式,双击initialize Action,这里一般选择第一项即可,即一次性初始化所有虚拟用户,负载生成及监控controller组件,设计场景 设计负载加压策略,双击start vusers,一般选择周期负载增加方式,以免由于一次负载增

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

16、oller组件,监控场景,场景运行时需要进行对相关图表进行监控以进行分析。,Scenario groups 该图表主要显示当前运行用户数、等待用户数、处于集合点用户数 、失败用户数等。,含义: 80个用户处于挂起状态,40个用户初始化,60个用户准备就绪。,负载生成及监控controller组件,监控场景,Scenario status(场景状态) 场景状态信息,包括运行用户数、消耗时间、每秒点击数、通过/失败 事务数、错误信息,负载生成及监控controller组件,监控场景,Available graphs(可用的图表) 可以从该列表中拖取若干关心的指标放到右边的方格中,一般我们比较关心的是trans response time (平均事务响应时间)、hits per second (每秒点击数)、unix resources (服务器资源利用)、throughput(吞吐量)等指标,负载生成及监

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号