前言
第一篇 初入职场
第1章 与性能测试的亲密触碰 2
1.1 性能测试的作用以及重要性 2
1.1.1 由性能引发的严重问题 2
1.1.2 性能测试的重要性以及必要性 3
1.1.3 什么系统需要做性能测试 4
1.1.4 性能测试的目的 4
1.2 生活中的性能测试 5
1.3 性能术语与指标详解 5
1.4 性能测试分类详解 9
1.5 性能测试模型分析 11
1.5.1 曲线拐点模型分析 12
1.5.2 地铁模型分析 13
1.6 本章小结 14
第2章 LoadRunner VuGen实战 15
2.1 LoadRunner快速安装 15
2.2 LoadRunner组成与示例程序 16
2.3 深入理解协议选择 18
2.4 脚本编写实战 19
2.4.1 脚本录制 20
2.4.2 “利器”——函数手册 22
2.4.3 脚本优化 23
2.4.4 脚本回放 23
2.5 脚本增强实战 24
2.5.1 检查点实战 24
2.5.2 参数化实战 26
2.5.3 关联实战 34
2.5.4 逻辑判断增强实战 38
2.5.5 事务实战 40
2.6 脚本调试实战 42
2.6.1 message函数详解 42
2.6.2 断点的应用 42
2.6.3 日志的查看分析 43
2.6.4 自带浏览器的使用 44
2.7 VuGen使用技巧 44
2.7.1 协议嗅探 45
2.7.2 通用设置 45
2.7.3 录制设置 46
2.7.4 Run-time Settings设置 48
2.8 本章小结 52
第3章 LoadRunner Controller实战 53
3.1 Controller介绍 53
3.2 场景设计实战 53
3.2.1 集合点实战 55
3.2.2 IP欺骗实战 56
3.2.3 添加Windows和Linux压力机实战 59
3.2.4 场景设计实战 61
3.3 场景监控实战 62
3.3.1 监控信息概览与自定义脚本 62
3.3.2 Windows和Linux的监控以及指标讲解 65
3.4 本章小结 69
第4章 LoadRunner Analysis实战 70
4.1 Analysis介绍 70
4.2 性能数据图表分析实战 72
4.2.1 概要图分析 72
4.2.2 虚拟用户图分析 73
4.2.3 错误图分析 75
4.2.4 事务图分析 77
4.2.5 Web资源图分析 80
4.2.6 网页细分图分析 85
4.2.7 系统资源图分析 88
4.3 图表的合并与关联 89
4.4 数据图表的设置 90
4.5 性能测试报告实战 92
4.5.1 性能测试报告编写技巧 92
4.5.2 性能测试分析思路 93
4.5.3 性能测试报告编写 94
4.6 本章小结 96
第5章 开源性能测试工具Apache JMeter快速入门 97
5.1 Apache JMeter概述 97
5.2 JMeter的安装与使用 99
5.3 JMeter快速入门之HTTP脚本实战 101
5.3.1 测试计划 101
5.3.2 Vuser及场景设计 102
5.3.3 JMeter之脚本录制 103
5.3.4 JMeter参数化 107
5.3.5 JMeter关联 111
5.3.6 JMeter检查点 114
5.3.7 思考时间和集合点 115
5.3.8 运行结果分析 117
5.3.9 JMeter之分布式测试 120
5.4 JMeter JDBC脚本实战 121
5.5 JMeter SOAP脚本实战 124
5.6 JMeter使用注意事项 127
5.7 本章小结 128
第6章 开源性能测试工具Apache ab快速入门 129
6.1 Apache ab安装使用 129
6.2 Apache ab快速入门 129
6.3 Apache ab 实战 130
6.4 Apache ab 总结注意事项 132
6.5 本章小结 133
第7章 最佳脚本开发实战 134
7.1 接口测试脚本开发实战 134
7.1.1 GET接口实战 134
7.1.2 POST接口实战 135
7.1.3 使用LoadRunner完成接口功能自动化测试 136
7.2 常用协议脚本开发实战 138
7.2.1 Web Service协议脚本开发实战 139
7.2.2 ODBC协议脚本开发实战 141
7.2.3 Java协议脚本开发实战 142
7.2.4 Windows Sockets协议脚本开发实战 143
7.2.5 移动应用协议脚本开发实战 145
7.2.6 手工编写FTP脚本 147
7.3 使用LoadRunner打点监控Tomcat 148
7.4 本章小结 150
第二篇 新硎初试
第8章 .NET项目性能测试全程实战 152
8.1 项目背景与架构分析 153
8.2 测试环境需求确认与搭建 155
8.2.1 测试环境需求确认 155
8.2.2 测试环境搭建 155
8.3 性能测试工具选型 158
8.4 业务建模与用例设计 159
8.4.1 业务场景分析 159
8.4.2 性能需求分析与提取 161
8.4.3 性能测试用例设计 162
8.5 脚本开发与优化 164
8.6 执行测试 168
8.6.1 场景设置 168
8.6.2 监控设置 171
8.6.3 运行场景与实时监控 173
8.7 性能测试分析与调优建议 177
8.7.1 性能结果分析 178
8.7.2 性能调优建议 184
8.8 本章小结 190
第三篇 再露锋芒
第9章 Java项目性能测试全程实战 192
9.1 项目目标分析 192
9.1.1 系统架构 193
9.1.2 业务流程 194
9.2 性能测试需求获取以及确定 197
9.2.1 性能测试环境需求描述 197
9.2.2 性能测试环境需求获取 197
9.2.3 性能测试需求确定 202
9.3 性能测试场景获取以及用例设计 204
9.3.1 性能测试场景选取与制定 205
9.3.2 性能测试数据确定 207
9.3.3 性能测试用例设计 208
9.4 性能测试环境准备与搭建 216
9.4.1 性能测试环境 216
9.4.2 性能测试环境的重要性 217
9.4.3 确定实际运行环境 218
9.4.4 申请并搭建仿真性能测试环境 219
9.4.5 Mock Server的准备 220
9.5 操作系统性能监控分析工具的选择与使用 222
9.5.1 Windows性能监控工具选择以及监控详解 222
9.5.2 Linux监控工具选择以及监控详解 234
9.6 数据库系统性能监控工具选择以及使用 254
9.6.1 Oracle监控分析 254
9.6.2 MySQL监控分析 264
9.7 中间件性能监控工具以及使用 267
9.8 JVM性能监控工具选择以及使用 268
9.8.1 JVM内存结构以及内存管理基础知识 268
9.8.2 JVM性能监控分析调优 273
9.9 性能测试数据准备与制作 297
9.10 性能测试脚本开发与优化 300
9.11 性能测试执行与监控 308
9.11.1 场景设置 308
9.11.2 监控设置 310
9.11.3 项目性能问题的发现、定位与分析 310
9.12 性能回归测试与结果 321
9.12.1 回归测试后的性能测试结果 322
9.12.2 数据库性能优化建议 323
9.13 本章小结 326
第10章 安全测试 327
10.1 偶遇Web安全测试 327
10.1.1 Web安全测试定义 328
10.1.2 Web安全测试流程 329
10.2 Burp Suite使用浅析 330
10.3 安全测试原理与实战 337
10.3.1 绕过客户端漏洞 338
10.3.2 攻击验证机制 341
10.3.3 攻击会话管理 348
10.3.4 SQL注入攻击 353
10.3.5 XSS攻击 355
10.3.6 CSRF攻击 358
10.4 本章小结 360
第四篇 反躬自省
第11章 测试工程师转型实录 362
11.1 从非IT业到性能测试工程师的华丽转型 362
11.2 好妈妈转型性能测试,年龄不是阻碍 363
11.3 从功能测试到性能测试的完美转型 364
11.4 本章小结 365
第12章 测试工程师职业发展分析 366
12.1 软件测试现状与发展前景 366
12.2 如何成为测试工程师 367
12.3 测试工程师的实际价值 368
12.4 测试工程师的危机 370
12.5 测试工程师的职业发展方向 371
12.6 本章小结 372
附录A LoadRunner常见问题以及解决方法 373
附录B 常用性能测试文档模板 376
附录C 正则表达式全集 377
附录D MySQL数据库事务隔离级别 380
附录E Perfmon计数器参数说明 382
附录F 学习资料网址摘录 387
—— 豆瓣工程副总裁 段念
★本书凝聚了作者多年软件测试及培训经验,介绍了LoadRunner、Apache ab 、JMeter等一系列软件测试工具的使用方法和应用案例,结合多个.NET和Java项目,从多种协议脚本开发、场景设计、资源监控、测试执行、测试结果分析、性能调优和报告输出等测试关键过程进行详细、深入的讲解,讲述了如何进行与完成性能测试、性能调优,以及很好流程实战,能全面提高从业人员性能测试、安全测试的能力。同时,结合软件测试的现状和发展,以及专业测试职业人员的奋斗历程,全方位指导测试人员选择和把握关键节点,全面提升职业发展的综合能力。—— 《软件性能测试与LoadRunner实战》作者 于涌
★性能测试在软件测试中尤为重要,是对测试人员理论基础、工具应用、编码能力、网络配置、业务理解、问题分析等综合能力的集中考验。本书由浅至深地介绍了LoadRunner和JMeter的工作原理、功能运用,并结合案例进行实战性分析和讲解,值得软件测试行业人员阅读和学习。—— 中经讯科(北京)网络科技有限公司技术总监 范本银
★The book introduces performance testing in such an easy and interesting way, that it not just provides you practical guidance on solving real problems, but also leads you to discover how fun the work can be. I find it very insightful and informative. Definitely worth it to have for both beginners and advanced learners.—— Facebook Senior Software Engineer Lin Yuan
★本书是作者在国内大型互联网公司多年一线工作经验的结晶,是性能测试领域全新、最全面的知识整合。本书从性能测试、流程、监控、调优等方面全方位剖析性能测试的各项知识,不管是小白,还是经验丰富的工程师,都能从中吸取能量。本书绝对是学习性能测试相关知识的不二选择。—— 百度高级测试开发工程师 马征
★这本书与大叔、小强和风落三剑客的讲课风格一样,信息量大、通俗易懂,专业而详细地阐述了性能测试方方面面的细节。事实证明,我在他们身上学到的性能测试技巧能够有效地满足用户对互联网产品性能方面的苛刻要求。作为一个有经验的性能测试工作者,书中的“反躬自省”篇让我深深产生共鸣,相比这本书在性能测试上给大家带来的提升,它对测试人员的职业的发展和规划的意义也十分重大。—— 天天网测试主管 吴磊(cc)