全棧性能測試修煉寶典 JMeter實戰

全棧性能測試修煉寶典 JMeter實戰

《全棧性能測試修煉寶典 JMeter實戰》是2016年人民郵電出版社出版的圖書,作者是陳志勇、馬利偉、萬龍。

基本介紹

  • 中文名:全棧性能測試修煉寶典 JMeter實戰
  • 作者:陳志勇,馬利偉,萬龍
  • 出版時間:2016年10月1日
  • 出版社:人民郵電出版社
  • 頁數:448 頁 
  • ISBN:9787115437228
  • 定價:89 元
  • 開本:16 開
  • 裝幀: 平裝
內容簡介,圖書目錄,作者簡介,

內容簡介

本書全面介紹了進行軟體性能測試的實戰技術和JMeter的套用知識,本書內容分4部分:首部分基礎篇,主要講解了當前性能測試狀況及發展前景、性能測試的基礎理論,讓讀者儘快入門學習;第二部分工具篇,講解開源負載工具JMeter的體系結構、腳本開發、負載模擬、測試監聽等內容,讓讀者可以從零開始學會使用一個主流的負載工具,此部分是市面上到目前為止對JMeter講解較全面的內容,掌握其內容即可以進行性能測試腳本開發、性能測試執行等工作;第三和第四部分實踐篇、提升篇,詳細講解了性能監控與診斷分析技術,通過項目實踐引導讀者學會性能測試工作,如診斷問題、分析調優等軟體性能測試中的核心技術,並講解了HTTP、端到端性能監控、性能測試自動化和JMeter常見問題解決等知識。
本書講解通俗幽默,很適合讀者閱讀學習,本書適合測試工程師、測試項目負責人、開發工程師、性能測試愛好者閱讀,也適合大專院校相關專業師生的學習用書和培訓學校的教材。

圖書目錄

基礎篇
第1章 性能方向職業發展 1
1.1 為什麼選擇軟體測試 2
1.2 軟體測試痛處 2
1.3 軟體測試發展路線 3
1.4 不僅僅是性能測試 4
1.5 從招聘要求看崗位價值 5
1.6 性能測試技能樹 8
1.6.1 測試工具 8
1.6.2 測試基礎 9
1.6.3 代碼 10
1.6.4 伺服器性能診斷知識 10
1.6.5 性能調優技能 12
1.6.6 自動化/持續集成 13
1.6.7 雲計算及虛擬化 13
1.7 本章小結 13
第2章 性能測試初體驗 14
2.1 性能測試的價值 15
2.2 性能測試流程 17
2.3 性能測試成功與失敗要素 18
2.4 不同角色看性能 20
2.5 性能測試工具選擇 21
2.6 性能測試相關術語 22
2.7 性能測試通過標準 23
2.8 性能測試趨勢 24
2.9 本章小節 24
工具篇
第3章 JMeter體系結構 25
3.1 JMeter簡介 26
3.2 JMeter體系結構 26
3.2.1 X1【取樣器】 27
3.2.2 X1【斷言】 28
3.2.3 X1【監聽器】 28
3.2.4 X2【前置處理器】 29
3.2.5 X2【配置元件】 29
3.2.6 X2【後置處理器】 30
3.2.7 X3【控制器】 31
3.2.8 X4【定時器】 31
3.2.9 X5【執行緒組】 31
3.2.10 Test Fragment 32
3.2.11 工作檯 32
3.3 JMeter運行原理 33
3.4 JMeter測試計畫要素 34
3.5 JMeter環境介紹 35
3.6 JMeter與LoadRunner異同 37
3.7 本章小結 38
第4章 JMeter腳本開發 39
4.1 JMeter工作區介紹 40
4.2 JMeter Http協定錄製 41
4.2.1 Badboy進行錄製 41
4.2.2 JMeter配置代理進行
錄製 49
4.3 JMeter 腳本調試 52
4.4 JMeter 關聯 55
4.4.1 後置處理器 56
4.4.2 Regular Expression
Extractor 56
4.5 JMeter 參數化 60
4.5.1 配置元件 60
4.5.2 CSV Data Set Config 60
4.5.3 函式助手 62
4.5.4 訪問地址參數化 64
4.5.5 HTTP請求默認值 64
4.6 JMeter 檢查點 65
4.6.1 斷言 65
4.6.2 Response Assertion 66
4.7 JMeter事務 68
4.7.1 邏輯控制器 68
4.7.2 事務控制器 68
4.8 JMeter 集合點 69
4.8.1 定時器 69
4.8.2 同步定時器 69
4.9 JMeter元件運行順序 70
4.10 本章小結 72
第5章 JMeter負載與監聽 74
5.1 場景設計 75
5.2 場景設定 75
5.3 場景運行 77
5.3.1 GUI運行 77
5.3.2 非GUI運行測試 79
5.4 性能參數配置 82
5.5 測試監聽 83
5.5.1 JMeter監聽器 83
5.5.2 開源監聽外掛程式 85
5.6 本章小結 85
第6章 JMeter元件詳解 86
6.1 邏輯控制器 87
6.1.1 ForEach Controller(循環控制器) 87
6.1.2 Simple Controller 89
6.1.3 Include Controller 90
6.1.4 Runtime Controller 90
6.1.5 Switch Controller 91
6.1.6 While Controller 91
6.1.7 Interleave Controller 91
6.1.8 Once Only Controller 92
6.1.9 Throughput Controller 93
6.1.10 If Controller 94
6.1.11 Module Controller 94
6.1.12 Random Controller 95
6.1.13 Random Order Controller 95
6.1.14 Loop Controller 96
6.1.15 Recording Controller 96
6.1.16 Transaction Controller 97
6.2 配置元件 98
6.2.1 FTP請求默認值 98
6.2.2 HTTP Authorization
Manager 99
6.2.3 HTTP Request Defaults 99
6.2.4 Java Request Defaults 99
6.2.5 JDBC Connection
Configuration 100
6.2.6 Random Variable 100
6.2.7 Counter 100
6.2.8 Login Config Element 101
6.3 定時器 101
6.3.1 Gaussian Random Timer 102
6.3.2 Constant Timer 102
6.3.3 Synchronizing Timer 102
6.3.4 Constant Throughput
Timer 102
6.3.5 Uniform Random Timer 103
6.3.6 Poisson Random Timer 103
6.3.7 BeanShell Timer 103
6.3.8 BSF Timer 106
6.3.9 JSR223 Timer 106
6.4 前置處理器 106
6.4.1 BeanShell PreProcessor 106
6.4.2 JSR223 PreProcessor 107
6.4.3 BSF PreProcessor 108
6.4.4 Regular User Parameter 108
6.4.5 用戶參數 110
6.4.6 JDBC PreProcessor 110
6.4.7 HTML連結解析器 111
6.4.8 HTTP URL 重寫修飾符 114
6.5 後置處理器 115
6.5.1 Debug PostProcessor 115
6.5.2 JDBC PostProcessor 116
6.5.3 Result Status Action
Handler 116
6.5.4 XPath Extractor 117
6.6 斷言 118
6.6.1 BeanShell Assertion 118
6.6.2 Compare Assertion 120
6.6.3 HTML Assertion 120
6.6.4 Size Assertion 121
6.6.5 XML Schema Assertion 122
6.6.6 XML Assertion 123
6.6.7 XPath Assertion 123
6.6.8 Duration Assertion 124
6.6.9 其他斷言元件 124
6.7 監聽器 124
6.7.1 監聽器默認配置 124
6.7.2 Aggregate Graph 127
6.7.3 BeanShell Listener(BeanShell監聽器) 130
6.7.4 Distribution Graph
(分布圖) 130
6.7.5 Response Time Graph(回響時間圖形監聽器) 131
6.7.6 Simple Data Writer 131
6.7.7 Spline Visualizer(樣條線顯示取樣器) 132
6.7.8 Summary Report
(表格形式顯示) 133
6.7.9 Save Response to a file
(存儲伺服器回響) 133
6.7.10 View Results Tree
(察看結果樹) 134
6.7.11 Assertion Results
(斷言結果) 135
6.7.12 Generate Summary Results
(視窗顯示結果) 136
6.7.13 View Results in Table
(表格形式顯示) 136
6.7.14 Monitor Results 137
6.7.15 Aggregate Report 138
6.7.16 Mailer Visualizer 138
6.8 函式助手 139
6.8.1 __BeanShell腳本語言 139
6.8.2 __char 140
6.8.3 __counter 141
6.8.4 __CSVRead 142
6.8.5 __escapeHtml 143
6.8.6 __escapeOroRegexChars 143
6.8.7 __eval 144
6.8.8 __evalVar 144
6.8.9 __FileToString 145
6.8.10 __intSum 146
6.8.11 __longSum 146
6.8.12 __javaScript 146
6.8.13 __jexl 146
6.8.14 __log 147
6.8.15 __logn 148
6.8.16 __machineIP 148
6.8.17 __machineName 149
6.8.18 __P 149
6.8.19 __property 149
6.8.20 __Random 150
6.8.21 __RandomString 150
6.8.22 __regexFunction 151
6.8.23 __samplerName 151
6.8.24 __setProperty 152
6.8.25 __split 152
6.8.26 __StringFromFile 153
6.8.27 __TestPlanName 154
6.8.28 __threadNum 154
6.8.29 __time 154
6.8.30 __unescape 155
6.8.31 __unescapeHtml 155
6.8.32 __urldecode 155
6.8.33 __urlencode 155
6.8.34 __UUID 155
6.8.35 __V 155
6.8.36 __XPath 156
6.9 本章小結 156
第7章 JMeter常用腳本開發 158
7.1 BeanShell Sampler 159
7.2 Debug Sampler 162
7.3 FTP請求 163
7.4 Java請求 164
7.5 JDBC請求 171
7.5.1 JDBC連線池設定 172
7.5.2 添加JDBC Request 174
7.6 JUnit Request 179
7.6.1 JUnit簡介 179
7.6.2 JUnit參數 180
7.6.3 JMeter JUnit Request 181
7.7 SOAP/XML-RPC Request 182
7.8 本章小結 184
第8章 JMeter開源測試組件 185
8.1 執行緒組 187
8.1.1 Ultimate Thread Group 187
8.1.2 Stepping Thread Group 188
8.2 邏輯控制器 189
8.3 配置元件 190
8.4 定時器 190
8.5 監聽器 191
8.5.1 Transactions per Second 191
8.5.2 Response Times Over
Time 192
8.5.3 Response Times vs
Threads 192
8.5.4 Graphs Generator 192
8.6 伺服器監控 193
8.7 本章小結 195
實戰篇
第9章 性能監控診斷 196
9.1 作業系統性能分析介紹 197
9.2 系統性能分析思路 198
9.2.1 系統性能分析因素-
CPU 199
9.2.2 系統性能分析因素-
記憶體 199
9.2.3 系統性能分析因素-
網路 200
9.2.4 系統性能分析因素-I/O 201
9.2.5 系統性能分析因素-
總結 201
9.3 瓶頸閾值分析思維導圖與
手冊 202
9.3.1 CPU定位分析 202
9.3.2 記憶體定位分析 203
9.3.3 網路定位分析 203
9.3.4 IO定位分析 204
9.4 Linux系統性能分析思路和
實踐 204
9.4.1 系統負載監控分析實踐 205
9.4.2 系統監控分析實踐 206
9.5 Windows系統性能分析思路和
實踐 217
9.5.1 性能監視器綜述 217
9.5.2 性能監視器工具介紹 218
9.5.3 系統監控分析實踐 218
9.5.4 資源監視器介紹和
實踐 226
9.6 Tomcat監控之Probe 235
9.7 MySQL監控之MONyog 238
9.8 JVM監控 241
9.8.1 jps 241
9.8.2 jstat 243
9.8.3 jmap 245
9.8.4 JVisualVM 247
9.9 本章小結 250
第10章 性能分析調優 251
10.1 性能分析方法 253
10.2 單機性能分析與調優 254
10.2.1 性能分析流程 254
10.2.2 系統性能關注點 256
10.2.3 程式最佳化 261
10.2.4 配置最佳化 263
10.2.5 資料庫連線池最佳化 263
10.2.6 執行緒最佳化 265
10.2.7 DB最佳化 268
10.3 業務流程最佳化 269
10.4 結構最佳化 269
10.4.1 單機結構 269
10.4.2 集群結構 270
10.4.3 分散式結構 271
10.5 本章小結 277
第11章 綜合實踐之診斷分析與調優 278
11.1 需求分析 280
11.1.1 需求採集 282
11.1.2 需求分析 285
11.1.3 並發數計算 289
11.2 測試模型 291
11.3 測試計畫 291
11.4 環境搭建 292
11.5 腳本開發 295
11.5.1 瀏覽帖子 295
11.5.2 回覆帖子 298
11.5.3 發帖 301
11.6 數據準備 301
11.6.1 主數據準備 302
11.6.2 數據製作方法 303
11.7 場景設計 307
11.7.1 場景設計 307
11.7.2 場景實現 309
11.8 測試監控 312
11.9 測試執行 313
11.9.1 基準測試 313
11.9.2 配置測試 315
11.9.3 負載測試 319
11.9.4 穩定性測試 327
11.10 結果分析 328
11.11 測試報告 329
11.12 本章小結 330
提升篇
第12章 網際網路測試必備知識——HTTP
協定 331
12.1 HTTP協定簡介 332
12.2 HTTP工作原理 332
12.3 HTTP請求 333
12.4 HTTP應答 335
12.5 HTTP捕獲 336
12.6 Http Watch 337
12.6.1 HttpWatch錄製 337
12.6.2 HttpWatch數據分析 338
12.7 本章小結 341
第13章 端到端性能監控平台 342
13.1 為什麼構建基於雲的端到端
性能監控平台 343
13.2 端到端監控的意義 343
13.3 前端監控常見策略 343
13.4 基於httpWatch的自動捕獲 344
13.5 基於firebug的自動捕獲 345
13.5.1 自動導出瀑布圖 345
13.5.2 HARViewer部署 346
13.5.3 基於Fiddler的自動
捕獲 348
13.5.4 基於YSlow的前端評估
體系 348
13.5.5 基於PageSpeed的前端
評估體系 350
13.5.6 基於dynaTrace Ajax的
前端評估體系 351
13.6 構建基於Showslow的監控
體系 356
13.6.1 Showslow介紹 356
13.6.2 Showslow環境搭建 356
13.6.3 ShowSlow配置 357
13.6.4 YSlow配置 357
13.6.5 WebDriver驅動的定時
監控體系 359
13.7 本章小結 361
第14章 性能測試自動化——Jenkins+
Ant+ JMeter 362
14.1 為什麼要做性能測試自動化 363
14.2 如何做性能測試自動化 365
14.3 Ant+JMeter集成 365
14.3.1 Ant下載 366
14.3.2 Ant安裝 366
14.3.3 JMeter中配置XML檔案來定義測試活動 367
14.3.4 運行測試計畫 369
14.4 Jenkins+Ant集成 371
14.4.1 Jenkins安裝 372
14.4.2 建立Slave節點 374
14.4.3 JMeter任務配置 377
14.5 如何運行複雜場景 385
14.6 報告自動化 385
14.6.1 配置TPS、回響時間等
圖表 385
14.6.2 報告合成 386
14.7 JMeter腳本拷貝自動化 391
14.8 JMeter Agent自動化 395
14.9 本章小結 398
第15章 JMeter常見問題 399
15.1 JMeter無法開啟 400
15.2 JMeter異常關閉 400
15.3 JMeter無法產生負載 401
15.4 JMeter日誌輸出控制 401
15.5 記錄測試結果影響Jmeter
效率 402
15.6 JMeter可以測試接口嗎 402
15.7 JMeter可以測試Dubbo
接口嗎 403
15.8 JMeter可以測試RPC
接口嗎 404
15.9 JMeter函式助手中函式不夠用
怎么辦 404
15.10 JMeter支持子事務的
定義嗎 407
15.11 JMeter非GUI方式運行時如何傳
遞運行參數 408
15.12 運行場景時察看結果樹為什麼
要關閉 409
15.13 多個測試計畫如何運行 409
15.14 如何找導致CPU瓶頸的
程式 410
15.15 如何找導致記憶體瓶頸的
程式 410
15.16 如何找導致IO瓶頸的
程式 411
15.17 如何計算並發用戶數 411
15.18 JMeter可以做哪些測試 412
15.19 性能測試的分析方法有
哪些 412
15.20 如何看懂Java執行緒棧
信息 413
15.21 能用本地負載環境測試“雲環境”
的性能嗎 413
15.22 性能測試環境和生產環境
不一致 414
15.23 本章小結 414
附錄A Jforum性能測試計畫 415
A.1 性能測試背景 416
A.2 性能測試目標 416
A.3 性能測試範圍 416
A.4 名詞術語約定 416
A.5 測試環境 417
A.5.1 生產環境系統架構 417
A.5.2 測試環境系統架構 418
A.5.3 生產環境軟硬體配置 418
A.5.4 測試環境軟硬體配置 419
A.5.5 負載機軟硬體配置 419
A.6 需求分析 420
A.6.1 業務模型 420
A.6.2 性能指標 421
A.7 測試策略 422
A.7.1 測試執行策略 422
A.7.2 測試監控策略 422
A.8 測試場景 423
A.9 測試準備 423
A.9.1 測試工具準備 424
A.9.2 測試腳本及程式準備 424
A.9.3 測試數據準備 424
A.9.4 測試環境準備 424
A.10 測試組織架構 425
A.11 交付清單 425
A.12 項目風險 426
A.13 附錄 426
附錄B 性能測試報告 427
B.1 性能測試背景 428
B.2 性能測試目標 428
B.3 性能測試範圍 428
B.4 名詞術語約定 429
B.5 測試環境 430
B.5.1 生產環境系統架構 430
B.5.2 測試環境系統架構 430
B.5.3 生產環境軟硬體配置 431
B.5.4 測試環境軟硬體配置 431
B.5.5 負載機軟硬體配置 431
B.6 測試數據 432
B.6.1 歷史數據量 432
B.6.2 主數據 432
B.6.3 性能指標 432
B.7 測試進度 433
B.8 測試結果 433
B.8.1 基準測試結果 433
B.8.2 配置測試 434
B.8.3 負載測試結果 438
B.8.4 穩定性測試結果 445
B.9 測試結論 447
B.9.1 測試結論 447
B.9.2 系統缺陷 448
B.10 系統風險 448
參考資料 449

作者簡介

陳志勇(網名 天勝),
精通性能測試調優及性能工具開發、自動化測試、國際認證項目經理,先後負通用汽車、平安銀行等知名企業系統性能及管理工作。性能測試專家,魯德特邀講師,備受學生喜愛。授課理論接合實際,專業性強,知識面廣,備受騰訊公開課學生喜愛。
馬利偉(網名MIKE),
全棧測試專家,性能測試專家,先後供職於阿里巴巴和分眾傳媒等公司,曾負責寶潔、可口可樂、螞蟻金服、分眾傳媒螢幕等項目先後擔任測試主管、資料庫工程師、項目經理、BI總架構師兼部門經理。授課激發激情,邏輯清晰,熱情澎湃,ROAD_Testing性能測試專業性能教材(10本總計5000多頁A4紙)主編。
萬龍(網名LONG),
先後任職於江西移動,西門子,諾基亞西門子等公司,現任淘寶架構師。從業以來,一直從事基於Linux平台的性能或自動化測試開發性能監控平台及持續平台工作.擅長大數據分析,企業級持續集成,系統性中間件級別配置、性能監控調優平台和自動化測試平台的開發設計。

熱門詞條

聯絡我們