软件性能概述
在软件质量模型中效率特性即为软件的性能,包括:时间特性和资源特性。
时间特性是指系统处理客户请求的响应时间;资源特性是指在进行性能测试构成中,系统资源消耗的情况。常见的系统资源主要主要包括CPU,内存和磁盘的使用情况。
性能相关术语
响应时间
响应时间是指应用系统从发出请求开始到客户端接收到所有数据所消耗的时间。
并发用户数
并发用户数是指同一时刻与服务器进行数据交互的所有用户数量。
吞吐量
吞吐量是指单位时间内服务器处理的字节数,吞吐量的单位是B/s。吞吐量的大小直接体现服务器的承载能力。
吞吐率(Throughout)
吞吐率是指单位时间内从服务器返回的字节数,也可以指单位时间内服务器处理客户提交的请求数。它是衡量网络性能的一个重要指标。吞吐率 = 吞吐量/测试时间。
TPS(Transaction Per Second)
TPS表示服务器每秒处理的事务数,它是衡量系统处理能力的重要指标。
点击率(Hit Per Second)
点击率是指每秒钟用户像服务器提交的HTTP数量。
资源利用率
资源利用率是指服务器系统中不同硬件资源被使用的程度,资源使用率 = 资源实际使用量/总的可用资源量。主要包括CPU利用率,内存利用率,磁盘利用率,网络等。资源利用率是分析系统性能指标,进而改善性能的主要依据,在配置调优测试的过程中,通过比较配置调优前后系统资源的利用率来判断调优效果。
性能测试划分
负载测试(Load Testing)
通过对被测系统不断加压,知道超过预定的指标或部分资源已经达到了一种饱和状态不能再施压为止。主要目的是找到系统最大的负载能力,为性能调优提供数据。
- 目的:找到系统最大的负载能力。
- 环境:该方法需要在特定环境下进行测试。
- 手段:不断对系统进行加压,直到系统中部分资源达到极限。
可靠性测试(Reliability Testing)
当系统在一定的业务压力下,让系统持续运行一段时间,观察系统是否达到要求的稳定性 ,此处强调在一定业务压力下持续运行的能力。可靠性测试必须给出一个明确的要求,如系统能够持续无故障运行多少天。
压力测试(Stress Testing)
压力测试是指,系统已经达到一定的饱和程度(如CPU,磁盘等已经处于饱和状态),强制其在极限的情况下运行,测试系统是否会出现错误。
- 目的:测试系统在已经达到一定饱和程度时,系统处理业务的能力。
- 手段:使用模拟负载等方法,使系统资源达到一个较高的水平。
- 该方法一边用力系统稳定性测试。
并发测试(Concurrency Testing)
通过模拟用户并发访问,测试多用户同时访问同一应用,模块或数据,观察系统是否存在死锁,系统处理速度是否明显下降等其他一些性能问题。
- 目的:当用户并发访问时,系统是否存在一些可能的并发问题。
- 手段:模拟多用户同时并发操作。
配置测试(Configuration Testing)
通过调整系统软硬件环境,了解各种不同环境对系统性能的影响,从而找到系统的最优配置。
- 目的:通过调整环境,了解不同因素对系统性能的影响情况,从而找到调优的方法。
- 手段:通过调整系统软硬件环境,使系统在不同环境下进行性能测试。
- 该方法一般用于系统调优和规划能力。
基准测试(Benchmark Testing)
在一定软件,硬件及网络环境下,模拟一定数量的虚拟用户运行一种或多种业务,将测试结果作为基线数据,在系统调优活系统评测过程中没通过运行相同的业务场景并比较测试结果,确定调优是否达到效果,或者作为系统的选择提供决策数据。
性能测试的目的
- 能力验证
- 规划能力
- 性能调优
- 缺陷发现
能力验证
验证产品性能是否达到规格要求的性能能力。
(1) 要求在一个已确定的环境下运行。
(2) 需要根据典型场景来设置测试方案与测试用例。
规划能力
强调未来能力增长的需求,着眼于未来系统的规划。
(1)对系统能力的一种探索行测试
(2) 了解系统性能及系统性能的可扩展性
性能调优
性能调优是通过测试来调整系统环境,使系统性能达到最优的状态。这是一个持续调优的过程。调优对象主要有数据参数,应用服务器,系统应急资源等。
(1) 确定本次性能测试的基准环境,基准负载和基准性能指标,目的是将这些基准数据作为后期测试数据的参考;
(2) 对系统进行调优(调优的对象包括代码,数据库,应用服务器,系统资源等),再调整系统运行环境和测试方案,重复进行测试,并记录测试结果。
(3) 将调整后的测试结果与基准测试数据进行比较,以确定调优的效果,重复执行步骤2,直到性能指标满足要求。
缺陷发现
主要目标是通过性能测试的手段发现系统存在的缺陷。
网友评论