性能测试理论

终于有时间把性能测试补上了,下一步补充Jmeter的具体操作
性能指标

1. 响应时间: 客户端发出请求->接受请求的时间
2. 吞吐量: 单位时间内系统处理请求的数量
3. 错误率: 失败请求比例
4. 并发用户数: 同一时间向系统发出请求的用户数,基于场景分析
5. 服务器资源:cpu,内存等

性能测试目的

1. 性能表现
2. 发现性能瓶颈

性能测试主要分为

1. 线上压测-全链路压测来执行
2. 线下测试-单机或小集群来压测

性能指标

1. 虚拟用户数
2. 压测事务
3. tps 每秒钟处理事务的数量(吞吐量)
4. QPS 每秒钟的查询率
5. PV 高峰pageview 是指一天中PV数达到的最高峰

DB层

1. QPS: Select的请求量
2. TPS insert, update,delete的请求量

应用层

1. 所有的请求量都可以使用QPS和TPS来表示

指标

并发, 响应时间-RT, 思考时间, CPU资源, Load负载

性能测试指标

业务指标
资源指标
应用指标
前端指标

性能测试策略

数据库
	专用性能测试数据库
		基础数据
		业务数据(业务逻辑数据)
日志
	仅输出warn级别日志
缓存
	屏蔽缓存
场景
	单场景(先执行)
	混合场景(后执行)
分析
	拆分问题
	隔离分析
根据业务系统要求,判断被测性能是否通过
性能瓶颈
	不能在当前项目中解决得性能bug

性能测试评估

评估
	明确测试什么
	期望值
测试系统能够满足将来一个时间段的压力
性能测试评估
	测试前的评估(四个维度)
		关键业务(购物车系统,提交订单,优惠券打折券,支付的选择,取消订单)
		日PV量
		逻辑复杂度
         运营推广计划
    功能点不满足四个维度的属于高资源占用
    	CPU
    	内存
    	I/O
    	load
    	disk
	测试后的评估

性能测试类型和执行方法

1. 性能期望值
2. 高于期望,系统资源处于临界点
3. 高于期望,拐点
4. 超过负载,系统崩溃

1. 性能测试
2. 负载测试
3. 压力测试
4. 稳定性测试

性能监控

性能监控:
	应用服务器
	数据库
	中间件
	网络
应用服务器
	cpu
	Memory
	Load
	I/o
	disk等
数据库
	缓存命中
	牵引
	单条SQl性能
	数据库线程数
	数据池连接数
中间件
	线程数
	连接数
	日志输出
网络
	防护墙
	网卡
	网线
	吞吐率
应用服务
	JVm的内存使用和回收
	JAVA内存使用
	FullGC频率
	Java类的载入
	卸载
	日志
	线程-运行状态(阻塞,等待,正常运行)
性能监控指标
	用户执行情况
	场景状态
	事务响应时间
	TPS
	Load
	CPU分析图表等
测试机资源
	CPU
	内存
	网络
	日志输出
	磁盘空间
	负载生成器评估

监控工具

Jstat
	java/bin 利用JVM内建指令对java应用程序的资源和性能进行实时的命令行监控,包括对HeapSize和垃圾回收状态监控
JConsole
	java开发的GUI程序,用来监控JVM,也可以监控远程的JVM
	java内存,javaCPU使用率,线程执行情况,加载类情况等
Jmap
	可输出所有内存对象的工具,可以将JVM的Heap以二进制输出为文本,可用于监控java是否存在内存泄漏
JProfiler
	功能相对较全的java剖析工具,可详细剖析CPU,线程和内存的使用情况
    可直观式的界面,可方便找到性能瓶颈,抓到内存泄漏,解决多线程问题,对内存GC的资源回收器做深入的分析,可以轻易找出内存泄漏

性能分析

分析原则-拆分问题,隔离分析-逐步定位,从外到内,从表及里,逐层分解,隔离排除
	中间件瓶颈(Tomcat参数配置,数据库参数配置等)-->应用服务日志-->本应用得性能瓶颈(代码,SQL语句,索引,业务逻辑,线		程池设置,算法)-->服务提供者的性能瓶颈-->相关联的底层存储应用的性能瓶颈
分析信息来源
	监控工具所采集的数据
		tps, RT,并发用户数,JVM内存,FULLGC频率,CPU利用率,Load
	应用服务的日志
		本应用的日志和远程应用的错误日志,超时日志
	项目配合人员提供的数据
		数据库监控信息,开发人员提供的代码逻辑信息
分析标准
	RT是否符合性能预期值,表现是否稳定
	应用日志中,超时的频率,是否在可接受的范围内
	TPS维持在多大的范围内,是否会有波形出现,标准差多少,是否符合预期
	服务器的CPU,内存

性能测试总结

1. 评估是否需要做性能测试
	项目立项前的技术方案阶段-PM或者PDM
2. 性能测试资源分配
	个业务的开发和测试人员
3. 制定性能测试计划
4. 编写性能测试设计方案
	邀请PM, PDM, 测试负责人,一起细化需求
	性能测试方案
5. 评审性能测试设计方案
	PM,系统设计人员,测试人员,DBA等共同参与
	测试目标
	测试策略
	测试数据
6. 提供代码,搭建环境,数据准备
	项目环境中搭建性能测试环境,准备压测数据和压测脚本
7. 执行性能测试
	功能测试通过-执行性能测试-执行脚本需要符合规范
8. 性能调优
	PM,性能测试工程师,DBA共同参与
9. 编写性能测试报告
	性能测试目标,环境,数据构造规则,测试策略,测试结果,调优说明,测试过程中遇到的问题以及解决方法等
posted @ 2022-12-09 14:06  jiyanjiao  阅读(95)  评论(0编辑  收藏  举报