qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          捉蟲記--大容量Web應用性能測試與LoadRunner實戰(連載八)

           14.2  性能測試結果分析方法

            在14.1節中我們學習了對于性能測試數據有效性的判斷,并且利用統計學知識與以往經驗從中可以得到性能概況。另外,還可以根據幾條經驗規則對懷疑數據進行剔除。在本節中將講解如何對現有有效的數據進行分析,并據此得到性能好與壞的結論,為編寫性能測試報告做準備。

            對性能測試結果進行分析需要依次進行以下幾個步驟:

            (1)判斷影響性能的因素。

            (2)運用隔離、對比等方法進行趨勢判斷。

            (3)記錄各個結果,發現規律。

            14.2.1  判斷影響性能的因素

            判斷影響Web應用性能的因素其實一般發生在性能測試的設計階段,但列在這里也是適當的,因為:

            在實際工作中,設計階段可能對于影響因素考慮不足,導致有些因素沒有考慮到。這種情況會令測試結果不完全,要增加測試的運行。

            設計階段也可能出現考慮影響因素過多的情況,這需要在測試數據中進行判斷,從而將無關的因素去除。該情況下那些多余的測試結果并非沒有益處,因為正是它們,使得性能測試工程師得以發現了無關因素。

            在Web應用領域,影響性能的因素有用戶數量、服務器性能(請見前面章節有關性能計數器的部分)、網絡帶寬、客戶端軟件配置等多種。由于這些因素是綜合起作用的,它們對Web應用的影響可以組合出很多種情況,其中部分如表14-6所示。

            表14-6  影響性能各因素的部分組合

          情況編號

          用戶數量

          服務器性能

          網絡帶寬

          客戶端軟件配置

          1

          變化

          不變

          不變

          不變

          2

          變化

          不變

          變化

          變化

          3

          變化

          不變

          不變

          變化

            可以知道,這樣的組合還有很多種,如果都針對它們進行測試,在大多數情況下(時間、人力、軟件發布要求等要求比較嚴格緊迫)是不可能完成的任務。因此,有必要使用隔離的方法進行精簡。

            不過,值得一提的是,對性能做出正確判斷需要足夠多的測試數據。

            14.2.2  隔離與對比

            隔離、對比是常見的生成、分析數據的方法。通俗地講,隔離就是指固定其他的影響因素,只變化剩余那個影響因素的方法。對于表14-6的情況來說,我們只需要測試4種情況就可以了,即:

            用戶數量變化,其他因素不變的情況。

            服務器性能變化,其他因素不變的情況。

            網絡帶寬變化,其他因素不變的情況。

            客戶端軟件配置變化,其他因素不變的情況。

            這樣一來,問題得到了簡化,同時,各因素的影響規律也能夠被發現。

            并列是分析數據的方法,特別適用于將數據生成為圖表的情況下。它可以分為縱向比較與橫向比較。

            【縱向比較】

            所謂縱向比較就是在同一個影響因素數值變化、其他因素固定的情況下,將多次測試結果并列在一張圖表當中進行分析,從而發現該因素對性能的影響規律。比如針對表14-6中的數據,可以將用戶數量分別是100、1000、10000的時候制表進行比較,發現用戶數量對于性能的影響規律。

            【橫向比較】

            而橫向比較則是將多次縱向比較的結果,并列在一張圖表中,從中發現各因素之間的關系或者性能的變化趨勢。這多用于判斷性能的優化成果。比如針對表14-6中的數據,可以在優化前與優化后進行不同用戶數量的測試,如果測試結果曲線變化明顯不同,則可說明優化的效果好壞。

           14.2.3  詳實記錄中間結論

            詳實記錄中間結論對于分析性能測試數據是非常重要的。實際工作中,經常發生初始的結論與最終結論不一致的情況。在分析每張數據表格或者圖之后,如果可能,我們都要記錄下該圖或者表格說明了什么問題,有什么疑問。通過這樣的方式,測試工程師對于整個Web應用的性能圖景會逐漸明晰,也有利于做出錯誤結論后的回溯,發現分析思路上的錯誤。

            總之,對于性能測試結果的分析,要有認真負責的態度和細致科學的方法。有了它們,不難得出正確的結論。

            14.3  性能測試報告編寫技巧

            在對結果進行分析并得出結論之后,性能測試工程師要把它們以文字報告的形式發送給相關人員。這就是性能測試報告。除了書面文字之外,可能的話,公司還會召集人員開專門的會議進行報告講解和結果分析。所以,性能測試報告是性能測試工程師的工作成果,也是公司其他部門考察性能測試工程師能力的重要窗口,編寫出一份優秀的報告對公司的決策以及個人的職業生涯都非常有益處。

            14.3.1  什么是好的性能測試報告

            實際工作中的性能測試報告,一般是以Word/PDF格式文檔或者電子郵件形式存在。而測試報告的讀者,一般是整個項目組的管理者甚至更高層面、相關同事比如開發人員等,他們并不一定具備多少測試背景知識,因此,測試報告要盡量避免測試術語,要用容易理解的話語進行敘述。另外,它不應該是性能測試結果的簡單羅列:因為讀者是上級或者其他同事,他們沒有多少時間來關心測試的具體細節,而只關心報告中測試結論是否合理以及結論的內容。這是需要性能測試工程師注意的原則問題,即不能從自己出發來寫報告,而應該為報告的讀者考慮。

            根據這樣的原則,要完成一份好的性能測試報告,最好做到如下幾點:

            提交報告的時機。

            可以與測試主管就報告進行討論。

            有效地總結概括測試數據。

            報告應該清楚易讀,結合圖表,但不能濫用圖表。

            報告要具備較強的邏輯性。

            報告要具有層次感,幾個部分區分明顯、清楚。

            測試報告一般分為測試目的、測試方法、測試數據概括總結、測試結果分析、結論這幾大部分。在實際工作中的要求不盡相同,有的公司會有自己的模板,因此在文檔結構上并無一定之規。但內容方面,如果能做到如上幾點,編寫出一份很好的性能測試報告就不是困難的。

            在下面幾節中,本書將一一介紹如上幾個規則。

            14.3.2  提交報告時機

            與功能測試等不同,性能測試在整個Web應用的開發過程中并不是連續進行的,因此性能測試報告一般只會在幾個時間點附近(比如某階段結束前)才能讓有限的讀者看到。這容易給人以一種印象,性能測試并不如功能測試那樣重要,如果時間緊迫,甚至不用很系統地進行。這就會影響到性能測試工程師的成就感和積極性。因此,性能測試工程師有必要創建一種性能測試持續存在的氛圍。這樣做有如下幾個益處:

            (1)培養同事對于性能測試的關注,普及性能測試的一些知識。這有助于測試報告的讀者更好地理解性能測試的過程與測試報告的內容。由于日常工作中主動介紹性能測試知識顯得比較突兀,根據實際情況,可以選擇在測試部門會議之中選取短暫的時間介紹一些性能測試的理念。

            (2)利于項目組內團結協作精神的培養。分享自己可以使人獲得更多。比如,在開發人員剛剛修改完一些代碼的時候,性能測試工程師不妨做一次小小的測試,如果比之前性能有所改進,就可以將結果用電子郵件的方式,不那么正式地發出來,同時還可以將性能測試數據放置于項目組內的服務器之中共享給所有成員。通過這樣的方式,開發人員可以得到性能改善的好消息,互相鼓勵,性能測試工程師的工作也讓整個項目組看到,喜歡鉆研的同事還可以到服務器共享中查看數據,性能測試工程師或許就能獲得更好的反饋。

            總之,提交報告的時機需要掌握,有如下技巧:

            正式的性能測試結束后,要盡快發送整理好的測試報告,供決策、優化之用,以體現效率。

            在兩次正式性能測試之間,可以執行若干輕量級的性能測試,將改善的地方非正式地通知全組,以普及性能測試常識、激勵同事與自己,提高團隊精神。

           14.3.3  與測試主管的討論

            前文提到,性能測試報告的讀者是其他同事、部門甚至更高級別的領導,因此在發送報告之前,有必要與測試主管就報告內容進行討論。通過討論,至少可以獲得如下的信息:

            (1)發現問題。測試主管一般來說測試經驗更為豐富,遇到和解決過的問題較多,因此他/她可能會發現現有報告的問題,進而提出改進的意見。

            (2)使得報告表達更清晰易懂。總體說來,測試主管與其他同事、部門乃至更高級別領導溝通機會較多,對于報告潛在的讀者了解更深入,熟悉他們的閱讀習慣與表達方式。如果有了更詳實的讀者信息,那么報告做有針對性的修改,會更清晰易懂。

            (3)增加工作交流的機會。在一個團隊當中,信息共享是很重要的,與測試主管的討論有助于主管了解當前的工作,可以為性能測試工程師解決一些困難。

            總之,多與測試主管進行工作上的討論,對于一名初級性能測試工程師的成長是很有裨益的。

            14.3.4  有效總結測試數據

            有效地總結測試數據包含如下幾個要點:

            (1)在測試報告的內容中,測試數據不能分散在各個部分當中,而應該單獨列為文檔的某一部分。這樣的安排可以使得文檔結構更加清晰,讀者在閱讀測試數據的時候更加專注數據本身。

            (2)對于測試數據,不可能將所有的數據都列于測試報告之中,可以將最能支持結論的數據列出一行并說明各數值的代表含義。同時,必須列出獲取測試數據的方法,用盡可能簡單的語言陳述清楚。

            對于報告中的測試數據,我們需要掌握的原則就是它必須真實,并且能夠有力地支持結論。測試數據與測試方法部分一般放置于報告的前半部分。

            14.3.5  測試報告與圖表的結合

            前文多次提到測試報告要清晰易讀,而圖表就是增強可讀性的一種有效方式。對于枯燥的數據來說,人們很難從數字中快速發現規律和趨勢,而一旦將數據轉換成圖表,情況則會明顯不同,趨勢往往很直白。另外,顏色搭配合適的圖表相對更容易吸引讀者的關注。

            【圖表的副作用】

            但是,需要注意的是,圖表不是越多越好,因為那樣的話單個圖表所能吸引的關注就會被平均分配,最后降低到文字的水平甚至更低,這里邊或許也有所謂"審美疲勞"的因素。因此,圖表不在于多,在于精,在于支持結論,說明問題。

            在Excel中將數據轉換為圖是非常容易的,14.3.6節中我們將介紹這樣的方法。

            14.3.6  在Excel中為數據生成圖

            在Excel中為數據生成圖表的方法實際上利用了Office Web Component組件的功能,它默認是與Office一起安裝在硬盤中的。如果在控制面板中沒有發現該組件,可以在微軟官方網站免費下載。

            下面筆者通過簡單的步驟,為表14-7中某Web應用各欄目首頁的6次響應時間數據生成圖。

            表14-7  某次性能測試的響應時間數據

          請求頻道首頁

          響應時間(秒)

          網站首頁

          7.3   6.8   7.1   6.9   7.0   8.5

          新聞欄目首頁

          8.5   8.4   8.0   7.8   7.9   8.3

          論壇欄目首頁

          9.8   9.5   9.4   9.0   9.4   9.6

          聯系我們欄目首頁

          3.2   3.2   3.3   3.2   3.2   3.3

          產品欄目首頁

          4.5   4.6   4.3   4.5   5.0   5.0

            將上述的數據輸入Excel的一個工作表,并全部選擇數據與說明的單元格,如圖14-7所示。

          圖14-7  在Excel中選擇待生成圖的數據表

            【其他數據文件格式與Excel】

            在實際工作中,測試結果絕大多數情況并不是Excel默認的xls文件,而以txt、log、csv為后綴名的文本文件居多。這是因為,這些文件沒有附加的格式信息,生成容易并且相對快速。那么,這些文件中的數據是否也可以在Excel中生成圖表呢?答案是肯定的。利用Excel的“文件”|“打開”菜單,選擇打開文件類型為“文本文件”,就可以將很多使用Tab鍵、空格或者逗號對測試數據進行分隔的文本文件導入到Excel的工作表中,非常方便。

           選擇完畢后選擇“插入”|“圖表”菜單,即可以打開生成圖表的向導,如圖14-8所示。另外,在導航菜單中也可以單擊圖14-9中說明文字指向的“圖表向導”(Graph)圖標按鈕達到相同的目的。

            圖表向導由4個步驟的設置對話框所組成,第1步需要確定的是圖表的類型,界面如圖14-10所示。

            這里列出了日常工作中應用的絕大多數類型,如果有需要,也可以自定義新的圖表類型。

            【圖表類型的選擇】

            不同類型的圖表,適合于表現不同的數據關系。因此,在報告中應用正確的圖表有利于表達與支持報告的結論。在性能測試領域,一般來說折線圖適合表達響應時間等數值越小越好的數據;柱形圖、條形圖適合表達并發用戶等數值越大越好的數據;餅圖適合表達Web應用終端用戶信息,比如瀏覽器版本、IP分布等;XY散點圖適合表達整個領域各組成元素的同一類數據等。

          圖14-8  通過菜單打開圖表向導

          圖14-9  通過導航條圖標打開圖表向導

          圖14-10  圖表向導第1步:選擇類型

           在本節,筆者選擇折線圖來表現表14-6中的數據,因此,在圖14-10中“圖表類型”列表框中選擇“折線圖”,并在右邊的“子圖表類型”選項區域中選擇默認的數據點折線圖,單擊“下一步”按鈕,對話框顯示界面如圖14-11所示。

          圖14-11  圖表源數據的選擇

            圖14-11中的對話框需要使用者選擇哪些數據用于生成圖表,由于在前面的步驟中,我們已經將數據和說明選擇好,因此這里一般不需要做改變。另外,通過單擊“系列”標簽,可以進一步增添或者刪除數據系列(在此處的例子當中,就是圖14-7中的任1行數據)。

            單擊“下一步”按鈕,進入圖表向導的第3個步驟:設置圖表選項。在圖14-12所示的對話框中,可以對圖表上額外的說明信息進行自定義,其中用處較大的有如下幾個設置。

          圖14-12  圖表選項的設置

            標題標簽中的圖表標題與X、Y軸標題,可以為整個圖表起名字,并且對X、Y軸的數據進行說明、列出數值單位。

            網格線標簽中的顯示網格線功能,使圖表中各數值有公共參照物,利于比較。

            選中數據標志標簽中的各選項,可以使圖表中線上各點附帶上數值和說明。

            數據表中顯示數據表選項,可以將源表與由此生成的圖表顯示在一起。

            依據實際的需要可以在這個步驟進行設置。感興趣的讀者可以親自試驗。

            繼續單擊“下一步”按鈕,將進入圖表向導的最后一個步驟:圖表位置的設置。它規定了圖表是單獨存在于一張Excel的新工作表,還是與源數據表格同處于一個工作表。我們在這里保持默認選擇,即存在于當前工作表之中,如圖14-13所示。

          圖14-13  設置圖表的插入位置

            單擊“完成”按鈕,將完成圖表向導的設置。生成的圖表如圖14-14所示。如果打算更改圖表中各說明文字的大小與字體,可以雙擊圖片空白處,以打開“圖例格式”對話框進行更改,如圖14-15所示。

            需要說明的是,本書所舉出的這個例子是以Office 2003中的Excel為例的,在Office 2007的Excel表中,界面基本類似,就不再贅述了。

          圖14-14  最終生成的折線圖效果

          圖14-15  對圖表中的文字設置圖例格式

            14.4  本章小結

            在本章中,我們學習了編寫一份好的測試結果報告需要注意哪些問題。它們分別是:

            首先要能判斷測試數據的準確性。根據本章介紹的幾種經驗規則對數據進行篩選。

            預先估計性能測試數據的大致狀況。有了大致性能好壞的估計,對于報告結論就會有較清晰的認識。性能的大致信息可以通過本章介紹的一些統計學小知識來  獲得。

            對性能測試報告進行細致的分析。

            講究技巧、注重邏輯性和易讀性,通過文字、數據與圖表的有機結合,編寫測試報告。

            與測試經理和其他相關人員進行溝通,最終完成測試報告。

            通過以上這幾個步驟,結合工作中的實踐經驗,相信讀者一定能夠完成一份不錯的性能測試報告,為本輪性能測試的最后步驟,性能優化過程打下堅實的基礎。

            (連載完)

          相關鏈接:

          捉蟲記--大容量Web應用性能測試與LoadRunner實戰(連載一)

          捉蟲記--大容量Web應用性能測試與LoadRunner實戰(連載二)

          捉蟲記--大容量Web應用性能測試與LoadRunner實戰(連載三)

          捉蟲記--大容量Web應用性能測試與LoadRunner實戰(連載四)

          捉蟲記--大容量Web應用性能測試與LoadRunner實戰(連載五)

          捉蟲記--大容量Web應用性能測試與LoadRunner實戰(連載六)

          捉蟲記--大容量Web應用性能測試與LoadRunner實戰(連載七)

          posted on 2013-06-04 10:16 順其自然EVO 閱讀(340) 評論(0)  編輯  收藏 所屬分類: loadrunner性能測試

          <2013年6月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 武安市| 东至县| 礼泉县| 盘山县| 磴口县| 凤翔县| 凯里市| 泉州市| 德钦县| 湖口县| 太白县| 察隅县| 五寨县| 安新县| 灵寿县| 乌鲁木齐市| 喜德县| 乃东县| 商城县| 灵宝市| 蒙阴县| 和顺县| 格尔木市| 宣化县| 九龙坡区| 瓦房店市| 射阳县| 彭阳县| 胶州市| 陵川县| 钟祥市| 合水县| 松溪县| 石阡县| 昌平区| 南康市| 孟州市| 定边县| 鸡泽县| 平谷区| 托克逊县|