8月26日上课笔记
dubbo地址
http://dubbo.apache.org/zh-cn/docs/user/quick-start.html
https://blog.csdn.net/noaman_wgs/article/details/70214612
使用dubbo进行接口测试
泛化调用,需要看Java反射
性能测试基本概念
如何衡量一个接口的性能
在4核8G的服务器上压测,20并发下,我们测试得到的TPS为200,MAT为150ms,RT90值为250Ms,CPU使用率为65%
指标:
- 并发数,
- TPS
- MRT(平均响应时间),RT90值(90%的响应时间小于该值),RT99值(99%的响应时间小于该值)
- 资源使用率(CPU、内存、网络、磁盘)
吞吐量
每秒钟成功处理的事物数、请求数
衡量指标:
TPS:Transaction in sec
IOPS:
BPS:
QPS:
响应时间:
从客户端发起一个请求开始,到客户端接收到从服务器端返回的最后一个字节结束,这个过程所耗费的时间
STD DEV:标准差,响应时间波动,波动越小越好
如何开展性能测试
- 测试目标和测试类型的选择
上线的功能是否有性能问题
评估系统性能:性能测试、负载测试
检查系统性能瓶颈点:负载测试、压力测试
优化后的接口,是否有性能提升
回归测试、负载、压力测试
验证稳定性、可靠性等;稳定性测试、异常测试
容量评估:线上压测
哪些接口需要进行性能测试
核心功能
高频调用接口
业务逻辑复杂的接口、大量数据库读写操作
性能测试环境要求
- 软硬件环境要求一致
线上集群的最小集合
硬件配置最好一致
拒绝多个服务混部在同一台服务器上
软件配置和线上保持一致
测试准备
##测试数据
*用户账号
预估三个月或半年后活跃用户数
避免随便找几十个用户账号就开始测试
参数化数据、数据量、数据大小符合真实分布
设置铺底数据,从镜像库导线上数据到测试库
## 测试脚本和工具:Jmeter,Grinder
## 性能测试平台
测试执行
## 做好监控:把一切监控起来
性能指标:TPS,MRT,RT90,失败率
资源监控:
监控点:CPU,内存、网络、磁盘
监控机器:压测机器、nginx、应用服务、数据库、缓存、消息队列
日志监控:检查错误、异常,既是发现错误
Java监控:堆内存、线程状态、线程数量等
流程文档
性能测试准入标准:
提测任务描述清楚
功能(第一轮)测试通过
提测需求文档:
测试目的、测试内容、测试环境、通过标准、被测系统架构
性能测试通过标准:
遗留bug:五Major级别以上的bug
响应时间一般在200ms,最多500ms
是否符合预期:符合预期指标