JMeter性能測試與腳本開發實戰
蔡治國
相關主題
商品描述
《JMeter性能測試與腳本開發實戰》是關於 JMeter 性能測試與腳本開發技術的實用指南,旨在通過詳盡的代碼示例和深入淺出的案例分析,幫助讀者從理論到實踐逐步掌握 JMeter 性能測試與腳本開發的技術和方法。
《JMeter性能測試與腳本開發實戰》共11章。首先介紹 JMeter 的基礎知識和如何測試 HTTP;其次講述 JMeter參數化、斷言、關聯等高級技術和腳本調試技術;接著討論如何構建復雜的測試場景和擴展 JMeter 的功能,如何測試SOAP、NoSQL和WebSocket,以應對更多的測試場景,滿足更多的需求;最後介紹 JMeter 內置對象和JSR223元素,以及Groovy 腳本開發。
《JMeter性能測試與腳本開發實戰》適合測試人員和開發人員閱讀,也適合作為高等院校電腦相關專業的教材。
作者簡介
蔡治国,经验丰富的软件测试工程师,拥有 10 余年的软件测试经验,在 JMeter 领域积累了深厚的专业知识。曾参与多个大型项目的性能测试和质量保证工作,并成功应用JMeter 工具解决了多类测试难题。热衷于分享自己的实践经验和知识,以清晰、简洁的描述和实用的示例,帮助读者理解和掌握 JMeter 脚本开发的各种技巧和方法。其文章和教程广受读者欢迎。
目錄大綱
第 一部分 基礎
第 1章 JMeter基礎 3
1.1 JMeter簡介 3
1.2 JMeter的工作機制 4
1.2.1 性能測試工具的核心要素 4
1.2.2 JMeter的功能 5
1.2.3 JMeter測試流程 5
1.3 JMeter的安裝部署 6
1.3.1 JMeter環境需求 6
1.3.2 JMeter運行方式 7
1.3.3 JMeter單機部署 9
1.3.4 JMeter分佈式部署 11
1.4 JMeter測試元素和JMeter GUI 13
1.4.1 JMeter測試元素 14
1.4.2 JMeter GUI 18
1.5 元素執行順序與組件作用域 22
1.5.1 元素執行順序 22
1.5.2 組件作用域 25
1.6 JMeter測試計劃 27
1.6.1 構建測試計劃 27
1.6.2 執行測試計劃 30
1.7 JMeter線程組 34
1.7.1 普通線程組 34
1.7.2 setUp線程組 36
1.7.3 tearDown線程組 36
1.8 JMeter常用配置元件 37
1.8.1 HTTP信息頭管理器 37
1.8.2 HTTP Cookie管理器 38
1.8.3 HTTP緩存管理器 39
1.8.4 HTTP請求默認值 40
1.8.5 JDBC連接配置 41
1.9 小結 43
第 2章 測試HTTP 44
2.1 HTTP基礎 44
2.1.1 HTTP簡介 44
2.1.2 HTTP會話與連接 46
2.1.3 HTTP消息 48
2.2 HTTP請求的配置 52
2.2.1 基本配置 52
2.2.2 高級配置 54
2.2.3 HTTP請求參數的設置 55
2.3 測試HTTP GET請求 57
2.3.1 GET請求參數的設置 57
2.3.2 測試GET請求案例 58
2.4 測試HTTP POST請求 60
2.4.1 POST請求參數的設置 60
2.4.2 測試POST請求案例 60
2.5 測試RESTful風格的請求 63
2.5.1 RESTful風格的HTTP請求方法 63
2.5.2 測試RESTful風格的HTTP請求案例 64
2.6 HTTP文件上傳與下載 65
2.6.1 文件上傳 65
2.6.2 文件下載 67
2.7 小結 70
第二部分 進階
第3章 JMeter參數化技術 73
3.1 參數化概述 73
3.1.1 數據驅動測試 73
3.1.2 參數化及其類型 74
3.1.3 參數化實現步驟 75
3.1.4 數據生成工具 75
3.1.5 JMeter中常用的參數化方式 77
3.2 用戶參數參數化與用戶自定義變量參數化 77
3.2.1 用戶參數參數化 77
3.2.2 用戶自定義變量參數化 80
3.3 CSV Data Set Config參數化 83
3.3.1 添加CSV Data Set Config 84
3.3.2 配置CSV Data Set Config 84
3.3.3 遍歷參數值 86
3.3.4 CSV Data Set Config參數化案例 88
3.4 內置函數參數化 90
3.4.1 參數化相關的內置函數 91
3.4.2 內置函數參數化案例 94
3.5 數據庫參數化 96
3.5.1 JDBC Request 96
3.5.2 使用單線程遍歷參數值 101
3.5.3 使用多線程遍歷參數值 104
3.6 小結 108
第4章 JMeter斷言技術 109
4.1 斷言概述 109
4.1.1 斷言的基本概念和作用 109
4.1.2 JMeter中常用的斷言 110
4.2 響應斷言 111
4.2.1 添加響應斷言 111
4.2.2 配置響應斷言 111
4.2.3 響應斷言案例 113
4.3 JSON斷言 116
4.3.1 JSON與JSON Path 116
4.3.2 添加JSON斷言 118
4.3.3 配置JSON斷言 118
4.3.4 JSON斷言案例 119
4.4 大小斷言 122
4.4.1 添加大小斷言 122
4.4.2 配置大小斷言 122
4.4.3 大小斷言案例 123
4.5 持續時間斷言 123
4.5.1 添加持續時間斷言 124
4.5.2 配置持續時間斷言 124
4.5.3 持續時間斷言案例 125
4.6 小結 125
第5章 JMeter關聯技術 126
5.1 關聯概述 126
5.1.1 關聯的基本概念和作用 126
5.1.2 JMeter中常用的關聯方式 127
5.2 正則表達式提取器關聯 127
5.2.1 添加正則表達式提取器 128
5.2.2 配置正則表達式提取器 128
5.2.3 正則表達式提取器關聯案例 132
5.3 JSON提取器關聯 134
5.3.1 添加JSON提取器 134
5.3.2 配置JSON提取器 135
5.3.3 JSON提取器關聯案例 136
5.4 CSS Selector提取器關聯 136
5.4.1 添加CSS Selector提取器 136
5.4.2 配置CSS Selector提取器 137
5.4.3 CSS Selector提取器關聯案例 138
5.5 跨線程組關聯 139
5.5.1 JMeter屬性與變量 139
5.5.2 跨線程組傳遞數據的方式 141
5.5.3 跨線程組關聯案例 142
5.6 小結 144
第6章 JMeter腳本調試技術 145
6.1 腳本調試概述 145
6.2 Debug Sampler 146
6.2.1 Debug Sampler簡介 146
6.2.2 使用Debug Sampler調試腳本 146
6.3 查看結果樹 147
6.3.1 查看結果樹簡介 147
6.3.2 使用查看結果樹調試腳本 148
6.4 日誌查看器 152
6.4.1 配置日誌級別與路徑 153
6.4.2 在日誌查看器中查看日誌 154
6.4.3 用戶自定義日誌 155
6.5 小結 156
第三部分 拓展
第7章 使用邏輯控制器構建
復雜測試場景 159
7.1 使用循環控制器 159
7.1.1 循環控制器使用場景 159
7.1.2 添加和配置循環控制器 160
7.1.3 循環控制器使用案例 160
7.2 使用While控制器 162
7.2.1 While控制器使用場景 162
7.2.2 添加和配置While控制器 163
7.2.3 While控制器使用案例 163
7.3 使用ForEach控制器 169
7.3.1 ForEach控制器使用場景 169
7.3.2 添加和配置ForEach控制器 170
7.3.3 ForEach控制器使用案例 170
7.4 使用If控制器 172
7.4.1 If控制器使用場景 172
7.4.2 添加和配置If控制器 173
7.4.3 If控制器使用案例 174
7.5 使用事務控制器 176
7.5.1 事務控制器使用場景 176
7.5.2 添加和配置事務控制器 177
7.5.3 事務控制器使用案例 178
7.6 使用吞吐量控制器 179
7.6.1 吞吐量控制器使用場景 179
7.6.2 添加和配置吞吐量控制器 179
7.6.3 吞吐量控制器使用案例 180
7.7 小結 182
第8章 JMeter擴展 183
8.1 JMeter插件管理器 183
8.1.1 JMeter插件管理器安裝 183
8.1.2 JMeter插件管理器使用 183
8.2 擴展線程組插件 185
8.2.1 Concurrency Thread Group插件 185
8.2.2 Ultimate Thread Group插件 187
8.2.3 Inter-Thread Communication插件 189
8.3 引用外部Java程序 192
8.3.1 在測試計劃中配置 193
8.3.2 在JMeter特定目錄中放置JAR文件 193
8.3.3 在指定目錄中放置JAR文件 193
8.3.4 動態加載JAR文件 194
8.4 小結 195
第9章 使用JMeter測試SOAP、 NoSQL和WebSocket 196
9.1 使用JMeter測試SOAP 196
9.1.1 SOAP簡介 196
9.1.2 SOAP消息格式 197
9.1.3 SOAP 1.1與SOAP 1.2的區別 197
9.1.4 SOAP測試案例 198
9.2 使用JMeter測試NoSQL 200
9.2.1 NoSQL簡介 200
9.2.2 測試Redis 201
9.3 使用JMeter測試WebSocket 203
9.3.1 WebSocket簡介 203
9.3.2 WebSocket握手 205
9.3.3 WebSocket幀結構 207
9.3.4 WebSocket心跳機制 208
9.3.5 WebSocket安裝配置 209
9.3.6 WebSocket測試案例 211
9.4 小結 212
第四部分 深入
第 10章 JMeter內置對象 215
10.1 JSR223簡介 215
10.2 JMeter內置對象概述 216
10.3 ctx對象 217
10.3.1 JMeter上下文與ctx對象 217
10.3.2 訪問當前請求信息 218
10.3.3 獲取前一個取樣器的響應信息 219
10.3.4 獲取前一個取樣器的信息 219
10.3.5 獲取變量與屬性 220
10.3.6 獲取線程(組)的相關信息 221
10.4 vars對象 222
10.4.1 vars對象簡介 222
10.4.2 操作變量 222
10.4.3 訪問線程信息 224
10.5 props對象 224
10.5.1 props對象簡介 224
10.5.2 操作屬性 225
10.5.3 獲取屬性信息 226
10.5.4 其他方法 228
10.6 AssertionResult對象 228
10.6.1 AssertionResult對象簡介 228
10.6.2 獲取斷言信息 228
10.6.3 設置斷言結果 229
10.7 sampler對象 230
10.7.1 sampler對象簡介 230
10.7.2 獲取請求基本信息 230
10.7.3 設置請求基本信息 232
10.7.4 請求頭管理 233
10.7.5 請求參數管理 235
10.7.6 文件上傳參數管理 238
10.8 prev對象 241
10.8.1 prev對象簡介 241
10.8.2 獲取響應信息 241
10.8.3 獲取請求信息 243
10.8.4 設置響應信息 244
10.8.5 其他方法 246
10.9 log對象 246
10.9.1 log對象簡介 246
10.9.2 日誌記錄 246
10.9.3 其他方法 248
10.10 其他內置對象 248
10.11 小結 249
第 11章 JSR223元素與 Groovy腳本開發 250
11.1 JSR223元素與Groovy
編程 250
11.1.1 添加和配置JSR223元素 251
11.1.2 為什麽選擇Groovy 252
11.2 JSR223 PreProcessor 252
11.2.1 JSR223 PreProcessor的應用場景 252
11.2.2 JSR223 PreProcessor的應用案例 253
11.3 JSR223 Timer 264
11.3.1 JSR223 Timer的應用場景 264
11.3.2 JSR223 Timer的應用案例 264
11.4 JSR223 Sampler 267
11.4.1 JSR223 Sampler的應用場景 267
11.4.2 JSR223 Sampler的應用案例 267
11.5 JSR223 PostProcessor 274
11.5.1 JSR223 PostProcessor的應用場景 274
11.5.2 JSR223 PostProcessor的應用案例 274
11.6 JSR223 Assertion 281
11.6.1 JSR223 Assertion的應用場景 281
11.6.2 JSR223 Assertion的應用案例 281
11.7 JSR223 Listener 292
11.7.1 JSR223 Listener的應用場景 292
11.7.2 JSR223 Listener的應用案例 293
11.8 小結 296
附錄A MDClub系統部署說明 297