qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

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

           14.2  性能測試結果分析方法

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

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

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

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

            (3)記錄各個結果,發(fā)現(xiàn)規(guī)律。

            14.2.1  判斷影響性能的因素

            判斷影響Web應用性能的因素其實一般發(fā)生在性能測試的設計階段,但列在這里也是適當?shù)模驗椋?/p>

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

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

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

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

          情況編號

          用戶數(shù)量

          服務器性能

          網(wǎng)絡帶寬

          客戶端軟件配置

          1

          變化

          不變

          不變

          不變

          2

          變化

          不變

          變化

          變化

          3

          變化

          不變

          不變

          變化

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

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

            14.2.2  隔離與對比

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

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

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

            網(wǎng)絡帶寬變化,其他因素不變的情況。

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

            這樣一來,問題得到了簡化,同時,各因素的影響規(guī)律也能夠被發(fā)現(xiàn)。

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

            【縱向比較】

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

            【橫向比較】

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

           14.2.3  詳實記錄中間結論

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

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

            14.3  性能測試報告編寫技巧

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

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

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

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

            提交報告的時機。

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

            有效地總結概括測試數(shù)據(jù)。

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

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

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

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

            在下面幾節(jié)中,本書將一一介紹如上幾個規(guī)則。

            14.3.2  提交報告時機

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

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

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

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

            正式的性能測試結束后,要盡快發(fā)送整理好的測試報告,供決策、優(yōu)化之用,以體現(xiàn)效率。

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

           14.3.3  與測試主管的討論

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

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

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

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

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

            14.3.4  有效總結測試數(shù)據(jù)

            有效地總結測試數(shù)據(jù)包含如下幾個要點:

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

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

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

            14.3.5  測試報告與圖表的結合

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

            【圖表的副作用】

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

            在Excel中將數(shù)據(jù)轉(zhuǎn)換為圖是非常容易的,14.3.6節(jié)中我們將介紹這樣的方法。

            14.3.6  在Excel中為數(shù)據(jù)生成圖

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

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

            表14-7  某次性能測試的響應時間數(shù)據(jù)

          請求頻道首頁

          響應時間(秒)

          網(wǎng)站首頁

          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

          聯(lián)系我們欄目首頁

          3.2   3.2   3.3   3.2   3.2   3.3

          產(chǎn)品欄目首頁

          4.5   4.6   4.3   4.5   5.0   5.0

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

          圖14-7  在Excel中選擇待生成圖的數(shù)據(jù)表

            【其他數(shù)據(jù)文件格式與Excel】

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

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

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

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

            【圖表類型的選擇】

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

          圖14-8  通過菜單打開圖表向?qū)?/p>

          圖14-9  通過導航條圖標打開圖表向?qū)?/p>

          圖14-10  圖表向?qū)У?步:選擇類型

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

          圖14-11  圖表源數(shù)據(jù)的選擇

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

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

          圖14-12  圖表選項的設置

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

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

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

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

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

            繼續(xù)單擊“下一步”按鈕,將進入圖表向?qū)У淖詈笠粋€步驟:圖表位置的設置。它規(guī)定了圖表是單獨存在于一張Excel的新工作表,還是與源數(shù)據(jù)表格同處于一個工作表。我們在這里保持默認選擇,即存在于當前工作表之中,如圖14-13所示。

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

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

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

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

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

            14.4  本章小結

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

            首先要能判斷測試數(shù)據(jù)的準確性。根據(jù)本章介紹的幾種經(jīng)驗規(guī)則對數(shù)據(jù)進行篩選。

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

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

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

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

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

            (連載完)

          相關鏈接:

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

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

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

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

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

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

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

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

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

          導航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 寿宁县| 阜宁县| 宁蒗| 铜陵市| 靖安县| 囊谦县| 丰都县| 五指山市| 沙洋县| 黎平县| 岳阳县| 大石桥市| 柘城县| 大关县| 五家渠市| 宣城市| 沂源县| 化德县| 商都县| 游戏| 孟村| 盐池县| 郧西县| 新野县| 交城县| 合作市| 安福县| 唐山市| 桑植县| 四子王旗| 理塘县| 陵水| 襄城县| 江油市| 榆林市| 顺平县| 九江市| 唐河县| 民权县| 安福县| 闵行区|