性能测试的几个概念

性能测试
通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。

负载测试(Load Test) --测试方法/技术
模拟系统正常负载(系统能承受的最大负载量的期望值,即预计系统最大应该支持多大用户的并发量)压力场景,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来考察不同负载下系统的性能指标(响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等),以检验系统的行为和特性,发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。
负载测试更多地体现了一种方法或一种技术。负载测试不关注稳定性(长时间运行),只得到不同负载下相关性能指标即可。

压力测试/强度测试(press testing)--测试软硬件瓶颈
通过不断增加负载(大数据量、大量并发用户等),使应用系统在高强度负载情况下运行,直至系统崩溃,观察系统在峰值(拐点)情况下的表现,从而有效地发现系统瓶颈(cpu/内存/代码功能隐患)、系统容错力和可恢复力。

稳定性测试(endurance testing)--测试系统稳定性
在选定的压力值下,长时间(如:7*24h)持续运行,考察各项性能指标变化情况,进而确定系统在一定压力下是否运行稳定。

容量测试(volume testing)--测试系统容量
通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还可确定测试对象在给定时间内能够持续处理的最大负载或工作量。
容量测试根据系统运行情况可分为 安全容量测试和极限容量测试
安全容量测试:硬件运行正常时的负载量/工作量(如:cpu 80% 内存80%)
极限容量测试:系统压垮时的系统负载量/工作量

####并发用户
- 狭义并发用户,所有的用户在同一时间点做同一件事或操作,这种操作一般指做同一类型的业务。
- 广义并发用户,多个用户对系统发出了请求或者进行了操作,但是这些请求或都操作可以是相同的,也可以是不同的。同一时间(1s/1min)在访问我们的服务(所有的服务,不区分)的用户(单位时间确定为1s计算已经很精确)

####[理发店原理](https://www.cnblogs.com/jackei/archive/2006/11/20/565527.html)
以理发店运营类比系统处理事务

- 当顾客(用户)数量小于“最佳并发用户数”时,理发店(系统)资源利用率不饱和,工作效率(单位吞吐量)随着顾客(用户)数量增长,称为Light Load;
- 当顾客(用户)数量为“最佳并发用户数”时,理发店(系统)资源利用率最高,工作效率(单位吞吐量)接近最大值且顾客等待时间(响应时间)最短;
- 当顾客(用户)数量介于“最佳并发用户数”和“最大并发用户数”之间时,理发店(系统)满载运行,工作效率(单位吞吐量)随着顾客(用户)数量先增后降,顾客(用户)的等待时间延长,满意度逐渐降低,称为Heavy Load;
- 当顾客(用户)数量为“最大并发用户数”时,理发店(系统)满载运行,但顾客(用户)等待时间(响应时间)为最大等待时间;
- 当顾客(用户)数量大于“最大并发用户数”时,理发店(系统)持续满载运行,随着时间延长工作效率(单位吞吐量)下降,超过最大等待时间的顾客放弃,称为Buckle Zone。
![](https://images.cnblogs.com/cnblogs_com/jackei/33219/o_modified-001.jpg)

####吞吐量/吞吐率/QPS/TPS

- 吞吐量:在一次性能测试过程中网络上传输的数据量的总和
- 吞吐率:单位时间内网络上传输的数据量,也可以指单位时间内服务器成功处理客户请求数量
- QPS(query per second):每秒钟服务器成功处理的请求数量。并发用户越多,qps越高。--不带有业务逻辑
- TPS:每秒钟系统能够成功处理事务或交易(如:下单全流程)的数量,它是衡量系统处理能力的重要指标。--带有业务逻辑

####响应时间
响应时间:从用户提交操作到应用系统把本次操作的结果以用户识别的方式展示出来的时间,其中包括呈现时间、数据传输时间和系统处理时间,一般性能测试主要测试系统处理时间。

- 呈现时间:浏览器对接收到数据的一个处理展示过程的时间
- 数据传输时间:C-S/B-S之间传输数据的时间
- 系统处理时间:系统得到请求后会对请求进行处理并将结果返回的时间

####性能测试流程

1. 明确性能需求
2. 了解系统架构
3. 分析测试点
4. 选择测试工具
5. 制定测试计划
6. 搭建测试环境(可以选择在生产环境直接压)
7. 脚本编写
8. 测试执行
9. 性能调优
10. 输出测试报告


####影响系统性能的主要因素

- 硬件:CPU、内存、硬盘、网卡以及其他网络设备
- 操作系统
- 网络
- 中间件(也叫应用服务器,如Jboss、websphere、weblogic等)
- 数据服务器
- 客户端
- 编程语言、程序实现方式、算法

####性能问题解决方法
服务器调优、扩容(增加服务器)等

猜你喜欢

转载自www.cnblogs.com/mika-blogs/p/11088343.html