国家应用软件产品质量监督检验中心软件测试工程师培训软件性能测试概览在本章中,我们将学习:–性能测试概述–性能测试步骤–性能测试指标–压力测试目标完成此课程之后,学员将具备以下能力:–了解性能测试的概念–了解性能测试的步骤–理解基本的性能指标–深入了解压力测试课程目录性能测试概述性能测试的步骤性能测试的指标压力测试性能测试的概念在正常、峰值以及异常负载条件下,测试系统的各项性能指标通过自动化的测试工具模拟进行性能测试的目的评估系统的能力识别体系中的弱点系统调优验证可伸缩性(resilience)和可靠性(reliability)性能测试的内容负载测试压力测试容量测试网络性能测试……负载测试含义–在测试过程中,逐渐增加系统负担,直到出现系统不能接受的性能点目的–发现系统的负载极限压力测试含义–在不同的负载下测试系统的运行状况压力测试与负载测试的比较–实现方法基本相同–测试的目的不同容量测试含义–确定测试对象在给定时间内能够持续处理的最大负载或工作量–使测试对象处理大量的数据,以确定是否达到了将使被测对象发生故障的极限网络性能测试含义–测试网络带宽、延迟、负载和端口的变化对用户的响应时间的影响实际应用–主要是测试用户数目与网络带宽的关系课程目录性能测试概述性能测试的步骤性能测试的指标压力测试性能测试的步骤制定目标和分析系统选择测试度量的方法选择相关技术和工具制定评估标准设计测试用例运行测试用例分析测试结果制定目标和分析系统制定目标–确定客户需求和期望–确定实际业务需求–确定系统需求分析系统–系统类别–系统构成–系统功能选择测试度量的方法制定规范制定相关流程,角色,职责制定改进策略制定结果对比标准选择相关技术和工具对各种性能测试工具进行评估选择符合现有软件架构的性能测试工具制定评估标准用大量过去的,扩展的或者将来可能发生的数据组成散布图,利用这个图表不断和系统的当前状况对比定义最初的测试作为标准,利用它和所有后来进行的测试结果进行对比设计测试用例了解软件业务流程测试工具可以实现一次尽可能的包含多个测试要素尽可能发现软件的性能瓶颈执行测试用例通过性能测试工具运行测试用例在不同的测试环境上运行分析测试结果收集相关信息进行数据统计分析寻找性能瓶颈不同的体系结构分析测试结果的方法也不同课程目录性能测试概述性能测试的步骤性能测试的指标压力测试性能指标种类响应时间内存(Memory)磁盘(PhysicalDisk)处理器(Processor)网络响应时间在某数据量的情况下,完成某功能模块所需要的时间内存(Memory)CommittedBytesinUseAvailableBytesPageFaults/secPages/sec磁盘(PhysicalDisk)DiskTimeIdleTimeAvg.DiskQueueLengthCurrentDiskQueueLength处理器(Processor)ProcessorTimeUserTimeProcessorQueueLength网络BytesTotal/secPackets/sec课程目录性能测试概述性能测试的步骤性能测试的指标压力测试压力测试压力测试概述压力测试流程压力测试工具压力测试的概念压力–在同一时间内或某一时间内,向系统发送预期数量的交易请求–并发交易请求–递增交易请求–并发递增交易请求压力测试–测试系统在不同压力情况下的效率状况,以及系统可以承受的压力情况压力测试的对象B/S系统C/S系统其他复杂系统压力测试的目的发现影响系统性能的瓶颈评价系统性能对系统资源进行优化提高响应时间与吞吐量压力测试的局限不能穷尽所有的情况或案例不能100%地达到需求压力测试能够发现缺陷原因–并发–运行时间长压力测试能够发现缺陷缺陷类型–内存泄漏–死锁–线程泄漏压力测试能够发现缺陷缺陷特点–隐蔽–其他技术发现不了–最难解决压力测试流程图测试计划测试用例模拟多用户设置并发点执行测试用例/监测系统资源分析结果是否接受结果测试报告YN压力测试计划分析应用系统定义压力测试对象与目标评审修改压力测试计划选择压力测试工具压力测试用例明确测试目的准备测试环境确定测试数据确定测试运行程序(脚本等)明确预期结果模拟多用户方法–通过多进程运行相同或不同的测试脚本来模拟多用户执行相同或不同的任务–通过发包程序发送数据包测试数据参数化–找到需要参数化的域–合理的设置输入数据设置并发点原因–被测事务不能同时运行实现原理–等待–释放–唤醒执行测试用例运行测试脚本根据情况,调整并发的进程数结果自动记录监测系统资源监测的对象–网络阻塞情况–主机CPU使用情况–内存使用情况–缓存使用情况–数据库系统的数据锁–……监测系统资源监测的结果–图像文件实时显示运行结束–数据文件监测系统资源图例监测系统资源图例监测系统资源图例分析结果分析对象–测试使用的时间–被测事务的响应时间(并发)–进程数(成功数、失败数)–进程失败原因–事务响应时间随用户增加的变化图–资源限制分析结果分析内容–测试是否成功(失败原因)–响应时间是否满足要求–事务响应时间随用户变化图有无剧烈变化优化调整设置CPU问题内存与高速缓存问题磁盘(I/O)资源问题调整配置参数优化应用系统网络设置测试报告结果数据图形说明压力测试工具压力测试工具脚本处理(脚本语句生成与解释器,包括脚本编辑)控制(多进程运行脚本控制)系统资源监控结果分析(测试、自动生成)脚本处理捕捉用户操作解释为运行脚本语言编辑脚本语言自动运行模拟用户操作直接调用API,避免延迟控制控制并发多台计算机之间协调控制多台计算机之间并发控制系统资源监测监测内容–脚本运行状态–事务处理的时间变化–事务处理的资源变化结果分析分析内容–数据导出–各事务随用户增多的时间响应变化–每个事务完成的最快、最慢、平均时间、大部分完成(90%)的时间–测试结果比较–……目前压力测试工具介绍QALoad(Compuware)WAS(Microsoft)AstraLoadTest(MercuryInteractive)LoadRunner(MercuryInteractive)QALoad演示本课总结性能测试主要是测试软件运行中的各项指标是否符合需求压力测试是性能测试的重点压力测试是通过工具产生并运行并发事务来模拟软件系统的实际运行状态,从而获得各种性能指标Thanks!