课程适合人群:
1 软件性能测试知识
1.1 软件性能测试基本知识
1.1.1 身边的性能
1.1.2 由于性能测试不足带来的Bug
1.1.3 什么是性能
1.1.4 性能在ISO25010 2016软件质量模型中的位置
1.1.5 性能在敏捷测试的位置
1.1.6 软件性能问题的定位
1.1.7 衡量软件性能的四个维度
1.1.8 参加性能需求分析的干系人
1.1.9 性能测试工具
1.1.10 性能测试的作用
1.2 软件性能测试类型及测试方法
1.2.1 性能测试类型
1.2.2 普通性能测试
1.2.3 前端性能测试
1.2.4 负载测试(Load Testing)
并发测试( Concurrency Testing)
容量测试(Volume Testing)
1.2.5 负载测试寻找拐点的方法
逐步递增法
二分法
黄金分割法
1.2.6 疲劳性测试(Stress Testing)
1.2.7 强度测试(Strength Testing)
1.2.8 配置测试(Configuration Testing)
1.2.9 基准测试(Benchmark Testing)
1.3 软件性能测试指标
1.3.1 性能指标
1.3.2 响应时间(Response Time)
1.3.3 前端响应时间
1.3.4 吞吐率
1.3.5 资源利用率
1.3.6 思考时间(Think Time)
1.3.7 在线用户数与并发用户数
1.3.8 性能计数器
1.3.9 理发师模型
1.3.10 响应时间、吞吐率、资源利用率关系
1.4 软件性能测试需求分析
1.4.1 分析用户行为
1.4.2 性能测试的难点
1.4.3 需求层面
1.4.4 技术层面
1.4.5 解决思路
1.4.6 需求分析典型案例
1.4.7 需求的来源
1.4.8 性能测试通过标准
1.5 性能测试用例设计及分析
1.5.1 性能测试场景设计完整过程
1.5.2 测试环境、工具、数据准备
1.5.3 测试脚本录制、编写与调试
1.5.4 场景制定
1.5.5 测试执行
1.5.6 结果分析与定位问题
1.5.7 测试报告与测试评估
1.5.8 性能测试方案
1.6 构建性能测试方案
1.6.1 软件结构演进
1.6.2 性能测试数据的创建方法
1.6.3 性能测试数据的创建时机
1.6.4 线下性能测试环境
1.6.5 性能测试场景设计
1.7 高级性能测试
1.7.1 全链路压测
1.7.2 蓝绿联盟
1.7.3 金丝雀发布
1.7.4 数据回放技术
1.7.5 DevperfOps
2 HTTP协议及其抓包工具使用
2.1 HTTP消息包
2.2 请求包
2.3 响应包
2.4 HTTP协议特性
2.5 Fiddler4使用
3 LoadRunner
3.1虚拟用户
3.1.1Vuser Script录制流程
3.1.2认识VuGen的录制原理
3.1.3录制选项设置
3.1.4Run-time Setting
3.2参数化
3.2.1参数化目的
3.2.2参数类型(Parmeter type)
3.2.3参数列表的配置
3.2.4参数取值方式
3.2.5如何打印参数化变量
3.2.6参数化步骤
3.3事务、集合点和思考时间
3.3.1响应时间
3.3.2响应时间组成
3.2.3添加事务
3.4 检查点
3.4.1 web_find()函数
3.4.2 web_reg_find()函数
3.4.3 界面操作
3.4.4 图片检查点
3.5集合点
3.2.1集合点
3.2.1集合点策略
3.6 关联
3.6.1为什么要设置关联
3.6.2录制中建立关联
3.6.3用户自定义关联
3.6.4录制后建立关联
3.6.5手动建立关联
3.7 场景
3.7.1场景用途
3.7.2设计场景流程
3.7.3启动场景流程
3.7.4两种场景模式
3.7.5设计场景
3.7.6场景控制
3.7.7查看场景
3.8 IP欺骗
3.8.1为什么要使用IP欺骗
3.8.2IP欺骗技术设置
3.8.3查看设置是否正确
3.9 负载均衡
3.9.1负载均衡原理
3.9.2主机器配置
3.9.3副机器配置
3.9.4Controller中配置
3.10 场景运行时间设置
3.10.1为每个场景设置运行时间
3.10.2为所有场景设置一个运行时间
3.11 测试报告分析
3.11.1基本分析方法
3.11.2默认报告
总体报告
运行的虚拟用户变化
每秒点击率
吞吐量
交易概述
平均交易反馈时间
3.11.3生成标准各种格式的报告
3.11.4分析图合并
设置
叠加
平铺
3.11.5关联
分析图关联技术
分析图钻取技术
4 JMeter
4.1 安装与环境变量配置
4.2 JMeter 简介
4.3 录制
4.3.1 BadBoy录制
4.3.2 用JMeter录制
4.4 JMeter基本元件介绍
4.4.1 测试计划
4.4.2 线程组
4.4.3 HTTP Cookie 管理
4.4.4 HTTP头信息管理
4.4.5 HTTP Request
4.4.6 查看结果树
4.4.7 Debug Sample
4.4.8 参数化方法
CSV参数化
函数助手
JDBC参数化
4.5 断言
4.5.1 响应断言
4.5.2 BeanShell断言
4.5.3 Size Assertion断言
4.5.4 断言持续时间
4.6 其他元件
4.6.1 正则表达式提取器
4.6.2 边界提取器
4.6.3 设置Cookies
4.6.4 网速模拟
4.6.5 Throughput Controller
4.6.6 事务控制器
4.7 报告
4.7.1 Summary Report
4.7.2 Aggregate Graph
4.7.3 Response Time Graph
4.7.4 时间响应图
4.8 非GUI下的运行方式
4.8.1 基本命令行运行
4.8.2 通过Python Taurus运行
4.8.3 通过Java ant运行
4.9 监控
4.9.1 JMeter集群+Influxdb存储+Grafana实时数据
Influxdb安装及使用
Grafana安装及使用
4.9.1 性能监控与分析
4.9.1 资源信息分析图
4.9.1 性能监控
Exporter + Prometheus + Grafana进行监控
Exporter安装及使用
Prometheus安装及使用
Grafana使用
对MYSQL的监控
全链路监控
微服务架构
全链路监控选择依据
APM
Skywalking安装及使用
Nmon性能监控
用于实时监控
用于测试过程中监控
Windows性能监控
监控搭建
启动监控
监控报告
Tomcat监控工具Probe
线程池
正在运行的线程
内存监控
MySQL监控工具Monyog
5 性能分析
5.1 性能瓶颈分析方法
5.2 基于Windows的性能分析
5.2.1 Process
5.2.2 Memory
5.2.3 DISK
5.2.4 Processor
5.2.5 网络
5.3 基于Linux的性能分析(简约版)
5.3.1 CPU
top
top -Hp 进程号
jstack
useful-scripts
5.3.2 Memory
free -m
5.3.3 Disk
iostat -x
iotop
5.3.4 Network
netstat
5.3 基于Linux的性能分析(详细版)
5.3.1 Linux架构
5.3.2 CPU
常用命令-uptime
常用命令-top
CPU使用率
平均负载
不可中断的睡眠态进程
僵尸进程
CPU状态转换
中断
节拍率
上下文切换
显示10个消耗CPU最多的进程
常用命令-perf top、 perf record
常用命令- execsnoop
在多CPU的系统里,可以查看所有CPU的信息
5.3.3 内存
内核空间、用户空间
内核映射
虚拟内存空间分布
内存的分配与回收
查看剩余内存
cache和buffer
获得系统内存摘要信息
详细显示某个进程所用的内存情况
5.3.4 文件和磁盘
文件与磁盘概念
虚拟文件系统 VFS(Virtual File System)
文件系统分类
通用块
Linux存储堆栈图
性能指标
常用命令- /proc/slabinfo
查看所有目录项和各种文件系统索引节点的缓存情况
查看I/O状态
5.3.5 网络
基本概念
TCP 协议通信的网络包
Linux 网络栈
接收、发送流程
性能指标
常用命令-ifcong
常用命令-ip
网络吞吐和 PPS
连通性和延时
网络性能测试
分析工具
5.4 JVM监控与调优
5.4.1 JVM调优与监控
5.4.2 JVM的六种状态
5.4.3 JVM结构
5.4.4 垃圾回收机制
为什么要区分新生代和老年代?
如何回收
垃圾回收算法
垃圾收集器类别
通用的GC算法百分比
垃圾收集器组合
命令
Tomcat调优与监控
5.5 MYSQL监控与调优
5.5.1 一次 SQL 的查询过程
5.5.2 影响性能的关键点
5.5.3 MYSQL计数器
5.5.4 最大连接数
5.5.5 实际连接数
5.5.6 innodb_buffer_pool_size
5.5.7 慢SQL定位技术
5.5.8 SQL语句的执行计划
5.5.9 show full processlist
5.5.10 索引覆盖
5.5.11 联合索引
5.5.12 索引失效的场景
6性能调优
6.1 性能调优
6.1.1 性能调优方法
6.1.2 性能分析流程
6.1.3 系统性能关注点
6.2 性能调优内容
6.2.1 前端优化
6.2.2 CPU调优
6.2.3 程序优化
6.2.4 配置优化
6.2.5 线程优化
6.2.6 DB优化
6.2.7 业务流程优化
6.2.8 结构优化
7 实战
7.1 负载测试
7.2 疲劳性测试
【投稿】【关闭窗口】【打印】