第1篇 性能測試基礎篇
第1章 性能測試基礎 2
1.1 性能測試的重要意義 2
1.1.1 功能測試和性能測試 3
1.1.2 項目組不同角色眼中的軟件性能 3
1.1.3 1秒的性能對於顧客的意義 4
1.2 軟件性能的生命周期 4
1.2.1 需求階段的性能分析 4
1.2.2 設計開發階段的性能分析與驗證 5
1.2.3 係統測試階段的性能驗證與優化 6
1.3 軟件性能認知 7
1.3.1 什麼是軟件性能 7
1.3.2 影響軟件性能的因素 8
1.3.3 軟件性能測試目標 9
1.3.4 性能測試術語 10
1.3.5 網絡協議 12
1.3.6 HTTP協議 13
1.3.7 協議分析工具 16
1.3.8 性能測試工程師的素質要求 20
1.4 性能測試框架 22
1.4.1 性能測試工具原理 22
1.4.2 Controller的簡單設計 23
1.4.3 Agent的簡單設計 25
1.4.4 虛擬用戶的産生 29
第2章 性能測試流程 31
2.1 性能需求調研 32
2.1.1 性能測試需求分析 33
2.1.2 性能需求清晰嗎 34
2.1.3 “不成文的”性能需求定義 34
2.1.4 業務模型調研 35
2.1.5 業務數據分析方法 36
2.1.6 業務數據分析工具的使用 37
2.1.7 性能指標調研 40
2.2 性能測試策劃階段 41
2.2.1 性能測試方案 44
2.2.2 性能測試計劃 45
2.2.3 性能測試工具選型 46
2.2.4 性能測試策略 46
2.2.5 測試輔助診斷分析工具 48
2.3 性能測試環境搭建 52
2.3.1 ASP/ASP.NET性能測試環境搭建 53
2.3.2 LAMP性能測試環境搭建 55
2.3.3 J2EE性能測試環境搭建 59
2.4 性能測試執行過程與性能報告 61
2.4.1 性能測試執行過程 61
2.4.2 性能測試報告 62
第2篇 性能測試工具篇
第3章 LoadRunner腳本開發 66
3.1 LoadRunner工具簡介 66
3.1.1 LoadRunner綜述 66
3.1.2 LoadRunner安裝 67
3.1.3 LoadRunner的安裝部署常見問題 70
3.1.4 LoadRunner組件 71
3.1.5 LoadRunner支持的協議 72
3.1.6 LoadRunner支持的腳本語言 73
3.1.7 LoadRunner的基本使用步驟 74
3.2 LoadRunner腳本設計基礎——C語言 77
3.2.1 C語言簡介 77
3.2.2 C語言的特點 78
3.2.3 學習C語言 80
3.3 LoadRunner腳本開發與維護 81
3.3.1 使用VUGen錄製腳本 81
3.3.2 錄製IE瀏覽器常見問題的解決方法 84
3.3.3 如何選擇協議 85
3.3.4 LoadRunner腳本調試技巧 87
3.3.5 事務定義和劃分 90
3.3.6 檢查點的使用 92
3.3.7 關聯取值 94
3.3.8 關聯的應用例子 97
3.3.9 參數化使用 98
3.3.10 參數化數據的準備 101
3.3.11 關於參數化數據連接數據庫的看法 106
3.3.12 思考時間 107
3.3.13 LoadRunner思考時間與事務響應時間 108
3.3.14 HTML-based與URL-based錄製方式的區彆 108
3.3.15 腳本結構設計 113
3.4 虛擬用戶協議腳本設計與常用函數使用 116
3.4.1 LoadRunner字符串操作函數 116
3.4.2 自定義字符串函數 119
3.4.3 目錄、文件操作函數 122
3.4.4 編寫自定義格式的HTTP請求 126
3.4.5 調用DLL 127
3.4.6 事務相關函數 128
第4章 LoadRunner場景設計與運行 132
4.1 場景分析與計劃 132
4.1.1 分析被測試係統的組成 132
4.1.2 描述係統配置 133
4.1.3 分析用戶使用模式 133
4.1.4 分析任務的分布情況 134
4.1.5 測試類型與測試場景 134
4.1.6 選擇度量響應時間的範圍 134
4.1.7 定義用戶活動 136
4.1.8 選擇測試環境 136
4.2 Controller的使用 137
4.2.1 手工場景設計 137
4.2.2 場景調度設計 140
4.2.3 壓力負載機自動均衡 142
4.2.4 使用IP欺騙 142
4.2.5 麵嚮目標的場景設計 145
4.2.6 服務水平協議(SLA) 148
4.2.7 集閤點的使用 150
4.2.8 Controller中運行界麵Stopped和Passed的區彆 152
4.2.9 場景運行錯誤分析:120秒超時問題的
定位分析 153
第5章 LoadRunner測試結果分析 154
5.1 LoadRunner測試數據分析 154
5.1.1 虛擬用戶圖 155
5.1.2 事務圖 157
5.1.3 Web資源圖 158
5.2 Analysis測試結果分析 160
5.2.1 90%響應時間 160
5.2.2 頁麵細分圖 162
5.2.3 使用Analysis生成測試報告 164
第3篇 性能問題診斷分析篇
第6章 Web服務性能問題診斷分析 166
6.1 Web服務器架構與Apache 166
6.2 Apache性能監控 167
6.3 Apache性能計數器 170
6.4 Apache日誌監控 170
6.5 MPM對Apache性能的影響 171
6.6 調整MaxClients 172
6.7 調整MaxSpareServers 174
6.8 KeepAlive的配置 175
6.9 mod_cache的應用 176
6.10 卸載未使用的Apache模塊 178
第7章 應用服務性能問題診斷分析 179
7.1 應用服務器架構分析 179
7.2 Tomcat性能監控分析 180
7.2.1 Tomcat性能監控方法 181
7.2.2 Tomcat與JVM優化 195
7.2.3 Tomcat與內存泄漏 196
7.2.4 maxThreads:連接綫程數監控與調整 196
7.2.5 connectionTimeout:連接超時的設置 198
7.2.6 acceptCount:最大排隊數的設置 199
7.2.7 Tomcat Native library(APR)的配置 200
7.2.8 Connector:連接器的配置 202
7.3 WebLogic中間件性能監控分析 203
7.3.1 Session監控 204
7.3.2 WebLogic的Session持久化 207
7.3.3 WebLogic綫程數的監控 208
7.3.4 JDBC連接數監控與調優 210
7.3.5 JDBC連接池泄漏問題檢測 215
7.3.6 WebLogic的JVM監控分析 218
7.4 WebSphere中間件性能監控分析 222
7.4.1 WebSphere性能監控方法 223
7.4.2 WebSphere的Session監控與分析 226
7.4.3 WebSphere綫程數的監控與分析 227
7.4.4 WebSphere的JDBC連接數監控 228
7.4.5 WebSphere的JVM監控分析 231
第8章 數據庫服務性能問題診斷分析 234
8.1 Oracle性能監控方法 234
8.1.1 在LoadRunner中配置監控Oracle 235
8.1.2 使用SiteScope監控Oracle 239
8.1.3 使用Oracle企業管理器查看數據庫性能 240
8.1.4 使用SpotLight監控數據庫性能 241
8.2 Oracle性能分析與診斷 247
8.2.1 排序對Oracle性能的影響 247
8.2.2 Buffer Cache Hit Ratio診斷 248
8.2.3 優化Oracle軟解析率 249
8.2.4 診斷Oracle的CPU使用率 253
8.2.5 跟蹤診斷和優化SQL語句 254
8.2.6 Oracle索引問題診斷與優化 257
第9章 應用代碼性能診斷分析 261
9.1 內存泄漏診斷分析 261
9.1.1 代碼書寫問題導緻內存泄漏 261
9.1.2 堆棧內存泄漏檢測 263
9.1.3 Java代碼內存泄漏檢測 265
9.1.4 使用JProfile跟蹤內存泄漏 273
9.2 JVM內存泄漏診斷分析 280
9.2.1 JVM原理與監控 281
9.2.2 JVM啓動參數介紹 283
9.2.3 JVM性能瓶頸診斷分析 285
9.2.4 JVM內存泄漏實例一:PermGen溢齣 285
9.2.5 JVM內存泄漏實例二:Heap溢齣 286
9.2.6 JVM內存泄漏實例三:
垃圾迴收時promotion failed 286
9.3 Servlet常見性能問題分析與優化 289
9.3.1 Servlet中利用init()方法進行高速緩存 290
9.3.2 Servlet壓縮輸齣 293
9.4 JSP常見性能問題分析與優化 295
9.4.1 選擇正確的頁麵包含機製 296
9.4.2 屏蔽Page Session 296
9.4.3 正確地確定JavaBean的生命周期 299
9.4.4 控製Session的時間 300
9.5 p6spy監控和跟蹤SQL語句 301
9.6 Log4j性能診斷與優化 306
9.7 代碼效率性能測試與優化 311
第10章 操作係統性能問題診斷分析 318
10.1 Windows性能監控 318
10.1.1 LoadRunner監控遠程機器Windows資源 319
10.1.2 Windows資源監控計數器 320
10.2 Linux/UNIX性能監控 322
10.2.1 LoadRunner結閤rstatd監控 323
10.2.2 Glance監控命令在HP UX上的使用 325
10.3 開源係統監控工具的使用 330
10.3.1 Nmon 330
10.3.2 Cacti 332
10.4 內存使用監控及性能診斷分析 335
10.4.1 使用free監控Linux內存 335
10.4.2 使用vmstat監控Linux虛擬內存 338
10.5 CPU使用監控及性能診斷分析 339
10.5.1 使用top監控CPU 339
10.5.2 Load averages監控分析 342
10.5.3 使用vmstat監控CPU 342
10.6 I/O使用監控及瓶頸分析 343
10.6.1 使用collectl監控I/O 344
10.6.2 使用iotop監控I/O 345
10.6.3 Linux下的I/O瓶頸診斷分析 346
10.7 網絡監控及瓶頸分析 348
10.7.1 使用netstat監控網絡 349
10.7.2 使用iptraf監控網絡 350
10.7.3 Windows網絡性能分析 352
10.7.4 Linux網絡性能分析 354
附錄 參考書目和資源 357
· · · · · · (
收起)