性能测试技能树
基础:
完整的性能测试流程
需求-计划-方案-环境搭建-用例设计-数据准备-场景设计-脚本开发-脚本执行-结果分析-问题反馈-性能调优-结果报告
性能指标
TPS,QPS,RPS,HPS,RT,VU,ERROR
测试类型
压力测试,负载测试,并发测试,spike测试,稳定性测试,破坏性测试,验收测试
工具:
jmeter工作原理
常用的元件,插件
jmeter如何设计脚本(线程组,各种请求,定时器,参数化,关联,断言)
jmeter测试报告
jmete设计典型性能测试场景
其它工具
wrk,ab,httpload,webbench,siege
服务器/中间件
JVM原理和配置、堆栈原理、GC原理、FullGc,OOM
Tomcat配置、使用方法、启动参数配置
Nginx配置、使用方法
Dubbo服务注册、消息队列
服务器硬件资源
cpu,磁盘,网络,内存,load和利用率,IO读写,发包率丢包率
linux性能监听命令
lscpu,uptime,free,vmstat,mpstat,sysstat,netstat,iostat,pidstat,jstack,jmap
数据库
锁,索引,读写分离,分库分表,Nosql
线程状态
就绪(Runnable),运行(Running),阻塞(Blocked)
可能的瓶颈点
硬件,中间件,程序,操作系统,网络设备
cpu,内存,磁盘,网络,jvm,线程池,jdbc连接池
OOM异常信息
OutOfMemoryError: Java heap space (堆内存不够)
OutOfMemoryError: GC overhead limit exceeded (代码内存过大或死循环)
OutOfMemoryError: PermGen space (perm内存不够)
OutOfMemoryError: Direct buffer memory (线程栈太小)
性能优化方法
使用对象池减少对象创建
增加本地缓存
Nosql进行存储
合并请求
串行改并行
同步改异步
戳我>>>性能测试实战分析