性能测试工具解析
性能测试使用的工具
1. 性能测试工具
- Apache AB 小快灵 只支持HTTP, 不能实现场景化
- LoadRunner
- Jmeter
- Grinder
- Locast
- PTS
2. 性能监控工具
- Linux自带命令: vmstat, top
- 机器监控工具: Nmon
- 下载: http://nmon.sourceforge.net/pmwiki.php?n=Site.Download
- 图表: http://nmon.sourceforge.net/pmwiki.php?n=Site.Nmon-Analyseer
- 生成图表: http://nmon.sourceforge.net/pmwiki.php?n=Site.Nmonchart
- 物理机监控工具: Collected + InfluxDB + Granafa
- collected守护进程: https://www.collected.org/index.html
- Docker + Mysql + Redis 一体化监控
- Prometheus + Granafa(node_exporter, mysql_exporter, redis_exporter, 自定义_exporter全家桶)
- 全链路监控: Tracing监控, Zipkin, skywalking
3. 行业流行的性能监控工具
- 系统级网络级监控及剖析工具
- 代码级监控及剖析工具
- DB级监控及剖析工具
- 链路级监控及剖析工具
- 缓存, 队列监控工具
2. 性能方案设计
- 需求分析与测试设计
- 根据具体的性能测试和需求, 确定测试类型以及压测模块(web, mysql, redis, 系统)
- 与相关人员进行沟通, 确定压测方案和具体的性能指标
- 完成性能设计后, 形成相关文档, 组织评审, 确认是否满足需求
- 环境设计与搭建
- 根据需求搭建测试环境, 尽量保证真实性
- 测试数据准备
- 接口请求参数(自己构造/日志获取/上下关联)
- 数据表的数据填充
- 结合业务场景设计请求比例(多接口)
- 性能指标预期
- 每秒请求数(QPS)
- 请求响应时间(最大, 最小, 平均)
- 错误率
- 机器性能
- 压测过程中接口功能是否正常
- 发压工具配置以及脚本编写
- JMeter工具
- 脚本编写
- 指令
- 测试过程
- 测试前环境监察, 记录机器参数
- 启压: 根据被压性能, 调整并发量到合适情况
- 查看记录各项的性能指标
(1)nginx日志查看每秒请求数
(2)nginx错误请求
(3)机器参数: cpu, mem
(4)DB, cache是否写入正常
(5)接口功能是否正常
- 结果分析与测试报告
3. 全链路性能测试介绍
全链路性能测试缺点
- 压测线上
- 写数据对线上环境的影响
- 对统计的影响
- 对第三方依赖的压力
- 恢复困难
优化方案–隔离压测方案
生产环境压测, 做到不污染线上的业务和数据