深入性能測試——LoadRunner性能測試、流程、監控、調優全程實戰剖析

-
【作 者】何月順 黃文高 編著
【I S B N 】978-7-5170-0994-8
【責任編輯】張玉玲
【適用讀者群】科技
【出版時間】2013-08-15
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數】528
【千字數】765
【印 張】33
【定 價】¥88
【叢 書】暫無分類
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書主要介紹如何使用LoadRunner進行性能測試工作,主要包括四大部分:入門篇、提高篇、監控篇和實戰篇。入門篇主要講述性能測試的基礎知識,對LoadRunner進行簡單介紹,讓讀者從整體上了解LoadRunner。提高篇主要講述性能測試工具LoadRunner三大組件的使用技巧,以及測試過程中需要注意的細節。監控篇主要講述在整個性能測試過程中應該如何監控系統資源、Web服務器和數據庫,以及常用的調優技巧,并就性能測試的流程進行詳細的介紹。實戰篇通過兩個案例:C/S架構和B/S架構來介紹性能測試的整個過程。
本書適合性能測試工程師、資深測試工程師、測試經理、測試總監使用。
熟練掌握性能測試工具LoadRunner
本書詳細講解了LoadRunner的使用,通過案例特別突出了關鍵知識點的講解(如關聯、參數化等)。
●深入理解與掌握監控和調優技術
有經驗的讀者也許更希望看到這部分內容。本書系統且深入地介紹了監控與調優的方法和技巧,并包含了監控與調優的詳細步驟和講解。
●深入理解與掌握性能測試流程
很多做性能測試的朋友都會遇到這樣的問題:性能測試工具LoadRunner使用很熟練,但在實際的性能測試過程中,卻不知如何著手,理不清頭緒,這主要是因為對性能測試的流程不熟悉。本書深入詳細地介紹了性能測試的流程,可以幫助讀者更好地規范性能測試流程。
12306,你懂的
每逢過年過節大家訂票回家或出差旅游時,鐵路12306訂票網站幾乎都會出現故障。很多人尤其是軟件開發人員都在想一個問題:12306訂票網的性能怎么就這么差呢?不錯,這是用戶對這個網站的直觀感受,這個性能表現的現象就是大家無法訂票,而官方給出的系統每日的點擊量超過14億,這相當于全中國每個人都點擊了一次,如果單純從這個數據來看,似乎訂不了票不是12306網站的錯,而是訂票人太多的緣故,但仔細分析一下會發現這樣一個問題,雖然12306網站被頻繁地點擊,但是每當登錄的人很多時都會出現這樣的提示:“當前訪問用戶過多,請稍后重試!”,這就相當于門外有很多人敲門,但屋子里的人一直不開門一樣,所以服務器根本就沒有承受那么大的壓力,又一次被忽悠了,其實市民的要求很簡單,直接把每天從12306網站訂出票的張數公布出來就可以,這可以直接反映出系統處理業務的能力,好理解又很簡單,不用費腦子去思考“點擊量”是什么意思。
從12306網站事件不難看出,在現在的軟件質量體系中軟件性能的重要性,而軟件的性能必須依賴性能測試來驗證,所以性能測試在未來軟件測試體系中的地位顯然是越來越重要,也越來越受企業重視的。
性能測試學習過程中的典型誤區
在性能測試學習過程中最容易遇到以下兩個典型誤區:
(1)學好LoadRunner就等于學好性能測試。
很多朋友認為性能測試主要是學習性能測試工具,其實并不是這么回事,性能測試工具只能說是性能測試的一個組成部分,并不能與性能測試等同,其實隨著自身對性能測試的認識,你會發現性能測試工具更多的是用于模擬客戶端產生壓力的工具,其在性能分析和調優方面給出的數據支持相對來說較弱,所以僅僅靠性能測試工具是遠遠不夠的,還需要使用其他一些監控和調優工具,才能做好性能測試。此外,性能測試計劃也很重要,如果計劃不當,那么測試出來的性能數據就不準確,所以性能測試不僅僅是工具,還有計劃、監控和調優。
(2)忽視性能測試過程。
對于一些有性能測試相關工作經驗的性能測試工程師來說,很多人花很多時間去學習性能調優,當然這個并沒有什么錯,但是當調優的技能積累到一定程度后,又會發現自己在進行性能測試時總是缺少了點什么,導致性能測試總是做得不理想,而這部分被“缺失”的內容就是性能測試過程或者說是性能測試流程,這也可能是很多讀者比較容易忽視的一部分內容。性能測試過程是進行性能測試前的準備階段,試想如果在進行性能測試之前沒有一個好的性能測試方案來指導如何進行性能測試,那么就將導致測試出來的性能數據是錯誤的,而測試的數據都出現了錯誤,那么調優也就失去了意義。所以讀者不應該忽視性能測試的過程,在學習性能測試過程中需要對性能測試的流程有一個很深刻的理解,這樣才能幫助我們做出正確的測試方案,特別是業務模型和場景模型的定義,這是性能測試過程中的重中之重,并且只有對性能測試的流程有了相當程度的了解后,才能有序地梳理性能測試的過程,不至于讓整個性能測試團隊的工作處于混亂狀態之中,才能更好地提高性能測試的效果。
關于本書
(1)本書解決讀者哪些學習問題。
讀者朋友買書都希望在書中學到一些可以使用的東西或筆者思考問題的方式,那么本書主要幫助讀者解決哪些問題呢?
通過對本書的學習,可以熟練地使用性能測試工具LoadRunner。書中詳細介紹了LoadRunner的使用,特別突出了關鍵知識點(如關聯、參數化等)的介紹,并且使用很多案例來介紹這些知識點的使用,這樣可以更好地解決實際測試過程中的問題。
幫助讀者提高監控和調優的技能,對一些有經驗的朋友更希望看到該部分內容,而本書系統且全面地介紹了這方面的內容,并就其監控和調優的步驟進行了詳細描述,這樣可以更好地幫助讀者掌握性能測試的技能。
熟悉性能測試流程,幫助讀者更好地規范性能測試流程。筆者在與做性能測試的朋友交流時,發現很多朋友都會提及這樣一個問題:對性能測試工具LoadRunner使用得很熟練,在性能測試過程中會進行監控和調優,但感覺還是有點亂,有點沒有條理的感覺,其實很大的一個原因就是對性能測試的流程不熟悉,導致總是沒有一個規范的流程來指導如何進行性能測試。本書詳細介紹了性能測試的流程,希望可以更好地幫助讀者規范性能測試過程。
(2)本書的4個特點。
結構清晰,內容安排由淺入深,對初學者來說可以很輕松地入門,并且在描述概念的過程時盡量使用生活中的案例,便于讀者對相關內容的理解。書中還詳細描述了性能測試的流程、性能測試過程中如何監控與調優等,最大限度幫助那些有性能測試經驗的讀者朋友。本書包括四大部分:入門篇、提高篇、監控篇和實戰篇,具體章節結構如下圖所示。
一些更關注于提高、調優方面的書籍并未對性能測試工具LoadRunner的使用進行詳細描述,而本書詳細描述了性能測試工具LoadRunner的使用,并就使用過程中需要注意的問題進行了詳細講解。
豐富了性能測試過程中監控和調優的內容。本書主要從系統資源、Web服務器和數據庫3個方面介紹了性能測試過程中的監控和調優技術,并將這幾個方面的內容全面地展現出來,不僅僅是某個單方面的內容。
詳細地介紹了性能測試的流程。在同類書中均未詳細介紹性能測試的流程,但性能測試流程是規范性能測試、提高性能測試效率的一個重要環節,所以本書對這部分內容進行了詳細闡述。
學習是一個漫長的過程,并且必須每天堅持,只有這樣才能讓自己不斷地進步,而堅持是一個很痛苦的過程,所以有句話是這樣說的:“成功必須要超越寂寞”。在學習過程中應該學會思考、善于總結,而不僅僅是看書,還要學會問為什么,筆者同樣希望讀者朋友在看此書的過程中將工作中的實踐情況與本書中描述的內容相結合,將知識與工作經驗更好地結合起來,這樣才是我們真正需要的看書過程,希望讀者朋友在本書中學到一些工作中需要的知識,祝讀者朋友們學習愉快。
致謝
經過一年的努力,書稿終于完成,在這里我感謝那些曾經幫助、支持和鼓勵過我的朋友和家人。
由于筆者水平有限,書中出現錯誤在所難免,歡迎廣大讀者批評指正。讀者在閱讀本書的過程中如有任何不清楚的問題和批評建議,可以發郵件到arivnhuang@163.com,作者將盡力給您答疑解惑。
最后,感謝您購買本書,希望您能在書中找到那些正在困擾著您的問題的答案,祝大家閱讀愉快。
黃文高
2013年5月
第一部分 入門篇
第1章 性能測試基礎知識 2
1.1 軟件性能概述 2
1.2 性能測試相關術語 4
1.2.1 響應時間 4
1.2.2 并發用戶數 4
1.2.3 吞吐量 5
1.2.4 吞吐率 7
1.2.5 TPS 7
1.2.6 點擊率 7
1.2.7 資源利用率 7
1.2.8 性能計數器 7
1.2.9 思考時間 8
1.3 性能測試劃分 9
1.3.1 負載測試 9
1.3.2 壓力測試 9
1.3.3 配置測試 10
1.3.4 并發測試 10
1.3.5 可靠性測試 10
1.3.6 基準測試 10
1.3.7 各類測試執行階段 11
1.4 性能測試應用領域 11
1.4.1 能力驗證 11
1.4.2 規劃能力 12
1.4.3 性能調優 12
1.4.4 缺陷發現 12
1.5 小結 13
第2章 LoadRunner基礎知識 14
2.1 LoadRunner簡介 14
2.2 LoadRunner工作原理 16
2.3 LoadRunner工作過程 17
2.4 LoadRunner內部結構 18
2.5 LoadRunner 11.0特性 20
2.6 LoadRunner性能測試步驟 21
2.7 小結 25
第3章 Vuser發生器 26
3.1 腳本錄制 26
3.1.1 如何選擇協議 27
3.1.2 開始錄制腳本 31
3.2 Recording Options設置 34
3.2.1 Recording選項卡 34
3.2.2 Advanced選項卡 43
3.2.3 Correlation選項卡 44
3.3 Run-Time Settings設置 44
3.3.1 Run Logic選項卡 45
3.3.2 Pacing選項卡 46
3.3.3 Think Time選項卡 47
3.3.4 Miscellaneous選項卡 49
3.3.5 Log選項卡 50
3.4 腳本完善 52
3.4.1 插入事務 52
3.4.2 插入集合點 57
3.4.3 插入注釋 57
3.5 小結 58
第4章 Controller控制器 59
4.1 場景類型介紹 59
4.1.1 手動測試場景 59
4.1.2 面向目標測試場景 61
4.2 場景設計 62
4.2.1 手動場景Schedule配置 62
4.2.2 面向目標場景Schedule配置 67
4.2.3 配置View Script 72
4.2.4 配置Load Generator 73
4.3 場景執行 76
4.3.1 場景控制 76
4.3.2 場景執行期間查看場景 80
4.4 場景監視 85
4.4.1 關于聯機監控 85
4.4.2 監控器與度量 89
4.4.3 聯機監視器 93
4.5 小結 96
第5章 Analysis分析器 97
5.1 Analysis簡介 97
5.1.1 Analysis基礎知識 97
5.1.2 設置選項 99
5.1.3 Analysis圖 103
5.2 摘要報告 105
5.2.1 概要部分 105
5.2.2 統計部分 106
5.2.3 事務統計部分 106
5.2.4 SLA 108
5.2.5 HTTP響應統計 115
5.3 Analysis常見圖分析 118
5.3.1 Vuser圖 118
5.3.2 點擊率圖 119
5.3.3 平均事務響應時間圖 120
5.3.4 吞吐量圖 121
5.4 Analysis報告 122
5.4.1 HTML報告 122
5.4.2 SLA報告 123
5.4.3 自定義報告 124
5.4.4 使用報告模板定義報告 126
5.5 小結 126
第二部分 提高篇
第6章 腳本編寫 128
6.1 檢查點 128
6.1.1 插入檢查點的原因 128
6.1.2 插入檢查點 132
6.1.3 檢查點函數 139
6.1.4 通過檢查點判斷事務結束狀態 141
6.2 Block(塊)技術 144
6.3 參數化技術 148
6.3.1 參數化的原因及條件 148
6.3.2 創建參數 149
6.3.3 參數類型屬性 151
6.3.4 數據文件 155
6.3.5 導入數據 161
6.4 關聯技術 165
6.4.1 關聯的原理 166
6.4.2 錄制中關聯 167
6.4.3 錄制后關聯 170
6.4.4 手動關聯 172
6.4.5 關聯函數介紹 176
6.4.6 關聯技術的經典使用 182
6.4.7 關聯與參數化的區別 185
6.5 小結 186
第7章 場景設計實踐 187
7.1 集合點 187
7.1.1 集合點設置 187
7.1.2 集合點與事務的關系 190
7.2 IP欺騙技術 192
7.2.1 IP Spoofer設置 192
7.2.2 Controller中啟動IP Spoofer 195
7.3 負載均衡技術 197
7.4 RTS設置 200
7.5 執行路徑轉換 200
7.5.1 路徑轉換介紹 200
7.5.2 編輯路徑轉換表 201
7.6 在LoadRunner中使用功能測試腳本 203
7.6.1 QuickTest創建GUI Vuser腳本 204
7.6.2 WinRunner創建GUI Vuser腳本 205
7.6.3 場景中使用GUI Vuser腳本 206
7.7 小結 207
第8章 結果分析實踐 208
8.1 分析圖合并 208
8.1.1 分析圖合并原理 208
8.1.2 實例講解 210
8.2 分析圖關聯 212
8.2.1 分析圖關聯原理 212
8.2.2 實例講解 214
8.3 頁面細分 216
8.3.1 頁面細分原理 216
8.3.2 實例講解 219
8.4 鉆取技術 221
8.4.1 鉆取技術原理 221
8.4.2 實例講解 222
8.5 導入外部數據 223
8.5.1 導入數據工具 223
8.5.2 自定義文件格式 226
8.6 使用HTTPWatch分析響應時間 228
8.6.1 HTTP消息格式 228
8.6.2 Request Grid 230
8.6.3 Request View 231
8.6.4 Summary View 238
8.6.5 其他功能 239
8.7 小結 240
第三部分 監控篇
第9章 操作系統性能監控與調優 242
9.1 Windows操作系統監控 242
9.1.1 LoadRunner直接監控 242
9.1.2 Windows性能工具監控 243
9.1.3 Windows計數器 249
9.2 Linux/UNIX操作系統監控 255
9.2.1 CPU監控 255
9.2.2 內存監控 260
9.2.3 磁盤監控 264
9.2.4 網絡監控 269
9.3 nmon系統資源監控工具 273
9.3.1 nmon工作流程 273
9.3.2 nmon命令 274
9.3.3 結果分析 283
9.4 小結 284
第10章 Web服務器監控與調優 285
10.1 Apache監控 285
10.2 Apache調優 291
10.2.1 硬件與操作系統方面 291
10.2.2 運行時的配置 291
10.2.3 編譯時的配置 296
10.3 Tomcat監控 301
10.3.1 Status頁監控 302
10.3.2 JConsole監控 304
10.4 Tomcat調優 316
10.4.1 JVM調優 316
10.4.2 Tomcat配置 323
10.4.3 連接器配置 326
10.4.4 APR配置 332
10.5 小結 336
第11章 MS SQL數據庫監控與調優 337
11.1 監控SQL Server資源 337
11.1.1 瓶頸類型 337
11.1.2 內存瓶頸 338
11.1.3 CPU瓶頸 340
11.1.4 磁盤瓶頸 341
11.1.5 Wait Statistics監控 341
11.2 SQL Server等待類型 342
11.2.1 SQL等待類型 342
11.2.2 跟蹤等待 352
11.2.3 阻塞與鎖 354
11.3 SQL Profiler監控查詢 359
11.3.1 SQL Trace相關術語 359
11.3.2 SQL Trace選項 363
11.3.3 捕獲阻塞事件 367
11.3.4 捕獲Showplan XML數據 369
11.3.5 捕獲死鎖圖 372
11.3.6 SQL Profiler識別長時間查詢 375
11.3.7 Profile Trace與System Monitor
關聯 380
11.4 索引調優 382
11.4.1 索引原理 382
11.4.2 填充因子 383
11.4.3 聚集索引 384
11.4.4 非聚集索引 386
11.4.5 堆表 388
11.4.6 用DTA調校索引 389
11.4.7 索引維護 395
11.5 T-SQL調優 399
11.5.1 NOT IN和NOT EXISTS 399
11.5.2 謂詞的使用 399
11.5.3 為中間結果使用臨時表 401
11.6 小結 402
第12章 特殊協議 403
12.1 Windows Sockets(WinSock)協議 403
12.1.1 Windows Sockets錄制選項設置 404
12.1.2 Windows Sockets錄制 405
12.1.3 Windows Sockets數據操作 409
12.1.4 關于LRS函數 413
12.2 郵件服務協議 418
12.2.1 郵件服務協議簡介 418
12.2.2 郵件服務協議錄制 420
12.2.3 腳本分析 426
12.2.4 關于SMTP和POP3函數 428
12.3 小結 430
第13章 性能測試過程 431
13.1 性能測試過程概述 431
13.2 性能測試設計 432
13.2.1 需求調研 432
13.2.2 業務模型 433
13.2.3 場景模型 435
13.2.4 數據設計 437
13.2.5 環境設計 438
13.3 性能測試構建 439
13.3.1 腳本開發 440
13.3.2 場景設計 441
13.3.3 搭建測試環境 441
13.3.4 準備數據 441
13.4 性能測試過程執行 442
13.5 性能測試分析、診斷、調節 442
13.6 小結 443