内容简介
本书以业界开源能测试工具JMeter为依托,结合真实的工作实践,用通俗易懂的语言层层深入讲解能测试技能。全书共分为5章和6个附录,第1章讲解能测试基础知识括能测试的整体知识体系、基础知识和通用标准等;第2章讲解初级能测试技能括JMeter九大核心组件的使用、测试脚本的编写等;第3章讲解中级能测试技能括如何扩展JMeter能插件、搭建能自动化和实时可视台等;第4章讲解能测试技能括Dubbo的扩展测试、中间件的基准测试、JMeter源码的解析等;第5章通过实例剖析3种典型能测试场景;附录部分扩展讲解实用能知识括典型能问题和解决方法、能参数调优、问题定位和优化建议等。
本书适合对能测试有入门阶学的测试人员,也适合对能知识有学的开发人员、运维人员等相关技术人员。
目录
第 1章 能测试基础 1
1.1 能测试新手入门 1
1.1.1 能测试的背景 1
1.1.2 能测试的目的 2
1.1.3 能测试的分类 4
1.1.4 能测试的术语和指标 4
1.1.5 能测试的基础曲线模型 6
1.1.6 能测试的技能知识图谱 7
1.1.7 新手入门基础知识 9
1.2 能测试知识 10
1.2.1 能测试的完整工作流程 10
1.2.2 能测试的需求分析 11
1.2.3 能测试的方案设计 14
1.2.4 能测试的环境搭建 15
1.2.5 能测试的数据构造 19
1.2.6 能协议的分析 22
1.2.7 能测试的脚本编写 23
1.2.8 能测试的监控部署 24
1.2.9 能问题的定位分析 43
1.2.10 能测试的报结 58
1.3 能测试闭环流 58
1.4 能测试执行时机 60
1.5 能测标准 61
1.6 小结 62
第 2章 JMeter初级实战真经 63
2.1 JMeter的常用版能回溯 63
2.2 JMeter的安装和使用 65
2.2.1 Windows环境 65
2.2.2 macOS环境 67
2.2.3 Linux环境 68
2.2.4 命令行的使用 68
2.3 JMeter的常用核心组件 69
2.3.1 线程组 71
2.3.2 配置元件 75
2.3.3 监听器 80
2.3.4 逻辑控制器 82
2.3.5 取样器 84
2.3.6 定时器 88
2.3.7 前置处理器 90
2.3.8 后置处理器 90
2.3.9 断言 93
2.4 JMeter的参数化方法 97
2.5 JMeter的关联方法 98
2.6 JMeter的断言方法 98
2.7 JMeter的集合点设置 98
2.8 JMeter的IP欺骗 99
2.9 JMeter的混合场景方法 100
2.10 JMeter的常见错误和常用小技巧 101
2.11 实战脚本解析 106
2.11.1 (S)请求 106
2.11.2 SOAP请求 108
2.11.3 UDP请求 109
2.11.4 SQL语句 111
2.12 小结 114
第3章 JMeter中级实战真经 115
3.1 JMeter的分布式压测 115
3.1.1 分布式压测原理 115
3.1.2 使用方法详解 116
3.1.3 常见错误说明 118
3.2 JMeter的BeanShell实战 119
3.2.1 常用语法说明 120
3.2.2 10个应用示例讲解 122
3.2.3 注意事项说明 127
3.3 JMeter的函数式插件扩展 127
3.3.1 扩展方法说明 127
3.3.2 示例讲解 129
3.4 JMeter的WebSocket实战 137
3.4.1 组件知识讲解 138
3.4.2 应用示例分析 141
3.4.3 注意事项强调 150
3.5 JMeter+Shell的自动化能测试 150
3.5.1 JMeter+Shell实例讲解 151
3.5.2 技巧应用 155
3.6 JMeter的实时可视台搭建 156
3.6.1 可视化方案展示 156
3.6.2 InfluxDB知识精华 156
3.6.3 InfluxDB安装部署 159
3.6.4 Grafana知识精华 161
3.6.5 安装部署Grafana 162
3.6.6台搭建过程详解 163
3.7 小结 173
第4章 JMeter实战真经 174
4.1 JMeter的Dubbo能测试实践 174
4.1.1 Dubbo核心知识点 175
4.1.2 示例代码扩展讲解 178
4.1.3 二次优化脚本和问题 199
4.2 JMeter的TCP自定义消息能测试
实践 204
4.2.1 TCP组件知识详解 205
4.2.2 示例代码讲解 207
4.2.3 百万连接的参数调优 213
4.2.4 问结 213
4.3 JMeter对中间件的基准测试 214
4.3.1 消息中间件ActiveMQ 214
4.3.2 缓存中间件Redis 226
4.4 JMeter的常见问题和能优化 238
4.5 JMeter的源码编译和解读 239
4.5.1 JMeter源码编译 240
4.5.2 JMeter源码解读 246
4.6 小结 250
第5章 能测试实战案例 251
5.1 日常项目能测试 251
5.1.1 项目背景 251
5.1.2 能测试目标 251
5.1.3 能测试架构 252
5.1.4 测试环境搭建 252
5.1.5 测试数据构造 253
5.1.6 能测例 254
5.1.7 能脚本编写 256
5.1.8 能测试监控 266
5.1.9 能测试执行 266
5.1.10 能测试结果 267
5.2 方案对比能测试 268
5.2.1 方案对比需求 268
5.2.2 能测试方法 268
5.2.3 能测试场景 269
5.2.4 能测试脚本和代码 270
5.2.5 能测试结果 273
5.3 MQTT能测试 274
5.3.1 项目背景 275
5.3.2 MQTT和EMQ 275
5.3.3 能测试环境 276
5.3.4 能测例 278
5.3.5 JMeter脚本编写 279
5.3.6 能测试结果 283
5.3.7 问题和优化 283
5.4 测试实战问题分析 283
5.4.1 实战典型问题一 284
5.4.2 实战典型问题二 285
5.4.3 实战典型问题三 287
5.5 小结 288
附录A 常见能测试问题 289
A.1 出现too many open files 289
A.2 出现Out Of Memory Error 290
A.3 数据库连接池不释放 290
A.4 CPU使用率高 290
A.5 无论怎么压测,系统的TPS上不去 291
附录B 能参数调优 292
B.1 Spring Boot 292
B.2 操作系统 292
B.3 常用中间件的核心能参数 293
附录C Java代码定位和优化建议 295
C.1 代码优化细节 295
C.2 Java代码分析工具 297
附录D MySQL定位和优化建议 300
D.1 数据库能瓶颈定位 300
D.2 配置优化 302
D.3 关于SQL语句的建议 305
D.4 索引建立和优化原则 306
附录E JVM定位和优化建议 308
E.1 堆内存设置和原理 309
E.2 虚拟机内存监控手段 310
E.3 参数说明和垃圾回收器 311
E.4 常见JVM问题 313
E.5 如何优化GC 314
附录F cookie和Session的关系 315
F.1 cookie 316
F.2 Session 317