第1章 全新认识性能测试和自动化测试 1
1.1 性能测试到底是什么 1
1.2 性能测试分层模型 2
1.2.1 前端层 3
1.2.2 网络层 4
1.2.3 后端层 4
1.3 自动化测试到底是什么 6
1.4 自动化测试是否万能 6
1.5 自动化测试分层模型 7
1.5.1 UI层 8
1.5.2 接口层 9
1.5.3 单元层 9
1.6 分层自动化在企业中的演变 10
1.7 初学者如何选择学习哪种测试技术 11
1.8 本章小结 13
第2章 LoadRunner脚本开发实战精要 14
2.1 LoadRunner介绍 14
2.2 使用LoadRunner完成业务级脚本开发 15
2.2.1 项目介绍 15
2.2.2 需求分析 15
2.2.3 脚本开发 18
2.3 使用LoadRunner完成H5网站的脚本开发 23
2.4 Mock实战精要 25
2.5 使用LoadRunner完成接口级脚本开发 27
2.5.1 单接口的测试方法 28
2.5.2 接口依赖的测试方法 30
2.6 使用LoadRunner完成移动APP的脚本开发 32
2.7 使用LoadRunner完成MMS视频流媒体测试 35
2.8 场景设计精要 37
2.9 去“并发数” 38
2.10 使用LoadRunner完成接口级功能自动化测试 39
2.11 本章小结 43
第3章 JMeter脚本开发实战精要 44
3.1 JMeter介绍 44
3.2 使用JMeter完成业务级脚本开发 45
3.3 使用JMeter完成接口级脚本开发 49
3.3.1 单接口的测试方法 49
3.3.2 接口依赖的测试方法 50
3.4 使用JMeter完成JDBC脚本开发 52
3.4.1 单SQL语句测试 53
3.4.2 多SQL语句测试 56
3.5 使用JMeter完成JMS Point-to-Point脚本开发 57
3.5.1 JMS介绍 57
3.5.2 ActiveMQ介绍 58
3.5.3 JMS Point-to-Point脚本开发 59
3.6 BeanShell脚本在JMeter中的应用 62
3.7 使用JMeter完成Java自定义请求 65
3.8 JMeter轻量级接口自动化测试框架 67
3.9 在JMeter中使用Selenium WebDriver完成测试 72
3.10 使用JMeter完成MD5加密的接口请求 74
3.11 使用JMeter完成文件上传和下载测试 76
3.12 巧妙地完成WebService接口测试 78
3.13 JMeter也有让你心动的图表报告 80
3.14 本章小结 81
第4章 性能测试通用分析思路和报告编写技巧 83
4.1 通用分析思路 83
4.1.1 观察现象 84
4.1.2 层层递进 85
4.1.3 缩小范围 86
4.1.4 推理分析 87
4.1.5 不断验证 88
4.1.6 确定结论 88
4.2 测试报告编写技巧 90
4.3 本章小结 91
第5章 SoapUI脚本开发实战精要 92
5.1 SoapUI介绍 92
5.2 SOAP WebService接口功能自动化测试 93
5.2.1 单接口的测试方法 94
5.2.2 接口依赖的测试方法 100
5.3 SOAP WebService接口负载测试 103
5.4 SOAP WebService接口安全测试 105
5.5 SoapUI轻量级接口自动化测试框架 107
5.6 本章小结 111
第6章 Appium脚本开发实战精要 112
6.1 Appium介绍 113
6.2 控件的识别与定位 113
6.3 常用的操作方法 115
6.4 Appium轻量级UI自动化测试框架 117
6.5 微信的UI层自动化测试探索 119
6.5.1 微信的本质 119
6.5.2 如何查看微信WebView中的元素 119
6.5.3 小实战 121
6.6 本章小结 123
第7章 浅谈移动APP非功能测试 124
7.1 移动APP启动时间测试 125
7.2 移动APP流量测试 126
7.3 移动APP CPU测试 127
7.4 移动APP电量测试 128
7.5 移动APP兼容性测试 130
7.6 移动APP测试工具和云测平台 132
7.6.1 常用的移动APP测试工具介绍 132
7.6.2 常见云测平台介绍 136
7.7 移动应用基础数据统计方案介绍 136
7.8 移动APP内存测试 139
7.8.1 内存泄漏是什么 139
7.8.2 内存泄漏常见的分析方法 140
7.8.3 案例:隐秘而低调的内存泄漏(OOM) 141
7.9 本章小结 144
第8章 前端性能测试精要 145
8.1 HTTP简介 146
8.2 HTTP请求和响应的过程 147
8.3 前端性能优化方法 147
8.3.1 减少HTTP请求数 148
8.3.2 图片优化 150
8.3.3 使用CDN 151
8.3.4 开启GZIP 151
8.3.5 样式表和JS文件的优化 152
8.3.6 使用无cookie域名 152
8.3.7 前端代码结构优化 153
8.3.8 其他优化方法 154
8.4 常用前端性能测试工具 155
8.4.1 Firebug 155
8.4.2 利用Chrome测试移动端网页性能 157
8.4.3 HttpWatch 159
8.4.4 YSlow 161
8.4.5 PageSpeed 163
8.4.6 埋点测试 164
8.4.7 基于ShowSlow的前端性能测试监控体系 167
8.4.8 基于YSlow和Jenkins的前端性能测试监控体系 169
8.4.9 其他前端性能测试平台 170
8.5 真实网站的前端性能测试 173
8.6 本章小结 175
第9章 玩转接口测试 176
9.1 接口测试是什么 176
9.2 接口文档规范 177
9.3 接口测试怎么做 178
9.3.1 接口功能测试 179
9.3.2 接口性能测试 181
9.3.3 接口安全测试 182
9.4 Python+Unittest+HTMLTestRunner完成接口功能自动化测试 183
9.5 一个接口引发的性能“血案” 186
9.5.1 接口描述 187
9.5.2 脚本结构 188
9.5.3 结果分析 190
9.6 与接口性能测试捉迷藏 191
9.6.1 背景 191
9.6.2 问题与分析 192
9.6.3 总结 193
9.7 利用Python完成Dubbo接口Hessian协议的测试 193
9.8 用Python下载美剧 194
9.9 Fiddler抓包 196
9.9.1 Fiddler介绍和安装 196
9.9.2 Web端抓包 196
9.9.3 配置可抓HTTPS 197
9.9.4 移动APP端抓包 199
9.9.5 模拟发送请求 200
9.9.6 限速 201
9.9.7 篡改请求数据 202
9.10 本章小结 204
第10章 性能测试案例分享 205
10.1 电商系统性能测试 205
10.1.1 通用化分析思路 205
10.1.2 项目背景与需求分析 207
10.1.3 场景用例设计 209
10.1.4 脚本开发 210
10.1.5 测试执行与监控 212
10.1.6 JVM内存泄漏(OOM) 213
10.1.7 JVM垃圾回收(GC)和堆外OOM 214
10.1.8 MySQL慢查询 215
10.1.9 Mongodb连接数 217
10.1.10 常见性能问题总结 217
10.2 Redis功能与非功能性测试 218
10.2.1 测试结论(功能、性能、稳定性) 219
10.2.2 测试过程之功能测试 221
10.2.3 测试过程之大数据元素测试 223
10.2.4 测试过程之分布均匀性测试 223
10.2.5 测试过程之性能测试 224
10.2.6 测试过程之高可用测试 225
10.2.7 测试过程之稳定性测试 227
10.3 本章小结 228
第11章 大话安全测试 230
11.1 安全测试与X客 230
11.2 安全测试的范围 231
11.3 安全测试的流程 232
11.4 安全测试的意义 232
11.5 安全测试攻击技术精要 234
11.5.1 XSS跨站脚本攻击 234
11.5.2 SQL注入攻击 235
11.5.3 CSRF跨站请求伪造攻击 237
11.5.4 表单攻击 239
11.5.5 文件上传攻击 242
11.5.6 DoS拒绝服务攻击 244
11.6 安全测试扫描工具精要 246
11.6.1 AppScan 246
11.6.2 Burpsuite 253
11.6.3 在线漏洞扫描 256
11.7 案例:电商项目安全测试 259
11.8 本章小结 265
第12章 测试团队的组建与管理 266
12.1 重新认识所谓的管理 266
12.2 人人都是管理者 267
12.3 测试团队常见的组织架构模型 268
12.4 小议扁平化组织结构 269
12.5 如何组建测试团队 270
12.6 如何高效管理测试团队 273
12.6.1 初创期测试团队的管理 274
12.6.2 发展期测试团队的管理 275
12.6.3 稳定期测试团队的管理 277
12.7 如何考核和激励测试团队 278
12.7.1 如何进行测试团队的考核 279
12.7.2 如何激励测试团队 281
12.8 人性管理 282
12.9 缺陷知识库的建立 283
12.10 如何高效地开会和写日报 286
12.11 PDCA环 288
12.12 本章小结 290
第13章 畅谈测试工程师未来之路 291
13.1 软件测试行业的现状与发展趋势 291
13.2 如何成为优秀的测试工程师 294
13.3 再谈测试工程师的价值 296
13.4 危机!测试工程师真的要小心了 297
13.5 测试工程师职业发展路线图 299
13.6 本章小结 303
第14章 一线测试工程师访谈录及面试心理 304
14.1 90后美女的全能测试蜕变之路 304
14.2 从功能测试到性能测试的转型之路 306
14.3 一只菜鸟的成长之路 308
14.4 90后帅哥的测试技能提升之路 309
14.5 “一根老油条”的面试记录 311
14.6 零经验噩梦般的面试 316
14.7 痛并快乐的面试记录 319
14.8 十年手工测试的迷茫,值得每个人深思 321
14.9 本章小结 323
附录A 参考资料 324
附录B LoadRunner常见问题解决方案汇总 325
B.1 LoadRunner和各OS以及浏览器的可兼容性 325
B.2 LoadRunner无法安装 325
B.3 录制时无法启动IE 326
B.4 录制脚本为空 326
B.5 示例网站WebTours无法启动 326
B.6 Controller中运行场景有很多超时错误 327
B.7 录制完成有乱码 327
B.8 LoadRunner中对HTTPS证书的配置 328
B.9 LoadRunner运行时常见报错解决方案 328
附录C 性能测试文档模板汇总 330
C.1 场景用例模板 330
C.2 性能测试计划模板 331
C.3 性能测试方案模板 332
C.4 性能测试报告模板 334
C.5 前端性能对比测试结果模板 335
附录D 自动化测试用例模板 336
附录E 管理相关文档模板汇总 337
E.1 日报模板 337
E.2 绩效考核方案模板 338
后记 340