性能测试与loadrunner教学课件

上传人:沈*** 文档编号:241335560 上传时间:2024-06-19 格式:PPT 页数:107 大小:3.79MB
返回 下载 相关 举报
性能测试与loadrunner教学课件_第1页
第1页 / 共107页
性能测试与loadrunner教学课件_第2页
第2页 / 共107页
性能测试与loadrunner教学课件_第3页
第3页 / 共107页
点击查看更多>>
资源描述
Neusoft Group Ltd.Date:19 June 2024培训大纲性能测试的基本概念和相关理论 性能测试工具loadrunner介绍Neusoft Group Ltd.Date:19 June 2024性能测试的基本概念和相关理论什么是软件性能什么是性能测试性能测试的重要性性能测试的时机性能测试分类 性能测试过程性能测试的相关术语及概念Neusoft Group Ltd.Date:19 June 2024什么是软件性能一般来说,性能是一种指标,表明软件或构件对于其及时性要求的符合程度;其次,性能是软件产品的一种特性,可以用时间时间来进行度量。例如,“用户单击网站某个链接后2秒内链接内容展现出来”,“用户输入用户名、密码后,单击登录按钮,3秒内完成,进入到系统首页面”,这些都是用户对任务响应时间的描述简单说,软件性能反映的是一种响应速度,速度越快,可以简单的说软件性能就越好,相反如果一个软件用起来总是比较迟钝,总是得等待响应,那就可以说这个软件性能比较差Neusoft Group Ltd.Date:19 June 2024什么是软件性能(续)不同视角的软件性能(用户视角、管理员视角、开发视角)用户视角的软件性能,就是软件对用户操作的响应时间,对用户来说,当用户单击一个按钮、发出一条指令或是在web页面上单击一个链接,从用户单击开始到应用系统把本次操作的结果以用户能察觉的方式展现出来,这个过程所消耗的时间就是用户对软件性能的直观印象Neusoft Group Ltd.Date:19 June 2024什么是软件性能(续)管理员视角的软件性能 从管理员角度看,软件系统的性能首先表现在系统的响应时间上,另外管理员还会关心和系统状态相关的信息。管理员关心的问题管理员关心的问题软件性能描述软件性能描述服务器的资源使用状况合理吗资源利用率应用服务器和数据库的资源使用状况合理吗资源利用率系统是否能够实现扩展系统可扩展性系统最多能支持多少用户的访问?系统最大的业务处理量是多少系统容量系统性能可能的瓶颈在哪里系统可扩展性更换哪些设备能够提高系统性能系统可扩展性系统能否支持7*24小时的业务访问系统稳定性Neusoft Group Ltd.Date:19 June 2024什么是软件性能(续)开发视角的软件性能 从开发人员角度看,除了关心响应时间、系统的扩展性等管理员关心的内容之外,开发人员最想知道的是“如何通过调整设计和代码实现提高软件的性能表现”。开发人员关心的问题开发人员关心的问题问题所属层次问题所属层次架构设计是否合理系统架构数据库设计是否存在问题数据库设计代码、sql语句是否存在性能方面的问题代码系统中是否有不合理的内存使用方式代码系统中是否存在不合理的线程同步方式设计与代码系统中是否存在不合理的资源竞争设计与代码Neusoft Group Ltd.Date:19 June 2024什么是软件性能(续)性能问题真正有效的解决,是从开发方面着手改进性能,不合理的架构、不合理的数据库设计、低效的代码,必将导致低劣的软件性能性能测试如果可以发现代码、设计、架构一级的bug,将是非常有价值的Neusoft Group Ltd.Date:19 June 2024什么是性能测试性能测试是软件测试的一种类型,性能测试是为了发现软件性能问题而执行的过程观察系统在一个给定的环境和场景中的性能表现是否与预期目标一致,评判系统是否存在性能缺陷,并根据测试结果识别性能瓶颈,改善系统性能的整个过程性能测试可以手工执行,但常常需要借助工具来自动执行Neusoft Group Ltd.Date:19 June 2024性能测试的重要性性能测试-软件测试的重中之重典型案例,网站瘫痪,如奥运订票网站瘫痪 客户抱怨最近系统作查询操作很慢,1个小时都查不出来结果系统崩溃了,没有响应系统运行不稳定,运行2天就会宕机一次系统运行期间,服务器cpu长期90%以上利用,系统时快时慢性能测试相比功能测试,往往不被重视。性能问题往往比较隐蔽,随着数据量的增加、访问人数的增加、运行时间的增加,性能问题有可能会暴露出来,一旦发生性能问题,影响通常是严重的并非所有软件都需要性能测试B/S结构的系统,如网站数据集中的系统,如人口数据库系统Neusoft Group Ltd.Date:19 June 2024性能测试的时机-无处不在的性能测试需求阶段的性能测试:是否有具体的性能需求系统分析设计阶段的性能测试:架构是否存在性能问题编码阶段的性能测试:代码效率检查,有工具如findbugs系统测试阶段的性能测试:最常见的性能测试,系统测试的一部分维护阶段的性能测试:通常在客户现场进行 性能问题越早测试越早发现问题,问题修复的代价越小,如果在性能问题越早测试越早发现问题,问题修复的代价越小,如果在软件即将交付时才发现性能问题,修复的代价是巨大的软件即将交付时才发现性能问题,修复的代价是巨大的Neusoft Group Ltd.Date:19 June 2024性能测试的分类按照测试方法分类多用户并发测试单用户大数据量测试按照测试目的分类性能评测 某系统在200用户并发登录系统,是否能达到平均响应时间为2秒?负载测试 某系统最多在多少用户下并发登录系统,平均响应时间依然可以达到2秒?压力测试 某系统最多在多少用户下并发登录系统,平均响应时间超过8秒,cpu使用用率达到80%以上?容量测试(极限测试)某系统最多在多大并发下,系统开始停止接受请求,出现系统崩溃可靠性测试疲劳测试 某系统在200用户并发访问下,持续运行7天,运行情况是否稳定,响应时间、资源利用情况是否正常Neusoft Group Ltd.Date:19 June 2024性能测试的分类(续)买驴的故事 某人想买一头驴,要求可以拖2袋大米,走2公里。性能评测:拖2袋大米走了2公里,驴很轻松 负载测试:拖4袋大米走了2公里,驴感觉有些疲惫,但还是完成了任务 压力测试:拖6袋大笔走了3公里,驴已经气喘吁吁,疲惫不堪了 容量测试:拖6袋大笔自己再骑上去,走到1公里时,驴累死了Neusoft Group Ltd.Date:19 June 2024性能测试过程PTGM(性能测试过程通用模型)测试前期准备测试工具引入 测试计划 测试设计与开发测试执行和管理测试分析和总结Neusoft Group Ltd.Date:19 June 2024PTGM(性能测试过程通用模型)Neusoft Group Ltd.Date:19 June 2024测试过程工作分解测试过程相关工作工作成果物测试前期准备1.系统基础功能验证2.组建性能测试团队3.测试工具引入1.存在相对稳定的版本2.人员、角色、职责确认3.loadrunner、servertrace等安装程序,使用规范等测试设计与计划1.性能测试领域分析2.用户活动剖析与业务建模3.确定性能目标4.确定测试环境5.确定测试用例和测试场景6.制定测试的时间计划1.性能测试设计报告2.后续工作时间进度表测试开发1.搭建测试环境2.功能验证3.测试数据开发4.测试脚本开发1.测试数据备份2.测试脚本备份测试执行和管理1.性能预备测试和调优2.部署调试测试脚本和测试场景3.执行测试和记录结果1.各参数设置记录2.每个测试结果的记录测试分析总结1.测试结果分析整理2.测试总结1.测试总结报告Neusoft Group Ltd.Date:19 June 2024测试前期准备系统基础功能验证,保证被测系统功能稳定,满足性能测试开始的必要条件组建性能测试团队测试工具需求确认,给出需要用到的测试工具列表性能预备测试,在正式测试之前,通过简单的探索性测试或是其他方法,对系统的性能表现进行初步的了解 Neusoft Group Ltd.Date:19 June 2024性能测试团队角色职责技能测试经理 1.和用户等项目干系人交互,确保测试的外部环境2.制定测试计划3.监控测试进度4.发现和处理测试中的风险 1.计划执行和监控能力 2.风险意识能力3.外交能力和灵活的变通能力测试设计 1.定义性能规划2.识别用户的性能需求3.建立性能场景 1.业务把握能力2.性能需求分析和识别能力测试开发 1.实现已设计的性能场景2.脚本开发、调试3.确定测试时需要监控的性能指标、性能计数器 1.脚本编码和调试能力2.理解性能指标和性能计数器测试执行 1.部署测试环境2.执行脚本和场景3.根据监控要求记录测试结果、记录性能指标和性能计数器值 1.搭建测试环境的能力2.测试工具使用(执行)的能力3.性能指标和性能计数器值获取和记录的能力测试分析 1.根据测试结果、性能指标的数值、性能计数器值进行分析2.能根据性能规划,分析出性能瓶颈,或是给出优化建议 1.掌握性能测试工具的使用方法2.掌握应用系统性能领域相关知识,理解所采用的架构3.熟悉常用的性能分析方法 4.具有一定的编码经验 支持角色(系统)系统支持,协助解决测试工程师无法解决的系统问题处理系统问题的能力和技能,最好由专职的系统管理员担任这个角色,如weic/websphere系统管理员等支持角色(网络)网络方面的支持,协助测试工程师解决网络方面的问题,在必要时为测试分析角色提供网络方面的分析支持网络方面的能力和技能,最好有专职的网络管理员担任这个角色支持角色(数据库)数据库方面的支持,在必要时为测试分析角色提供数据库方面的分析支持数据库方面的能力和技能,最好由专职的DBA担任这个角色支持角色(测试数据)对准备测试数据提供必要的支持,保证设计的脚本可以顺利执行业务、编码方面的能力,熟悉应用系统数据库表结构,熟悉业务实现,最好由相关的开发人员担任这个角色Neusoft Group Ltd.Date:19 June 2024测试工具引入主要包括下列活动:工具选择(测试工具、调优工具、诊断工具、数据制作工具)工具应用技能培训确定工具应用过程,例如测试工具脚本如何管理、测试工具具体如何应用、需要遵守哪些规范等 Neusoft Group Ltd.Date:19 June 2024测试计划性能测试领域分析用户活动剖析与业务建模确定性能目标确定测试环境确定测试用例和测试场景制定测试的时间计划表Neusoft Group Ltd.Date:19 June 2024测试计划-性能测试领域分析应用领域性能测试目标关注点能力验证验证系统在给定环境中的性能能力有明确的测试环境、性能指标等,有明确的需求,验证系统是否满足预期的需求,例如在200并发下,系统响应时间在8秒以内,满足预期需求目标规划能力验证系统的性能扩展能力,找出系统能力扩充的关键点,给出改善其性能扩展能力的建议典型问题描述:“某系统能否支持未来一段时间内的用户增长”、“应该如何调整系统配置,使系统能够满足增长的用户数的需要”,是一种探索性的测试,没有明确的预期目标,测试要求得到的结论是非确定的,更多的是给出一些评价,例如在200并发下,系统的响应时间不可接受,300并发已经达到系统的极限性能调优提高系统的性能表现通过对硬件环境、系统设置、应用程序等的调整,考察性能是否有提升或下降,是一个反复循环的过程,直到达到预先设定的调优目标发现缺陷发现系统中的缺陷关注是否有内存泄漏问题、数据库死锁问题、线程并发等问题,以发现问题为主要目标Neusoft Group Ltd.Date:19 June 2024测试计划-用户活动剖析与业务建模获取性能测试需求的过程,用于寻找用户的关键性能关注点。用户对系统性能的关注点往往集中在少数几个业务活动上,在确定性能目标之前,需要先把用户的这些关注点找出来,从而确定最贴近用户要求的性能目标。举例 经过用户活动分析之后,最终形成的结果类似于以下的描述:用户最关心的业务之一是A业务,该业务具有平均每天3000次的业务发生率,业务发生时间集中在9:00-18:00的时间段,业务发生的峰值为每小时1000次。A业务的操作路径如下所示:用户单击“发布公告”链接;用户在出现的页面中填写公告内容;用户单击“提交”按钮进行提交 Neusoft Group Ltd.Date:19 June 2024测试计划-用户活动剖析与业务建模通常会和用户一起完成业务建模,有时完全由用户指定业务建模很重要,有了好的业务模型,才会形成有效详细的测试需求和测试场景,后续的测试工作才是有意义的。通常选取性能测试业务功能点的原则:最经常频繁使用的功能最容易造成并发的功能代码逻辑复杂,单个操作就比较慢的功能 Neusoft Group Ltd.Date:19 June 2024测试计划-确定性能目标性能测试目标根据性能测试需求和用户活动分析结果来确定,确定性能测试目标的一般步骤是首先从需求和设计中分析出性能测试需求,结合用户活动剖析与业务建模的结果,最终确定性能测试的目标。根据不同的性能测试应用领域分析结果,性能目标定义会稍有不同。对于“规划能力”领域,性能目标的描述如:系统的A业务在未来的3个月内每天的业务吞吐量达到4000笔,找出系统的性能瓶颈并给出可支持这种业务量的建议。对于“能力验证”领域,性能目标的描述如:该应用能够以1秒的最大响应时间处理200个并发用户对业务A的访问;峰值时刻有400个用户,允许响应时间延长为3秒。对于“性能调优”领域,性能目标的描述如:通过性能调优测试,本系统的A业务和B业务在200并发用户的条件下,响应时间提高到3秒。Neusoft Group Ltd.Date:19 June 2024测试计划-确定性能目标测试目标必须是具体量化可衡量可验证的不明确的测试目标系统可以支持200人并发访问,可以稳定运行系统响应时间要快性能调到最优Neusoft Group Ltd.Date:19 June 2024测试计划-确定测试环境测试环境主要包括两部分内容:软硬件环境,需要考虑的因素主要包括:硬件服务器选择、应用服务器选择(websphere/weic/tomcat)、数据库服务器选择(oraclesqlserver)、JDK选择(IBM/BEA/SUN)、操作系统选择(linux/windows)、网络环境选择(百兆网千兆网)、单机还是集群等,软硬件环境一定要细化,例如版本号,需要有网络拓扑图等测试数据的设计,如登录用户、人员数据、历史数据量等Neusoft Group Ltd.Date:19 June 2024测试计划-确定测试用例和测试场景测试用例和测试场景通常可以理解为一个概念,主要描述:测试哪个功能点测试功能点的业务操作步骤测试多大并发网络带宽要求性能指标等等测试用例典型分类单场景测试混合场景测试Neusoft Group Ltd.Date:19 June 2024单场景测试用例示例Neusoft Group Ltd.Date:19 June 2024混合场景测试用例示例Neusoft Group Ltd.Date:19 June 2024测试计划-制定测试的时间计划将后续的测试开发、测试执行、测试总结任务细分,形成完整的mpp进度表测试计划完成时,通常会有一份性能测试设计报告和一份测试时间进度表,后续的测试工作将按照设计和计划按部就班的进行性能测试计划至关重要,可以保证后续测试在可控制的范围内性能测试过程中会遇到很多问题,解决问题的时间要预留在计划中,比如性能调优,可能经过反复几次调优后,性能仍不能满足预期要求,此时可能就需要调整计划了Neusoft Group Ltd.Date:19 June 2024测试设计与开发测试设计有时也会提前到测试计划中进行,通常包括测试环境设计、测试用例设计等测试开发主要包括搭建测试环境,主要指搭建软硬件环境及部署测试系统,环境搭建通常会设置一些初始的优化参数,后续测试过程中会根据需要逐渐调整 功能验证,主要针对测试用例,验证功能是否还存在问题,从而保证后面的性能测试不会受到阻碍测试数据开发,按照设计报告中的用例和数据设计,开发出物理的测试数据。有些测试用例需要回滚数据才能重新测试,所以一定要对测试数据做好备份工作测试脚本开发,通常用工具如loadrunner来完成,一个单场景用例对应一个脚本,混合场景测试测试实际是由多个脚本同时运行来实现Neusoft Group Ltd.Date:19 June 2024测试执行和管理性能预备测试和调优,对关键用例进行测试和调优,例如很多系统都必须先登录才能操作业务,所以登录操作非常关键,先要保证登录的性能,后面的测试用例才可能顺利进行部署调试测试脚本和测试场景,对每一个脚本单独在场景中并发运行,检查各脚本在场景中运行是否存在问题,主要是检查脚本参数化等是否存在问题 执行测试和记录结果,执行测试是一个反复的过程,如果执行某个用例发现没有满足预期的性能指标,还需要进行一些调优工作,包括代码上的调优、参数上的调优、数据库调优等等。需要注意的是,此步骤一定要做好详细的结果记录,最好每跑一次的结果都保存下来。详细的结果记录是后续测试总结分析的必要素材,为分析出的结论提供依据Neusoft Group Ltd.Date:19 June 2024测试分析总结测试结果分析整理,将loadrunner的测试结果整理汇总分析,生成各种图表,分析瓶颈、性能拐点等。结果分析时,需要加入资源使用情况图表、TPS图表、平均响应时间图表等,这些图表的曲线尤其要关注。重点需要关注当虚拟用户逐渐增加时,tps、吞吐率、响应时间、cpu资源等的变化情况(找到性能拐点),达到最大并发用户数时,tps、吞吐率、响应时间、cpu资源等的变化情况。可以尝试使用图形的合并功能。测试总结,对整个测试过程进行总结,对过程中的各种问题进行总结,结合性能目标,最后要有一些结论性的描述,给出一份完整的性能测试报告测试报告中通常包括:测试背景、测试环境、测试用例、测试数据及分析、测试结论等内容Neusoft Group Ltd.Date:19 June 2024性能测试的相关术语及概念响应时间并发用户数吞吐量 性能计数器 思考时间性能调优Neusoft Group Ltd.Date:19 June 2024响应时间用户所感受到的响应时间划分为“呈现时间”和“系统响应时间”两个部分,其中“呈现时间”取决于数据在被客户端收到响应数据后用户把数据呈现出来的时间;而“系统响应时间”指应用系统从请求发出开始到客户端接收到数据所消耗的时间。在一般的性能测试中,并不关心“呈现时间”,因为很大程度上取决于客户端的表现,通常把“系统响应时间”等同于“响应时间”。Neusoft Group Ltd.Date:19 June 2024响应时间-续在进行性能测试时,“合理的响应时间”取决于实际用户需求,例如对于一个电子商务网站,在美国和欧洲,一个普遍被接受的响应时间标准为2/5/10,也就是说,在2秒之内给客户响应被用户认为是“非常有吸引力的”,在5秒之内响应客户被认为是“比较不错的”,而10秒是客户能接受的响应的上限。但考虑一个税务保障系统,该系统的用户每月使用一次该系统,一次花费2小时以上进行数据的录入,当用户单击“提交”按钮后,即使系统在20分钟后才给出“处理成功”的消息,用户仍然不会认为该系统的响应时间不能接受,毕竟,相对于一个月才进行一次的操作来说,20分钟确实是一个可以接受的等待时间。Neusoft Group Ltd.Date:19 June 2024并发用户数系统用户数在线用户数并发用户数系统用户数=在线用户数=并发用户数 Neusoft Group Ltd.Date:19 June 2024并发用户数-举例一个OA系统,该系统有2000个使用用户,这就是说,可能使用该OA系统的用户总数是2000名,这个概念就是“系统用户数”,该系统有一个“在线统计”功能,从在线统计功能中可以得到,最高峰时有500人在线(这个就是一般所说的“同时在线人数”,或者叫“在线用户数”),那么,系统的并发用户数是多少呢?500这个数值只是表明在最高峰时刻有500个用户登录了系统,并不表示实际服务器承受的压力。因为服务器承受的压力还与具体的用户访问模式相关。例如,在这500个“同时使用系统”的用户中,考察某一个时间点,在这个时间上,假设其中40%的用户饶有兴趣地看系统公告(注意:“看”这个动作是不会对服务器产生任何负担的),20%的用户在填写复杂的表格(对用户填写的表格来说,只有在“提交”的时刻才会向服务器端发送请求,填写过程是不对服务器构成压力的),20%部分用户在发呆(也就是什么也没做),剩下20%用户在不停地从一个页面跳转到另一个页面,在这种场景下,可以说,只有20%的用户真正对服务器构成了压力,此时的并发用户数只有100 Neusoft Group Ltd.Date:19 June 2024并发用户数-估算并发用户数的获取是个比较复杂的过程,需要对用户的业务场景进行仔细分解、分析,并结合一定的公式计算得出,即使这样,得到的并发用户数和实际情况也是有一定差距的。因此有些情况下,对于企业内部使用的web系统来说,一个更一般的经验公式是:Cave=n/10 Cmax=Cave*r也就是说,用每天访问系统用户数(在线用户数)的10%作为平均的并发用户数,并发用户数的最大值由平均并发用户数乘上一个调整因子r得到,r的取值一般为23 更一般的经验值:最大并发用户数=最大在线用户数*1/10,最大在线用户数=系统用户数的*1/5最简单的办法,由用户提供Neusoft Group Ltd.Date:19 June 2024吞吐量吞吐量是指“单位时间内系统处理的客户请求的数量”,直接体现软件系统的性能承载能力。一般来说,吞吐量用请求数/秒或是页面数/秒来衡量,从业务的角度,吞吐量也可以用访问人数/天或是处理的业务数/小时等单位来衡量。当然,从网络的角度来说,也可以用字节数/天来考察网络流量 loadrunner结果分析中,hits per second图、throughput图、transections per second图,都是反映吞吐量的指标图。Neusoft Group Ltd.Date:19 June 2024吞吐量在对web系统的性能测试过程中,吞吐量主要以请求数(单击数)/秒、页面数/秒或是字节数/秒来体现,吞吐量指标可以用于协助设计性能测试场景、协助分析性能瓶颈。常用于分析吞吐量的图形是“吞吐量-VU数量”的关联图,如下:Neusoft Group Ltd.Date:19 June 2024吞吐量从以上两个图可以看出,吞吐量随着并发用户数的增加会逐渐增加,并发用户数到达一定数量后,吞吐量增加开始趋于平稳,再到一定数量,吞吐量开始下降,此时就可以分析性能瓶颈了。以上2个图可以看出,第二个图比第一个图的性能情况要好Neusoft Group Ltd.Date:19 June 2024性能计数器性能计数器(Counter)是描述服务器或操作系统性能的一些数据指标。例如,对Windows系统来说,使用内存数(Memory In Usage),进程时间(Total Process Time)等都是常见的计数器。计数器在性能测试中发挥着“监控和分析”的关键作用,尤其是在分析系统的可扩展性、进行性能瓶颈的定位时,对计数器取值的分析非常关键。但必须说明的是,单一的性能计数器只能体现系统性能的某一个方面,对性能测试结果的分析必须基于多个不同的计数器。与性能计数器相关的另一个术语是“资源利用率”。指的是系统各种资源的使用状况。例如,我们会说到,“某某系统在承受10000用户的并发访问时,web服务器的cpu占用率达为68%,平均的内存占用率为55%”,这其中,68%和55%就是典型的资源利用率的数值。在性能测试中常用资源利用率进行横向的对比,例如,在进行测试时会发现,资源A的使用率达到了接近100%的数值,而其他的资源利用率都处于比较低的水平,则可以很清楚的知道,资源A就很可能是系统的一个性能瓶颈。当然,资源利用率在通常的情况下需要结合响应时间变化曲线、系统负载曲线等各种指标进行分析。cpu占用率是最经常分析的一个指标。Neusoft Group Ltd.Date:19 June 2024思考时间 思考时间(Think Time),也被称为“休眠时间”,从业务的角度来说,这个时间指的是用户在进行操作时,每个请求之间的间隔时间。思考时间延长可以缓解压力,“零”思考时间的测试是一种极限测试,测试结果不能反映实际用户使用情况。Neusoft Group Ltd.Date:19 June 2024性能调优一般来说,性能调优会和性能测试成对出现,性能测试的目的通常就是为了性能调优。对已部署在实际的生产环境上的应用系统来说,对其进行的性能调优可能会首先关注应用系统部署环境的调整,例如,对服务器的调整、对数据库参数的调整及对应用服务器的参数调整,此时的性能调优需要在生产环境这个确定的环境下进行;但对于正在开发中的应用来说,性能调优会更多的关注应用逻辑的实现方法、应用中涉及的算法、数据库访问层的设计等因素,此时并不要求测试环境是实际的生产环境,只要整个调优过程中具有一个可用于比较的测试基准测试环境即可。Neusoft Group Ltd.Date:19 June 2024性能调优标准过程性能调优过程是个循环反复的过程性能调优必须有个可衡量的标准,性能调优无止境,满足需求即可Neusoft Group Ltd.Date:19 June 2024性能调优标准过程1.确定基准环境、基准负载和基准性能指标,也叫基准测试 所谓的基准负载是指一种可以被用来衡量和比较性能调优测试结果的标准的应用运行环境、测试操作脚本和可被用来衡量调优效果的性能指标。请特别注意描述中的“标准的应用运行环境”,所谓的“标准”是指每次执行性能测试时的环境要严格保持一致。常见的错误,测试过程中需要关注:没有保证每次执行的数据库具有相同的数据环境。特别是,当执行过一次或多次性能测试之后,数据库中可能增加了许多新的记录,这时对系统进行调优并在调优后执行性能测试,得到的结果与以前的结果具有不可比较性。对于某些建立在J2EE应用服务器上的应用,在应用服务器需要重启的时候,没有注意在测试之前首先进行一段时间的“预热”,否则得出的调优前后性能对比的结论就会存在误差或错误。Neusoft Group Ltd.Date:19 June 2024性能调优标准过程-如何确定基准负载通常确定基准负载时会模拟一定的并发用户数以施加负载压力观察性能表现,这里涉及到2个测试方法:flat测试和ramp-up测试 Flat测试,一次加载所有的用户,然后在预定的时间段内持续运行,如下图所示:Neusoft Group Ltd.Date:19 June 2024性能调优标准过程-如何确定基准负载ramp-up测试 在测试期间,用户以稳定速度(每秒x个)增加,达到最大并发数后在预定的时间段内持续运行,如下图所示:Neusoft Group Ltd.Date:19 June 2024性能调优标准过程-如何确定基准负载ramp-up测试中的用户是交错上升的(每几秒增加一些新用户)。ramp-up测试不能产生精确和可重现的平均值,这是因为由于用户的增加是每次一部分,系统的负载在不断地变化。因此,flat测试是获得基准测试数据的理想模式。这不是在贬低ramp-up测试的价值。实际上,ramp-up测试对找出以后要运行的flat测试的范围非常有用。ramp-up测试的优点是,可以看出随着系统负载的改变,测量值是如何改变的。然后可以据此选择以后要运行的flat测试的范围。Neusoft Group Ltd.Date:19 June 2024性能调优标准过程-ramp-up和flat配合测试的一个例子 首先,使用ramp-up测试,观察系统性能指标随并发用户数的变化情况如下:Neusoft Group Ltd.Date:19 June 2024性能调优标准过程-ramp-up和flat配合测试的一个例子(续)当并发用户数达到260后,吞吐量开始趋于平稳变化,达到460时,吞吐量急速下降。然后,通过ramp-up的测试结果,选择并发用户数在260到460之间的某一个值(例如300)做flat测试,从而获得基准测试结果数据,以后的性能调优和测试都在300并发用户下进行。Neusoft Group Ltd.Date:19 June 2024性能调优标准过程2.调整系统运行环境和实现方法,执行测试 对于一个应用系统来说,包括以下3个方面的调整:硬件环境的调整,例如调整网络带宽、调整cpu数量、内存等系统设置的调整,例如操作系统参数、应用服务器参数、数据库服务器参数的调整应用级别的调整,主要是对应用实现本身进行调整,包括选用新的架构、采用新的数据访问方式或是修改业务逻辑的实现方式等。对于生产系统,调优的重点在前两种方式,对于正在开发中的应用或者通过前两种方式的调整仍然不能达到要求的生产系统,则需要进行应用级别上的调整,通常会用到一些工具,如Jprobe、Jprofile、servertrace等。调整后,必须存在一个可用于衡量调优是否取得了效果的标准。在第1个步骤中,已经确定了基准负载、基准环境和基准性能指标,在这个步骤中,需要根据已经确定的这些内容再次执行测试,以取得对性能调优有效性评估的比较数据。不要一次调整过多的参数或是应用实现方法,否则,很难判断具体哪个调整对系统性能产生了较为有利的影响。根据经验,一次调整3-5个地方是比较合适的方法。Neusoft Group Ltd.Date:19 June 2024性能调优标准过程3.记录测试结果,进行分析 这个步骤和上一步骤构成了性能调优过程中的循环,循环的出口是“达到预期的性能调优目标”。注意注意:必须为性能调优设定一个可接受的性能调优测试目标,否则,调优过程将会一直持续下去,因为系统始终都不会处于一个“最优”的状态。Neusoft Group Ltd.Date:19 June 2024性能测试工具loadrunner性能测试工具模型测试工具在性能测试中的作用主要性能测试工具介绍Loadrunner介绍Neusoft Group Ltd.Date:19 June 2024性能测试工具综述性能测试的主要手段是通过产生模拟真实业务的压力对被测系统进行加压,研究被测系统在不同压力情况下的表现,找出其潜在的瓶颈。因此,一个良好的性能测试工具必需能做到以下几点:提供产生压力的手段 能够对后台系统进行监控 对压力数据能够进行分析,快速找出被测系统的瓶颈。Neusoft Group Ltd.Date:19 June 2024性能测试工具体系架构Neusoft Group Ltd.Date:19 June 2024性能测试工具体系架构一般来说,性能测试工具包括以下部件:虚拟用户脚本产生器 Vugen(Virtual User Generator)压力产生器(Player),通常一台512M内存的PC机可以运行200个左右的虚拟用户(VU),一个VU对应一个线程或进程,在运行成千上万个VU时,需要数台机器用户代理(Agent),运行在负载机上的进程,是压力产生器的组成部分,调度产生负载压力的进程或线程压力调度和监控系统(Conductor),设置测试用例、布置测试场景、监控各种资源、保存输出结果压力结果分析工具(Analysis)Neusoft Group Ltd.Date:19 June 2024测试工具在性能测试中的作用测试工具只负责产生压力、收集数据,工具本身不能代替分析者进行性能结果的分析,最多只能提供多种不同的数据揭示和呈现方法而已。对这些数据进行分析必然要依靠测试工程师对系统性能分析的经验和知识会使用测试工具不等于会性能测试Neusoft Group Ltd.Date:19 June 2024主要性能测试工具商业HP loadrunnerRational Performance TesterSeague SilkTestRadview WebLoad免费Microsoft Web Application Stress Tool Microsoft Application Center Test开源OpenSTAJmeterGrinderNeusoft Group Ltd.Date:19 June 2024Loadrunner简介LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期工业标准级负载测试工具现属于HP公司,原为MI公司常用版本:8.0、8.1、8.1.4、9.0,最新版本已到9.5.1 8.0不支持IE7,8.1.4以上支持IE7Neusoft Group Ltd.Date:19 June 2024Loadrunner使用安装工作步骤被测系统简介Virtual user generator,脚本生成器Controler,场景控制器Analysis,结果分析工具上机练习Neusoft Group Ltd.Date:19 June 2024Loadrunner安装安装文件存放路径中不要有中文一般选择full setup和Load Generator安装过程全部默认,一路下一步即可上机安装,IE6装8.0,IE7装9.0Neusoft Group Ltd.Date:19 June 2024Loadrunner工作步骤脚本生成器脚本生成器场景控制器场景控制器结果分析工具结果分析工具Neusoft Group Ltd.Date:19 June 2024Virtual user generator-协议通信协议协议实际上是一组规定和约定的集合。说白了就是两台或者多台计算机在通信时必须约定好本次通信做什么,例如是进行文件传输,还是发送电子邮件;然后约定怎样通信,什么时间通信等 Neusoft Group Ltd.Date:19 June 2024协议的选择B/S系统 选择Web(Http/Html)协议 Neusoft Group Ltd.Date:19 June 2024开发脚本的步骤1.新建脚本,选择Web协议,生成一个空的脚本2.录制脚本3.完善脚本设置事务设置集合点设置思考时间设置检查点参数化关联高级脚本4.回放脚本Neusoft Group Ltd.Date:19 June 2024空脚本空脚本由三部分组成Vuser_init,只有一个、不能改名、不能循环运行只能运行一次,一般登录操作放在这里Action,可以有多个、可以随意新建改名、可以循环运行Vuser_end,只有一个、不能改名、不能循环运行只能运行一次,一般退出操作放在这里按照Vuser_init、Action1、Action2Vuser_end顺序执行Neusoft Group Ltd.Date:19 June 2024编辑脚本的两种视图Script 视图Tree 视图Neusoft Group Ltd.Date:19 June 2024录制脚本设置录制选项录制模式选择:html还是url模式设置脚本中文支持录制脚本,录制的是用户对浏览器(IE)的操作Neusoft Group Ltd.Date:19 June 2024录制模式Neusoft Group Ltd.Date:19 June 2024脚本中文支持Neusoft Group Ltd.Date:19 June 2024录制工具条Neusoft Group Ltd.Date:19 June 2024完善脚本-设置事务事务(Transaction):为了记录响应时间,需要定义事务。比如:在脚本中有一个数据查询操作,为了衡量服务器执行查询操作的性能,把这个操作定义为一个事务,这样在运行测试脚本时,LoadRunner 运行到该事务的开始点时,LoadRunner 就会开始计时,直到运行到该事务的结束点,计时结束。这个事务的运行时间在结果中会有反映,通常说的某某操作的响应时间最终都是和某个事务对应插入事务操作可以在录制过程中进行,也可以在录制结束后进行事务函数如下:lr_start_transaction(“登录登录);lr_end_transaction(“登录登录,LR_AUTO);Neusoft Group Ltd.Date:19 June 2024完善脚本-设置集合点插入集合点是为了衡量在加重负载的情况下服务器的性能情况。集合点就是一个“集合”的点,“集合”之后才进行后续代码例如要测试1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据集合点通常放在事务定义之前集合点函数如下:lr_rendezvous(“(“登录登录););Neusoft Group Ltd.Date:19 June 2024完善脚本-设置思考时间思考时间通常设置在事务前面,事务前面如何设置了集合点,没有必要再设置思考时间lr_think_time(3),以秒为单位Neusoft Group Ltd.Date:19 June 2024完善脚本-设置检查点在进行压力测试时,为了检查Web 服务器返回的网页是否正确,VuGen 允许插入Text/Imag 检查点,这些检查点验证网页上是否存在指定的Text 或者Imag,还可以测试在比较大的压力测试环境中,被测的网站功能是否保持正确Neusoft Group Ltd.Date:19 June 2024完善脚本-参数化如果用户在录制脚本过程中,填写提交了一些数据,比如要增加数据库记录。这些操作都被记录到了脚本中。当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且有可能引起冲突。为了更加真实的模拟实际环境,需要各种各样的输入,参数化输入是一种不错的方法参数化就是将常量改成变量,然后设置变量的取值方法参数类型虚拟用户和Iteration(迭代)示例测试参数的取值,lr_output_message(当前虚拟用户id为:%s,参数值=%s,lr_eval_string(vuid),lr_eval_string(para);Neusoft Group Ltd.Date:19 June 2024完善脚本-IterationNeusoft Group Ltd.Date:19 June 2024完善脚本-参数化示例1sequentialvuser1vuser2vuser3iteration1username1username1username1iteration2username2username2username2iteration3username3username3username3Neusoft Group Ltd.Date:19 June 2024完善脚本-参数化示例2Randomvuser1vuser2vuser3iteration1username1username2username3iteration2username4username8username5iteration3username5username9username2Neusoft Group Ltd.Date:19 June 2024完善脚本-参数化示例3Uniquevuser1vuser2vuser3iteration1Username1Username4Username7iteration2Username2Username5Username8iteration3Username3Username6username9Neusoft Group Ltd.Date:19 June 2024完善脚本-参数化示例4Neusoft Group Ltd.Date:19 June 2024完善脚本-关联理解关联(Correlation)所谓的关联(correlation)就是把脚本中某些写死的(hard-coded)数据,转变成是获取自服务器所送的、动态的、每次都不一样的数据Neusoft Group Ltd.Date:19 June 2024完善脚本-关联关联方法手工关联自动关联通过关联规则关联通过Correlation Studio工具关联 关联函数web_reg_save_param左边界、右边界Neusoft Group Ltd.Date:19 June 2024完善脚本-其它高级脚本提供大量函数可编程参考 VuGen Function Reference Neusoft Group Ltd.Date:19 June 2024脚本回放单次回放,检查脚本的正确性循环回放,检查参数化的正确性回放后注意参数的处理Neusoft Group Ltd.Date:19 June 2024脚本生成器的特殊用途通过循环执行做测试数据适合于少量数据的制作,如几百数量级适合于复杂数据的制作,后台逻辑复杂,前台操作简单Neusoft Group Ltd.Date:19 June 2024场景控制器(Controler)场景类型设置添加脚本,设置虚拟用户数量设置负载生成器(Load Generators)Schedule设置运行时设置监控各种资源运行场景,保存结果Neusoft Group Ltd.Date:19 June 2024场景控制器-类型设置手工场景(常用)手工控制多少用户和多长时间执行脚本在场景执行过程中可以动态的添加或者开始以及终止用户的执行目标场景目标可以是吞吐量、响应时间以及并发用户数LR自动管理虚拟用户在场景执行过程中不能动态的添加或者开始以及终Neusoft Group Ltd.Date:19 June 2024场景控制器-脚本设置Neusoft Group Ltd.Date:19 June 2024场景控制器-负载生成器设置Neusoft Group Ltd.Date:19 June 2024场景控制器-schedule设置Neusoft Group Ltd.Date:19 June 2024场景控制器-运行时设置Neusoft Group Ltd.Date:19 June 2024场景控制器-监控Neusoft Group Ltd.Date:19 June 2024场景控制器-运行场景Neusoft Group Ltd.Date:19 June 2024分析工具-常用图形Summary ReportHits per secondThroughoutAverage Transaction Response TimeSystem ResourceWebpage breakdownVuser-hits per second 合并图Vuser-throughtout 合并图Vuser-Average Transaction Response Time合并图Vuser-Resouce合并图Neusoft Group Ltd.Date:19 June 2024Summary ReportNeusoft Group Ltd.Date:19 June 2024Hits per SecondNeusoft Group Ltd.Date:19 June 2024throughoutNeusoft Group Ltd.Date:19 June 2024Average Transaction Response TimeNeusoft Group Ltd.Date:19 June 2024System ResourceNeusoft Group Ltd.Date:19 June 2024Webpage breakdownNeusoft Group Ltd.Date:19 June 2024Merge图(合并)Neusoft Group Ltd.Date:19 June 2024学习资源网站51testingtestage3atesting(很多性能测试loadrunner视频)书软件性能测试过程详解与案例剖析作者 段念Web性能测试实战作者 陈绍英 等Neusoft Group Ltd.Date:19 June 2024Thank youNeusoft Group Ltd.谢谢 更多精品资请访问更多精品资请访问 更多品资源请访问更多品资源请访问
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!