性能测试综述

1、了解性能测试ios

性能测试是不断的经过不一样场景的系统表现去探究系统设计与资源消耗之间的平衡。网络

咱们能够认为性能测试是:经过在测试环境下对系统或构件的性能进行探测,用以验证在生产环境下系统性能是否达到预估的性能需求,发现系统可能存在的性能瓶颈,进而改善优化并系统的性能,提升系统的可扩展性、稳定性。运维

从上面的描述能够看出,性能测试的主要工做包括:得到预估的性能需求、搭建测试环境、执行测试、分析测试结果。其中,最为重要两个工做是肯定测试的目的、方案,并对结果进行分析。工具

2、确认测试目的性能

性能测试的需求包含但不限于用户的需求。在性能测试前咱们一样须要充分了解开发、运维对系统的关注点。此外,要对被测模块的设计有深刻了解,基本判断该模块是cpu密集型或是io密集型。以上这些是为更确立测试的目的,并有针对性的梳理测试方案和分析作好准备。测试

性能测试的目的包括:优化

(1)验证系统是否知足预期需求;操作系统

(2)验证系统在高压下的表现;设计

(3)验证系统是否能持续稳定的运行;日志

(4)探测系统的瓶颈和产生瓶颈的缘由;

(5)探测系统设计与资源之间的最佳平衡,改善并优化系统的性能。

3、确认测试方案

根据性能测试目的的不一样,所实施的测试方案也不一样。

通常,性能测试主要包括以下几种:

1)验证系统在预估负载下的表现:负载测试

2)验证系统在极端负载下的表现:压力测试

3)验证系统是否能持续稳定的运行:稳定性测试

如下是对上述三种测试的图示。通常,常态负载低于瓶颈负载,从常态负载到瓶颈负载区间系统的承受能力能够看做是可扩展能力。当瓶颈负载小于等于常态负载时,说明该系统的性能没有知足预计要求,是存在问题的。探测常态负载与瓶颈负载的关系,正是负载测试所要完成的工做。压力测试则验证从系统到达瓶颈以后,继续持续加压时系统的表现。

根据性能测试的目的,选择是进行负载、压力、稳定性测试仍是几种测试。每种测试中通常会安排几个场景,场景的变换主要根据压力值、系统配置等参数而改变。首次测试一把根据预估的性能需求和经验值开决定,后续的测试场景依赖于首次测试的各项指标的特征。例如,首次测试后,发现系统的性能很好,彻底知足预期且机器各项负载指数很低,后续能够考虑n倍压力值探测系统瓶颈。若是首次测试的结果表现出不能知足预期,则须要调整各参数值进行测试,经过比较个参数值下的性能表现来分析系统瓶颈。

4、准备环境数据

1 搭建测试环境

什么是测试环境?测试环境=软件+硬件+网络+数据+测试工具。

原则1 以假乱真

软、硬件配置要与生产环境的配置一致,若是条件有限,则要尽可能逼近于生产环境的真实条件。同时,要保证测试工具的稳定性。若是性能测试环境不够真实、稳定,则测试的结果的可靠性没法知足。

原则2 以静制动

通常,咱们将压力程序、被测模块部署在不一样的机器上。(即使是生产环境中压力来自于被测模块所在的机器,咱们通常也是分开部署;这是保证被测模块的干净,避免对测试结果的干扰)。所以信息交互是经过网络来完成的。保证环境干净的另外一个缘由是,通常线上部署是多模块统计部署,在线下没有必要搭建通线上同样的模块,所以使用一套干净的环境进行测试,能够在后期分析中引入多模块统计部署的因素进来,推算上线后的效果。

2 准备测试数据

原则3 以小见大

测试数据是测试环境的一部分,但与环境不一样,测试数据很难达到与生产环境如出一辙。一方面,生产环境的数据是动态、持续变化的,而测试中咱们须要的数据是静态的,咱们没法保证数据的实时性;另外一方面,生产环境的数据是庞大的,而测试环境中数据量是有限的。

在数据准备中既要关注数据的质、又要关注量。

1)质——指数据的频率、分布要尽量和线上一致。

2)量——指数据的规模要达到、接近或者超过线上现有水平。

一般,能够采用同比例缩放或扩放的方式,即便用过去一段时间的生产环境数据来进行测试。通常能够保证数据的频率、分布和真实环境中是一致的。

5、性能指标分析

1 性能指标的关注

性能测试的指标可分为产品指标和资源指标两类。对测试人员而言,性能测试的需求来自于用户、开发、运维的三方面。用户和开发关注的是与业务需求相关的产品指标,运维关注的是与硬件消耗相关的资源指标。

1)从用户角度关注的指标:用户关注的是单次业务相关的体验效果,譬如一次操做的响应快慢、一次请求是否成功、一次链接是否失败等,反映单次业务相关的指标包括:

(1)成功率=成功响应次数/统计时间

(2)失败率=失败响应次数/统计时间

(3)响应时间

2)从开发角度关注的指标: 开发人员更关注的是系统层面的指标。

(1)容量:系统可以承载的最大用户访问量是多少?系统最大的业务处理量是多少?

(2)稳定性: 系统是否支持7*24小时(一周)的业务访问?

3)从运维角度关注的指标:运维人员更关注的是硬件资源的消耗状况。

须要注意的是,在预估性能压力和指标时,须要给线上运维操做留有必要的性能空间。

其中,资源消耗每每是制约产品指标的重要因素,是咱们在性能测试中须要特别关注的指标。资源消耗包括CPU、内存、硬盘、网络带宽等。

2 性能指标的统计

1) 单次业务相关的指标能够经过统计日志信息来计算。

2) 连续业务相关指标须要从长时间、高压力的性能中统计和分析。

3) 资源消耗指标能够经过监控进程占用的资源、机器系统的资源变化来观测。

其中,常见的性能分析工具备vmstat、top、free、iostat等。

3 性能指标的分析

指标分析的原则是“具体问题具体分析”,可是总的方法是盯住单场景,观察各项指标变化趋势;针对多场景,分析不一样参数下的变化。须要注意到是,操做系统老是尽量的去使用CPU和内存等资源,所以CPU满负荷或者内存free较小并不能说明该资源出现不足。

在判断资源短缺和瓶颈时须要综合分析资源间的制约关系,并观察各个资源值的变化。下面主要对资源消耗的各个指标进行分析。

其中,资源间的制约关系:

1)物理内存不够时会使用交换内存,使用swap会带来磁盘I0和cpu的开销。

2)Linux能够利用空闲内存做文件系统访问的cache,所以系统内存越大存储系统的性能也越好。

6、总结

但愿这份总结对你们有所帮助,总结是必要的,但仅仅是总结而已。我的理解,性能测试是一门意会大于言传的测试。屡试不爽、受益不浅。

相关文章
相关标签/搜索