内容简介
基础篇
第1章 性能方向职业发展
1.1为什么选择软件测试
1.2软件测试痛处
1.3软件测试发展路线
1.4不仅仅是性能测试
1.5从招聘要求看岗位价值
1.6性能测试技能树
1.6.1测试工具
1.6.2测试基础
1.6.3代码
1.6.4服务器性能诊断知识
1.6.5性能调优技能
1.6.6自动化/持续集成
1.6.7云计算及虚拟化
1.7本章小结
第2章 性能测试初体验
2.1性能测试的价值
2.2性能测试流程
2.3性能测试成功与失败要素
2.4不同角色看性能
2.5性能测试工具选择
2.6性能测试相关术语
2.7性能测试通过标准
2.8性能测试趋势
2.9本章小节
工具篇
第3章 JMeter体系结构
3.1 JMeter简介
3.2 JMeter体系结构
3.2.1 X1【取样器】
3.2.2 X1【断言】
3.2.3 X1【监听器】
3.2.4 X2【前置处理器】
3.2.5 X2【配置元件】
3.2.6 X2【后置处理器】
3.2.7 X3【控制器】
3.2.8 X4【定时器】
3.2.9 X5【线程组】
3.2.10 Test Fragment
3.2.11工作台
3.3 JMeter运行原理
3.4 JMeter测试计划要素
3.5 JMeter环境介绍
3.6 JMeter与LoadRunner异同
3.7本章小结
第4章 JMeter脚本开发
4.1 JMeter工作区介绍
4.2 JMeter Http协议录制
4.2.1 Badboy进行录制
4.2.2 JMeter配置代理进行录制
4.3 JMeter脚本调试
4.4 JMeter关联
4.4.1后置处理器
4.4.2 Regular ExpressionExtractor
4.5 JMeter参数化
4.5.1配置元件
4.5.2 CSV Data Set Config
4.5.3函数助手
4.5.4访问地址参数化
4.5.5 HTTP请求默认值
4.6 JMeter检查点
4.6.1断言
4.6.2 Response Assertion
4.7 JMeter事务
4.7.1逻辑控制器
4.7.2事务控制器
4.8 JMeter集合点
4.8.1定时器
4.8.2同步定时器
4.9 JMeter元件运行顺序
4.10本章小结
第5章 JMeter负载与监听
5.1场景设计
5.2场景设置
5.3场景运行
5.3.1 GUI运行
5.3.2非GUI运行测试
5.4性能参数配置
5.5测试监听
5.5.1 JMeter监听器
5.5.2开源监听插件
5.6本章小结
第6章 JMeter元件详解
6.1逻辑控制器
6.1.1 ForEach Controller(循环控制器)
6.1.2 Simple Controller
6.1.3 Include Controller
6.1.4 Runtime Controller
6.1.5 Switch Controller
6.1.6 While Controller
6.1.7 Interleave Controller
6.1.8 Once Only Controller
6.1.9 Throughput Controller
6.1.10 If Controller
6.1.11 Module Controller
6.1.12 Random Controller
6.1.13 Random Order Controller
6.1.14 Loop Controller
6.1.15 Recording Controller
6.1.16 Transaction Controller
6.2配置元件
6.2.1 FTP请求默认值
6.2.2 HTTP Authorization Manager
6.2.3 HTTP Request Defaults
6.2.4 Java Request Defaults
6.2.5 JDBC Connection Configuration
6.2.6 Random Variable
6.2.7 Counter
6.2.8 Login Config Element
6.3定时器
6.3.1 Gaussian Random Timer
6.3.2 Constant Timer
6.3.3 Synchronizing Timer
6.3.4 Constant Throughput Timer
6.3.5 Uniform Random Timer
6.3.6 Poisson Random Timer
6.3.7 BeanShell Timer
6.3.8 BSF Timer
6.3.9 JSR223 Timer
6.4前置处理器
6.4.1 BeanShell PreProcessor
6.4.2 JSR223 PreProcessor
6.4.3 BSF PreProcessor
6.4.4 Regular User Parameter
6.4.5用户参数
6.4.6 JDBC PreProcessor
6.4.7 HTML链接解析器
6.4.8 HTTP URL重写修饰符
6.5后置处理器
6.5.1 Debug PostProcessor
6.5.2 JDBC PostProcessor
6.5.3 Result Status Action Handler
6.5.4 XPath Extractor
6.6断言
6.6.1 BeanShell Assertion
6.6.2 Compare Assertion
6.6.3 HTML Assertion
6.6.4 Size Assertion
6.6.5 XML Schema Assertion
6.6.6 XML Assertion
6.6.7 XPath Assertion
6.6.8 Duration Assertion
6.6.9其他断言元件
6.7监听器
6.7.1监听器默认配置
6.7.2 Aggregate Graph
6.7.3 BeanShell Listener(BeanShell监听器)
6.7.4 Distribution Graph(分布图)
6.7.5 Response Time Graph(响应时间图形监听器)
6.7.6 Simple Data Writer
6.7.7 Spline Visualizer(样条线显示取样器)
6.7.8 Summary Report(表格形式显示)
6.7.9 Save Response to a file(存储服务器响应)
6.7.10 View Results Tree(察看结果树)
6.7.11 Assertion Results(断言结果)
6.7.12 Generate Summa Results(窗口显示结果)
6.7.13 View Results in Table(表格形式显示)
6.7.14 Monitor Results
6.7.15Aggregate Report
6.7.16 Mailer Visualizer
6.8函数助手
6.8.1 _BeanShell脚本语言
6.8.2 _char
6.8.3 _counter
6.8.4 _CSVRead
6.8.5 _escapeHtml
6.8.6 _escapeOroRegexChars
6.8.7 _eval
6.8.8 _evalVar
6.8.9 _FileToString
6.8.10 _intSum
6.8.11 _longSum
6.8.12 _javaScript
6.8.13 _jexl
6.8.14 _log
6.8.15 _logn
6.8.16 _machineIP
6.8.17 _machineName
6.8.18 _P
6.8.19 _property
6.8.20 _Random
6.8.21 _RandomString
6.8.22 _regexFunction
6.8.23 _samplerName
6.8.24 _setProperty
6.8.25 _split
6.8.26 _StringFromFile
6.8.27 _TestPlanName
6.8.28 _threadNum
6.8.29 _time
6.8.30 _unescape
6.8.31 _unescapeHtml
6.8.32 _urldecode
6.8.33 _urlencode
6.8.34 _UUID
6.8.35 _V
6.8.36 _XPath
6.9本章小结
第7章 JMeter常用脚本开发
7.1 BeanShell Sampler
7.2 Debug Sampler
7.3 FTP请求
7.4 Java请求
7.5 JDBC请求
7.5.1 JDBC连接池设置
7.5.2添加JDBC Request
7.6 JUnit Request
7.6.1 JUnit简介
7.6.2 JUnit参数
7.6.3 JMeter JUnit Request
7.7 SOAP/XML-RPC Request
7.8本章小结
第8章 JMeter开源测试组件
8.1线程组
8.1.1 Ultimate Thread Group
8.1.2 Stepping Thread Group
8.2逻辑控制器
8.3配置元件
8.4定时器
8.5监听器
8.5.1 Transactions per Second
8.5.2 Response Times Over Time
8.5.3 Response Times vs Threads
8.5.4 Graphs Generator
8.6服务器监控
8.7本章小结
实战篇
第9章 性能监控诊断
9.1操作系统性能分析介绍
9.2系统性能分析思路
9.2.1系统性能分析因素-CPU
9.2.2系统性能分析因素-内存
9.2.3系统性能分析因素-网络
9.2.4系统性能分析因-I/O
9.2.5系统性能分析因素-总结
9.3瓶颈阈值分析思维导图与手册
9.3.1 CPU定位分析
9.3.2内存定位分析
9.3.3网络定位分析
9.3.4 IO定位分析
9.4 Linux系统性能分析思路和实践
9.4.1系统负载监控分析实践
9.4.2系统监控分析实践
9.5 Windows系统性能分析思路和实践
9.5.1性能监视器综述
9.5.2性能监视器工具介绍
9.5.3系统监控分析实践
9.5.4资源监视器介绍和实践
9.6 Tomcat监控之Probe
9.7 MySQL监控之MONyog
9.8 JVM监控
9.8.1 jps
9.8.2 jstat
9.8.3 jmap
9.8.4 JVisualVM
9.9本章小结
第10章 性能分析调优
10.1性能分析方法
10.2单机性能分析与调优
10.2.1性能分析流程
10.2.2系统性能关注点
10.2.3程序优化
10.2.4配置优化
10.2.5数据库连接池优化
10.2.6线程优化
10.2.7 DB优化
10.3业务流程优化
10.4结构优化
10.4.1单机结构
10.4.2集群结构
10.4.3分布式结构
10.5本章小结
第11章 综合实践之诊断分析与调优
11.1需求分析
11.1.1需求采集
11.1.2需求分析
11.1.3并发数计算
11.2测试模型
11.3测试计划
11.4环境搭建
11.5脚本开发
11.5.1浏览帖子
11.5.2回复帖子
11.5.3发帖
11.6数据准备
11.6.1主数据准备
11.6.2数据制作方法
11.7场景设计
11.7.1场景设计
11.7.2场景实现
11.8测试监控
11.9测试执行
11.9.1基准测试
11.9.2配置测试
11.9.3负载测试
11.9.4稳定性测试
11.10结果分析
11.11测试报告
11.12本章小结
提升篇
第12章 互联网测试必备知识——HTTP协议
12.1 HTTP协议简介
12.2 HTTP工作原理
12.3 HTTP请求
12.4 HTTP应答
12.5 HTTP捕获
12.6 HttpWatch
12.6.1 HttpWatch录制
12.6.2 HttppWatch数据分析
12.7本章小结
第13章 端到端性能监控平台
13.1为什么构建基于云的端到端性能监控平台
13.2端到端监控的意义
13.3前端监控常见策略
13.4基于httpWatch的自动捕获
13.5基于firebug的自动捕获
13.5.1自动导出瀑布图
13.5.2 HARViewer部署
13.5.3基于Fiddler的自动捕获
13.5.4基于YSlow的前端评估体系
13.5.5基于PageSpeed的前端评估体系
13.5.6基于dynaTrace Ajax的前端评估体系
13.6构建基于Showslow的监控体系
13.6.1 Showslow介绍
13.6.2 Showslow环境搭建
13.6.3 ShowSlow配置
13.6.4 YSlow配置
13.6.5 WebDriver驱动的定时监控体系
13.7本章小结
第14章 性能测试自动化——Jenkins+Ant+JMeter
14.1为什么要做性能测试自动化
14.2如何做性能测试自动化
14.3 Ant+JMeter集成
14.3.1 Ant下载
14.3.2 Ant安装
14.3.3 JMeter中配置XML文件来定义测试活动
14.3.4运行测试计划
14.4 Jenkins+Ant集成
14.4.1 Jenkins安装
14.4.2建立Slave节点
14.4.3 JMeter任务配置
14.5如何运行复杂场景
14.6报告自动化
14.6.1配置TPS、响应时间等图表
14.6.2报告合成
14.7 JMeter脚本拷贝自动化
14.8 JMeter Agent自动化
14.9本章小结
第15章 JMeter常见问题
15.1 JMeter无法开启
15.2 JMeter异常关闭
15.3 JMeter无法产生负载
15.4 JMeter日志输出控制
15.5记录测试结果影响Jmeter效率
15.6 JMeter可以测试接口吗
15.7 JMeter可以测试Dubbo接口吗
15.8 JMeter可以测试RPC接口吗
15.9 JMeter函数助手中函数不够用怎么办
15.10 JMeter支持子事务的定义吗
15.11 JMeter非GUI方式运行时如何传递运行参数
15.12运行场景时察看结果树为什么要关闭
15.13多个测试计划如何运行
15.14如何找导致CPU瓶颈的程序
15.15如何找导致内存瓶颈的程序
15.16如何找导致IO瓶颈的程序
15.17如何计算并发用户数
15.18 JMeter可以做哪些测试
15.19性能测试的分析方法有哪些
15.20如何看懂Java线程栈信息
15.21能用本地负载环境测试“云环境”的性能吗
15.22性能测试环境和生产环境不一致
15.23本章小结
附录A Jforum性能测试计划
A.1性能测试背景
A.2性能测试目标
A.3性能测试范围
A.4名词术语约定
A.5测试环境
A.5.1生产环境系统架构
A.5.2测试环境系统架构
A.5.3生产环境软硬件配置
A.5.4测试环境软硬件配置
A.5.5负载机软硬件配置
A.6需求分析
A.6.1业务模型
A.6.2性能指标
A.7测试策略
A.7.1测试执行策略
A.7.2测试监控策略
A.8测试场景
A.9测试准备
A.9.1测试工具准备
A.9.2测试脚本及程序准备
A.9.3测试数据准备
A.9.4测试环境准备
A.10测试组织架构
A.11交付清单
A.12项目风险
A.13附录
附录B 性能测试报告
B.1性能测试背景
B.2性能测试目标
B.3性能测试范围
B.4名词术语约定
B.5测试环境
B.5.1生产环境系统架构
B.5.2测试环境系统架构
B.5.3生产环境软硬件配置
B.5.4测试环境软硬件配置
B.5.5负载机软硬件配置
B.6测试数据
B.6.1历史数据量
B.6.2主数据
B.6.3性能指标
B.7测试进度
B.8测试结果
B.8.1基准测试结果
B.8.2配置测试
B.8.3负载测试结果
B.8.4稳定性测试结果
B.9测试结论
B.9.1测试结论
B.9.2系统缺陷
B.10系统风险
参考资料