寫了本書,準備連載

FunTester發表於2024-11-21

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

  • 1.1 併發與並行 1
  • 1.2 Java 多執行緒實現 2
  • 1.3 Java 執行緒池 6
  • 1.4 自定義執行緒池 20
  • 1.5 總結 36

第 2 章 多執行緒程式設計常用功能類 38

  • 2.1 執行緒安全 38
  • 2.2 synchronized 關鍵字 39
  • 2.3 lock 鎖 47
  • 2.4 atomic 包原子類 53
  • 2.5 CountDownLatch 55
  • 2.6 Phaser 59
  • 2.7 執行緒安全的集合類 67
  • 2.8 ThreadLocal 74
  • 2.9 總結 90

第 3 章 開發效能測試引擎 78

  • 3.1 效能測試模型 78
  • 3.2 執行緒池選擇 81
  • 3.3 多執行緒任務類 85
  • 3.4 多執行緒執行類 90
  • 3.5 Rump-Up 功能 103
  • 3.6 測試中資訊實時展示 107
  • 3.7 效能測試實戰 112
  • 3.8 錦囊妙計 121
  • 3.9 總結 132

第 4 章 HTTP 協議效能測試 133

  • 4.1 HTTP 基礎 133
  • 4.2 HttpClient 詳解 137
  • 4.3 HTTP 協議介面測試實戰 157
  • 4.4 流量回放 175
  • 4.5 總結 186

第 5 章 WebSocket 協議效能測試 187

  • 5.1 WebSocket 基礎 187
  • 5.2 Java-WebSocket 詳解 188
  • 5.3 Netty-WebSocket 詳解 196
  • 5.4WebSocket 介面測試實戰 205
  • 5.5 總結 215

第 6 章 MySQL 協議效能測試 216

  • 6.1 MySQL 協議基礎 216
  • 6.2 JDBC 詳解 217
  • 6.3 MySQL 效能測試實戰 224
  • 6.4 總結 237

第 7 章 Redis 協議效能測試 238

  • 7.1 Redis 基礎 238
  • 7.2 Jedis 詳解 239
  • 7.3 Redis 效能測試實戰 248
  • 7.4 總結 257

第 8 章 gRPC 協議效能測試 258

  • 8.1 gRPC 協議基礎 258
  • 8.2 常用 3 種 gRPC 客戶端 259
  • 8.3 gRPC 協議介面效能測試實戰 263
  • 8.4 總結 267

第 9 章 Kafka 協議效能測試 268

  • 9.1 Kafka 協議基礎 268
  • 9.2 生產者和消費者 269
  • 9.3 Kafka 效能測試實戰 272
  • 9.4 總結 278

第 10 章 通用池化框架 280

  • 10.1 Apache Commons Pool 基礎 280
  • 10.2 Apache Commons Pool 詳解 281
  • 10.3 池化框架實戰 283
  • 10.4 總結 295

第 11 章 微基準測試與實戰 296

  • 11.1 Java 微基準測試工具 JMH 296
  • 11.2 JMH 實戰——集合遍歷 303
  • 11.3 JMH 實戰——集合新增和刪除 307
  • 11.4 JMH 實戰——唯一標識 311
  • 11.5 總結 323
FunTester 原創精華
  • 混沌工程、故障測試、Web 前端
  • 服務端功能測試
  • 效能測試專題
  • Java、Groovy、Go
  • 白盒、工具、爬蟲、UI 自動化
  • 理論、感悟、影片
如果覺得我的文章對您有用,請隨意打賞。您的支援將鼓勵我繼續創作!
打賞支援

相關文章