1、软件性能测试
什么是性能
由于性能测试不足带来的Bug
身边的性能
性能在ISO25010 2016
性能在敏捷
软件性能问题的定位
衡量软件性能的四个维度
最终用户
系统运维
软件设计开发人员
性能测试人员
软件性能干系人
性能测试工具
2、软件性能测试类型及测试方法
软件性能测试类型
前端性能测试
普通性能测试
配置测试
强度测试
疲劳性测试
负载测试
并发测试
容量测试
寻找拐点的方法
逐步递增法
二分法
0.618法
性能测试的作用
能力验证
能力规划
性能调优
缺陷发现
3、软件性能指标
软件性能指标
响应时间
吞吐率
资源利用率
计数器
每秒点击率
在线用户数
并发用户数
理发师模型
4、软件性能测试需求分析
分析用户行为
性能测试的难点
需求获取渠道和方式
解决思路
需求分析典型案例
需求的来源
衡量性能测试通过标准
5、软件性能测试方案
构建性能测试方案
软件结构演进
性能测试数据
性能测试环境
性能测试场景
6、高级性能测试及其HTTP协议
高级性能测试
DevOps
全链路压测
金丝雀发布
HTTP协议
7、软件性能测试分析
综述
监控平台选择
资源信息分析图
基于Linux的性能分析
Linux架构
CPU
常用命令-uptime
常用命令-top
CPU使用率
平均负载
不可中断的睡眠态进程
僵尸进程
CPU状态转换
中断
节拍率
上下文切换
显示10个消耗CPU最多的进程
常用命令-perf top、 perf record
常用命令- execsnoop
在多CPU的系统里,可以查看所有CPU的信息
内存
内核空间、用户空间
内核映射
虚拟内存空间分布
内存的分配与回收
查看剩余内存
cache和buffer
获得系统内存摘要信息
详细显示某个进程所用的内存情况
文件和磁盘
文件与磁盘概念
虚拟文件系统 VFS(Virtual File System)
文件系统分类
通用块
Linux存储堆栈图
性能指标
常用命令- /proc/slabinfo
查看所有目录项和各种文件系统索引节点的缓存情况
查看I/O状态
网络
基本概念
TCP 协议通信的网络包
Linux 网络栈
接收、发送流程
性能指标
常用命令-ifcon
常用命令-ip
网络吞吐和 PPS
连通性和延时
网络性能测试
分析工具
Nmon性能监控
用于实时监控
用于测试过程中监控
基于Windows的性能分析
性能监控器位置
Process
Memory
DISK
进程
网络
MYSQL监控
计数器
MySQL 查询过程
MySQL调优三角形
监控项
Monyog工具
JVM监控工具
垃圾回收机制
JVN结构
JDK1,8 取消了持久代
何时回收
为什么要区分新生代和老年代?
Full GC触发条件
如何回收
垃圾回收算法
垃圾收集器
命令
jps
jstat
jinfo
jmap
jvisualvm.exe
Tomcat监控工具Probe
Tomcat计数器
线程池
正在运行的线程
内存监控
APM工具
Pinpoint
SkyWalking
Zipkin
CAT
8、测试调优
性能调优风险
性能调优次序
性能调优决策树
找到瓶颈,分析方案
分析方法
系统调优检测项
调优类别
前端优化
JVM调优
CPU调优
程序优化
配置优化
DB优化
文件系统优化
硬盘操作优化
磁盘优化