《JMeter核心技术、性能测试与性能分析》预售,清华大学出版社的新书您期待吗?

摘要:《JMeter核心技术、性能测试与性能分析》是一本由清华大学出版社出版的图书,JMeter是一款基于Java的压力测试工具,可用于对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。本书详解JMeter性能测试
《JMeter核心技术、性能测试与性能分析》是一本由清华大学出版社出版的图书,JMeter是一款基于Java的压力测试工具,可用于对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。本书详解JMeter性能测试和性能分析的方法,配套PPT课件、教学大纲与作者微信群答疑服务。 本书共分11章,内容包括认识JMeter、认识性能测试、初识JMeter元件、JMeter主要元件详细介绍、常见JMeter性能测试脚本编写案例、BeanShell、JMeter中如何编写自定义的取样器、性能分析、电商网站的秒杀系统性能测试与性能分析案例、JMeter性能测试的最佳实践、大模型辅助性能测试。最后还给出一个JMeter属性配置项的附录供读者参考。 本书既适合JMeter性能测试初学者、性能测试与分析人员、性能测试解决方案设计师、软件性能测试经理,也适合高等院校或高职高专院校学习软件测试课程的学生。 本书目的 本书针对性能测试中遇到的常见问题,帮助读者掌握性能测试的基础知识、JMeter性能测试工具的使用、JMeter性能测试的执行方法与案例,以及遇到性能瓶颈时分析和解决问题的技巧。 本书作者 张永清、张永松 作者简介 张永清,从事功能测试、自动化测试、性能测试、Java软件开发、大数据开发、架构师等工作近二十年,在自动化测试设计、性能测试设计、性能诊断、性能调优、分布式架构设计等方面积累了多年经验。参与过的系统涉及公安、互联网、移动互联网、大数据、人工智能等领域。先后任职于江苏飞搏软件、苏宁大数据研发中心、苏宁研究院、苏宁人工智能研发中心、紫金普惠研发中心、福特汽车工程研究有限公司,历任测试经理、技术经理、部门经理、高级架构师等职位。重点关注大数据、图像处理、高性能分布式架构设计等领域。著有图书《数据资产管理核心技术与应用》《软件性能测试、分析与调优实践之路》《软件性能测试、分析与调优实践之路(第2版)》《Robot Framework自动化测试框架核心指南》。 本书内容 第1、2章,主要介绍JMeter的基础知识以及性能测试的基础概念,帮助读者建立起对性能测试的知识框架,并快速入门性能测试领域。 第3、4章,主要介绍如何使用JMeter提供的各种强大的测试功能,帮助读者掌握JMeter的使用方法。 第5~7章,主要介绍如何使用JMeter来完成性能测试脚本的编写。这几章提供了多个性能测试脚本编写案例,帮助读者将第3、4章讲解的JMeter测试功能运用到脚本编写实践中去。 第8章,主要介绍软件性能分析与调优的理论知识以及调优思想等。本章还会对常见的性能问题做了分析和总结。 第9章,主要剖析了一个完整的性能测试与性能分析调优的案例。通过该案例,帮助读者把前面章节中学习到的知识进行一个完整的实践。读者通过这个案例的实践,在拿到一个性能测试需求时,可以自己有条有理地去完成性能测试的整个过程。 第10章,主要是JMeter性能测试的实践要点。本章包括确定编写脚本的场景、设计用户思考时间、脚本编写主意事项、执行性能测试时的注意事项,以及性能测试时的监控指标。 第11章,简单讲解一下大模型辅助性能测试的应用场景,帮助读者提高性能测试工作的效率。 附录,主要讲解JMeter属性配置项,方便读者在做性能测试时随手查阅。 本书学习方法 (1)本书精心设计的实践示例和案例,可以帮助读者深入掌握JMeter性能测试的方法和技巧。因此,建议读者在学习的时候一定要动手实践本书的示例和案例。 (2)本书每章的最后一节给出了读者必须掌握的重点内容,读者可以根据提示快速回顾每章的关键知识点,掌握本章内容之后再进行下一章的学习。 (3)本书讲解的性能测试基础知识,是完成性能测试的指导思想,建议读者熟记。 (4)多做JMeter操作练习,碰到问题多加思考,将理论知识运用到性能测试实践之中,并通过实践加深对性能测试与性能分析方法的理解。 本书读者 本书既适合JMeter性能测试初学者、性能测试与分析人员、性能测试解决方案设计师、软件性能测试经理,也适合高等院校或高职高专院校软件性能测试课程的学生。 本书目录 第1章 认识JMeter······················································································· 1 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 命令行模式·································································································· 13 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 编写性能测试案例························································································· 30 2.3.5 搭建性能测试环境························································································· 30 2.3.6 构造性能测试数据························································································· 30 2.3.7 编写性能测试脚本························································································· 31 2.3.8 执行性能测试······························································································· 31 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.5 定时器················································································································· 47 3.6 取样器················································································································· 49 3.7 后置处理器··········································································································· 67 3.8 断言···················································································································· 72 3.9 监听器················································································································· 75 3.10 开始一个性能测试脚本的编写案例············································································ 80 3.11 本章总结············································································································· 83 第4章 JMeter主要元件详解·········································································· 85 4.1 配置元件·············································································································· 85 4.1.1 CSV数据文件设置························································································· 85 4.1.2 HTTP Cookie管理器······················································································· 87 4.1.3 HTTP 信息头管理器······················································································· 88 4.2 函数助手·············································································································· 89 4.3 逻辑控制器··········································································································· 94 4.4 取样器················································································································ 101 4.4.1 WebSocket取样器························································································ 102 4.4.2 Dubbo取样器······························································································ 105 4.5 本章总结············································································································· 107 第5章 常见JMeter性能测试脚本的编写案例··················································· 108 5.1 用户需先登录,然后再请求别的接口········································································· 108 5.2 前一个请求返回的结果作为后一个请求的入参····························································· 111 5.3 使用JMeter对MySQL数据进行性能测试··································································· 117 5.3.1 利用JMeter为MySQL数据库构造测试数据······················································· 117 5.3.2 利用JMeter对MySQL数据库查询进行性能测试················································· 123 5.4 本章总结············································································································· 126 第6章 BeanShell······················································································ 127 6.1 BeanShell的安装··································································································· 128 6.2 BeanShell的基础语法····························································································· 130 6.2.1 变量和数据类型·························································································· 130 6.2.2 运算符······································································································ 132 6.2.3 控制流语句································································································ 133 6.2.4 函数和方法································································································ 138 6.2.5 异常处理··································································································· 139 6.2.6 文件操作··································································································· 140 6.3 BeanShell中如何使用JMeter内置变量······································································· 145 6.3.1 ctx············································································································ 146 6.3.2 vars·········································································································· 147 6.3.3 props········································································································· 148 6.3.4 prev·········································································································· 150 6.3.5 sampler······································································································ 155 6.3.6 log············································································································ 156 6.3.7 data·········································································································· 156 6.3.8 sampleEvent································································································ 157 6.3.9 sampleResult······························································································· 158 6.3.10 ResponseMessage和ResponseCode·································································· 158 6.3.11 ResponseData和ResponseHeaders··································································· 159 6.3.12 RequestHeaders·························································································· 160 6.3.13 Failure和FailureMessage·············································································· 161 6.3.14 Parameters和FileName················································································ 162 6.3.15 SampleLabel······························································································ 163 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 同步转异步推送·························································································· 192 8.3.3 削峰填谷··································································································· 193 8.3.4 拆分········································································································· 194 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.8 执行性能测试······································································································· 235 9.8.1 单场景-商品查询性能压测·············································································· 235 9.8.2 混合场景-商品查询-订单提交性能压测····························································· 246 9.9 完成性能测试报告································································································· 256 9.10 本章总结··········································································································· 260 第10章 JMeter性能测试的最佳实践······························································ 261 10.1 确定要编写脚本的关键业务场景············································································· 261 10.2 如何设计真实的用户思考时间················································································ 262 10.3 JMeter编写性能测试脚本的注意事项······································································· 265 10.4 JMeter执行性能测试时的注意事项·········································································· 266 10.4.1 JMeter运行内存设置··················································································· 266 10.4.2 操作系统参数的设置··················································································· 268 10.5 性能测试时,通常需要做哪些监控·········································································· 272 10.6 本章总结··········································································································· 273 第11章 大模型辅助性能测试········································································ 274 11.1 人工智能大模型的发展························································································· 274 11.2 大模型辅助性能测试···························································································· 276 11.2.1 大模型辅助性能测试脚本的编写···································································· 276 11.2.2 大模型辅助性能测试数据的构造···································································· 278 11.2.3 大模型辅助性能瓶颈问题的分析···································································· 280 11.3 本章总结··········································································································· 282 附录 JMeter属性配置················································································· 283