內容簡介
《大型IT系統性能測試入門經典》是一本來自性能測試實戰領域的專家作品,主要用來指導性能測試人員規劃、設計、實施性能測試。《大型IT系統性能測試入門經典》中深入探討了性能測試的基礎理論與實施方法,並針對大型IT 系統的性能測試提出了“全面性能測試方案”,為性能測試規劃與設計提供了全新的思路和方法。《大型IT系統性能測試入門經典》通過真實的項目案例講解性能測試基礎理論的套用方法,向讀者展示了如何在項目中管理與實施性能測試,並深入探討了如何根據測試結果來分析與定位系統性能瓶頸。
《大型IT系統性能測試入門經典》主要針對國中級性能測試人員,其他IT 人員也可以藉助本書來規劃、設計、實施性能測試。《大型IT系統性能測試入門經典》還可以作為高校學生學習性能測試的教材。
編輯推薦
√凝聚了近百個項目的性能測試經驗,詳細闡述了大型項目的性能測試規劃與實施方案。
√提出了“全面性能測試方案”,致力解決軟體的亞健康狀況。
√測試領域頂級專家作品,十年經典嶄新回歸。
√免費贈送兩門LoadRunner學習視頻課程,總計14學時。
內容提要
《大型IT系統性能測試入門經典》是一本來自性能測試實戰領域的專家作品,主要用來指導性能測試人員規劃、設計、實施性能測試。《大型IT系統性能測試入門經典》中深入探討了性能測試的基礎理論與實施方法,並針對大型IT 系統的性能測試提出了“全面性能測試方案”,為性能測試規劃與設計提供了全新的思路和方法。《大型IT系統性能測試入門經典》通過真實的項目案例講解性能測試基礎理論的套用方法,向讀者展示了如何在項目中管理與實施性能測試,並深入探討了如何根據測試結果來分析與定位系統性能瓶頸。
《大型IT系統性能測試入門經典》主要針對國中級性能測試人員,其他IT 人員也可以藉助本書來規劃、設計、實施性能測試。《大型IT系統性能測試入門經典》還可以作為高校學生學習性能測試的教材。
目錄
兵 法 篇
第1 章 系統性能測試基礎.2
1.1 性能測試簡介3
1.2 性能測試種類6
1.3 性能測試誤區8
1.4 性能調整基礎 11
1.5 小結13
第2 章 全面性能測試方案.15
2.1 全面性能測試方案簡介16
2.2 性能測試策略制訂原則19
2.3 測試場景設計通用模型23
2.3.1 預期性能指標測試 23
2.3.2 用戶並發性能測試 24
2.3.3 疲勞強度與大數據量測試 32
2.3.4 網路性能測試 34
2.3.5 伺服器性能測試 35
2.4 五一測試場景設計模型 37
2.4.1 獨立場景設計 38
2.4.2 混合場景設計 39
2.4.3 峰值場景設計 40
2.4.4 容量場景設計 42
2.4.5 疲勞場景設計 43
2.4.6 批處理場景 44
2.5 全面性能測試方案套用 45
2.6 小結46
戰 術 篇
第3 章 性能測試管理與實施 50
3.1 性能測試管理概述51
3.1.1 性能測試實施流程 51
3.1.2 性能測試管理障礙 53
3.2 性能測試規劃與設計54
3.2.1 性能測試需求分析 55
3.2.2 性能測試整體規劃 60
3.2.3 性能測試計畫制訂 65
3.2.4 性能測試場景設計 69
3.3 性能測試實施和控制 77
3.3.1 測試實施主要階段 77
3.3.2 測試實施主要過程 80
3.3.3 測試實施變更控制 85
3.4 測試分析與經驗總結 89
3.4.1 性能測試規劃總結 90
3.4.2 測試場景設計總結 91
3.4.3 測試工具與技術總結 92
3.4.4 瓶頸分析方法總結 92
3.5 小結 93
技 術 篇
第4 章 性能測試結果分析 96
4.1 如何分析性能測試結果 97
4.1.1 性能分析入門知識 98
4.1.2 Analysis 使用基礎 100
4.1.3 視頻網站分析案例 108
4.2 如何從分析圖中發現問題 121
4.2.1 虛擬用戶圖 121
4.2.2 用戶事務圖 125
4.2.3 Web 資源圖.134
4.2.4 網頁元素細分.140
4.3 本章小結153
第5 章 系統性能調優技術.155
5.1 概述155
5.2 VisualVM 性能分析156
5.2.1 VisualVM 簡介.156
5.2.2 VisualVM 安裝.156
5.2.3 VisualVM 監控.161
5.2.4 執行緒及堆記憶體Dump 169
5.3 Nmon 性能分析.172
5.3.1 Nmon 簡介172
5.3.2 Nmon 安裝172
5.3.3 Nmon 監控173
5.3.4 CPU 利用率分析174
5.3.5 記憶體利用率分析.175
5.3.6 磁碟IO 分析.176
5.3.7 網路流量分析.177
5.4 小結178
第6 章 JMeter 性能測試技術179
6.1 JMeter 介紹179
6.2 搭建JMeter 測試環境.180
6.2.1 JMeter 安裝配置.180
6.2.2 ANT 安裝配置182
6.2.3 JMeter 關鍵配置.183
6.2.4 分散式運行配置.184
6.2.5 監控JMeter 運行狀態185
6.3 開發JMeter 測試腳本.186
6.3.1 實現AbstractJavaSamplerClient 接口186
6.3.2 導入JMeter 平台189
6.4 使用JMeter 進行性能測試.189
6.4.1 測試計畫設計.189
6.4.2 UI 模式執行測試196
6.4.3 命令行模式執行測試.198
6.4.4 ANT 模式批量執行測試200
6.4.5 測試結果分析.207
6.5 小結208
案 例 篇
第7 章 架構設計階段性能測試.212
7.1 項目背景212
7.2 性能測試策略/目標/範圍/環境.213
7.3 性能測試分析與設計214
7.4 性能測試實施216
7.5 測試結果分析220
7.6 案例點評224
第8 章 電子政務系統測試案例.226
8.1 背景與測試策略226
8.2 性能測試場景設計227
8.3 性能測試實施230
8.4 測試結果分析232
8.5 案例點評233
第9 章 信用卡申請審批系統測試.235
9.1 項目背景介紹235
9.2 性能測試策略236
9.3 測試需求分析與規劃236
9.4 性能測試計畫及評審238
9.4.1 測試計畫.239
9.4.2 測試計畫評審結果.244
9.5 性能測試場景245
9.6 性能測試實施252
9.6.1 測試程式開發.252
9.6.2 性能測試實施記錄.254
9.6.3 性能測試場景的調整.255
9.7 性能測試結果分析258
9.7.1 開發階段的性能分析.259
9.7.2 用戶現場測試的性能分析.261
9.7.3 綜合分析結果以及調整建議.270
9.8 案例點評271
9.9 小結274
附錄A 性能測試計畫模板.276
附錄B 性能測試場景模板.286
附錄C 性能測試報告模板.293
作者簡介
陳紹英
15 年以上IT 系統開發與測試經驗。現就職於中國民生銀行信息科技部測試管理中心。本人擁有銀行、網際網路、電子政務等領域IT 系統的測試管理與實施經驗,目前主要專注銀行系統的性能測試與自動化測試。現負責所在銀行IT 系統的性能測試管理、智慧型一體化測試平台DT的設計、開發與推廣等工作,曾經帶領團隊完成了民生銀行新一代系統中100 多個系統的性能測試組織管理與實施工作。
本人在軟體測試理論與實踐方面進行了非常深入的研究和探索,目前已出版原創圖書作品三部:《Web 性能測試實戰》(2006 年,國內第一本性能測試理論方面的作品)、《LoadRunner 性能測試實戰》(2007 年,國內第一本講解LoadRunner的作品)、《LoadRunner 虛擬用戶開發指南》(2009 年)三部;翻譯作品一部:《軟體測試與持續質量改進》第二、三版(2008 年、2011 年);在《金融科技治理與研究》、《程式設計師》等雜誌上發表過《銀行IT 系統功能&性能一體化測試理論及套用》、《性能測試》、《治療軟體亞健康》、《性能測試兵法》、《架構設計階段的性能測試》、《中小型IT 企業產品測試案例解析》等多篇文章。
本人在性能測試方面的研究,豐富了國內IT 領域性能測試相關的理論體系,從理論與實踐推動了性能測試在國內的發展。已經出版的圖書、視頻等作品,把一批人帶入了性能測試領域,並指導了很多項目經理、測試工程師非常系統地的規劃、設計、實施性能測試工作。《Web 性能測試實戰》一書中提出的“全面性能測試模型”,成為很多測試團隊組織與開展性能測試工作的指導原則。
周志龍
現就職於中國民生銀行信息科技部測試管理中心。擁有近10 年IT 系統開發與測試經驗。在銀行、電信、網際網路等領域IT 系統有著豐富的性能測試項目經驗和測試管理經驗,擅長性能測試分析及調優。曾參與編寫《性能測試進階指南》一書,承擔過中國移動、中國電信、中國網通、中國建設銀行、中國民生銀行等相關係統的性能測試實施項目。目前主要專注銀行系統的性能測試與自動化測試。
金成姬
北京大學光華管理學院在讀MBA。10 年以上IT 行業從業經驗,擅長測試團隊管理,擁有豐富的軟體測試管理與實施經驗。曾參與編寫《Web 性能測試實戰》《LoadRunner 性能測試實戰》《LoadRunner 虛擬用戶開發指南》等作品。
媒體評論
雖然國內軟體測試方面的圖書不少,但深入研究大型IT 系統性能測試理論的並不多,尤其是探索銀行、電信等領域大型IT 系統測試的作品則更少。本書的作者們擁有銀行、電信、網際網路、電子政務等多個行業的測試經驗,尤其在中國民生銀行新一代核心繫統的建設期間參與了近百個項目的性能測試,積累了大量的經驗。書中詳細描述了從銀行、電信等大型項目實戰中總結出的性能測試規劃與實施方案,為各位IT 同仁在實際項目中管理和實施性能測試提供了有效的指導。
牛新莊
中國民生銀行信息科技部總經理
十年砥礪,十年堅守,始信文章品愈高;
關注性能,關注健康,紹繼前賢逞英豪。
祝願紹英的書,能夠幫助到更多的讀者,進而讓IT 人都能夠節省寶貴的時間,永葆健康。
蓋國強
雲和恩墨創始人,Oracle ACE 總監
陳紹英是國內是測試領域的頂級專家之一,從事測試工作近20 年,具有大量的測試經驗和心得,對測試工作也在不斷創新,提出了一些新的測試方法論,並付諸實踐,開發出相應的測試工具。與紹英結識多年,為人沉穩,低調務實,注重工作方法的創新、落地,是不可多得的技術人才。
董國興
國內知名UNIX 系統、資料庫專家
東興證券 總監
性能問題困擾著很多企業的軟體產品,用軟體亞健康來形容軟體性能問題非常形象,本書的 “全面性能測試方案”為解決性能問題提供了一劑良藥。本書理論與實戰高度結合,無論對新人還是從業多年的技術人員都是一本不可多得的好書。
章屹
阿里巴巴B2B高級測試專家
認識紹英多年,他的作品文如其人,踏實,睿智。他在性能測試領域深耕多年,書中匯集了理論、實踐、思考和創新,要了解和做性能測試,看這本書是一個很好的選擇。
蔡為東
測試專家,《贏在測試》系列、《行之有效:IT技術團隊管理之道》等書籍的作者
這是一本理論與實踐高度相結合的作品,作者以其多年實戰經驗,為性能測試工程師們提供了一部全面系統的學習教材。
作為多年從事金融IT技術測試的管理人員,讀後受益頗多。
王耀
包商銀行技術測試高級主管
前言
從前我們很少看到“軟體亞健康”或“亞健康軟體”這樣的概念,之所以提出這個概念,是因為現在亞健康不但威脅著IT 人的生活質量,也威脅很多套用系統的性能。
伴隨著IT 行業的高速發展,軟體開發方法也越來越先進,實現的功能也越來越強大,套用軟體幾乎涉及了國計民生的各個領域。而與之相反的是,這些套用系統的整體性能卻越來越低,尤其是一些涉及多用戶並發的大型套用系統。因此,近幾年軟體性能測試工作顯得越來越重要,各種性能測試工具也應需而生。“軟體亞健康”和“亞健康軟體”概念就是在這種背景下提出的。
“軟體亞健康”絕非危言聳聽。作者曾親身經歷了多個由於性能不合格而終止上線的項目,其中一個項目曾是某國外公司為國內某大型銀行開發的一套“銀行信用卡申請審批系統”,此系統歷經用戶三次測試,每次均以資料庫伺服器崩潰而告終,最後銀行只好忍痛讓此公司出局。
本書以大型IT 系統作為背景來研究性能測試的規劃與設計、管理與實施方法,探討如何通過規範的性能測試來解決IT 系統的亞健康問題。
下面先從“亞健康軟體”開始本書的討論。
亞健康IT 人與亞健康軟體
亞健康IT 人定義:記得2005 年8 月的某一天,作者和幾位測試同行一起爬了次香山,結果第二天幾個人累得幾乎下不了床,一個星期之後,才覺得走路時的腿是自己的。無疑我們這幾個人的身體都已進入“亞健康”狀態。當時躺在床上忽然想到亞健康IT 人就是“爬了一次香山需要休息一個星期才能恢復正常的從事IT 行業的人”。
類似也可以做如下的定義:
超級健康IT 人——爬了一次香山之後沒有什麼感覺的IT 人,這類人應該屬於具有運動員素質的IT 人。
健康IT 人——爬了一次香山之後休息一兩天就恢復正常的IT 人。
不健康IT 人——爬了一次香山之後需要休息一個月甚至更長時間的人。
在軟體領域中,判定軟體性能高低的依據是其滿足用戶性能需求的程度以及是否存在一定的擴展空間,所以評價軟體性能不要脫離具體用戶背景,用戶的性能需求與軟體是否健康有著很大的關係,這一點與人的健康分類是有很大的區別的。例如對於電子政務系統,可以認為速度達到“腳踏車的性能”就是健康的,而銀行或者電信的套用系統,速度至少要達到“飛機的性能”才是健康的。
與四類IT 人的健康分類相對應,軟體也可按其性能高低劃分為四類。
超級健康軟體——UNIX 是“超級健康軟體”的典型,“體魄”像運動員一樣,非常“抗折騰”。
健康軟體——性能穩定,可以滿足用戶現在以及將來一定時期內的擴展需求。例如我們日常用到的資料庫管理系統。
亞健康軟體——軟體性能很一般,就像亞健康IT 人正常上下班一樣,能滿足使用要求,但是擴展性、穩定性都很一般,只要環境發生變化,極有可能成為“不健康軟體”。
不健康軟體——性能很差,甚至存在嚴重性能問題的軟體。
毫無疑問,開發人員應以做出超級健康或健康的軟體為目標。但是現實恰恰相反,就像很多IT 人都處於亞健康狀態一樣,超級健康和健康軟體的比例很低,多數軟體都存在性能問題。
亞健康軟體是大多數公司趕進度和壓縮成本的產物,也是本書討論的重點。亞健康軟體的例子很多:下面是某電子政務系統進行並發測試時,5 個用戶與50 個用戶的一些事務對比測試結果。
這個電子政務系統是亞健康軟體的典型。可以看出在50 個用戶並發時,其回響時間是5 個用戶並發時的幾十倍,甚至上百倍。這套系統倒是與我們這些IT 人很類似,平時上班走路根本看不出什麼,可是爬一爬山,是否健康就見分曉了。
本書首次針對性能測試提出了“全面性能測試方案”,和讀者共同探討如何更加有效地診斷與治療套用系統性能低下的“亞健康”問題。
亞健康軟體良藥——全面性能測試方案
不言而喻,軟體亞健康問題將會越來越突出,因此我們應該儘早尋找診斷和治療這一問題的方法。為了達到上述目的,本書提出了“全面性能測試方案”,期望能夠成為解決軟體亞健康問題的一劑“良藥”。
“全面性能測試方案”包含性能測試策略制定原則、測試場景設計通用模型、五一測試場景設計模型、全面性能測試方案使用方法四部分內容,基本覆蓋了性能測試規劃和設計的相關內容,為開展系統性能測試提供了一套完整可行的方案。“全面性能測試方案”主要特點如下。
來自實踐領域,適用範圍廣: “全面性能測試方案”是綜合了大量項目的性能測試經驗而提出的性能測試模型,可以滿足銀行、電信、OA、網際網路等諸多領域套用系統的性能測試需要。
測試工具無關性:目前性能測試工具的使用已經不再是難題,比較困難的是有了工具去測試什麼場景、如何管理與實施性能測試以及如何分析測試結果。“全面性能測試方案”不是依賴於某一特定性能測試工具而提出的,而是一種通用的性能測試方法,它的目標是為使用性能測試工具的人員解決上面的難題。測試人員掌握“全面性能測試方案”後,設計和執行測試時可以選擇JMeter、LoadRunner 等任何一種性能測試工具。
根據策略來裁剪測試內容:五一測試場景設計模型按照由淺入深的順序設計,因此可以根據測試策略進行靈活的裁剪。可以裁剪的特點使模型更加靈活,測試設計人員可以根據實際情況選擇對應的測試場景部分進行設計,簡介節約了測試成本。
對於很多項目,性能測試是一項需要大量時間和成本投入的工作,因此有了“全面性能測試方案”,並不意味著可以杜絕亞健康軟體的產生。但是建議有能力的公司,應該進行合理的投入開發出健康的軟體,否則只能經常祈禱“不要發生性能問題”!如果一旦發生嚴重性能問題,將意味著更高的修復成本,防患於未然才是上策!
最後祝所有IT 人都擺脫亞健康狀態,開發出超健康的軟體!
配套視頻
本書免費提供了作者錄製的兩門LoadRunner 學習視頻課程:《LoadRunner 性能測試快速入門》、《LoadRunner Controller 使用基礎》,總計14 學時。
關於本書
本書分為三部分,包括了性能測試設計理論、實施和分析方法、性能測試實施案例等內容。
第一部分:兵法篇,即第1、2 章。第1 章主要介紹性能測試基礎理論,是做好性能測試工作的必備知識,主要內容有性能測試簡介、性能測試種類、性能測試誤區、系統調整等;第2 章介紹全面性能測試方案,是全書的核心部分,主要講解性能測試策略制定、測試場景設計模型、測試方案使用方法等。
第二部分:戰術篇,即第3、4 章。第3 章主要探討如何在性能測試工作中設計與實施性能測試,包含了性能測試的啟動、計畫、實施、控制、收尾等內容;第4 章介紹性能測試分析的基礎方法。
第三部分:技術篇,即第5、6 章。第5 章主要探討性能測試基本的調優技術與方法;第6 章主要講解性能測試工具JMeter 的用法。
第四部分:案例篇,即第7、8、9 章,詳細討論了一些涉及銀行、電子政務等不同領域的性能測試案例,介紹了如何在實際中套用前面的理論。
致謝
感謝林銳博士,本書的前一版在林老師的大力推薦下得以順利地出版;
感謝電子工業出版社的郭立、孫學瑛兩位老師,她們對本書的出版提供了非常大的支持;
感謝本書合作者周志龍、金成姬、劉蕙蘭、劉建華,本書的寫作過程占用了大家大量的休息時間;
感謝電子工業出版社為本書辛勤付出的所有朋友們;
尤其要感謝夫人金成姬和寶貝女兒米菲,夫人通篇審校了本書並潤色了那些難於理解的句子,還一起和米菲提供了大量本來可以陪她們的時間來讓我寫作。