【性能测试】性能测试
定义
不断的通过不同场景的系统表现去探究系统设计与资源消耗之间的平衡
执行条件
-
已完成功能测试、系统趋于稳定的情况下执行性能测试
-
系统结构
-
了解系统所使用的技术及框架;环境搭建时了解项目的部署;性能分析与调优阶段深入分析技术细节
-
表示层
-
- 表示层(B/S)通过前端技术(html/js/css)将功能和数据展示给用户并与其交互
-
- 通过TCP/HTTP协议与业务层通信,发送请求报文给应用层系统,接收返回响应报文。
-
-
业务逻辑层
-
- 业务逻辑层作为中间层实现核心业务逻辑服务
-
- 应用服务器主要运行中间件系统,中间件系统系统作为一个容器来运行各种应用软件系统
-
-
数据层
-
- 数据层运行在数据库主机上,负责整个系统中数据信息的存储。
-
-
测试目的
-
验证系统是否满足预期需求;
-
验证系统在高压下的表现;
-
验证系统是否能持续稳定的运行;
-
探测系统的瓶颈和产生瓶颈的原因;
-
探测系统设计与资源之间的最佳平衡,改善并优化系统的性能。
测试流程
-
确定测试目的与需求
-
根据需求与场景,梳理测试要点
-
根据测试目的,制定测试方案
-
准备测试环境与数据
-
与功能测试的区别,不能再一台服务器运行多个系统(性能测试是要对整个系统运行的软件硬件环境进行测试的)
-
保证测试环境与生产环境的一致性
-
(1) 硬件环境:包括服务器环境、网络环境。
-
(2) 软件环境:版本一致性、配置一致性
-
(3) 使用场景的一致性:基础数据的一致性、使用模式的一致性。
-
-
-
测试执行(脚本或工具)
-
1.准备测试数据
-
2.使用测试工具模拟测试点
-
3.根据测试策略使用不同的虚拟用户和测试组合运行测试
-
4.监控系统CPU、内存、中间件、数据库的性能、手机数据
-
5.重复3和4步。
-
-
统计测试结果
-
分析结果
-
测试报告
测试方法
-
验收性能测试
-
在特定的运行条件下验证系统的能力状况,即模拟生产运行性能要求
-
-
负载测试
-
找到系统稳定时(或满足性能需求下)的最大吞吐量;
-
eg:99.9%的响应时间必需在1ms之内,平均响应时间在1ms以内,100%的请求成功)
-
-
稳定性测试
-
以系统稳定时的最大吞吐量(或满足性能需求时的最大吞吐量),长时间对系统进行测试,已检查系统是否稳定
-
-
压力测试
-
找到系统极限值,系统瓶颈 1 系统崩溃临界值 2 要求:响应时间可以变慢,但系统不能崩溃; 3 根据测试目的,选择是进行负载、压力、稳定性还是几种测试;
-
-
配置测试
-
通过对被测系统软硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到系统各项资源的最优分配原则
-
-
并发测试
-
通过模拟用户的并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题
-
特点
-
其主要目的是发现系统中可能隐藏的并发访问时的问题。
-
主要关注系统可能存在的并发问题,例如系统中的内存泄漏、线程锁和资源争用方面的问题。
-
这种性能测试方法可以在开发的各个阶段使用,需要相关测试工具的配合和支持
-
-
-
可靠性测试
-
通过给系统加载一定的业务压力,让应用持续运行一段时间,测试系统在这种条件下能否稳定运行。
-
特点
-
其主要目的是验证系统是否支持长期稳定的运行。
-
需要在压力下持续一段时间的运行。
-
测试过程中需要关注系统的运行状况。
-
-
-
失效恢复测试
-
用来检验如果系统局部发生故障,用户是否能够继续使用系统,以及如果发生这种情况,用户将受到多大程度的影响
-
特点
-
其主要目的是验证在局部故障情况下,系统能否继续使用。
-
这种性能测试方法还需要指出,当问题发生时“能支持多少用户访问”的结论和“采取何种应急措施”的方案。
-
一般来说,只有对系统持续运行指标有明确要求的系统才需要进行这种类型的测试。
-
-
性能指标
-
测试指标
-
并发用户数
-
响应时间:TP(百分比分布统计)
-
吞吐量:tps/qps
-
成功率
-
失败率
-
-
开发指标
-
Tomcat、数据库等;
-
容量:系统能承载的最大访问量是多少?系统最大的业务处理量是多少?
-
稳定性:是否支持7*24小时(一周)的业务访问?
-
-
运维指标
-
硬件资源消耗情况
-
CPU
-
内存
-
I/O读写速度
-
网络带宽
-
-
性能结果分析
-
响应时间不要光看平均值
-
平均值不靠谱。 要求最好定成:99.9%请求必须<1s,所有的平均响应时间必须<1s,这两个条件限制;
-
-
响应时间要和吞吐量TPS/QPS挂钩
-
响应时间吞吐量要和成功率挂钩
-
CPU、内存等硬件资源占比持续超过90%,说明性能存在瓶颈
-
带宽波动起伏很大,说明带宽受限
测试计划
-
1 简介
-
2 性能测试需求
-
3 测试环境 (软件、硬件、网络)
-
4 数据准备
-
5 测试工具
-
6 测试策略
-
7 人力与时间安排
新能调优
-
一般系统的瓶颈
-
(1) 硬件上的性能瓶颈
-
(2) 软件上的性能瓶颈
-
(3) 应用程序上的性能瓶颈
-
(4) 操作系统上的性能瓶颈
-
(5) 网络设备上的性能瓶颈
-
-
一般新能调优步骤
-
(1) 确定问题
-
(2) 分析问题
-
(3) 确定调整目标和解决方案
-
(4) 测试解决方案
-
(5) 分析调优结果
-
如果万事开头难 那请结局一定圆满 @ Phoenixy
-------------------------------------------------------------------------------------