基础: 完整的性能测试流程 需求-计划-方案-环境搭建-用例设计-数据准备-场景设计-脚本开发-脚本执行-结果分析-问题反馈-性能调优-结果报告 性能指标 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进行存储 合并请求 串行改并行 同步改异步
戳我>>>性能测试实战分析