性能测试技能树

港控/mmm° 2023-06-05 08:58 102阅读 0赞

基础:
  完整的性能测试流程
    需求-计划-方案-环境搭建-用例设计-数据准备-场景设计-脚本开发-脚本执行-结果分析-问题反馈-性能调优-结果报告
  性能指标
    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 (线程栈太小)

性能测试分析
  错误提示分析
    OutOfMemoryError: Java heap space (堆内存不够)
    OutOfMemoryError: GC overhead limit exceeded (代码内存过大或死循环)
    OutOfMemoryError: PermGen space (perm内存不够)
    OutOfMemoryError: Direct buffer memory (线程栈太小)
指标监控分析
  cpu瓶颈
    响应时间慢
    空闲时间高(idle)
    系统占用高(sys)
    用户占用高(usr)
    运行队列长(r)
    load长期大于cpu个数
  内存瓶颈
    交换率过高(swap)
    系统cpu利用率很高
    内存溢出(OOM)
  磁盘瓶颈
    磁盘利用率高
    等待队列过长(avgqu-sz)
    等待IO的百分比过高(await))
    用于IO的时间比例过高(util)
    缓存命中率过低(buffer cache)
  JVM瓶颈
    fullgc频繁,考虑老年代内存是否太小
    YoungGc频繁,考虑年轻代内存是否太小
    YoungGc时间过长,程序中出现了大对象, 增加 -XX:PretenureSizeThreshold
    GC监控
     jstat -class 类加载统计
     jstat -compiler 编译统计
     jstat -GC 垃圾回收统计
     jstat -gccapacity 堆内存统计
     jstat -gccnew 年轻代垃圾回收统计
     jstat -gccold 老年代垃圾回收统计
     jstat -gcnewcapacity 年轻代内存统计
     jstat -gcoldcapacity 老年代内存统计
     jstat -gcmetacapacity 元空间内存统计
     jstat -gcutil gc整体统计
分段排查定位分析
  服务器硬件瓶颈->网络瓶颈->应用瓶颈->服务器操作系统瓶颈(参数配置)->中间件瓶颈(参数配置,数据库,web服务器等)
优化方法
  使用对象池减少对象创建
  增加本地缓存
  Nosql进行存储
  合并请求
  串行改并行
  同步改异步

946454-20190926150835758-1727705104.png

戳我>>>**性能测试实战分析**

转载于:https://www.cnblogs.com/Zfc-Cjk/p/11588062.html

发表评论

表情:
评论列表 (有 0 条评论,102人围观)

还没有评论,来说两句吧...

相关阅读

    相关 10.性能测试技能

    技能决定一件事情能不能做,软技能决定事情做得如何。 性能测试,更多时候作为一个项目形式存在,一般都会由测试人员负责带头把控全局,跟踪问题,解决问题,协调汇报等等。 这...

    相关 java技能

    本篇主要是根据评论的博主推荐发现的学习小窍门,很适合在闲暇的时候点开学习。 内置了java的基本知识,每一节里有知识点的介绍和几道选择题。 主要是记住学习链接,方便闲暇之余

    相关 性能测试技能

    基础:   完整的性能测试流程     需求-计划-方案-环境搭建-用例设计-数据准备-场景设计-脚本开发-脚本执行-结果分析-问题反馈-性能调优-结果报告