2024 年是一个不太友好的年份。
年初跟一家出版社的编辑沟通,确定了一个选题,然后我就开始了写这本书。后来一波三折,最终折戟。
但是书已经写了,而且投入了不少精力,不能就此埋没了。所以打算在公众号上进行连载,总计 11 章 13 万字,估计连载完够一阵子了。
对了,书的名字:从 Java 开始做性能测试 。
如果本书内容对你有所帮助,希望各位多多赞赏,让我可以贴补家用。赞赏两位数可以提前阅读未公开章节。我也会尝试制作本书的视频教程,包括必要的答疑。
书的内容
本书总计包含11章,分为3大部分,第一部分(1-3章)侧重于Java并发编程技术学习以及开发简单性能测试框架;第二部分(4-9章)会针对常见的测试对象、通信协议进行逐个讲解,并在预设的测试场景中使用性能测试框架进行实战;第三部分(10-11章)则是性能测试技术拓展,讲解高性能池化框架和Java微基准测试框架实战。详细章节内容如下:
- 第1章:讲解Java多线程编程基础。Java并发是性能测试底座,通过学习Java并发常用的实现方式,不同线程池的选择和适用场景,特别是对线程池创建参数进行详细的讲解和拓展,让读者了解掌握并发编程基础能力。
- 第2章:在掌握并发编程基础后,本章讲解在性能测试中,Java多线程编程常用的功能类、API,并在实际场景中演示常其使用方式,在性能测试中的最佳实践,并针对使用场景,讲解讲解不同并发安全实现类的优缺点。
- 第3章:有了前两章铺垫,本章演示通过Java多线程编程技术开发一个简单的性能测试框架。从选择自定义线程池和并发模型选择开始,一点点完成预设功能,最后性能测试场景中探寻拓展需求并且开发实现,给测试框架增砖添瓦。
- 第4章:本章讲解如何测试HTTP协议接口。首先简单介绍HTTP协议基础知识,然后重点讲解Java Client的API,进行实际HTTP接口的请求,使用第4章写好的性能测试框架进行HTTP接口的模拟性能测试。最后介绍了HTTP接口性能测试流量回放框架应用场景,同时利用学过的并发知识,开发了自定义流量回放引擎。
- 第5章:本章以WebSocket协议为例,讲解如何测试长连接协议接口。首先介绍WebSocket协议基础知识,然后进行2种WebSocket Client实现,再进行WebSocket 发起请求,最终使用写好的性能测试框架进行WebSocket接口的模拟性能测试,以及WebSocket连接数性能测试。
- 第6章:接下来进入数据库领域。MySQL当仁不让是关系型数据库的代表。本章讲解MySQL协议接口。首先介绍MySQL协议的基础知识,通过JDBC演示MySQL API的使用,最后进行常见使用场景的性能测试实现。通过MySQL数据库批量插入锻炼了JDBC在并发编程实践中,讲解了如何提升写入TPS的3种方式。
- 第7章:对于非关系型数据库,Redis也是明星选手。本章讲解如何对Redis接口。首先介绍Redis协议的基本知识,使用Redis Client实现库jedis进行Redis API的讲解和使用演示,最后进行常见场景的性能测试。
- 第8章:本章讲解RPC协议测试方法,以gRPC协议为例,讲解如何测试RPC协议接口。首先介绍gRPC接口基本概念和知识,通过3种gRPC Client讲解与代码实现,完成gRPC API的请求调用,最终使用性能测试框架进行性能测试。
- 第9章:本章进入消息中间件领域,讲解Kafka协议接口测试。首先讲解Kafka协议的基础知识,演示Kafka Client的API,对工作中常用的常用的Kafka测试场景进行实现。
- 第10章:作为补充,本章学习绝大多数高性能设计都会涉及的池化技术。本章讲解Java高性能池化框架:Apache-pool2。这样当我们需要自己编写高性能对象池时,就可以立足于此,大展拳脚。实践环节中,我们首先对MySQL进行了对象池改造,然后针对轻量级应用场景,我们利用池化技术完成了自定义对象池功能开发实践。
- 第11章:本章内容围绕微基准测试、Java微基准测试工具JMH。讲解和演示基础功能,之后再对常见集合类的遍历、添加删除进行微基准测试,一方面锻炼了对JMH工具的实战能力,一方面也对这些集合类的性能有所了解。最后以性能测试中生成唯一标识符为专题,不仅从实现方式进行讲解,而且通过JMH微基准测试验证其方案的性能。
书的目录
第1章 Java多线程编程 1
第2章 多线程编程常用功能类 38
第3章 开发性能测试引擎 78
第4章 HTTP协议性能测试 133
第5章WebSocket协议性能测试 187
- 5.3 Netty-WebSocket详解 196
第6章 MySQL协议性能测试 216
第7章Redis协议性能测试 238
第8章 gRPC协议性能测试 258
第9章Kafka协议性能测试 268
第10章 通用池化框架 280
- 10.1 Apache Commons Pool基础 280
- 10.2 Apache Commons Pool详解 281
第11章 微基准测试与实战 296
FunTester
FunTester 原创精华
原文作者:FunTester;如有侵权,请联系管理员删除。