《JMeter核心技术、性能测试与性能分析》
本书内容
JMeter是一款基于Java的压力测试工具,可用于对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。本书详解JMeter性能测试和性能分析的方法,结合具体测试案例和最佳实践,帮助读者快速掌握JMeter性能测试与性能分析的技能。本书配套示例源码、PPT课件、教学大纲、教案与作者微信群答疑服务。
本书共分11章,内容包括认识JMeter、认识性能测试、初识JMeter元件、JMeter主要元件详细介绍、常见JMeter性能测试脚本编写案例、BeanShell、JMeter中如何编写自定义的取样器、性能分析、电商网站的秒杀系统性能测试与性能分析案例、JMeter性能测试的最佳实践、大模型辅助性能测试。最后还给出一个JMeter属性配置项的附录供读者参考。
本书读者
本书既适合JMeter性能测试初学者、性能测试与分析人员、性能测试解决方案设计师、软件性能测试经理,也适合高等院校或高职高专院校学习软件测试课程的学生。
本书作者
张永清,福特汽车工程研究有限公司高级架构师。从事功能测试、自动化测试、性能测试、Java软件开发、大数据开发、架构师等工作近二十年,在自动化测试、性能测试设计、性能诊断、性能调优、分布式架构设计等领域积累了丰富的实战经验。参与开发过的系统包括公安、互联网、移动互联网、大数据、人工智能等领域。著有图书《数据资产管理核心技术与实践》《软件性能测试、分析与调优实践之路(第2版)》《软件性能测试、分析与调优实践之路》《Robot Framework自动化测试框架核心指南》。
张永松,某跨境电商公司高级测试工程师。一线互联网公司从事功能测试、自动化测试、性能测试等工作十多年,在性能测试领域积累了丰富的实战经验。
本书目录
目 录
第1章 认识JMeter1
1.1 JMeter基本介绍1
1.2 性能测试的发展3
1.3 性能测试工具的发展4
1.4 选择JMeter的原因5
1.5 JMeter的安装和部署7
1.6 JMeter的元件9
1.7 JMeter的运行模式13
1.7.1 GUI模式13
1.7.2 命令行模式14
1.7.3 服务器模式15
1.8 本章总结18
第2章 认识性能测试19
2.1 性能的基本概念19
2.1.1 什么是性能19
2.1.2 性能测试的意义21
2.1.3 常见的性能指标21
2.2 性能测试的基本概念24
2.2.1 性能测试的种类24
2.2.2 性能测试的场景25
2.3 性能测试的流程25
2.3.1 性能需求分析26
2.3.2 制定性能测试计划26
2.3.3 编写性能测试方案27
2.3.4 编写性能测试案例29
2.3.5 搭建性能测试环境29
2.3.6 构造性能测试数据30
2.3.7 编写性能测试脚本30
2.3.8 执行性能测试30
2.3.9 编写性能测试报告31
2.4 本章总结32
第3章 初识JMeter元件33
3.1 测试计划34
3.2 线程组36
3.3 配置元件38
3.3.1 常用配置元件38
3.3.2 JDBC Connection Configuration配置项详情40
3.3.3 TCP取样器配置项详情42
3.3.4 HTTP授权管理器配置项详情43
3.4 前置处理器44
3.4.1 JSR223 PreProcessor44
3.4.2 HTML链接解析器45
3.4.3 HTTP URL重写修饰符45
3.4.4 JDBC预处理程序45
3.4.5 正则表达式用户参数46
3.4.6 其他前置处理器47
3.5 定时器47
3.5.1 Synchronizing Timer48
3.5.2 吞吐量定时器49
3.5.3 其他定时器49
3.6 取样器50
3.6.1 HTTP请求50
3.6.2 FTP请求54
3.6.3 GraphQL HTTP Request54
3.6.4 JDBC Request55
3.6.5 JMS相关的取样器56
3.6.6 邮件相关的取样器60
3.6.7 TCP取样器61
3.6.8 其他取样器62
3.7 后置处理器67
3.7.1 JSON提取器67
3.7.2 JSON JMESPath Extractor69
3.7.3 边界提取器70
3.7.4 结果状态处理器71
3.7.5 XPath提取器71
3.7.6 其他提取器72
3.8 断言73
3.8.1 响应断言73
3.8.2 JSON相关的断言74
3.8.3 XPath相关的断言74
3.8.4 其他断言75
3.9 监听器75
3.9.1 查看结果树76
3.9.2 汇总报告77
3.9.3 聚合报告77
3.9.4 其他监听器78
3.10 开始一个性能测试脚本的编写案例81
3.11 本章总结84
第4章 JMeter主要元件详解86
4.1 配置元件86
4.1.1 CSV数据文件设置86
4.1.2 HTTP Cookie管理器88
4.1.3 HTTP信息头管理器89
4.2 函数助手90
4.3 逻辑控制器94
4.3.1 IF控制器95
4.3.2 事务控制器96
4.3.3 循环控制器96
4.3.4 While控制器97
4.3.5 临界部分控制器97
4.3.6 ForEach控制器98
4.3.7 Include控制器99
4.3.8 交替控制器99
4.3.9 录制控制器99
4.3.10 吞吐量控制器100
4.3.11 仅一次控制器100
4.3.12 随机控制器100
4.3.13 随机顺序控制器101
4.3.14 Runtime控制器101
4.3.15 简单控制器101
4.3.16 模块控制器102
4.3.17 Switch控制器102
4.4 取样器103
4.4.1 WebSocket取样器103
4.4.2 Dubbo取样器106
4.5 本章总结108
第5章 常见JMeter性能测试脚本的编写案例109
5.1 用户需先登录,再请求别的接口109
5.2 前一个请求返回的结果作为后一个请求的入参112
5.3 使用JMeter对MySQL数据进行性能测试118
5.3.1 利用JMeter为MySQL数据库构造测试数据118
5.3.2 利用JMeter对MySQL数据库查询进行性能测试124
5.4 本章总结127
第6章 BeanShell128
6.1 BeanShell的安装129
6.2 BeanShell的基础语法131
6.2.1 变量和数据类型131
6.2.2 运算符133
6.2.3 控制流语句134
6.2.4 函数和方法138
6.2.5 异常处理139
6.2.6 文件操作141
6.3 在BeanShell中使用JMeter内置变量145
6.3.1 ctx146
6.3.2 vars147
6.3.3 props148
6.3.4 prev150
6.3.5 sampler154
6.3.6 log155
6.3.7 data156
6.3.8 sampleEvent157
6.3.9 sampleResult158
6.3.10 ResponseMessage和ResponseCode158
6.3.11 ResponseData和ResponseHeaders159
6.3.12 RequestHeaders160
6.3.13 Failure和FailureMessage161
6.3.14 Parameters和FileName162
6.3.15 SampleLabel163
6.4 在JMeter中使用BeanShell的案例163
6.5 本章总结171
第7章 JMeter中如何编写自定义的取样器172
7.1 JavaSamplerClient取样器抽象接口介绍173
7.2 自定义取样器的编写案例176
7.3 本章总结185
第8章 性能分析与调优186
8.1 性能分析与调优模型186
8.2 性能分析与调优思想188
8.2.1 分层分析188
8.2.2 科学论证189
8.2.3 问题追溯与归纳总结190
8.3 性能调优技术190
8.3.1 缓存调优190
8.3.2 同步转异步推送193
8.3.3 削峰填谷193
8.3.4 拆分195
8.3.5 任务分解与并行计算195
8.3.6 索引与分库分表196
8.3.7 层层过滤198
8.4 常见性能问题分析总结199
8.5 本章总结203
第9章 电商网站的秒杀系统性能测试与性能分析案例205
9.1 性能需求分析205
9.2 制订性能测试计划209
9.3 编写性能测试方案211
9.4 编写性能测试案例214
9.5 搭建性能测试环境216
9.6 构造性能测试数据219
9.7 编写性能测试脚本223
9.7.1 性能测试涉及的3个接口223
9.7.2 单场景-商品查询性能测试脚本的编写224
9.7.3 混合场景-商品查询-订单提交性能测试脚本的编写233
9.8 执行性能测试235
9.8.1 单场景-商品查询性能压测235
9.8.2 混合场景-商品查询-订单提交性能压测246
9.9 完成性能测试报告255
9.10 本章总结259
第10章 JMeter性能测试的最佳实践260
10.1 确定要编写脚本的关键业务场景260
10.2 设计真实的用户思考时间261
10.3 JMeter编写性能测试脚本的注意事项263
10.4 JMeter执行性能测试时的注意事项265
10.4.1 JMeter运行内存设置265
10.4.2 操作系统参数的设置267
10.5 性能测试时,通常需要做哪些监控270
10.6 本章总结272
第11章 大模型辅助性能测试273
11.1 人工智能的发展273
11.2 大模型辅助性能测试275
11.2.1 大模型辅助性能测试脚本的编写275
11.2.2 大模型辅助性能测试数据的构造277
11.2.3 大模型辅助性能瓶颈问题的分析279
11.3 本章总结281
附录 JMeter属性配置282
编辑推荐
(1)详解JMeter性能测试和性能分析的方法,结合具体测试案例和最佳实践,帮助读者快速掌握JMeter性能测试与性能分析的技能。
(2)实战电商网站的秒杀系统性能测试与性能分析案例与大模型辅助性能测试方法。
(3)配套示例源码、PPT课件、教学大纲、教案、作者微信群答疑服务。
本文摘自《JMeter核心技术、性能测试与性能分析》,获出版社和作者授权发布。
《JMeter核心技术、性能测试与性能分析》本书内容JMeter是一款基于Java的压力测试工具,可用于对服务