1、性能测试培训与交流性能测试培训与交流软件测试全景图软件测试全景图概念目标模型方法测试测试模型模型-理发店模型理发店模型理发店:理发店:一间或大或小的铺面,1个或几个理发师,几张理发用椅和供顾客等待的板凳约束和假设:约束和假设:1.3名理发师;2.每位理发师剪发的时间为1小时;3.顾客们每次光顾理发店时所能容忍的等待时间+剪发时间是3小时。想象可能出现的场景?想象可能出现的场景?模型模型-理发店模型理发店模型场景场景1:理发店内只有1位顾客时,只需要有1名理发师为他提供服务,其他两名理发师可能继续等着,也可能会帮忙打打杂。1小时后,这位顾客剪完头发出门走了。那么在这1个小时里,整个理发店只服务了
2、1位顾客,这位顾客花费在这次剪发的时间是1小时;场景场景2:当理发店内同时有两位顾客时,就会同时有两名理发师在为顾客服务,另外1位发呆或者打杂帮忙。仍然是1小时后,两位顾客剪完头发出门。在这1小时里,理发店服务了两位顾客,这两位顾客花费在剪发的时间均为1小时;场景场景3:当理发店内同时有三位顾客时,理发店可以在1小时内同时服务三位顾客,每位顾客花费在这次剪发的时间仍然是均为1小时;场景场景4:只有1位顾客和2位顾客时,空闲的理发师可以帮忙打杂,使得其他理发师的工作效率提高,并使每位顾客的剪发时间小于1小时;模型模型-理发店模型理发店模型场景场景5:有一次顾客A、B、C刚进理发店准备剪发,外面一
3、推门又进来了顾客D、E、F。因为A、B、C三位顾客先到,所以D、E、F三位只好坐在板凳上等着。1小时后,A、B、C三位剪完头发走了,他们每个人这次剪发所花费的时间均为1小时。可是D、E、F三位就没有这么好运,因为他们要先等A、B、C三位剪完才能剪,所以他们每个人这次剪发所花费的时间均为2小时包括等待1小时和剪发1小时。场景场景6:有一次同时来了9位顾客,但是因为店面太小,只能容纳3位同时剪发,3位等待,剩下的3位看到没地方坐,就离开了。场景场景7:有些顾客已经是理发店的老顾客,他们和理发师已经非常熟悉,理发师可以不用花费太多时间沟通就知道这位顾客的想法。并且理发师对这位顾客的脑袋的形状也很熟悉
4、,所以可以更快的完成一次理发的工作。场景场景8:理发店并不是只有剪发一种业务,还提供了烫发染发之类的业务,那么当顾客提出新的要求时,理发师服务一位顾客的时间可能会超过标准的1小时。而且这时如果要计算每位顾客的等待时间就变得复杂了很多,有些顾客的排队时间会比原来预计的延长,并最终导致他们因为无法忍受而离开 模型模型-理发店模型理发店模型场景场景9:有一次由于顾客与理发师产生矛盾,理发师处理不当,导致顾客发飙砸店,所有的理发均无法顺利进行,事故消除后,每位理发的顾客实际理发时间达到2小时;场景场景10:随着烫发和染发业务的增加,理发师们决定分工,两位专门剪发,一位专门负责烫发和染发。场景场景11:
5、理发店的生意越来越好,理发师的数量和理发店的门面已经无法满足顾客的要求,于是理发店的老板决定在旁边再开一家店,并招聘一些工作能力更强的理发师。场景场景12:理发店的生意变得极为火爆了,两家店都无法满足顾客数量增长的需求,并且有些顾客开始反映到理发店的路途太远,到了以后又因为烫发和染发的人太多而等太 久。可是理发店的老板也明白烫发和染发的收入要远远高于剪发,于是他脑筋一转,决定改变策略,在附近的几个大型小区租用小的铺面开设分店,专职剪发业务;再在市区的繁华路段开设旗舰店,专门为烫发、染发的顾客,以及VIP顾客服务。并增设800电话,当顾客想要剪发时,可以拨打这个电话,并由服务人员根据顾客的居住地
6、点,将其指引到距离最近的一家分店去。模型模型-理发店模型理发店模型总结:总结:1.顾客在3人以下时,理发店理发效率最高,顾客满意度最高,但效益欠佳,时间(1,1,1)小时;2.同时有3人理发时,理发店效率和效益都最高,顾客满意度最高,但效益持久性难以保证,时间(1、1、1)小时;3.同时有6人理发时,理发店效率下降50%,效益最高,顾客满意度中等,时间(1,1.5,2)小时;4.同时有9人理发时,理发店效率最低,效益最高,顾客满意度最差,时间(1,2,3)小时;5.同时超过9人来到时,10人以后的顾客愤然离开;6.一段时间顾客持续在9人时,绝大多数客户的理发时间都在3小时,顾客很不满意,理发师
7、也由于得不到休息,很疲惫,消极怠工,效益效率顾客满意度都持续下降模型模型-通用性能模型通用性能模型概念目标模型方法测试测试概念概念-资源资源资源资源信息资源信息资源硬件资源硬件资源概念概念-计算机性能发展计算机性能发展理发店场景与计算机性能发展历程:理发店场景与计算机性能发展历程:单任务单任务 多任务多任务 并行处理并行处理 微处理微处理 队列控制队列控制存储升级存储升级 JIT+缓存缓存功能扩展功能扩展 结构化设计结构化设计故障诊断与处理故障诊断与处理集群集群分布式(云)计算分布式(云)计算场景场景1 场景场景2场景场景3 场景场景4 场景场景8 场景场景7 场景场景6场景场景5 场景场景1
8、 2场景场景1 1场景场景1 0场景场景9概念概念-时间时间n响应时间:响应时间:请求从进入到离开系统或功能模块之间的时间间隔。u 服务时间指系统处理该请求需要的时间。u 等待时间指请求被处理之前需要等待的时间。n基准响应时间基准响应时间n平均响应时间:平均响应时间:满足了性能需求不代表系统性能满足了绝大多数用户的要求n最小响应时间最小响应时间n最大响应时间最大响应时间n比例响应时间比例响应时间概念概念-时间时间C1:用户请求发出前在客户端需要完成的预处理所需要的时间C2:客户端收到服务器返回的响应后,对数据进行处理并呈现所需要的时间A1:Web/App Server 对请求进行处理所需要的时
9、间A2:DB Server 对请求进行处理所需的时间A3:Web/App Server 对 DB Server 返回的结果进行处理所需的时间N1:请求由客户端发出并达到Web/App Server 所需要的时间N2:如果需要进行数据库相关的操作,由Web/App Server 将请求发送至DB Server 所需要的时间N3:DB Server 完成处理并将结果返回Web/App Server 所需的时间N4:Web/App Server 完成处理并将结果返回给客户端所需的时间用户响应时间用户响应时间(C1+C2)+(A1+A2+A3)+(N1+N2+N3+N4)系统响应时间系统响应时间(A1
10、+A2+A3)+(N1+N2+N3+N4)概念概念-吞吐量吞吐量n并发用户数并发用户数u绝对并发用户数u最佳并发用户数u最大并发用户数nTPSu服务器硬件资源配置u软件中的处理开销u磁盘上数据的布局u硬件和软件都支持的并发度u正在处理的事务类型n网络流量网络流量概念概念-理解理解性能性能nSLA:描述了所提供的服务,其可用性水平(正常运行时间和停机时间)、响应时间、客户服务水平以及违约责任。uMeasurement-Thresholdsn资源的管理和调度资源的管理和调度n性能与投资成本性能与投资成本n硬件成本硬件成本n运营成本运营成本n维护成本维护成本概念概念-理解理解性能性能n木桶原理与性能
11、瓶颈木桶原理与性能瓶颈uCPU-内存-硬盘-网络u请求队列-线程池-连接池-数据库u资源限制概念概念-理解理解性能性能n软件性能和硬件性能的矛盾:软件性能和硬件性能的矛盾:n 硬件带来的东西,全让软件给拿走了(Intel送,微软取)n 软件是混乱、无序的概念概念-理解理解性能性能l性能问题性能问题:u 交易速度慢,用户对当前应用程序的性能不满意;u 系统监控工具提醒你某组件正遇到超时或异常的负载;u 响应时间监控工具提示你服务等级协议未被满足。u 交易出错,多数是由于并发访问造成:系统崩溃和某些特定交易出错。u 性能下降概念概念-理解理解性能性能角色角色 任务任务性能规划性能规划性能设计与编程
12、性能设计与编程性能测试性能测试性能监视性能监视性能问题诊断性能问题诊断性能参数调优性能参数调优性能架构师精通熟悉熟悉熟悉精通精通开发人员熟悉精通了解熟悉熟悉了解测试人员了解了解精通熟悉熟悉熟悉实施人员了解了解熟悉熟悉熟悉精通维护人员了解了解了解精通熟悉熟悉概念目标模型方法测试测试目标目标-认识角度认识角度n系统视角系统视角:性能”是一个整体的概念,是系统的负载与吞吐量、可接受的响应时间以及资源利用率之间的平衡。n用户视角用户视角:系统对用户请求的响应速度决定了用户对系统性能的评价。n管理视角管理视角:最低的成本能够让尽可能多的用户在任意时刻都拥有最好的体验,系统能够在同一时间内处理更多的用户请
13、求。n测试视角测试视角:“好的性能”意味着更大的最佳并发用户数和 最大并发用户数,兼顾系统、用户、管理。目标目标-测试目标测试目标n基于硬件投资成本的考虑基于硬件投资成本的考虑n基于吞吐量的考虑基于吞吐量的考虑u注册用户?u在线用户?u并发数?uTPSn基于响应时间的考虑基于响应时间的考虑u响应时间最长不超过?秒u平均时间在?秒以内n基于基于HA的考虑的考虑概念目标模型方法测试测试方法方法1、了解性能测试框架、了解性能测试框架2、熟悉性能测试流程、熟悉性能测试流程3、掌握性能测试工具、掌握性能测试工具4、熟悉测试结果分析、熟悉测试结果分析灰色部分不在本次培训范围内灰色部分不在本次培训范围内方法
14、方法-性能测试框架性能测试框架方法方法-性能测试流程性能测试流程方法方法-性能测试流程性能测试流程-框架框架-业务架构业务架构(范例)范例)方法方法-性能测试流程性能测试流程-框架框架-技术架技术架构构(范例)范例)方法方法-性能测试流程性能测试流程-框架框架-软件架软件架构构(范例)范例)方法方法-性能测试流程性能测试流程-框架框架-硬件架硬件架构构(范例)范例)方法方法-性能测试流程性能测试流程方法方法-性能测试流程性能测试流程-策略策略-测试方测试方式式n现场测试:现场测试:实施项目,用户实际IT环境,项目验收或性能风险评估n项目测试:项目测试:研发、实施项目,公司现有IT环境,项目结项
15、或性能故障排除n选型测试:选型测试:软件选型、硬件选型、组件选型n对比测试:对比测试:性能优化、版本发布、软硬件升级、参数/数据规模重大变化方法方法-性能测试流程性能测试流程-策略策略-测试类测试类型型n性能测试:性能测试:a点到b点之间的性能,以性能预期目标为前提,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能预期。n负载测试:负载测试:b点的系统性能,对系统不断的增加压力或增加一定压力下的持续时间,直到系统的某项或多项性能指标达到极限。n压力测试:压力测试:b点到d点之间,超过安全负载的情况下,对系统不断施加压力,通过确定一个系统的瓶颈或不能接受用户请求的性能点,来获得系统
16、能够提供的最大服务级别。n稳定性测试:稳定性测试:a点到b点之间,在特定硬件、软件、网络条件下,给系统加载一定业务压力,试系统运行一段较长时间,检测系统是否稳定,一般时间为n*12小时。方法方法-性能测试流程性能测试流程-策略策略-约束条约束条件件n硬件环境:硬件环境:CPU、内存、存储、网络等n软件环境:软件环境:操作系统、中间件、数据库、应用程序等n业务类型:业务类型:OLTP、OLAP、DSS等n业务范围:业务范围:投资管理、预算管理、资金管理等n参数规模、复杂度:参数规模、复杂度:单位、用户、机构、部门、指标、公式、字典等n数据规模、复杂度:数据规模、复杂度:单位数、用户数、机构数、部
17、门数、指标数、记录数等n性能目标:性能目标:响应时间、吞吐量、资源利用等方法方法-性能测试流程性能测试流程方法方法-性能测试流程性能测试流程-模型模型-业务模业务模型型(范例)范例)方法方法-性能测试流程性能测试流程-模型模型-功能模功能模型型(范例)范例)方法方法-性能测试流程性能测试流程-模型模型-度量模度量模型型n度量关键字度量关键字-业务层面业务层面(范例)(范例)u预算编制表展示预算编制表展示u预算编制表保存预算编制表保存u生成编制分析表生成编制分析表n容量计算(容量计算(每个功能每个功能-操作的具体用户量操作的具体用户量-YYY)n度量指标度量指标u并发用户数并发用户数u响应时间响
18、应时间u资源利用率资源利用率u网络流量网络流量u系统无故障率系统无故障率方法方法-性能测试流程性能测试流程方法方法-性能测试流程性能测试流程-场景场景n核心业务核心业务u应用服务域:应用服务域:不同的域性能要求不一样u操作频繁操作频繁u用户多用户多u数据很关键数据很关键n关键流程关键流程n主流用户主流用户n用户行为用户行为u业务周期业务周期u工作习惯工作习惯方法方法-性能测试流程性能测试流程-场景场景-应用服务应用服务域域(范例)范例)方法方法-性能测试流程性能测试流程方法方法-性能测试流程性能测试流程-用例用例n事务性事务性u原子性:原子性:要么成功,要么失败u一致性:一致性:执行前和执行后数据一致u隔离性:隔离性:资源独立非共享u持久性:持久性:持续不间断的运行需要n针对性针对性u面向用户面向用户u兼顾系统:兼顾系统:子事务嵌套【根据系统实现方式,拆分成多个子事务,方便跟踪响应时间等-YYY】n多元性多元性u实现用户操作实现用户操作u收集性能指标收集性能指标u定位性能瓶颈定位性能瓶颈方法方法-性能测试流程性能测试流程