性能测试
提纲 性能测试基础概念 性能测试主要指标 性能测试基本原理 性能测试报告 测试过程演示
性能测试 什么是性能 什么是性能测试 性能是用来描术机械、器材、物品等所具有的速度、效率和能力的综合评价。(辞海) 对机械、器材、物品的性能定性或定量的量测过程。
由“性能”想到的。。。 性能测试是什么? 性能测试包含哪些方面? 应用系统性能指标主要有哪些? 在一定的负载情况下,系统的响应时间、资源利用、效率等特性是否满足特定的性能需求。 性能测试包含哪些方面? 压力测试、负载测试、并发测试、容量测试、配置测试、基准测试等。 应用系统性能指标主要有哪些? 响应时间、吞吐量、服务器资源利用
方法和重要性 性能分析方法主要有哪些? 性能测试的重要性,为什么要进行性能测试? 指标达成法 最优化分析(应用程序诊断、系统调优)。 评估系统的能力 识别系统中的弱点 系统调优 验证可伸缩性和可靠性
性能测试的主要内容 负载测试 压力测试 并发测试 配置测试 可靠性测试
负载测试 负载测试 通过在被测系统上不断加压,直到性能指标达到极限,例如“响应时间”超过预定指标或都某种资源已经达到饱和状态。 特点: 这种性能测试方法的主要目的是找到系统处理能力的极限。 这种性能测试方法需要在给定的测试环境下进行,通常也需要考虑被测试系统的业务压力量和典型场景、使得测试结果具有业务上的意义。 这种性能测试方法一般用来了解系统的性能容量,或是配合性能调优来使用。 也就是说,这种方法是对一个系统持续不段的加压,看你在什么时候已经超出“我的要求”或系统崩溃。
压力测试 压力测试(强度测试) 压力测试方法测试系统在一定饱和状态下,例如cpu、内存在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误 特点: 这种性能测试方法的主要目的是检查系统处于压力性能下时,应用的表现。 这种性能测试一般通过模拟负载等方法,使得系统的资源使用达到较高的水平。、 这种性能测试方法一般用于测试系统的稳定性。 也就是说,这种测试是让系统处在很大强度的压力之下,看系统是否稳定,哪里会出问题。
并发测试 并发测试 并发测试方法通过模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或其者他性能问题。 特点: 这种性能测试方法的主要目的是发现系统中可能隐藏的并发访问时的问题 这种性能测试方法主要关注系统可能存在的并发问题,例如系统中的内存泄漏、线程锁和资源争用方面的问题。 这种性能测试方法可以在开发的各个阶段使用需要相关的测试工具的配合和支持 也就是说,这种测试关注点是多个用户同时(并发)对一个模块或操作进行加压。
配置测试 配置测试 配置测试方法通过对被测系统的软\硬件环境的调整,了解各种不同对系统的性能影响的程度,从而找到系统各项资源的最优分配原则。 特点: 这种性能测试方法的主要目的是了解各种不同因素对系统性能影响的程度,从而判断出最值得进行的调优操作。 这种性能测试方法一般在对系统性能状况有初步了解后进行。 这种性能测试方法一般用于性能调优和规划能力。 也就是说,这种测试关注点是“微调”,通过对软硬件的不断调整,找出这他们的最佳状态,使系统达到一个最强的状态。
可靠性测试 可靠性测试 在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。 特点: 这种性能测试方法的主要目的是验证是否支持长期稳定的运行。 这种性能测试方法需要在压力下持续一段时间的运行。(2~3天) 测试过程中需要关注系统的运行状况。 也就是说,这种测试的关注点是“稳定”,不需要给系统太大的压力,只要系统能够长期处于一个稳定的状态。
性能测试中的名词-1 请求访问数量(VU 或Request Thread):即发送请求压力的数量 事务(Transactions):事务用来衡量脚本中一行代码或多行代码的执行所耗费的时间。 场景(Scenario):性能测试过程中为了模拟真实用户的业务处理过程的一系列动作的集合。 加载时间(Ramp-Up period):请求端发送预设的请求量所用时间长度。
性能测试中的名词-2 标准偏差(Std. Deviation):该标准差根据数理统计的概念得来,标准差越小,说明波动越小,系统越稳定,反之,标准差越大,说明波动越大,系统越不稳定。 事务平均响应时间(Average Transaciton Response Time):每一事务执行所用的平均时间,通过它可以分析测试场景运行期间应用系统的性能走向 每秒处理事务(Transaction per Second):每秒系统处理事务(通过、失败以及停止)的数量。通过它可以确定系统在任何给定时刻的时间事务负载。
性能测试中的名词-3 吞吐率(Throughput):是场景运行过程中服务器每秒的吞吐量。其度量单位是字节,表示每个请求连接在任何给定的每一秒从服务器获得的数据量。 系统负载( Load):计算机系统中进程队列的大少,即计算机系统在一段时间内可以处理的工作任务的多少。 CPU利用率(CPU usage):CPU利用率分为用户态,系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。平时所说的CPU利用率是指:CPU执行非系统空闲进程的时间/ CPU总的执行时间。
性能指标 性能指标: 压力测试 负载测试 系统性能监控 每秒处理事务 事务平均响应时间 最大响应时间 最少响应时间 最大并发数 压力强度 长时间正常运行的最大负载 压力持续时间 并发数 负载测试 最大负载 系统性能监控 CPU负载 内存使用率 网络I/O
性能测试采用的基本原理 客户/服务型系统性能测试的模式 性能测试的基本原理
客户/服务型系统性能测试的模式
性能测试的基本原理
性能测试一般流程
主要工具 Loadrunner Rational Robot Webload
谢谢!