《性能测试学生》PPT课件.ppt
性能测试过程全解析,性能测试,性能测试概念测试流程系统瓶颈分析性能优化,软件性能的几个主要术语,性能测试:系统的性能是一个很大的概念,覆盖面非常广泛,对一个软件系统而言,包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等,我们这里重点讨论的负载压力是系统性能的一个重要方面。性能测试用来保证产品发布后系统的性能能够满足用户需求。性能测试在软件质量保证中起重要作用。通常情况下存在性能调优(在没有满足用户需求时要进行调优)与性能评测两种性能测试策略(就是性能测试的方法)。,软件性能测试基本概念,什么是软件的性能性能是一种指标,表明软件系统或构件对于其及时性要求的符合程度性能是软件产品的一种特性,它包括很多方面,主要有时间性能和空间性能两种。时间性能:主要指软件的一个具体事务的响应时间。响应时间长短没有绝对统一的标准,而且跟用户的主观感受有关系,对于一个电子商务的网站来说,一个普遍接受的响应时间标准为2/5/10。即在2秒以内给用户以响应是非常有吸引力的,在5秒以内被认为是比较不错的,而10秒则是用户忍受的上限。空间性能:主要指软件运行时所消耗的系统资源,比如安装软件之前,我们经常看到下表所示的某软件安装要求。,软件性能测试基本概念,我们所说的空间性能是指软件运行时所消耗的系统资源,比如该软件在推荐配置下运行时,CPU的利用率为10%,内存占有率为20%,则这两个指标可看作该软件的空间性能,我们在任务管理器中可以查看本机的一些性能。,软件性能测试基本概念,CPU使用:表示当前使用到了cpu资源的百分之几。如果你的cpu使用率长期性太高,那表明:1是你的电脑中毒了。2是某个软件出错了。3是该升级电脑了。CPU使用记录:显示cpu的使用率随时间的变化情况的图表,默认刷新率为每两秒一次,可通过查看菜单调节刷新率,如果你的cpu是双核的,或者是超线程的,这里将同时显示两个核心的使用率 显示两个cpu使用记录 PF使用率:PageFile(虚拟内存),物理内存已经不够用的时候,把将那些暂时不用的数据放到硬盘的虚拟内存文件里,等使用时再调用出来,要降低PF使用率最好的办法是增加内存。PF使用率太高,那表明:1是你的物理内存太小了。2是你启动的程序太大型(比如ps)太多了3是你的虚拟内存设置的不合理,常常弹出虚拟内存不足的可以通过 我的电脑属性高级性能设置高级虚拟内存设置更改选择虚拟内存放置的分区(建议放在系统盘外的分区)选择自定义或系统管理的大小设置确定,软件性能测试基本概念,设置虚拟内存 页面文件使用记录:显示虚拟内存使用情况随时间的变化情况的图表,可通过查看菜单调节刷新率。句柄:用于唯一标识资源(例如文件和注册表项)的值,以便程序可以访问它。是一种指针的指针。线程:在运行程序指令的进程中的对象,线程允许在进程中进行并发操作,并使一个进程能在不同处理器上同时运行其程序的不同部分。进程:一个可执行程序或一种服务。物理内存:电脑的物理内存使用情况总数:总的物理内存量 可用数:当前物理内存剩余可用量,指使用虚拟内存前所剩余的物理内存 系统缓存:被分配用于系统缓存用的物理内存量。主要来存放一些关键程序和数据等。一但系统或者程序需要,部分内存会被释放出来。认可用量:指物理内存和虚拟内存总和的相关信息总数:是指当前所用物理内存和虚拟内存的总和 限制:系统可以提供的最高物理内存和虚拟内存的总和峰值:指此次开机到当前来使用内存的最高纪录。核心内存:操作系统和必要的驱动程序所占用的内存 总数:操作系统和必要的驱动程序所占用物理内存总数.分页数:可以复制到页面文件中的内存,一旦系统需要这部分物理内存的话,它会被“映射”到硬盘,由此可以释放部分物理内存.,软件性能测试基本概念,软件性能的几个主要术语,响应时间:响应时间(response time)是指系统对用户操作的反馈时间。(比如登录163邮箱这一事务的响应时间)并发:并发(conurrency)是指多个同时发生的操作。比如有10个用户同时点击登录按钮,登录某邮箱,我们就说此次登录该邮箱的并发数为10。区分并发和并行不是同一个概念,并发是同时发生,并行是同步运行。10个用户并发登录该邮箱,只是在点击登录按钮那一瞬间是并行的,而登录后各个用户的操作则不是同步的。并发和并行的区别就是一个处理器同时处理多个任务和多个处理器或者是多核的处理器同时处理多个不同的任务。前者是逻辑上的同时发生(simultaneous),而后者是物理上的同时发生并发性(concurrency),又称共行性,是指能处理多个同时性活动的能力,并发事件之间不一定要同一时刻发生。并行(parallelism)是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行。来个比喻:并发和并行的区别就是一个人同时吃三个馒头和三个人同时吃三个馒头。,软件性能的几个主要术语,并发用户数,软件性能的几个主要术语,假设有一个OA系统,该系统有2000个用户使用,有个在线统计功能,高峰时有500人在线,500人中,有40%在浏览,有20%在发呆,有20%在填数据,20%在不停地点击系统用户数:同时在线数:并发用户数:服务器承受的并发数:,软件性能的几个主要术语,吞吐量:吞吐量(throughput)是指单位时间内流经被测系统的数据流量,一般单位为B/S,即每秒钟流经的字节数。吞吐量的大小主要由防火墙内网卡,及程序算法的效率决定,尤其是程序算法,会使防火墙系统进行大量运算,通信量大打折扣。因此,大多数防火墙虽号称100M防火墙,由于其算法依靠软件实现,通信量远远没有达到100M,实际只有10M-20M。纯硬件防火墙,由于采用硬件进行运算,因此吞吐量可以达到线性90-95M,是真正的100M防火墙。对于中小型企业来讲,选择吞吐量为百兆级的防火墙即可满足需要,而对于电信、金融、保险等大公司大企业部门就需要采用吞吐量千兆级的防火墙产品。,软件性能测试基本概念,性能测试观点最快的不一定是最佳的性能。把质量保证工作范围扩大到部署阶段之外,从而提高应用系统的质量。性能不仅仅是请求、点击次数和页面。系统的性能是一个很大的概念,覆盖面非常广泛,对一个软件系统而言包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等等,我们下面重点讨论的负载、压力是系统性能的一个重要方面。,软件性能测试的基本概念,性能测试一般分为:一般性测试、稳定性测试、负载测试、压力测试。下面分别解释。一般性测试:一般性测试指的是让被测系统在正常的软硬件下运行,不向其施加任何压力的性能测试比如,我们还是163邮箱的登录模块,我们只让1个用户多次登录,记录服务器端系统资源的消耗情况(CPU,内存),并记录单个用户的登录时间。稳定性测试:也叫可靠性测试,是指连续运行被测系统,检查系统运行时的稳定程序。我们通常用MTBF(Mean Time Between Failure错误发生的平均时间间隔)来衡量系统的稳定性,MTBF越大,系统的稳定性越强。稳定性的测试方法也很简单,即采用24*7的方式让系统不间断运行,至于具体运行多少天,是一周还是一个月,视项目的实际情况而定。,软件性能测试的基本概念,负载测试:是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。压力测试:是通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能提供的最大服务级别的测试。通俗地讲,压力测试是为了发现在什么条件下系统的性能会变得不可接受。可见,压力测试是一种特定类型的负载测试。负载测试、压力测试的区别,举例如下:例如:访问一个页面的响应时间规定为不超过1秒,负载测试就是测试在响应时间为1秒时,系统所能承受的最大并发访问用户的数量,而压力测试就是测试系统在多大的并发访问用户数量下,响应时间不可接受,例如超过1分钟(定义为失效状态)。,软件性能测试的基本概念,哪些人对于关注软件性能用户管理员开发人员,用户视角的软件性能,Web应用系统的响应,网络传输时间,服务处理时间,管理员视角的软件性能,开发人员视角的软件性能,系统性能测试目的,性能检测在真实生产环境下,检测系统性能,评估并报告整个系统的性能和健壮情况检查服务等级的满足情况对系统的未来容量作出预测和规划性能调优查找系统瓶颈的根本原因评估性能调整的效果-重新调整后提高多少在测试环境下再现性能问题,测试流程步骤,制定计划测试需求分析 测试案例制定 测试环境、工具、数据准备 测试脚本录制、编写与调试负载压力场景制定 测试执行 结果分析与定位问题 测试报告与测试评估,测试计划,分析应用程序 确定系统组件描述系统配置 分析使用模型 任务分布 定义测试目标 计划方案实施检查测试目标,确定系统组件,客户机、网络、中间件和服务器,描述系统配置,连接到系统的用户数应用程序客户端计算机的配置情况(硬件、内存、操作系统、软件、开发工具等)使用的数据库和Web 服务器的类型(硬件、数据库类型、操作系统、文件服务器等)服务器与应用程序客户端之间的通信方式前端客户端与后端服务器之间的中间件配置和应用程序服务器可能影响响应时间的其他网络组件(调制解调器等),分析使用模型,考虑哪些用户使用系统每种类型用户的数量每个用户的典型任务,任务分布,确定数据库活动峰值期的发生时间负载峰值期间的典型活动,定义测试目标,计划方案实施,定义性能度量的范围定义Vuser活动 选择测试硬件和软件度量应用程序中不同点的响应时间。根据测试目标确定在哪里运行虚拟用户运行哪些虚拟用户,选择测试硬件和软件,硬件和软件应该具有强大的性能和足够快的运行速度,以模拟所需数量的虚拟用户。,度量系统容量举例,查看现有系统中性能与负载间的关系,并确定出现响应时间显著延长的位置“拐点”。可以确定是否需要增加资源以支持额外的用户。,性能测试流程,测试需求确认定义测试范围创建测试需求细化测试需求分析测试需求列表各种测试流程图,系统性能分析,经验举例1交易的响应时间如果很长,远远超过系统性能需求,表示耗费CPU的数据库操作,例如排序,执行aggregate functions(例如sum、min、max、count)等较多,可考虑是否有索引以及索引建立的是否合理;尽量使用简单的表联接;水平分割大表格等方法来降低该值。,系统性能分析,经验举例2测试工具可以模拟不同的虚拟用户来单独访问Web服务器、应用服务器和数据库服务器,这样,就可以在Web端测出的响应时间减去以上各个分段测出的时间就可以知道瓶颈在哪并着手调优。,系统性能分析,经验举例3UNIX资源监控(NT操作系统同理)中指标CPU占用率(CPU utilization),如果该值持续超过95%,表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器。合理使用的范围在60%至70%。,系统性能分析,经验举例4UNIX资源监控(NT操作系统同理)中指标内存页交换速率(Paging rate),如果该值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈。也可能是内存访问命中率低。,性能调优,性能调优查找系统瓶颈的根本原因进行性能调整和优化评估性能调整的效果,性能优化,优化调整设置CPU问题:考虑使用更高级的CPU代替目前的CPU对于多CPU,考虑CPU之间的负载分配考虑在其它体系上设计系统,例如增加前置机、设置并行服务器等。,性能优化,内存和高速缓存内存的优化包括操作系统、数据库、应用程序的内存优化。过多的分页与交换可能降低系统的性能内存分配也是影响系统性能的主要原因-未及时回收保证保留列表具有较大的邻接内存块调整数据块缓冲区大小(用数据块的个数表示)是一个重要内容将最频繁使用的数据保存在存储区中,性能优化,磁盘(I/O)资源问题磁盘读写进度对数据库系统是至关重要的,数据库对象在物理设备上的合理分布能改善性能磁盘镜像会减慢磁盘写的速度通过把日志和数据库对象分布在独立的设备上可以提高系统的性能把不同的数据库放在不同的硬盘上,可以提高读写速度。经常把数据库、回滚段、日志放在不同的设备上把表放在一块硬盘上,把非簇的索引放在另一块硬盘上,保证物理读写更快,