性能测试入门知识培训

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件性能测试入门什么是软件性能?软件为什么会有性能?什么是性能测试?如何做性能测试?如何定位性能根源,性能的瓶颈究竟在哪儿?如何提升性能?问题•通过此培训之后:–了解性能测试的概念–理解基本的性能指标–了解性能测试的步骤目标–性能测试概述–性能测试步骤目录软件的性能是个很大的概念,覆盖面非常广泛,对一个软件系统而言,包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等等。什么是软件性能用户视角的软件性能管理员视角的软件性能产品开发人员视角的软件性能•用户视角的软件性能–从用户角度来说,软件性能就是软件对用户操作的响应时间。什么是软件性能•管理员视角的软件性能–系统的响应时间;–系统运行时服务器的状态,如CPU利用情况、内存使用情况等;–系统是否能够实现扩展;–系统支持多少用户访问;–系统性能可能的瓶颈在哪里;–系统是否支持7*24小时的业务访问。什么是软件性能•产品开发人员视角的软件性能–用户关心的响应时间;–管理员关心的系统可扩展性等;–架构设计是否合理;–数据库设计是否合理;–代码是否存在性能方面的问题;–系统中是否有不合理的内存使用方式。什么是软件性能性能测试主要是通过专业的性能测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试!性能测试的概念性能测试的目的•评估系统的能力•识别体系中的弱点•验证系统可伸缩性(resilience)和可靠性(reliability)•系统调优•并发•并发用户数•请求响应时间•事务响应时间•吞吐量•TPS•点击率(HitPerSecond)•资源利用率性能测试的指标•并发:并发一般分两种情况:–一种是严格意义上的并发,即所有用户在同一时刻做同一件事情或操作,这种操作一般针对同一类型的业务。–另一种并发是广义的并发。这种并发与狭义的并发的区别是尽管多个用户对系统发出了请求或进行了操作,但是这些请求或操作可以是相同的,也可以是不同的。对整体系统而言,任然有很多用户同时对系统进行操作,因此,仍然属于并发的范畴。性能测试的指标•并发用户数:在某一给定时间内,某个特定点上进行会话操作的用户数,即与服务器-进行交互的在线用户数量。并发用户数并不是在线用户数,比如用户在浏览一个网站时,虽然在线,但是并没有与服务器相互交互,所以该用户并不属于并发用户。性能测试的指标•请求响应时间:客户端发出请求到得到响应的整个过程所经历的时间。性能测试的指标•事务响应时间:事务可能由一系列请求组成,事务的响应时间主要针对用户而言,属于宏观上的概念,是为了向用户说明业务响应时间而提出来的。例如:跨行取款事务的响应时间就是由一系列的请求组成的。性能测试的指标•吞吐量:通常用来指单位时间内网络上传输的数据量,也可以指单位时间内处理的客户端请求数量。是衡量网络性能的重要指标。–一般来说,吞吐量用请求数/秒或页面数/秒来衡量,从业务的角度,吞吐量也可以用访问人数/天或处理的业务数/小时等单位来衡量。从网络的角度来说,也可以用字节数/天等单位来考察网络流量。性能测试的指标•TPS(TransactionPerSecond)每秒钟系统能够处理的交易或事务的数量。它是衡量系统处理能力的重要指标。–TPS是LoadRunner中重要的性能参数指标。性能测试的指标•点击率(HitPerSecond)每秒钟用户向Web服务器提交的HTTP请求数。–这个指标是Web应用特有的一个指标:Web应用是“请求-响应”模式,用户发出一次申请,服务器就要处理一次,所以“点击”是Web应用能够处理交易的最小单位。性能测试的指标•资源利用率是指系统资源的使用程度,比如服务器的CPU利用率、内存利用率、磁盘利用率、网络带宽利用率等。除了上述资源,我们还应该考虑数据库连接池使用情况,JVM内存使用情况,数据库cpu占用情况等因素性能测试的指标•负载测试•压力测试•容量测试•网络性能测试•可靠性测试(疲劳测试)性能测试的内容•含义–主要用于描述常规的性能测试,通过模拟生产运行的业务压力和使用场景组合来测试系统的性能是否满足生产要求。•目的–在特定的运行条件下验证系统的能力状况负载测试•含义–压力测试是为了发现在什么条件下应用程序的性能会变得不可接受。•压力测试与负载测试的比较–实现方法基本相同–测试的目的不同压力测试•含义–确定测试对象在给定时间内能够持续处理的最大负载或工作量–使测试对象处理大量的数据,以确定是否达到了将使被测对象发生故障的极限•目的–测试单业务在一定数据容量下性能表现,比如通讯录、比如选人容量测试•含义–测试网络带宽、延迟、负载和端口的变化对用户的响应时间的影响•实际应用–主要是测试用户数目与网络带宽的关系,评估网络的依赖程度网络性能测试•含义–软件可靠性:在规定条件下,在规定时间内,软件不引起系统失效的概率–可靠性测试:在有使用代表性的环境中,持续运行系统某些功能,验证系统稳定性的过程•目的–尽量模拟客户的使用环境,一定业务压力下,持续运行过程N*24小时,测试系统的稳定性可靠性测试–性能测试概述–性能测试步骤目录性能测试步骤•测试需求分析主要有以下的几个关键点:测试的目的是什么评估系统的能力识别体系中的弱点验证系统可伸缩性(resilience)和可靠性(reliability)系统调优测试需求分析测试要素分析:用户数量测试执行的功能用户分布(即执行每种功能的用户数)硬件环境(包括网络环境)软件环境数据量其它分析系统运行中所出现的问题有什么特征或规律疲劳测试执行时间多少性能需求的指标是什么等测试需求分析•测试目的不同,则相应的测试策略不同。性能符合性验证—负载测试、疲劳强度测试。性能能力验证—压力测试、疲劳强度测试。性能调优—测试-调整-测试。负载测试、压力测试、疲劳强度测试。制定测试计划•测试需求–测试的范围,业务模型-指标,测试模型-指标•测试策略–测试发起策略、测试执行策略、测试监控策略•测试场景–基准测试-单交易负载测试-混合场景测试-稳定性测试•测试环境–被测试系统拓扑图进行各服务器系统部署,并进行连通性测试,保证服务器正常运行,交易流程可以走通•测试准备–工具、挡板、数据等装备•测试计划–人员及时间安排制定测试方案•测试环境准备•测试数据准备•测试用例、场景准备•测试工具准备性能测试准备•开发测试脚本•布置测试场景•执行测试场景执行测试方案•硬件瓶颈分析方法内存分析方法处理器分析方法磁盘I/O分析方法网络分析方法测试结果分析测试结果分析内存分析方法1.首先查看可用内存(Memory\AvailableMbytes)计数器指标。若值较小则可能有内存问题,需进一步分析。2.注意Pages/sec、PagesRead/sec和PageFaults/sec计数器的值。Pages/sec和PageFaults/sec的值持续很高,很可能内存问题,若PagesRead/sec的值超过5,则可判断存在内存问题。3.根据PhysicalDisk计数器的值分析性能瓶颈。如果磁盘的AverageDiskQueueLength计数器增加的同时PagesRead/sec并未降低,则可判断内存有问题。测试结果分析处理器分析方法1.首先查看System\%TotalProcessorTime计数器的值。该值体现的是CPU的平均利用率,若超过90%,则说明存在处理器方面的瓶颈。2.其次查看每个CPU的Processor\%UserTime计数器的值。若应用服务器的%UserTime值较大,可以考虑是否能通过算法优化等方法降低这个值。若数据库服务器的%UserTime值较大,可考虑对数据库系统进行优化。3.查看System\ProcessorQueueLength计数器的值。当该值大于CPU数量的总数+1时,说明存在处理器方面的问题。测试结果分析网络分析方法1.查看NetworkInterface\BytesTotal/sec计数器的值。用BytesTotal/sec计数器的值和网络的带宽进行比较,若超过50%,则说明网络存在性能瓶颈问题。测试结果分析•软件瓶颈分析方法分析事务响应时间、吞吐量,确定是否存在性能问题,若发现存在性能问题,则找出响应时间不符合要求或者出现多个失败的事务,对其进行分解,然后对其进行网页细分,以确定影响性能的元素。•测试指标:描述与测试场景对应的事务平均响应时间、事务吞吐率、资源消耗指标、运行的用户数等信息。•结果分析与总结:根据测试目标,描述最后分析得到的结果,并给出相应的建议。编写测试报告Thanks!

1 / 40
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功