为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

性能测试工具

2011-02-12 50页 ppt 8MB 65阅读

用户头像

is_752281

暂无简介

举报
性能测试工具null性能测试工具性能测试工具使用LoadRunner进行性能测试张中华OutlineOutline创建基于Web应用的自动化压力测试制定计划录制脚本定制事务参数化增加 检查点设计 测试场景高级应用: 问题和解决方案脚本录制和回放常见问题及解决方案数据归属关系动态变量基于Web应用的压力测试基于Web应用的压力测试概述目标目标理解Web应用的压力测试中所面临的问题 明确一个LoadRunner专家的职责 学习利用LoadRunner进行压力测试为什么要对Web应用进行压力测试?为什么要对Web应用进行压力测试?Web应用失败...
性能测试工具
null性能测试工具性能测试工具使用LoadRunner进行性能测试张中华OutlineOutline创建基于Web应用的自动化压力测试制定录制脚本定制事务参数化增加 检查点设计 测试场景高级应用: 问和解决脚本录制和回放常见问题及解决方案数据归属关系动态变量基于Web应用的压力测试基于Web应用的压力测试概述目标目标理解Web应用的压力测试中所面临的问题 明确一个LoadRunner专家的职责 学习利用LoadRunner进行压力测试为什么要对Web应用进行压力测试?为什么要对Web应用进行压力测试?Web应用失败的代价是巨大的 决不仅仅是手指点几下而已 增强应用部署的信心 通过压力测试可以保证应用在真实环境下的性能和功能Web应用的功能测试和性能测试Web应用的功能测试和性能测试功能测试压力测试执行提交后检查业务处理程序是否正确功能性检查2000个并发的点击是否会导致系统崩溃?系统稳定性事务处理的响应时间是否符合需求?系统性能检查系统在大负载情况想业务处理流程是否正确大负载下系统的功能性手动测试存在的问题手动测试存在的问题是否有足够的测试资源? 测试人员 客户机如何调度和同步测试用户?如何搜集和分析测试结果?如何完成回归测试?所有人注意:点击按钮LoadRunner的解决方案LoadRunner的解决方案利用图表工具分析测试结果利用录制的脚本进行回归测试运行大量的“Virtual Users”在不同的机器上利用 “Virtual Users”代替实际测试人员通过“Controller”管理“ Vusers”LoadRunner的解决方案LoadRunner的解决方案支持多种协议和APILoadRunner的解决方案LoadRunner的解决方案能够对多种Server和资源进行监控 Web Servers Web Application Servers Database Servers System ResourcesLoadRunner的解决方案LoadRunner的解决方案产生压力和搜集测试结果生成用于“Controller”部署的“ Vusers”通过图表分析工具来编译和显示测试结果LoadRunner的工作流程LoadRunner的工作流程系统 性能调优NOTE: 这是LR的一个典型工作流程。为便于理解这个流程,有些步骤将按照 不同的顺序来介绍。压力测试的人员分工压力测试的人员分工提供被测系统业务流程方面的建议 Database性能专家数据库性能调优LoadRunner 专家Web Server 性能专家项目经理业务专家web server性能调优管理Web站点的执行在被测系统上产生大用户量的负载关键词关键词NOTE: “Action files” 将在下面讨论关键词关键词NOTE: 我们会频繁的提到这个关键词压力测试方案制定压力测试方案制定目标目标压力测试前需要搜集和准备哪些资料 这些资料可以从什么地方获取 这些资料的组织技巧 在制定测试方案时如何运用这些资料LoadRunner的工作流程LoadRunner的工作流程1.1 获得系统使用信息1.1 获得系统使用信息目的 确认需要模拟的业务流程的优先级 为实施压力测试提供必要的信息 可以从下列文件中获得和显示系统使用信息: 任务分配图 事务统计文件 用户统计文件系统使用信息的分析系统使用信息的分析任务分配图 有哪些任务? 同一时间内有多少次操作? 事务统计文件 事务平均值、和峰值是多少? 数据库连接是多少? 如果任务失败会产生多少业务风险? 用户统计文件 每个真实用户会执行多少任务? 不同任务在每个真实用户中的分配比例? 获得系统使用信息获得系统使用信息网上书店 (一天, 几千用户)浏览购物例: 任务分配图获得系统使用信息获得系统使用信息内部订单处理流程 (高峰日, 600 用户)例:任务分配图获得系统使用信息获得系统使用信息哪些业务流程可以进行自动化测试?选择:例:事务统计文件获得系统使用信息获得系统使用信息决定哪些业务流程能够执行自动化测试 了解哪些业务是相互关联的 (数据关联)确定每天的压力峰值的时间 峰值持续时间 每月、每季度或每年压力峰值的天数 决定需要模拟的业务流程和用户信息的使用LoadRunner的工作流程LoadRunner的工作流程总结总结搜集和分析系统使用信息 任务分配图 事务统计文件 用户统计文件 准备Web应用的业务逻辑文档 确定可以执行自动化测试的业务流程创建虚拟用户: ACTION FILES创建虚拟用户: ACTION FILES目标目标创建“ action file” 回放“Vuser”和检查运行结果 基于测试方案设计“Vuser”关键字关键字VuGen获取Http协议创建虚拟用户VuGen获取Http协议创建虚拟用户WEB 服务器WEB浏览器公网/外网/内网HTTPVuGen数据库服务器LoadRunner的工作流程LoadRunner的工作流程录制用户操作脚本录制用户操作脚本启动 VuGen工具 点击“录制”按钮 输入 URL,选择“OK”录制用户操作脚本--简单说明录制用户操作脚本--简单说明VuGen 中的脚本分为三部分:vuser_init、vuser_end 和Action 其中vuser_init 和vuser_end 都只能存在一个,不能再分割,而Action 还可以分成无数多个部分(通过点击New 按钮,新建ActionXXX) 在录制需要登陆的系统时,我们把登陆部分放到vuser_init 中,把登陆后的操作部分放到Action 中,把注销关闭登陆部分放到vuser_end 中如果需要在登陆操作设集合点,那么登陆操作也要放到Action 中,因为vuser_init 中不能添加集合点 在重复执行测试脚本时,vuser_init 和vuser_end 中的内容只会执行一次,重复 执行的只是Action 中的部分。 Optional itemOptional item基于浏览器的应用程序推荐使用HTML-based Script 不是基于浏览器的应用程序推荐使用URL-based Script 如果基于浏览器的应用程序中包含了JavaScript 并且该脚本向服务器产生了请求,比如分页按钮等,也要使用URL-based 方式录制 基于浏览器的应用程序中使用了HTTPS 安全协议,使用URL-based 方式录制录制用户操作脚本录制用户操作脚本录制用户操作脚本录制用户操作脚本执行一个业务流程录制用户操作脚本录制用户操作脚本执行一个业务流程录制用户操作脚本录制用户操作脚本执行一个业务流程录制用户操作脚本录制用户操作脚本选择“停止”按钮,结束业务流程录制Virtual User 回放模式Virtual User 回放模式关于用户操作文件关于用户操作文件每一步表式一个操作 用户的实际操作 一个 LoadRunner的 “事务*” 或者是 “确认检查点*” 每一步都有一个图标表示NOTE: “事务”和“检查点”将在后续课程中讨论Think TimesThink Times模拟用户在实际操作时使用的时间 录制过程中由 VuGen 插入NOTE: 在controller中,默认状态是 “Play think times as recorded.”LoadRunner的工作流程LoadRunner的工作流程这一步在上述每个阶段完成后都要执行一次虚拟用户“ Run-time” 设置虚拟用户“ Run-time” 设置回放时显示页面 提示结果保存目录 回放时保存关联信息 设置页面快照比较方式普通设置虚拟用户“ Run-time” 设置虚拟用户“ Run-time” 设置建立一个结果日志文件 将日志记录方式设置为标准“Run-Time”设置回放 Action File回放 Action File点击工具栏上图标确认虚拟用户正确执行确认虚拟用户正确执行确认虚拟用户正确执行确认虚拟用户正确执行查看测试结果确认虚拟用户正确执行确认虚拟用户正确执行检查回放时访问的 Web 页面是否正确确认虚拟用户正确执行确认虚拟用户正确执行检查执行日志切换到日志执行窗口 日志顺序显示每一步的执行和结果总结总结用户所有的业务操作都记录在“Action Files”中 登陆和退出操作可以不包括在“Action Files” 多个“Action Files”可以由一个虚拟用户执行 通过菜单中的“ Options Settings” 和“Run-Time Settings ”来控制虚拟用户的操作。 可以在“执行日志”和“Result File ”中查看回放结果创建虚拟用户: 事务创建虚拟用户: 事务目标目标LoadRunner 中的事务的含义 在“action file”中使用事务的重要性 “action file”的哪些地方需要加入事务 如何执行 LoadRunner 事务LoadRunner 的工作流程LoadRunner 的工作流程关键词关键词为什么在 LR中加Transactions?为什么在 LR中加Transactions?“Transactions” 是 LoadRunner 度量系统性能指标的唯一手段 用于度量高风险业务流程的性能指标 能够度量在一组操作中每一步的性能指标 实现了不同压力负载下的性能指标对比 帮助定位性能瓶颈Transactions是度量什么的?Transactions是度量什么的? “LoadRunner transaction”用于度量一个或者多个业务流程的性能指标 建立LoadRunner Transactions建立LoadRunner Transactions度量登陆Transaction 1Transaction 2度量所有登陆后的操作Transaction 3度量订单保存 – 一个基于数据库的操作,也是一个主要的“LoadRunner transaction”例子增加 Transactions 增加 Transactions 点击工具栏上 Start Transaction 图标输入 Transaction名称, 点击OK录制过程中增加 Transactions增加 Transactions点击停止按钮完成需要被度量的业务流程录制过程中增加 Transactions增加 Transactions选择事务状态 LR_AUTO – 自动检查事务的状态 LR_PASS / LR_FAIL – 通过增加代码手工检查事务状态增加 Transactions增加 Transactions 录制完成后 选择工具栏上的相应按钮 增加事务的步骤和录制过程中是一致的LoadRunner 的工作流程LoadRunner 的工作流程确认正确执行确认正确执行 点击回放按钮Automatic TransactionsAutomatic Transactions度量每一步的性能指标 比较各个步骤之间的性能指标 比较整个业务流程内的各个步骤的性能指标总结总结使用LoadRunner事务可以度量: 业务流程中每一步所花费的时间 整个业务流程所花费的时间 业务流程中每一步的性能指标可以自动度量 可以在录制过程中和录制完成后增加LoadRunner事务 利用 “automatic LoadRunner transactions” 可以很方便的度量每一步的性能指标创建虚拟用户: 参数化创建虚拟用户: 参数化目标目标脚本回放中可能会遇到的问题 参数化的好处 如何进行参数化 如何使用数据文件问题问题虚拟用户回放失败 由于没有模拟真实条件,测试结果失去意义虚拟用户输入相同的数据虚拟用户输入相同的数据数据库里已有订单 1234 !Server02/14/99 是昨天!数据已经在缓存里!解决方法解决方法参数化关键词关键词参数化的目的参数化的目的PLACEHOLDERPLACEHOLDERPLACEHOLDERLoadRunner的工作流程LoadRunner的工作流程确定参数化字段确定参数化字段哪些字段需要一个当前时间? 哪些字段要求是一个唯一值? 哪些字段来自数据库? 哪些字段的值受其他字段的约束?违反时间约束的例子违反时间约束的例子Order date 02/02/2006Web浏览器(客户端)Order date 02/02/2006Order date 02/02/2006Order date 02/02/2006违反唯一性约束的例子违反唯一性约束的例子Book order #00115Book order #00115第一次运行这个订单号是先前 录制下来的Web浏览器(客户端)对唯一性约束的字段参数化对唯一性约束的字段参数化Web浏览器(客户端)Book order #00975Book order #00975Book order #00233Book order #00233第一次运行第二次运行相同的数据不能施加预期的压力相同的数据不能施加预期的压力Web浏览器(客户端)Find book title The Sun Also RisesFind book title The Sun Also RisesFind book title The Sun Also Rises缓存第一次运行第二次运行通过参数化解决系统压力问题通过参数化解决系统压力问题Web浏览器(客户端)Find book title The Sun Also RisesFind book title The Great GatsbyFind book title The Sun Also RisesFind book title The Great Gatsby第二次运行第一次运行数据相互约束字段 – 未解决时数据相互约束字段 – 未解决时Web浏览器(客户端)Find author ShakespeareDisplay match MacBethDisplay MacBethFind author ShakespeareFind author DickensDisplay match MacBethDisplay MacBethFind author Dickens第一次运行第二次运行相互约束字段的参数化相互约束字段的参数化Web浏览器(客户端)Find author ShakespeareDisplay match MacBethDisplay MacBethFind author ShakespeareFind author DickensDisplay match Oliver TwistDisplay Oliver TwistFind author Dickens第二次运行第一次运行参数化的决策参数化的决策对于每一个字段,都要问一下 . . .是否需要当前时间?是否能从缓存中获得? 参数化 参数化 参数化是否需要唯一性约束?是否受其他字段的约束? 参数化 不需要参数化LoadRunner的工作流程LoadRunner的工作流程准备测试数据准备测试数据获得主要数据 从数据库提取 创建合法的业务流程数据 确定数据类型 通过业务专家获得08/08/2008 040498 Monday True Smith, Wm. $230.59从数据库提取数据从数据库提取数据数据库 服务器Willamette169.0012/12/99C04410034548449LoadRunner 的工作流程LoadRunner 的工作流程关键字关键字参数化数据参数化数据定位需要参数化的数据 (在测试方案阶段应该已经完成) 右键单击该步骤 选择 “Properties”打开需要参数化的数据的属性对话框参数化数据参数化数据单击需要参数化的数据 输入一个参数 名称 (或者从 下拉框中选择) 确认参数类型 为 "File"创建一个参数参数化数据参数化数据单击“Properties” 按钮 单击“Create” 按钮并确认数据文件已经被创建打开参数化对话框参数化数据参数化数据Parameter.dat 文件回保存在VUser的目录下打开数据文件选择“Edit”按钮,文件会被写字板打开参数化数据参数化数据在写字板窗口输入新数据 每输入一行数据后都要按回车键 保存数据并关闭写字板添加数据到文件 参数名 参数化数据参数化数据表中的数据就是文件中的数据 可以显示同一个数据文件中的多列数据文件中的数据将显示在参数化属性对话框选择数据读取方式选择数据读取方式顺序 随机 唯一 同其他行一样选择数据更新方式选择数据更新方式每次循环时更新 每次发生时更新 只更新一次数据替换方式详解 -- Sequential数据替换方式详解 -- SequentialEach Iteration Each Occurrence Once 数据替换方式详解 -- Unique数据替换方式详解 -- UniqueEach Iteration Each Occurrence Once 数据替换方式详解 -- Random数据替换方式详解 -- RandomEach Iteration Each Occurrence Once LoadRunner 的工作流程LoadRunner 的工作流程确认正确执行确认正确执行对于顺序替换方式, 循环数应该和数据行数相同 Run-Time Settings - IterationsRun-Time Settings - LogRun-Time Settings - Log选择扩展日志,选中 Parameter substitutionExecution LogExecution Log参数化数据的替换过程将会在执行日志中显示总结总结参数化的目的: 解决数据唯一性约束 解决当前时间约束 给服务器施加预期的压力 处理数据的相互约束 准备输入数据: 来自数据库 来自业务专家 通过“Run-Time Settings”控制虚拟用户的执行 日志 循环数场景:建立,运行和分析测试结果场景:建立,运行和分析测试结果目标目标完整压力测试的组成部分 如何创建和运行一个 LoadRunner场景 LoadRunner场景的执行过程 如何分析测试结果关键字关键字Scenario 结构示意图Scenario 结构示意图LoadRunner的工作流程LoadRunner的工作流程LoadRunner ControllerLoadRunner Controller场景执行前 场景设计 设置“ run-time configuration” 场景执行期间 运行大量并发用户 控制每个虚拟用户 (初始化, 运行, 暂停, 停止) 显示每个虚拟用户的状态 显示每个虚拟用户发出信息 监控服务器资源 场景执行完毕 搜集性能数据 运行结果分析工具 协助系统性能调优Controller负责控制 Vusers Controller负责控制 Vusers Remote Command LauncherControllerHost machineInitializeVusersRunStopAgentVusers Tab of the ControllerVusers Tab of the ControllerController TabsController TabsDesign tab 场景设计区,主要包括: 调度编辑 虚拟用户生成机 虚拟用户控制 运行时设置 Controller TabsController TabsRun Tab 场景执行区,主要包括: 虚拟用户控制 监控资源设置 实时监控显示LoadRunner的工作流程LoadRunner的工作流程场景执行过程场景执行过程场景目标具体含义并发用户数运行一个场景运行一个场景确认所有测试机上的Agent已经启动 确定保存测试结果的目录 初始化Vusers 运行Vusers确认场景中虚拟用户均能正常运行确认场景中虚拟用户均能正常运行概要分析场景执行过程场景执行过程场景目标并发用户数具体含义关键字关键字Top Time transactionsTop Time transactionsRun-time SettingsContentCheckLog点击 Enable verification checks选择 Standard log点击 Define each action as a transaction 点击 Define each step as a transactionMiscellaneousAutomatic Transactions 只在 LoadRunner Controller的图表和报告中体现,VuGen的 Execution Log不体现.增加新的图表增加新的图表Transaction Response Time - PercentileTransaction Response Time - Percentile“Action1_Transaction ”度量的是整个的业务流程,因此“Top Time Transactions”是“create_reservation”。 Action1_ Transactioncreate_ reservation场景执行过程场景执行过程场景目标并发用户数具体含义满载压力测试 --设置监控选项满载压力测试 --设置监控选项选择发送错误消息到输出窗口(否则弹出对话框将会中断运行)满载压力测试 --设置监控工具满载压力测试 --设置监控工具CacheCopy Read Hits % Data Map Hits %MemoryPage Faults/secServer work queuesBytes Transferred/sec Total Bytes/secCOUNTEROBJECTSystem% Total Processor Time File Data Operations/sec满载压力测试 -- Runtime Settings满载压力测试 -- Runtime SettingsNetworkBrowser Emulation check Emulate modem speed, and enter expected speedcheck Simulate browser cache check Download non-HTML resources Logselect Disable loggingcheck Define each action as a transaction check Define each step as a transactionMiscellaneous写日志也会占用系统资源,因此会导致测试结果不够准确。更加逼真的模拟实际工作环境尽管内容检查非常有用,但是在压力测试中并不是必须的。ContentCheckuncheck Enable verification checks Web Server 资源图表Web Server 资源图表点击分析总结报告中的链接,打开相应的图表。Web Server资源图表Web Server资源图表每秒点击率Transactions GraphTransactions Graph每秒事务数Transactions GraphTransactions GraphTransaction key事务响应时间场景执行过程场景执行过程场景目标具体含义并发用户数确定系统硬件和软件的极限承受能力 -- 过载压力测试确定系统硬件和软件的极限承受能力 -- 过载压力测试检测系统在超过设计压力的情况下是否稳定 典型的过载测试是设计压力的120% 检测系统能够承受的最大压力 执行过载测试时应使用和满载测试相同的“ run-time settings” 和“analysis tools”Cross Result GraphsCross Result Graphs30 Vusers25 Vusers100% load vs. 120% load总结总结The LoadRunner Controller 主要完成以下功能: 设计场景 运行虚拟用户 搜集性能指标 Scenarios(场景) 包括 测试机、 脚本,、虚拟用户和 性能监视器。 基于“LoadRunner Scenario” 执行完整的压力测试 初始化虚拟用户 测试结果分析LoadRunner 工作流程摘要LoadRunner 工作流程摘要系统性能调优 分析测试结果阶段 5
/
本文档为【性能测试工具】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索