




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、性能测试工具LoadRunner简介,蔚少旭 2012.4.1,性能测试相关术语、概念,性能(performance) :计算机系统或子系统实现其功能的能力。对计算机系统或子系统执行其功能的能力的度量。(例如:响应时间、吞吐量、事务数等) 性能测试(Performance testing):是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。 负载测试(Load Testing):通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。 压力测试(Stress Testing):是对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不
2、能接收的性能点,来获得系统能提供的最大服务级别的测试。例如测试一个 Web 站点在大量的负荷下,何时系统的响应会退化或失败。 容量测试(Volume Testing):确定系统可处理同时在线的最大用户数。,性能测试相关术语、概念,并发测试(Concurrency testing):主要指当测试多个用户并同时访问同一个应用程序、同一个模块数据记录时是否存在死锁或其他性能问题,几乎所有的性能测试都会涉及并发测试。(*并发用户数的计算) 强度测试、稳定性测试、疲劳度测试、大数据量测试、配置测试、峰谷测试、异常测试等等。 事务 场景 集合点 参数化 思考时间,性能测试相关术语、概念,TPS 吞吐量 资
3、源利用率 响应时间 在线用户数 并发用户数,性能测试的目的,性能测试的目的是为了验证软件系统是否能够达到用户提出的性能指标(或通过分析获得),同时发现软件系统中存在的性能瓶颈,从而进行优化整个系统性能的目的。 包括以下几个方面 1、评估系统的能力 2、识别系统中的弱点 3、系统调优 4、验证可靠性和稳定性,问题 LoadRunner是什么? LoadRunner能做什么? 为何使用LoadRunner? 如何使用LoadRunner?,Mercury Interactive(MI)公司开发的一套预测系统行为和性能的工业标准级负载测试工具。,用于测试应用程序的性能。 在可控制的峰值负载条件下测试
4、系统。,轻松创建虚拟用户 创建真实的负载 大量实时监测器 精确分析结果 自动重复测试 支持最广泛的协议,Load runner的工作原理,代理(Proxy)是客户端和服务器端之间的中介人,LoadRunner就是通过代理方式截获客户端和服务器之间交互的数据流。 1)虚拟用户脚本生成器通过代理方式接收客户端发送的数据包,记录并将其转发给服务器端;接收到从服务器端返回的数据流,记录并返回给客户端。 这样服务器端和客户端都以为在一个真实运行环境中,虚拟脚本生成器能通过这种方式截获数据流;虚拟用户脚本生成器在截获数据流后对其进行了协议层上的处理,最终用脚本函数将数据流交互过程体现为我们容易看懂的脚本语
5、句。 2)压力生成器则是根据脚本内容,产生实际的负载,扮演产生负载的角色。 3)用户代理是运行在负载机上的进程,该进程与产生负载压力的进程或是线程协作,接受调度系统的命令,调度产生负载压力的进程或线程。 4)压力调度是根据用户的场景要求,设置各种不同脚本的虚拟用户数量,设置同步点等。 5)监控系统则可以对数据库 、应用服务器、服务器的主要性能计数器进行监控。 6)压力结果分析工具是辅助测试结果分析。,性能测试的准备工作,深入了解系统功能 深入了解系统架构 设计性能测试用例 准备基础数据和测试数据,Vugen LoadRunner 用 Vuser 模拟实际用户的操作。 开发Vuser脚本的过程:
6、 生成脚本-增强、编辑脚本-配置运行时设置-调试、运行脚本,Vugen 增强、编辑脚本 事务(Transaction) 集合点(Rendezvous ) 关联 检查点(Enable Image and text check) 其它(注释、thinktime、优化等),为了衡量某个任务的性能,需要在该任务的开始和结束位置插入事务。每个事务度量服务器响应指定的 Vuser 请求所用的时间。,LoadRunner使用,Vugen 调试、运行脚本 参数化 “Select next row ”有以下几种选择:多个VU如何取值 Sequential:按照顺序一行行的读取。每一个虚拟用户都会按照相同的顺序读
7、取 Random:在每次循环里随机的读取一个,但是在循环中一直保持不变 Unique :每个VU取唯一的值。注意:使用该类型必须注意数据表有足够多的数。 Same Line As 某个参数(比如Name):和前面定义的参数Name 取同行的记录。通常用在有关联性的数据上面。 “Update value on”有如下几种选择:多次迭代如何取值 once在所有的反复中都使用同一个值, each iteration则每次反复都要取新值, each occurrence则只要发现该参数就要重新取值,也就是如果一个action中有多个该参数,每遇到一个就要重新取一个值。,11,LoadRunner使用,
8、Controller 场景类型 Manual Scenario:手动设置场景,这项下面还可以设置为每一个脚本分配要运行的虚拟用户的百分比,可在Controller的Scenario菜单下设置。 GoalOriented Scenario:如果测试计划是要达到某个性能指标,比如:每秒多少点击,每秒多少transactions,能到达多少VU,某个Transaction在某个范围VU(5001000)内的反应时间等等,那么就可以使用面向目标的场景。,12,LoadRunner使用,Controller 场景计划(Schedule) 以Manual Scenario为例:,13,LoadRunner
9、使用,Controller 集合点策略,14,LoadRunner使用,IP欺骗 网卡的IP地址是怎么获取的。 多机联合测试 Scenario ScheduleGeneratorsAddConnect(关注:Status),小问题,脚本中的Init、Action、End三个部分有什么区别? 在运行时设置中设定迭代次数或在执行计划中设置了场景持续时间后,Init和End中的部分将只执行一次,不会参与迭代,只有Action中的脚本会重复执行。 只有在Action中才能够添加事务和集合点,在Init和End中不能添加。 通常将初始化/释放资源,或者只需要执行一次的代码放在Init和End中。如登录、
10、退出,或 打开/关闭数据库、打开/关闭文件等。,16,小问题,一个Action是一个事务吗? 在运行时GeneralAutomatic Transactions中可以进行选择,第一项就是默认的,一个Action就是一个事务,选择第二项时,就是每一个步骤都是一个事务,小问题,如何进行带宽模拟? 在运行时NetWorkNetWork Speed中可以进行选择,模拟各种带宽情况下,对服务器的请求,带宽越大,对服务器的压力越大。,小问题,Total Throughput(bytes): 在整个测试过程中,从服务器返回给客户端的所有字节数量。 吞吐率吞吐量/测试时间 Total Hits: 按照客户端向
11、后台发起了多少次请求进行计算(记住,不是点击了页面多少次,而是看页面中的引用的图片或视频有多少个,Total Hits图片数量+1)。 点击率点击量/测试时间,小问题,如何进行手动关联 手动关联的执行过程大致如下: 使用相同的业务流程和数据,录制两份脚本 使用WinDiff工具或者通过Tree View视图找出需要关联的部分 使用web_reg_save_param函数手动建立关联 将脚本中有用到关联的部分,以参数取代,20,小问题,如何实时显示当前的正回放的操作? Tools-General Options-DisplayShow browser during replay选择即可,小问题,
12、为什么无法监控系统的资源情况? 如果是Windows操作系统,则必须保证有系统管理员权限。先使用系统管理员身份访问该服务器(机器名)一次,在LoadRunner中重新添加Windows性能计数器即可。 如果是Unix操作系统,则必须确保rstatd进程已启动。,22,小问题,运行脚本后,在运行日志中显示“Pass”是否表示脚本执行成功? 脚本运行状态为“Pass”,表示服务器返回的Http状态为正常,但并不能说明脚本所完成的操作一定如你所期望的那样。你还需要通过其它方式来确保脚本执行的正确性,如在脚本中添加文本检查点、图像检查点、查看应用系统的日志以及查看数据库等。,23,小技巧,Http协议
13、中的两种录制方式如何选择? 1 基于浏览器的应用程序推荐使用HTML-based Script 2 不是基于浏览器的应用程序推荐使用 URL-based Script。 3 如果基于浏览器的应用程序中包含了 JavaScript 并且该脚本向服务器产生了请求,比如DataGrid 的分页按钮等,也要使用URL-based 方式录制 4 基于浏览器的应用程序中使用了 HTTPS 安全协议,使用URL-based 方式录制,24,小技巧,由于在 VuGen 脚本中使用最多的还是字符串,所以字符串函数在脚本中使用非常频繁。具体的语法请参考帮助说明。 strcmp 比较两个字符串 strcat 连接两
14、个字符串 strcpy 拷贝字符串 注意:在VuGen 中,以char*声明的字符串是只读的,如果试图给char*类型的字符串赋值的话,编译会通过,但在运行时会产生“Access Violation”的错误。解决这类问题,就是把字符串声明为字符数组,比如char100。,小技巧,每次在Controller中运行一个场景时,LR都会把返回结果保存在指定的目录下,场景运行结束后,你可以在该目录中找到一个扩展名为“lrr”的文件,双击这个文件就可以在Analysis中看到在本次场景运行过程中LR收集到的各种信息。但是每次在Analysis中打开返回结果时,LR都要去ACCESS数据文件中读取数据,然
15、后初始化图表,耗时太长。 解决办法:将返回结果保存成Session保存成Session可以将当前Analysis中的所有内容以文件的形式保存下来,下次打开Session(扩展名为“lra”的文件)时LR直接读取这些文件,并在Analysis中还原为最近一次保存的状态,比直接打开返回结果快多了。,26,27,打开LoadRunner运行日志,帮助调试脚本。把所有响应日志都打印出来的方法(默认情况下是不打印全部日志的):Runtime SettingsGeneralLog,将Extended log中的选项打勾。如果需要在controller中查看vuser的日志,同样可以在Runtime Settings里设置。 如果在录制的过程中有一些多余的操作,在实际的回放和测试时不需要,因此不需要录制的(如点击页面上的“下一页”等),可点暂停键暂
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文化IP开发师岗位面试问题及答案
- 数据仓库开发工程师岗位面试问题及答案
- 江西省赣州市四校协作体2025年高二下化学期末监测试题含解析
- 河南省辉县一高2025届高一化学第二学期期末复习检测试题含解析
- 民工工资管理暂行办法
- 国企资产转让管理办法
- 北京教师处境管理办法
- 就业创业指导的新策略
- 公园管理良策管理办法
- 公墓收费管理办法贵州
- 超声波式热量表超声波热量表
- 剑桥Think第一级Unit+1+Welcome课件
- 报告流动式起重机械定期检验自检报告
- 党组织关系介绍信(标准版)
- 腺垂体功能减退症诊疗规范内科学诊疗规范诊疗指南2023版
- 《安徽省工伤职工停工留薪期分类目录》
- 北师大版八年级上册物理(基础版)(全册知识点考点梳理、重点题型分类巩固练习)(家教、补习、复习用)
- GB 2762-2022食品安全国家标准食品中污染物限量
- GB/T 31776-2015车用甲醇汽油中甲醇含量检测方法
- 工程力学基础(讲义)
- 心电图报告的书写规范化培训课件
评论
0/150
提交评论