版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Loadrunner性能测试总结目录Loadrunner性能测试总结 11. 性能测试简介 12. 性能测试分类 12.1. 负载测试 22.2. 压力测试 22.3. 配置测试 32.4. 可靠性测试 32.5. 基准测试 32.Loadrunner性能测试流程 43.性能需求分析 43.1.性能需求分析目标 43.2. 性能需求分析方法 43.3. 性能需求输出 54. 性能测试方案制定 54.1.性能测试方案制定的依据 54.2. 性能测试方案的内容 54.3. 性能测试方案模板 65. 性能测试用例 65.1. 性能测试用例编写依据 65.2. 性能测试用例内容 65.3. 性能测试用例模板 66.性能测试脚本生成 76.1.性能测试脚本生成准备 76.2.性能脚本录制 76.3.性能测试脚本回放 76.4.性能测试脚本完善 87.场景设计 98.场景监控 99.问题诊断及分析 910.数据搜集及分析 911.性能调优方向及方法 912.性能测试报告的编写 1012.1.性能测试报告的依据 1012.2.性能测试报告的内容 1012.3.性能测试报告的模板 1113.常见问题及注意事项 11性能测试简介性能定义是软件质量的一种特性,性能包括软件的时间特性和资源的消耗。可以通过性能测试,可以搜集吞吐量、平均事务影响时间、TPS、点击率、资源(CPU、内存、磁盘等)利用率、性能计数器等性能指标数据,了解软件最大可支持的并发数软件的最大处理能力软件在最大并发情况下,最长并发时间软件在最大并发情况下的处理错误能力软件在最大并发情况下软件和硬件的最优配置软件性能瓶颈软件调优方向通过发现软件性能缺陷,对软件进行调优(包括硬件、软件及服务器等的最优配置),确保软件运行的稳定性,提高客户使用软件的满意度,最终从性能方面保证软件的质量。性能测试分类性能测试根据不同的测试方法(比如根据不同的测试场景)和性能测试目标进行划分负载测试、压力测试、配置测试、可靠性测试和基准测试。负载测试负载的定义:负载即系统可承受的并发数(服务器可处理的客户端的请求数);负载测试的定义:负载测试是通过不断加压,直到系统超过预定指标(比如平均事务响应时间超过预定目标)或者部分资源已经达到饱和(比如服务器CPU利用率超高等),系统不能再加压为止;负载测试的目标:获取系统的最大负载能力(获取系统的最大吞吐量服务器正确处理客户端最大请求数);负载测试环境:在特定的场景中执行性能测试脚本;负载测试方法:对系统不断加压,直至系统超过预定指标或者部分资源已经达到饱和。压力测试压力测试的定义:压力测试就是系统已经达到一定饱和程度,使系统持续运行一段时间不报错的测试;压力测试目标:获取系统饱和程度下,系统稳定运行的最长时间;压力测试方法:在最大负载下,不断延长持续时间,直至系统超过预定指标或者报错等。配置测试配置测试的定义:通过调整系统的软硬件环境,了解各种环境对系统性能的影响,从而找到系统的最优配置;配置测试的目标:获取系统的软硬件环境的最优配置;配置测试的方法:在不同的测试环境下运行系统,通过对比分析,获取最优配置。可靠性测试可靠性测试的定义:系统在高并发情况下的容错能力的测试;可靠性测试的目标:系统在高并发情况下的容错能力;可靠性测试的方法:系统在高并发情况下,实时监控,报错后,系统的是否可以恢复运行。基准测试基准测试的定义:系统在一定的软硬件及网络环境下,模拟一定虚拟用户进行并发测试,记录测试结果打为基线和真实场景下的性能结果进行对比,查看是否达到性能调优效果;基准测试的目标:系统性能调优效果的验证;基准测试的方法:虚拟用户并发的性能结果和真实场景下的性能结果进行对比分析。2.Loadrunner性能测试流程3.性能需求分析3.1.性能需求分析目标通过分析系统的业务框架和及技术框架,获取系统运行的软硬件环境系统运行的高频率业务服务器吞吐量客户可接受的系统中各业务的响应时间性能需求分析方法类比法:如果该系统没有上线,就参照类似项目或者产品的性能需求指标;历史数据参考:如果系统已经上线,就参照历史数据建模,推算未来一段时间时间运行的性能指标;推算:系统试运行一段时间后,根据运行推广的数据进行推测性能指标;调研:直接向客户或者有经验的人士调研,获取性能需求指标;综合分析法:实际项目中,都是综合以上各种方法,获取系统运行的性能指标。性能需求输出性能测试工程师进行性能分析后,需要编写性能需求规格说明书。性能测试方案制定4.1.性能测试方案制定的依据性能测试工程师根据性能测试需求,制定合理的性能测试方案。性能测试方案的内容项目简介项目性能需求指标性能工具的选择性能测试计划性能测试环境性能测试方法性能测试内容性能测试方案模板性能测试模板见文档超链接:性能测试用例性能测试用例编写依据性能测试工程师根据性能需求规格说明书,编写性能测试用例。性能测试用例内容用例编号用例名称用例范围测试前置条件测试步骤预期目标测试执行情况性能测试用例模板性能测试用例模板见文档超链接6.性能测试脚本生成6.1.性能测试脚本生成准备选择脚本协议:通过VirtualUserGenerator自带的协议分析工具或者httpwatch等其他工具获取系统使用的协议,或者开发人员或技术文档(概要设计说明书、详细设计说明书等)中获取系统使用的协议,在脚本录制前,选择合适的协议进行录制;修改脚本录制设置:可以修改的内容为脚本语言、脚本格式、脚本属性、脚本数据格式扩展、网络端口映射和HTTP属性;分析系统架构:通过技术文档或者和开发工程师确认分析系统是B/S架构还是C/S架构;浏览器的选择:选择系统支持的浏览器,并设置为默认浏览器;选择脚本生成的部分:脚本有init、action和end三个部分,录制脚本时分段切换进行录取。6.2.性能脚本录制根据性能脚本录制向导进行录制脚本,把事务、集合点和检查点录制在脚本的action部分,init和end部分在脚本迭代执行时仅执行一次,仅做action迭代,故在脚本init和end部分不插入事务、集合点和检查点。6.3.性能测试脚本回放回放的目的:验证脚本录制的是否成功完善脚本回放失败的原因:脚本录制失败脚本中含有动态参数,需要参数化或者关联:因性能测试脚本录制时是截取浏览器和服务器交互的过程,而脚本回放或运行脚本是模拟浏览器和服务器进行交互,当再次按照原交互信息进行访问时,可能会因为服务器返回的动态信息不同服务器验证或者其他原因,导致回放失败。6.4.性能测试脚本完善参数化:为了更好的模拟真实业务场景,可以对一些业务等动态数据设置参数,参数类型多种,可以是文件格式也可以通过sql工具载入,为了方便管理,参数文件和脚本文件分离;关联:因再次访问服务器时,因服务器返回的ID或者其他一些动态数据,需要通过手动关联或者自动关联方式进行完善脚本;增加性能函数:通过loadrunner自带的一些脚本函数进行完善脚本;通过编程语言自定义:通过loadrunner可以支持的C语言、.NET语言或者java语言等来完善脚本。7.场景设计根据性能需求规格说明书和性能测试用例,设计脚本运行的各种场景。8.场景监控运行场景前,需要在controller中添加性能计数器,比如服务器、数据库服务器或者负载客户端等性能监控器进行实时监控和根据运行日志进行事后监控。也可以通过其他监控工具进行监控系统部分资源的性能情况。9.问题诊断及分析场景运行过程中,如果有报错信息,及时记录,并根据运行日志并做相应分析10.数据搜集及分析借助analysis分析工具对各场景运行结果进行交叉、关联综合分析,也可借助运行日志信息,定位系统性能瓶颈,并给出性能指标。11.性能调优方向及方法根据定位的系统瓶颈,综合分析,确定系统性能的调优方向及方法。12.性能测试报告的编写12.1.性能测试报告的依据根据controller在不同场景下的运行结果,利用analysis分析工具对数据和运行环境进行对比分析,自动生成loadrunner自带的性能测试报告。12.2.性能测试报告的内容项目背景项目概述性能测试目标性能测试人员性能测试工具性能测试需求性能测试方法性能测试场景性能测试结果性能测试数据分析性能测试结论性能测试调优建议性能测试附录脚本、场景、日志和运行结果文件12.3.性能测试报告的模板性能测试模板见文档超链接13.常见问题及注意事项loadrunner的安装流程及注意事项先安装英文版的loadrunner11;汉化;破解清空并输入最新的license;打开loadrunner中的controller验证是否成功破解;录制脚本时如何选择协议通过loadrunner自带的协议分析软件通过httpwatch等工具通过分析技术框架,向开发工程师确认通过技术文档查询脚本的组成部分及注意事项组成部分:init、action和end三个部分;注意事项:init和end部分中不能插入事务、集合点和检查点,仅允许在action中插入事务、集合点和检查点。如何解决录制脚本为空的情况把录制时选择的浏览器设置为默认浏览器。录制脚本形式的选择根据业务含义进行选择,一般选择html格式的脚本。如何建立事务根据性能测试用例,定义事务,并在录制脚本的过程中或者完善脚本的过程中插入事务,并结束事务,以事务为单位记录系统的相应时间。集合点的设置及策略的选择在录制脚本的过程中插入集合点在完善脚本的过程中可插入集合点集合点插入的位置在插入事务的前面在controller中选择集合策略检查点的设置及含义检查点在录制脚本的时候可以插入检查点在完善脚本的时候可以插入检查点在录制脚本的时候可以选择,自动生成检查点函数web_reg_find,比如生成页标题检查点函数或者子帧检查点函数插入检查点后,可以更好的验证事务是否操作成功,因为事务的结束并不意味着事务操作成功,为更好的记录事务影响时间检查点在事务结束函数之前插入回放脚本注意事项注意选择虚拟用户的运行方式,比如是线程运行还是进程运行注意脚本的思考时间的设置迭代次数的设置http超时设置参数的设置及应用应用情况:当录制的脚本有动态数据产生(可以录制两个不同的脚本进行对比分析)时,可以把有些动态数据定义为变量,比如用户名,密码,新增时,各业务动态数据等,变量值在参数列表中展示,取值方式,在参数列表中设定。参数类型:(1)file;(2)BPT;(3)custom;(4)Date/Time;(5)GroupName;(6)IterationNumber;(7)RandomNumber;(8)LoadGeneratorName;(9)Table;(10)UniqueNumber;(11)UserDefinedFunction;(12)UserID;(13)XML。语法格式:在参数列表中定义参数名称,选择参数类型,创建参数文件,设置取值方式,在脚本中用{参数名称}替换动态数据值。应用:在脚本中设定参数后,在脚本多次迭代运行时,虚拟用户可以从参数列表中获取不同的数值,尽可能真实地模拟虚拟用户的并发数据,也可以有效地避免唯一校验等各种问题。关联的使用场景、方式使用场景:当录制的脚本包含类似服务器返回ID等动态数据时,需要使用关联函数,先截取动态数据的值,再用截取的值,进行请求等交互性操作。一般情况下,客户端发起请求后,服务器会随机产生唯一标识的ID(适用于session),作为唯一性身份验证,再次发起请求,服务器会产生另外的ID,同一,session的ID相同,不同session不同,产生类似服务器返回的session的ID的动态数据时,就需要借助关联函数,否则,回放脚本再次发起会话请求时,就会因为服务器校验而报错。方式:手动关联:录制两个不同的脚本;用loadrunner自带的WDIFF工具进行比对两个脚本,找出动态数据,根据实际业务场景决定是否需要关联;在录制的脚本日志中或者用httpwatch等插件,找出动态数据的值及返回的左右边界;在动态数据产生之前位置手动插入关联函数web_reg_save_param(),并严格定义各参数的值,比如左右边界值(需要转义的地方,注意转义字符的使用),参数值的长度等;在脚本中把动态数据值用{参数名}进行替换;回放脚本,进行验证。录制中关联:录制脚本前在录制选项中设置选择系统自带的关联规则或者自定义关联规则。录制后关联:脚本录制完成后,自动扫描脚本中的关联,建立需要的关联规则。优化脚本常用的函数说明 web_set_max_html_param_len("256");lr_save_datetime("%Y-%m-%d%H:%M:%S",DATE_NOW+TIME_NOW,"ts");lr_output_message(lr_eval_string("Nowis{ts}"));*/web_save_timestamp_param("ts",LAST);lr_output_message("%s",lr_eval_string("{ts}"));场景的选择及设置依据:根据性能需求说明书和性能测试用例选择合适的场景;设置:选择场景模式(选择用户组Vuser组模式自动分配负载组虚拟用户或者百分比模式-适合负载均衡),设置虚拟用户数、初始化方式、起始方式、持续时间和停止方式等,其中包含场景中的计划、也包括组的计划;方式:手动创建场景:根据不同的性能需求需要,手动创建需要的场景(根据场景创建向导);目标场景:根据性能需求和场景创建向导,选择脚本,编辑场景目标,创建目标场景。负载生成器的应用可以通过负载生成器实现同一个controller控制多个不同的负载生成器(loadgenerator),可以是多个客户端的loadgenerator,也可以是通过IP欺骗生成本机的多个虚拟负载。负载均衡的原理及设置利用百分比模型,在多个客户端创建负载,用一个controller控制实现,均匀分配负载。如何用一个controller控制多个负载生成器(可在多台机器上配置)及注意事项在controller上添加多个负载生成器,负载生成器的名称是客户端IP的名称,必须连接成功,才可以实现;必须确保多个负载生成器网络是畅通的,controller所在的机器可以访问共享C盘,在运行窗口输入:\IP地址\$C。IP欺骗原理及设置原理:因同一IP多次访问服务器,防火墙会阻止,所以在运行脚本时,要启用IP欺骗。设置:先设置IP欺骗,增加IP段,重启电脑,在cmd——>dos模式下进行验证虚拟IP是否生效(ipconfig-all);在controller中启用专家模式和IP欺骗即可;使用完成后,在设置中释放虚拟IP,并重启电脑,在DOS环境下进行验证。如何添加度量在controller中选择相应的图,双击打开,在右侧的图中,选中图,右键,添加相应度量。执行测试脚本的注意事项检查脚本运行设置;检查负载生成器是否连接成功;检查运行的场景是否正确。监控注意事项及各指标注意事项:注意添加需要的性能指标;注意实时监控,有重要报错信息时,停止脚本的运行,分析错误;注意修改结果的路径。各指标:判断CPU瓶颈(1)
%processortime
平均值大于95(2)processorqueuelength大于2(大于处理器个数+1).可以确定CPU瓶颈(3)CPU空闲时间为零(zeropercentidleCPU)(4)过高的用户占用CPU时间(%UserTime)(5)过高的系统占用CPU时间(%PriviliagedTime:长期大于90%或者95%)备注:
%Usertime(processor_total)表示耗费CPU的数据库操作,如排序,执行aggregatefunctions等。如果该值很高,可考虑增加索引,尽量使用简单的表联接,水平分割大表格等方法来降低该值如果发现processorqueuelength显示的队列长度超过2,而处理器的利用率却一直很低,或许更应该去解决处理器阻塞问题,这里处理器一般不是瓶颈。判断内存瓶颈与内存泄漏(1)如果发生了内存泄漏,process\privatebytes计数器和process\workingset
计数器的值往往会升高,同时avaiablebytes的值会降低。(2)如果AvailableMbytes(剩余物理内存数)的值很小(4MB或更小),则说明计算机上总的内存可能不足,或某程序没有释放内存。定位磁盘瓶颈(1)%DiskTime
和Avg.DiskQueueLength
的值(应不大于组成物理磁盘的主轴数的1.5到2倍)很高,而PageReads/sec页面读取操作速率很低,则可能存在磁盘瓶径。(2)PhysicalDisk\DiskReads/secandDiskWrites/sec
大于20ms,则有可能磁盘瓶颈(3)Avg.Disksec/Transfer
盘中写入数据的平均时间,单位是秒,一般来说,定义该值小于15ms最为优异,介于15-30ms之间为良好,30-60ms之间为可以接受,超过60ms则需要考虑更换硬盘或硬盘的RAID方式了(4)DiskTransfers/sec
指在此盘上读取/写入操作速率。正常值<(DiskBytes/sec)/3,此值过大表示系统要求的IO速度已接近硬盘的最大速度,要更换更快的硬盘。
备注:如果使用RAID设备,%DiskTime计数器会指示大于100%的值。定位网络瓶颈
ByteTotal/sec
表示网络中接受和发送字节的速度,可以用该计数器来判断网络是否存在瓶颈(参考值:该计数器和网络带宽相除,<50%)
SQLServer相关(1)
SQLServer:CacheManage->CacheHitRatio
显示在高速缓存中找到数据的命中率。如果数值持续小于85%,则表示内存有问题。(2)
SQLServer:Locks->LockWaits/sec
显示在当前进程完成之前强制其他进程等待的每秒锁定请求的数量。如果该值始终大于0,则表示事务有问题。(3)SQLServer:Databases->Transactions/sec
每秒为数据库启动的事务数。综合判断:处理器队列堵塞判断方法:如果Processorqueuelength大于2,而处理器利用率一直很低,则存在处理器堵塞。处理器瓶颈判断方法:排除内存因素后,如果%processortime持续大于90%,并且%interrupttime的值持续大于15%,同时网卡和硬盘的值比较低,可以断定处理器负荷过重,无法满足业务增长需要,处理器是系统瓶颈点。(3)监视内存不足的状况,可以通过page/sec,AvailableMbytes、pageread/sec、pagefaults/sec等计数器的指标进行监控,还可以通过使用“页面交换”的频率来衡量。“页面交换”是使用称为“页面”的单位,将固定大小的代码和数据块从RAM移动到磁盘的过程,从而释放暂时不使用的空间,这些页面文件就是操作系统用来虚拟内存的硬盘空面。操作系统对于虚拟内存主要设置两点,即内存页面文件的大小和页面文件存放的位置,内存页面文件的大小就是设置虚拟内存最小和最大空间量,而页面位置则是设置虚拟内存使用哪个分区中的硬盘空间。频繁的页面交换将降低系统性能,如果系统“页交换”频繁,说明内存不足。通过调优配置减少页交换,将显著提高系统响应速度。(4)通过pages/sec指标判断是否存在内存问题,如果pages/sec持续高于几百,则有可能需要增加内存,以减少换页的需求,此时还应该进一步研究页交换活动。如果pages/sec指标过高(几百),而硬盘数据流量不高(几百kb/s)则可确定是内存不足问题,如果pages/sec指标较高(几百),而此时硬盘数据流量也很高(几千KB/S),则可以判定是磁盘问题。(5)通过availablembytes来判断是否存在严重内存泄漏问题,如果该值很小(<4M),则说明计算机上总的内存可能不足,或者某个程序始终占用而没有释放内存,系统存在严重的内存泄漏问题。(6)如果页面读取操作速率pagereads/sec指标的值很低,同时%disktime和avg.diskqueuelength的值却很高,则确定为磁盘瓶颈,但如果Avg.sidkq
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 茶双11宣传及营销方案
- 2026年化学工程专业知识技能大赛
- 2026年中国糖画3D镂空造型师考试重点预测解析
- 2026年无人机安防监控测试题
- 2026年会计实务操作能力测试题
- 2026年应急通信保障中心招聘笔试高频考点
- 2026年财务会计考试题及答案
- 2026年国家电投巴西公司招聘笔试模拟题
- 2026年形态设计基础知识
- 2026年出版物发行员资格考试仿真题集
- 2026年辽宁锦州海通实业有限公司度校园招聘28人笔试备考题库及答案详解
- 2026年巨量本地推初级题库
- 2025年四川省自贡市地理生物会考真题试卷+答案
- 摩根士丹利-中国消费:当前消费趋势走向何方?-China Consumer:Where is consumption trending now-20260601
- GB 26396-2026洗涤用品安全技术规范
- 2026年上海市宝山区中考一模化学试卷
- 东南大学2024综评数学试卷
- CB/T 3136-1995船体建造精度标准
- 设备运行分析报告(模板02)
- 二次函数求最值动轴定区间动区间定轴课件
- 浙江省衢州市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
评论
0/150
提交评论