基準(zhǔn)測(cè)試_性能測(cè)試知識(shí)_第1頁(yè)
基準(zhǔn)測(cè)試_性能測(cè)試知識(shí)_第2頁(yè)
基準(zhǔn)測(cè)試_性能測(cè)試知識(shí)_第3頁(yè)
基準(zhǔn)測(cè)試_性能測(cè)試知識(shí)_第4頁(yè)
基準(zhǔn)測(cè)試_性能測(cè)試知識(shí)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、什么是基準(zhǔn)測(cè)試?基準(zhǔn)測(cè)試(benchmarking)是一種測(cè)量和評(píng)估軟件性能指標(biāo)的活動(dòng)。你可以在某個(gè)時(shí)候通過(guò)基準(zhǔn)測(cè)試建立一個(gè)已知的性能水平(稱為基準(zhǔn)線),當(dāng)系統(tǒng)的軟硬件環(huán)境發(fā)生變化之后再進(jìn)行一次基準(zhǔn)測(cè)試以確定那些變化對(duì)性能的影響。這是基準(zhǔn)測(cè)試最常見(jiàn)的用途。其他用途包括測(cè)定某種負(fù)載水平下的性能極限、管理系統(tǒng)或環(huán)境的變化、發(fā)現(xiàn)可能導(dǎo)致性能問(wèn)題的條件,等等?;鶞?zhǔn)測(cè)試的具體做法是:在系統(tǒng)上運(yùn)行一系列測(cè)試程序并把性能計(jì)數(shù)器的結(jié)果保存起來(lái)。這些結(jié)構(gòu)稱為“性能指標(biāo)”。性能指標(biāo)通常都保存或歸檔,并在系統(tǒng)環(huán)境的描述中進(jìn)行注解。比如說(shuō),有經(jīng)驗(yàn)的數(shù)據(jù)庫(kù)專業(yè)人員會(huì)把基準(zhǔn)測(cè)試的結(jié)果以及當(dāng)時(shí)的系統(tǒng)配置和環(huán)境一起存入他們的

2、檔案。這可以讓他們對(duì)系統(tǒng)過(guò)去和現(xiàn)在的性能表現(xiàn)進(jìn)行對(duì)照比較,確認(rèn)系統(tǒng)或環(huán)境的所有變化?;鶞?zhǔn)測(cè)試通常都是些功能測(cè)試,即測(cè)試系統(tǒng)的某個(gè)功能是否達(dá)到了預(yù)期的要求。有些性能測(cè)試工具可以對(duì)系統(tǒng)幾乎所有的方面(從最常見(jiàn)的操作到最復(fù)雜的操作,從小負(fù)載到中等負(fù)載到大負(fù)載)進(jìn)行測(cè)試。大部分程序員只在系統(tǒng)發(fā)生了奇怪的事情時(shí)才考慮進(jìn)行基準(zhǔn)測(cè)試,但我認(rèn)為定期進(jìn)行基準(zhǔn)測(cè)試,尤其是在重大事件(比如系統(tǒng)或環(huán)境發(fā)生變化)之前和之后進(jìn)行基準(zhǔn)測(cè)試更有意義。一定要首先進(jìn)行一次基準(zhǔn)測(cè)試以創(chuàng)建基準(zhǔn)線。如果沒(méi)有基準(zhǔn)線作為參照物,在事件發(fā)生之后進(jìn)行的基準(zhǔn)測(cè)試是不會(huì)對(duì)你有多大幫助的。1、優(yōu)秀基準(zhǔn)測(cè)試的指導(dǎo)原則在進(jìn)行基準(zhǔn)測(cè)試的時(shí)候,有許多好的實(shí)

3、踐方法。在這一節(jié)里,我將向大家介紹幾個(gè)我認(rèn)為對(duì)大家最有幫助的基準(zhǔn)測(cè)試原則。首先,應(yīng)該牢記“事前快照”和“事后快照”的概念。不要等到你對(duì)服務(wù)器做出修改之后才想起應(yīng)該進(jìn)行一次基準(zhǔn)測(cè)試并把測(cè)試結(jié)果與你在六個(gè)月前建立的基準(zhǔn)線進(jìn)行對(duì)比。六個(gè)月的時(shí)間會(huì)發(fā)生許多事情!你應(yīng)該在做出修改之前進(jìn)行一次測(cè)試,做出修改,然后再對(duì)系統(tǒng)進(jìn)行一次基準(zhǔn)測(cè)試。這可以讓你對(duì)三組性能指標(biāo)進(jìn)行對(duì)比:系統(tǒng)的預(yù)期性能、它在修改前的實(shí)測(cè)性能以及它在修改后的實(shí)測(cè)性能。你可以發(fā)現(xiàn)所發(fā)生的事情讓你的改變多少會(huì)明顯一些。比如說(shuō),假設(shè)你的基準(zhǔn)測(cè)試有一項(xiàng)是度量查詢時(shí)間。你在六個(gè)月前為某個(gè)特定的測(cè)試查詢建立的基準(zhǔn)線需要花費(fèi)4.25秒才能完成?,F(xiàn)在,你決

4、定修改受測(cè)表的某個(gè)索引。你在修改之前進(jìn)行的基準(zhǔn)測(cè)試得到的結(jié)果是15.5秒,而你在修改之后進(jìn)行的基準(zhǔn)測(cè)試得到的結(jié)果是4.5秒。如果你沒(méi)有拍攝事前快照,就不會(huì)知道你的修改讓系統(tǒng)的性能有了很大的提高。說(shuō)不定還會(huì)以為你的修改降低了查詢的速度-你也許會(huì)因此撤消這次修改,結(jié)果返回到執(zhí)行速度慢的查詢。雖然這是一個(gè)假想的例子,但我希望大家能夠從中注意到以下幾點(diǎn)。首先,如果你是在對(duì)某個(gè)系統(tǒng)的數(shù)據(jù)檢索性能執(zhí)行基準(zhǔn)測(cè)試,而這個(gè)系統(tǒng)的數(shù)據(jù)量會(huì)隨著時(shí)間的推移而增長(zhǎng),你必須更頻繁地運(yùn)行你的基準(zhǔn)測(cè)試工具才能準(zhǔn)確地把握數(shù)據(jù)量的增長(zhǎng)對(duì)系統(tǒng)性能的影響。在剛才的例子里,你應(yīng)該把有關(guān)性能指標(biāo)(比如數(shù)據(jù)負(fù)載量)在事前的測(cè)量值當(dāng)作系統(tǒng)的

5、“正?!敝笜?biāo)。其次,必須保證你的測(cè)試對(duì)你測(cè)量的東西有效。如果你在對(duì)某個(gè)表的查詢性能進(jìn)行基準(zhǔn)測(cè)試,你得到的測(cè)試結(jié)果只限于應(yīng)用程序級(jí)別,不足以從一般意義上預(yù)測(cè)系統(tǒng)的性能。一定要把應(yīng)用程序級(jí)別的基準(zhǔn)與全局性的性能指標(biāo)區(qū)分開(kāi)來(lái),這樣才能保證不會(huì)得出錯(cuò)誤的結(jié)論。另外一個(gè)與事前概念和事后概念有關(guān)的好的實(shí)踐方法是,在活動(dòng)(負(fù)載量相對(duì)穩(wěn)定)的有限時(shí)間內(nèi)盡可能多做幾次基準(zhǔn)測(cè)試,這是為了保證你的測(cè)試結(jié)果不會(huì)受到局部活動(dòng)(比如臨時(shí)出現(xiàn)的進(jìn)程或高資源占用任務(wù))的影響。我發(fā)現(xiàn)重復(fù)進(jìn)行幾十次同樣的基準(zhǔn)測(cè)試可以把各次測(cè)試結(jié)果的平均值作為最終的性能指標(biāo)值。有許多技巧可以得到這些統(tǒng)計(jì)結(jié)果。有條件的話,你甚至可以使用一個(gè)統(tǒng)計(jì)包或

6、是你喜歡的適用于統(tǒng)計(jì)的電子表格應(yīng)用程序來(lái)得出基本的統(tǒng)計(jì)數(shù)字。注解:有些基準(zhǔn)測(cè)試工具有自己的統(tǒng)計(jì)分析包,但MySQL Benchmark Suite沒(méi)有。我認(rèn)為最有用的建議是每次只修改一個(gè)地方。一次修改多個(gè)地方并不是不可以,但這樣你就不能期望從基準(zhǔn)測(cè)試結(jié)果里得出什么有意義的結(jié)論。經(jīng)常會(huì)發(fā)生這樣的事:你修改了6個(gè)地方,其中之一產(chǎn)生的負(fù)面影響掩蓋了另外幾個(gè)的正面效果,剩下的一兩個(gè)對(duì)性能沒(méi)有任何影響。只有每次修改一個(gè)地方,你才能準(zhǔn)確地判斷出它對(duì)系統(tǒng)性能的影響是負(fù)面的、正面的還是沒(méi)有影響。還有,只要有可能,就應(yīng)該使用實(shí)際數(shù)據(jù)來(lái)進(jìn)行基準(zhǔn)測(cè)試。人工生成的測(cè)試數(shù)據(jù)怎么說(shuō)也會(huì)有一些規(guī)律可循,那樣得到的測(cè)試結(jié)果往

7、往不能反映實(shí)際情況,某些特定的功能(比如邊界值和范圍檢查等)可能永遠(yuǎn)也得不到測(cè)試。如果你的數(shù)據(jù)變化很頻繁,你應(yīng)該選擇某個(gè)時(shí)刻為它們“拍攝”一張快照,然后使用這張快照來(lái)進(jìn)行每一次測(cè)試。不過(guò),這么做雖然能夠保證使用真實(shí)的數(shù)據(jù)來(lái)測(cè)試性能,可是隨著數(shù)據(jù)量的增長(zhǎng)也許無(wú)法測(cè)試出系統(tǒng)性能的下降。最后,在解讀基準(zhǔn)測(cè)試結(jié)果和管理預(yù)期目標(biāo)時(shí),一定要讓你的目標(biāo)有現(xiàn)實(shí)意義。如果你想改善系統(tǒng)在某種特定條件下的性能,在確定目標(biāo)前首先要把已知的后果弄清楚。比如說(shuō),如果你想知道把網(wǎng)絡(luò)接口的傳輸速度提高100倍對(duì)系統(tǒng)性能會(huì)產(chǎn)生哪些影響,就必須先弄清楚你的服務(wù)器將不能按照比現(xiàn)在快100倍的速度發(fā)送和接收數(shù)據(jù)。在這類(lèi)場(chǎng)合中,你必須

8、綜合考慮硬件的性價(jià)比和硬件可能帶來(lái)的性能改善。換句話說(shuō),你的服務(wù)器的執(zhí)行速度應(yīng)當(dāng)提高幾個(gè)百分點(diǎn),這樣就為你省了錢(qián)(或說(shuō)增加了收入)。如果在做過(guò)仔細(xì)評(píng)估之后預(yù)計(jì)你的網(wǎng)絡(luò)性能只要提高10%就可以做到收支平衡甚至贏利,那就把這個(gè)數(shù)字作為你的目標(biāo)好了。如果基準(zhǔn)測(cè)試結(jié)果表明你得到了這么大(或更好)的改善,就去找老板談?wù)劶有降氖掳?;如果基?zhǔn)測(cè)試結(jié)果表明你沒(méi)有得到這么大的改善,去建議老板把新硬件退回去(也可以順便談?wù)劶有降氖拢驗(yàn)槟阕屗″X(qián)了)。不管是哪種情況,你的報(bào)告都有充分的依據(jù),即你的基準(zhǔn)測(cè)試結(jié)果。2、對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行基準(zhǔn)測(cè)試基準(zhǔn)測(cè)試在很多領(lǐng)域都非常重要。但基準(zhǔn)測(cè)試與數(shù)據(jù)庫(kù)服務(wù)器到底有什么關(guān)系呢?答案

9、包括很多方面。對(duì)數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行基準(zhǔn)測(cè)試可以在許多不同的層次上進(jìn)行。最常見(jiàn)的是針對(duì)數(shù)據(jù)庫(kù)模式的改動(dòng)而進(jìn)行的基準(zhǔn)測(cè)試。專門(mén)針對(duì)某個(gè)表的基準(zhǔn)測(cè)試比較少見(jiàn)(雖然你可以這么做)。人們更感興趣的是在改變了數(shù)據(jù)庫(kù)的結(jié)構(gòu)之后,其性能會(huì)受到什么樣的影響。人們的這種關(guān)心在剛開(kāi)始使用一個(gè)新的應(yīng)用程序或一個(gè)新的數(shù)據(jù)庫(kù)時(shí)表現(xiàn)得尤為明顯。此時(shí),你可以設(shè)計(jì)好幾種數(shù)據(jù)庫(kù)模式并填充數(shù)據(jù),然后編寫(xiě)一些基準(zhǔn)測(cè)試程序來(lái)模仿所推薦的系統(tǒng)。嘿,這也是一種測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)行為!通過(guò)創(chuàng)建多個(gè)數(shù)據(jù)庫(kù)模式并進(jìn)行基準(zhǔn)測(cè)試,甚至可能會(huì)多次重復(fù)這些改動(dòng),你很快就可以確定哪套模式最適合你設(shè)計(jì)的應(yīng)用。有時(shí)候,對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行基準(zhǔn)測(cè)試還有一些特殊的目的。比

10、如說(shuō),你想知道數(shù)據(jù)庫(kù)系統(tǒng)在不同的負(fù)載情況或不同的系統(tǒng)環(huán)境下會(huì)有怎樣的性能表現(xiàn)。那么,除了進(jìn)行事前和事后的基準(zhǔn)測(cè)試去了解對(duì)環(huán)境所做的改變會(huì)產(chǎn)生多大的不同,還有什么方法更能證明你新安裝的RAID設(shè)備將大幅改善系統(tǒng)的性能呢?是的,一切都是圍繞成本進(jìn)行考慮,基準(zhǔn)測(cè)試工具可以幫助你管理好數(shù)據(jù)庫(kù)系統(tǒng)的成本。性能測(cè)試知多少-性能需求分析需求分析是個(gè)繁雜過(guò)程,它并非我們想象的那么簡(jiǎn)單,而性能測(cè)試需求除了要對(duì)系統(tǒng)的業(yè)務(wù)非常了解,還需要有深厚性能測(cè)試知識(shí)。才能夠挖掘分析出真正的性能需求。如何獲得有效的需求1、客戶方提出客戶方能提出明確的性能需求,說(shuō)明對(duì)方很重視性能測(cè)試,這樣的企業(yè)一般是金融、電信、銀行、醫(yī)療器械等

11、;他們一般對(duì)系統(tǒng)的性能要求非常高,對(duì)性能也非常了解。提出需求也比較明確。曾經(jīng)有一個(gè)銀行項(xiàng)目,已經(jīng)到最后的性能測(cè)試極端,因?yàn)閿?shù)據(jù)庫(kù)設(shè)計(jì)不合理,導(dǎo)致性能出現(xiàn)很大的問(wèn)題,最終不得不把整合項(xiàng)目作廢,對(duì)于這樣的項(xiàng)目,其實(shí)從分析設(shè)計(jì)階段就應(yīng)該考慮系統(tǒng)的性能問(wèn)題。性能測(cè)試也一樣,對(duì)于某些項(xiàng)目來(lái)說(shuō)越早進(jìn)行越好。當(dāng)然,前期的性能測(cè)試為單元性能測(cè)試、接口性能測(cè)試,有別系統(tǒng)性能測(cè)試。有時(shí)候也會(huì)碰到不懂裝懂的客戶,提出一些無(wú)理的需求,比如只能2000人使用的OA系統(tǒng),客戶要求并發(fā)用戶2000,這顯然是不合理的需求。這個(gè)就要看你怎么給客戶溝通了。但是,千萬(wàn)別偽造數(shù)據(jù)欺騙客戶。2、根據(jù)歷史數(shù)據(jù)分析對(duì)于一些面向用戶的獨(dú)特產(chǎn)

12、品,比較難定位市場(chǎng)的大小,可以先上一運(yùn)營(yíng)一段時(shí)間,通過(guò)運(yùn)營(yíng)可以搜集客戶資料,比如,每月、每星期、每天的峰值業(yè)務(wù)量是多少。用戶以什么樣的速度在遞增中。用戶對(duì)系統(tǒng)的哪些功能模塊使用的最多,他們所點(diǎn)的比例等等。收集到這些數(shù)據(jù)之后,我們就可評(píng)估系統(tǒng)的系統(tǒng)需求指標(biāo),從而進(jìn)行性能測(cè)試。3、需求分析與定位這里根據(jù)前期的需求分析與定位,來(lái)分析確定系統(tǒng)性能指標(biāo)。例如某省幼兒園管理系統(tǒng)。統(tǒng)計(jì)全省有多少家幼兒園,系統(tǒng)的使用時(shí)間為幼兒到校之后,管理人員對(duì)幼兒的到校情況進(jìn)行錄入,以及幼兒的午飯,放學(xué)情況的錄入時(shí)間。經(jīng)過(guò)與需求人員交流分析也能得到比較明確的性能指標(biāo)。4、參考?xì)v史項(xiàng)目或其它同行業(yè)的項(xiàng)目如果公司之前有類(lèi)似的項(xiàng)

13、目經(jīng)驗(yàn),根據(jù)項(xiàng)目大小及上次性能測(cè)試的一些指標(biāo)。從根據(jù)項(xiàng)目的規(guī)??梢灾贫ǔ鱿鄳?yīng)的性能指標(biāo)。即使本公司沒(méi)有類(lèi)似的項(xiàng)目,但其它公司有類(lèi)似的項(xiàng)目,例如做IPTV或者DVB計(jì)費(fèi)系統(tǒng)的測(cè)試,可以參考電信計(jì)費(fèi)系統(tǒng)的需求雖然不能完全照搬數(shù)據(jù),但是可以通過(guò)其他行業(yè)成熟的需求來(lái)了解需要測(cè)試的項(xiàng)目有哪些,應(yīng)該考慮到的情況有哪些種。5、參考其它資料數(shù)據(jù)如果你做的是非常獨(dú)特的產(chǎn)品,市場(chǎng)上沒(méi)有此類(lèi)型的產(chǎn)品,而且需求及市場(chǎng)也難以估計(jì),那么只能從與產(chǎn)品相關(guān)的資料中尋找痕跡了。不過(guò),相信這樣不確定性的產(chǎn)品,老板要承擔(dān)的風(fēng)險(xiǎn)也是挺大的。_需要說(shuō)明的是,我上面介紹的方面并非是獨(dú)立的,可以綜合的使用,你可以根據(jù)客戶提出的指標(biāo),再根據(jù)

14、歷史數(shù)據(jù)以及參考同類(lèi)型項(xiàng)目來(lái)進(jìn)行。這樣可以更確定你的性能指標(biāo)是客戶(或自己)真正需要的、最符合項(xiàng)目需求的。性能測(cè)試點(diǎn)的選取*發(fā)生頻率非常高的(例如:某郵箱核心業(yè)務(wù)系統(tǒng)中的登錄、收發(fā)郵件等業(yè)務(wù),它們?cè)诿刻斓臉I(yè)務(wù)總量中占到90%以上)*關(guān)鍵程度非常高的(產(chǎn)品經(jīng)理認(rèn)為絕對(duì)不能出現(xiàn)問(wèn)題的,如登錄等)*資源占用非常嚴(yán)重的(導(dǎo)致磁盤(pán)I/O非常大的,例如某個(gè)業(yè)務(wù)進(jìn)行結(jié)果提交時(shí)需要向數(shù)十個(gè)表存取數(shù)據(jù),或者一個(gè)查詢提交請(qǐng)求時(shí)會(huì)檢索出大量的數(shù)據(jù)記錄)對(duì)性能需求點(diǎn)的描述準(zhǔn)確如*系統(tǒng)必須在不超過(guò)10秒的響應(yīng)時(shí)間內(nèi),處理20起登錄任務(wù)。再如發(fā)郵件時(shí)間最大不超過(guò)5秒以及平均時(shí)間在2秒以內(nèi)。一致用戶和性能測(cè)試工程師對(duì)有關(guān)術(shù)

15、語(yǔ)的理解要一致,如:并發(fā)用戶數(shù)、在線用戶數(shù)、注冊(cè)用戶數(shù):特定性能測(cè)試的需求一定是有條件的。檢查系統(tǒng)后臺(tái)關(guān)鍵業(yè)務(wù)數(shù)據(jù)10G、操作數(shù)據(jù)量為20K,1500個(gè)用戶、500個(gè)并發(fā)用戶運(yùn)行的負(fù)載下,連續(xù)運(yùn)行12小時(shí)過(guò)程中,業(yè)務(wù)操作是否滿足性能需求。常見(jiàn)性能需求1、WEB首頁(yè)打開(kāi)速度5s以下,web登陸速度15s以下。2、郵件服務(wù)支持50萬(wàn)個(gè)在線用戶3、計(jì)費(fèi)話單成功率達(dá)到99.999%以上。4、在100個(gè)并發(fā)用戶的高峰期,郵箱的基本功能,處理能力至少達(dá)到10TPS5、系統(tǒng)能在高于實(shí)際系統(tǒng)運(yùn)行壓力1倍的情況下,穩(wěn)定的運(yùn)行12小時(shí)6、這個(gè)系統(tǒng)能否支撐200萬(wàn)的vu(每天登錄系統(tǒng)的人次)vu-Virtual u

16、ser(虛擬用戶)如何把需求轉(zhuǎn)換成性能指標(biāo)我們把200萬(wàn)vu轉(zhuǎn)換成一系列的指標(biāo)響應(yīng)時(shí)間:根據(jù)國(guó)外的一些資料,一般操作的響應(yīng)時(shí)間為2,5,10秒,2秒內(nèi)優(yōu)秀,5秒內(nèi)良好,10秒內(nèi)可接受,其它一些特殊的操作,如上傳,下載可以依據(jù)用戶體驗(yàn)的情況,延長(zhǎng)響應(yīng)時(shí)間。吞吐量:可以根據(jù)已經(jīng)上線的類(lèi)似產(chǎn)品進(jìn)行估計(jì)。或者,采用80/20原則進(jìn)行估計(jì)。我們經(jīng)常使用的是80/20原則。80/20原則:又稱帕累托效應(yīng),比如,80%的社會(huì)財(cái)富掌握在20%的人手里。應(yīng)用于測(cè)試:從vu計(jì)算吞吐量?根據(jù)80/20原則,80%的用戶會(huì)在20%的繁忙時(shí)間內(nèi)登陸。則繁忙時(shí)間每秒大概會(huì)有(2000000*80%)/(24*3600*2

17、0%)=100個(gè)用戶登陸,也就是說(shuō),登陸操作的吞吐量是100TPS如何根據(jù)性能需求進(jìn)行測(cè)試其實(shí)我們上面得到的需求指標(biāo)仍然是不明確的:是驗(yàn)證當(dāng)前硬件和軟件配置能否支撐200萬(wàn)vu?是測(cè)試當(dāng)前的硬件和軟件配置最多能支撐多少vu?是幫助開(kāi)發(fā)尋找性能瓶頸?根據(jù)需求進(jìn)行性能測(cè)試的過(guò)程:首先,請(qǐng)你們當(dāng)前軟件和硬件配置下驗(yàn)證能否支撐200萬(wàn)vu。如果可以支撐200萬(wàn),再增加到300萬(wàn)看是否可以支撐。如果不能達(dá)到200萬(wàn),那么就需要尋找一下是否有性能瓶頸,將主要的性能瓶頸解決后,再看一下是否可以支撐200萬(wàn),如果可以支撐,輸出測(cè)試結(jié)果。仍然不能,請(qǐng)?jiān)u估需要添加多少硬件設(shè)備。通過(guò)上面流程的分析,那么我們對(duì)于需求

18、實(shí)施過(guò)程就非常明確了。下面看來(lái)分析某郵箱系統(tǒng)的需求:按照某某郵箱20000萬(wàn)注冊(cè)用戶,其中日活躍用戶數(shù)為1.5%的規(guī)模計(jì)算:日活躍用戶=20000*1.5%=300萬(wàn)日活躍用戶人均每天發(fā)6封郵件,用戶使用客戶端收發(fā)郵件比例20%,則:每天發(fā)郵件投遞量=300萬(wàn)*6*20%=360萬(wàn)封如何得到每秒的郵件數(shù)?方式一:嚴(yán)格的根據(jù)2/8原則,80%的郵件集中在20%的時(shí)間發(fā)送。集中發(fā)郵件數(shù):3600000*80%=28800000封集中發(fā)送的時(shí)間:24*20%=4.8小時(shí)=17280秒每秒發(fā)送郵件數(shù):2880000/17280=166.7封/秒方式二,根據(jù)某某郵箱業(yè)務(wù)模型表,每天忙時(shí)集中郵件系數(shù)0.1

19、5,郵件平均峰值系數(shù)2,則:峰值郵件量=3600000*0.15*2/3600=300封/秒注:忙時(shí)集中系數(shù)=忙時(shí)業(yè)務(wù)量/全天業(yè)務(wù)量在兩種方式的分析中,方法二得出的結(jié)果是方法一的將近一倍,我們不要根據(jù)經(jīng)驗(yàn)理所當(dāng)然的去分析,要深入的了解系統(tǒng),我們要對(duì)行業(yè)指標(biāo)及計(jì)算方式。如果按照第一種方式,性能測(cè)試達(dá)標(biāo)了,但系統(tǒng)真正上線后可能遠(yuǎn)遠(yuǎn)超出了我們的評(píng)估。2008年北京奧運(yùn)運(yùn)門(mén)票系統(tǒng)就是一個(gè)典型的案例。再來(lái)分析系統(tǒng)的登錄:去年全年處理“WEB登錄”交易約100萬(wàn)筆,考慮到3年后交易量遞增到每年200萬(wàn)筆。假設(shè)每年交易量集中在8個(gè)月,每個(gè)月20個(gè)工作日,每個(gè)工作日8小時(shí),試采用8020原理估算系統(tǒng)服務(wù)器高峰

20、期“WEB登錄”的交易吞吐量應(yīng)達(dá)到怎樣的一個(gè)處理能力200萬(wàn)/8=25萬(wàn)/月25萬(wàn)/20=1.25萬(wàn)/日1.25萬(wàn)*80%/(8*20%*3600)=1.74TPS-上面的小案例算是拋出的一塊磚,需求開(kāi)發(fā)難度要遠(yuǎn)遠(yuǎn)大于需求管理,在實(shí)際工作中常常需要我們?yōu)榭蛻糸_(kāi)發(fā)這部分性能需求。所以,在追求技術(shù)的基礎(chǔ)上,請(qǐng)更多的了解分析你的項(xiàng)目及行業(yè)指標(biāo)。性能測(cè)試知多少-性能測(cè)試分類(lèi)之我見(jiàn)從這一篇開(kāi)始,蟲(chóng)師向性能方面發(fā)力。翻看自己的博客,最早的時(shí)候熱衷于jmeter,于是寫(xiě)了幾篇圖文并茂的文章(其實(shí),主要是操作截圖加文字描述),之后,由于看到好多朋友關(guān)于性能的知識(shí)什么都不知道,下載個(gè)loadrunner就說(shuō)要做

21、性能測(cè)試,結(jié)果可想而知,遇到各種概念與使用問(wèn)題。于是寫(xiě)了在做性能測(cè)試之前需要知道什么在做性能測(cè)試之后需要知道些什么,關(guān)于loadrunner的我沒(méi)有寫(xiě)一篇博客,因?yàn)榻榻Bloadrunner的網(wǎng)站、資料、書(shū)籍和視頻太多了。我想這個(gè)系列我也會(huì)把關(guān)注點(diǎn)放在思想上。性能測(cè)試常見(jiàn)分類(lèi)常會(huì)別人說(shuō)到性能測(cè)試、負(fù)載測(cè)試、壓力測(cè)試、并發(fā)測(cè)試,很多人都是混合使用,或者一會(huì)叫壓力測(cè)試,一會(huì)叫并發(fā)測(cè)試。這些概念除了非測(cè)試人員分不清楚,甚至許多專業(yè)測(cè)試人員也對(duì)這些名詞也很模糊。關(guān)于這個(gè)分類(lèi)我翻閱了幾個(gè)本比較好的書(shū)籍,他們講的也比較模糊,沒(méi)有給出本質(zhì)上的區(qū)別。只是從不同角度和關(guān)注點(diǎn)來(lái)解釋。好吧我們先來(lái)看他們之間比較普遍的

22、解釋。性能測(cè)試(狹義)性能測(cè)試方法是通過(guò)模擬生產(chǎn)運(yùn)行的業(yè)務(wù)壓力量和使用場(chǎng)景組合,測(cè)試系統(tǒng)的性能是否滿足生產(chǎn)性能要求。通俗地說(shuō),這種方法就是要在特定的運(yùn)行條件下驗(yàn)證系統(tǒng)的能力狀態(tài)。特點(diǎn):1、這種方法的主要目的是驗(yàn)證系統(tǒng)是否有系統(tǒng)宣稱具有的能力。2、這種方法要事先了解被測(cè)試系統(tǒng)經(jīng)典場(chǎng)景,并具有確定的性能目標(biāo)。3、這種方法要求在已經(jīng)確定的環(huán)境下運(yùn)行。也就是說(shuō),這種方法是對(duì)系統(tǒng)性能已經(jīng)有了解的前提,并對(duì)需求有明確的目標(biāo),并在已經(jīng)確定的環(huán)境下進(jìn)行的。負(fù)載測(cè)試通過(guò)在被測(cè)系統(tǒng)上不斷加壓,直到性能指標(biāo)達(dá)到極限,例如“響應(yīng)時(shí)間”超過(guò)預(yù)定指標(biāo)或都某種資源已經(jīng)達(dá)到飽和狀態(tài)。特點(diǎn):1、這種性能測(cè)試方法的主要目的是找到

23、系統(tǒng)處理能力的極限。2、這種性能測(cè)試方法需要在給定的測(cè)試環(huán)境下進(jìn)行,通常也需要考慮被測(cè)試系統(tǒng)的業(yè)務(wù)壓力量和典型場(chǎng)景、使得測(cè)試結(jié)果具有業(yè)務(wù)上的意義。3、這種性能測(cè)試方法一般用來(lái)了解系統(tǒng)的性能容量,或是配合性能調(diào)優(yōu)來(lái)使用。也就是說(shuō),這種方法是對(duì)一個(gè)系統(tǒng)持續(xù)不段的加壓,看你在什么時(shí)候已經(jīng)超出“我的要求”或系統(tǒng)崩潰。壓力測(cè)試(強(qiáng)度測(cè)試)壓力測(cè)試方法測(cè)試系統(tǒng)在一定飽和狀態(tài)下,例如cpu、內(nèi)存在飽和使用情況下,系統(tǒng)能夠處理的會(huì)話能力,以及系統(tǒng)是否會(huì)出現(xiàn)錯(cuò)誤特點(diǎn):1、這種性能測(cè)試方法的主要目的是檢查系統(tǒng)處于壓力性能下時(shí),應(yīng)用的表現(xiàn)。2、這種性能測(cè)試一般通過(guò)模擬負(fù)載等方法,使得系統(tǒng)的資源使用達(dá)到較高的水平。3

24、、這種性能測(cè)試方法一般用于測(cè)試系統(tǒng)的穩(wěn)定性。也就是說(shuō),這種測(cè)試是讓系統(tǒng)處在很大強(qiáng)度的壓力之下,看系統(tǒng)是否穩(wěn)定,哪里會(huì)出問(wèn)題。并發(fā)測(cè)試并發(fā)測(cè)試方法通過(guò)模擬用戶并發(fā)訪問(wèn),測(cè)試多用戶并發(fā)訪問(wèn)同一個(gè)應(yīng)用、同一個(gè)模塊或者數(shù)據(jù)記錄時(shí)是否存在死鎖或其者他性能問(wèn)題。特點(diǎn):1、這種性能測(cè)試方法的主要目的是發(fā)現(xiàn)系統(tǒng)中可能隱藏的并發(fā)訪問(wèn)時(shí)的問(wèn)題。2、這種性能測(cè)試方法主要關(guān)注系統(tǒng)可能存在的并發(fā)問(wèn)題,例如系統(tǒng)中的內(nèi)存泄漏、線程鎖和資源爭(zhēng)用方面的問(wèn)題。3、這種性能測(cè)試方法可以在開(kāi)發(fā)的各個(gè)階段使用需要相關(guān)的測(cè)試工具的配合和支持。也就是說(shuō),這種測(cè)試關(guān)注點(diǎn)是多個(gè)用戶同時(shí)(并發(fā))對(duì)一個(gè)模塊或操作進(jìn)行加壓。配置測(cè)試配置測(cè)試方法通過(guò)

25、對(duì)被測(cè)系統(tǒng)的軟硬件環(huán)境的調(diào)整,了解各種不同對(duì)系統(tǒng)的性能影響的程度,從而找到系統(tǒng)各項(xiàng)資源的最優(yōu)分配原則。特點(diǎn):1、這種性能測(cè)試方法的主要目的是了解各種不同因素對(duì)系統(tǒng)性能影響的程度,從而判斷出最值得進(jìn)行的調(diào)優(yōu)操作。2、這種性能測(cè)試方法一般在對(duì)系統(tǒng)性能狀況有初步了解后進(jìn)行。3、這種性能測(cè)試方法一般用于性能調(diào)優(yōu)和規(guī)劃能力。也就是說(shuō),這種測(cè)試關(guān)注點(diǎn)是“微調(diào)”,通過(guò)對(duì)軟硬件的不段調(diào)整,找出這他們的最佳狀態(tài),使系統(tǒng)達(dá)到一個(gè)最強(qiáng)的狀態(tài)??煽啃詼y(cè)試在給系統(tǒng)加載一定業(yè)務(wù)壓力的情況下,使系統(tǒng)運(yùn)行一段時(shí)間,以此檢測(cè)系統(tǒng)是否穩(wěn)定。特點(diǎn):1、這種性能測(cè)試方法的主要目的是驗(yàn)證是否支持長(zhǎng)期穩(wěn)定的運(yùn)行。2、這種性能測(cè)試方法需要

26、在壓力下持續(xù)一段時(shí)間的運(yùn)行。(23天)3、測(cè)試過(guò)程中需要關(guān)注系統(tǒng)的運(yùn)行狀況。也就是說(shuō),這種測(cè)試的關(guān)注點(diǎn)是“穩(wěn)定”,不需要給系統(tǒng)太大的壓力,只要系統(tǒng)能夠長(zhǎng)期處于一個(gè)穩(wěn)定的狀態(tài)。上面的分類(lèi)絕非全面,還有失效性測(cè)試,就是系統(tǒng)局部發(fā)生問(wèn)題時(shí),其它模塊是否可以正常的運(yùn)行。這個(gè)在極少數(shù)情況下進(jìn)行,這里就不介紹了。性能測(cè)試分類(lèi)之我見(jiàn)上面的類(lèi)分完了,似乎得到不少專家的認(rèn)同,并無(wú)不妥。但我們?cè)谛阅軠y(cè)試過(guò)程中真的能把它們區(qū)別分的很清楚么?你能?chē)?yán)格區(qū)分出你這次的測(cè)試到底并發(fā)測(cè)試還是壓力測(cè)試。筆者第一點(diǎn)不太贊同的是對(duì)“性能測(cè)試”的定義。筆者認(rèn)為性能測(cè)式測(cè)試包含了上面的所有分類(lèi)。而這種性能測(cè)試的定義只是一種狹義上的“性

27、能測(cè)試”,屬于性能測(cè)試的一種。性能測(cè)試是相對(duì)功能測(cè)試來(lái)說(shuō)的。他們之間最本質(zhì)的區(qū)別就是對(duì)系統(tǒng)有處理能力是否夠成壓力。如果一個(gè)用戶的一個(gè)操作(比如超大數(shù)據(jù)量的查詢)對(duì)系統(tǒng)夠成了壓力,我也可以視其為性能測(cè)試。其實(shí),可以這樣來(lái)劃分性能測(cè)試上面定交了那么多分類(lèi),是不是有點(diǎn)暈了。其實(shí),以筆者認(rèn)為我們進(jìn)行性能測(cè)試時(shí)關(guān)注的就兩點(diǎn)。耐力和爆發(fā)力。初高中時(shí)練過(guò)幾年體育,最好時(shí)代表學(xué)校參加縣體育比賽,不過(guò)是去墊底的。哈哈!哈一個(gè)體育運(yùn)動(dòng)員來(lái)說(shuō),那么多的體育項(xiàng)目,其實(shí),考核他的就兩方面。一是爆發(fā)力。二是耐力。爆發(fā)力:拿一個(gè)舉重選手來(lái)說(shuō),他的重點(diǎn)在重量上,因?yàn)槟阒灰芘e起三秒就算你成功了。關(guān)鍵是看你能舉起一個(gè)什么樣的重

28、量。耐力:拿一個(gè)馬拉松運(yùn)動(dòng)員來(lái)說(shuō),你百米速度跑得再快沒(méi)用。關(guān)鍵是這40公里路程中,最先跑到終點(diǎn)的人才是贏家。整體協(xié)調(diào)性:當(dāng)然,身為一個(gè)教練員,我在選拔選手的時(shí)候,除了看這個(gè)運(yùn)動(dòng)員的耐力和爆發(fā)力,身體的整體協(xié)調(diào)性也是我考核的一個(gè)很重要的指標(biāo)。比如一個(gè)運(yùn)行員身體各位部位練得非常強(qiáng)壯,但右臂先天性萎縮。他的跑步成績(jī)雖然不錯(cuò)。但他在跑的過(guò)程中,身體有各個(gè)部分都在分擔(dān)右臂的不足。右臂影響了整個(gè)體能的發(fā)揮。再到系統(tǒng)的性能上說(shuō),爆發(fā)力就是這個(gè)系統(tǒng)能承受的最大壓力,沒(méi)準(zhǔn)這個(gè)系統(tǒng)承受的壓力很大。但過(guò)半個(gè)小時(shí)之間就掛掉了。耐力就是這個(gè)每系統(tǒng)長(zhǎng)時(shí)間處于壓力下的穩(wěn)定性,這系統(tǒng)超級(jí)穩(wěn)定,跑個(gè)幾十年都不用重啟服務(wù)器。那么

29、整體協(xié)調(diào)性就是看系統(tǒng)有沒(méi)系統(tǒng)瓶頸,需不需要進(jìn)行系統(tǒng)調(diào)優(yōu)。在做性能測(cè)試時(shí)請(qǐng)忘掉分類(lèi)這里只是告訴在做性能測(cè)試時(shí)不要想這個(gè)測(cè)試是屬于性能測(cè)試的哪一類(lèi)呢?是并發(fā)性測(cè)呢?還是壓力測(cè)試?我們還拿上面的教練員選拔選手做例子。記得我進(jìn)校體隊(duì)的時(shí)候,教練說(shuō)讓我跑兩圈。然后,我就開(kāi)始圍繞著操場(chǎng)跑起來(lái)。你說(shuō)教練讓我跑兩圈是想看我的什么能力?1、雙腿的考核,一個(gè)是步幅,就是步與步之間的距離。一個(gè)是頻率,兩腿交替的頻率。如果你一步拉得很大的話,那么頻率一定會(huì)下降。如果想提高頻率的話,那么一定會(huì)影響到步幅的大小。2、雙臂的考核,肩膀是否放松,擺臂是否有力,雙臂的擺動(dòng)與雙腿的擺動(dòng)是否協(xié)調(diào)。3、呼吸是否勻稱,目前的速度可以跑

30、幾圈。我只做了一項(xiàng)體育運(yùn)行,就考核了我這么多內(nèi)容。我們?cè)谧鲆粋€(gè)性能測(cè)試時(shí)也不局限在某一分類(lèi)上,也可能我們的一個(gè)測(cè)試包含多個(gè)分類(lèi)。web性能測(cè)試實(shí)戰(zhàn):這么多類(lèi)型的性能測(cè)試看起來(lái)很?chē)樔?,?shí)際上它他們大多是密切相關(guān)的。例如,運(yùn)行8個(gè)小時(shí)來(lái)測(cè)試系統(tǒng)是否可靠,而這個(gè)測(cè)試極有可能包含了可靠性能測(cè)、強(qiáng)度測(cè)試、并發(fā)測(cè)試、負(fù)載測(cè)試,等等。因此,在實(shí)施性能測(cè)試時(shí)決不能割裂它們的內(nèi)部聯(lián)系去進(jìn)行,而應(yīng)該分析它們之間的關(guān)系,以一種高效率的方式來(lái)設(shè)計(jì)性能測(cè)試。性能測(cè)試知多少-性能測(cè)試工具原理與架構(gòu)在性能測(cè)試的學(xué)習(xí)過(guò)程中,堅(jiān)持思想與工具(分開(kāi))并行,當(dāng)前面世面上的性能測(cè)試書(shū)籍大多把理論與loadrunner融為一體講解,這

31、樣做是正確的,因?yàn)橛幸恍┬阅苊~概念也源于工具。但是,性能測(cè)試不是loadrunner,所有的作者也是這么認(rèn)為的。但他們?cè)谥v性能測(cè)試的時(shí)候講的就是loadrunner有,只是講的多少不同罷啦。你是否覺(jué)得我對(duì)loadrunner有仇?我之所以將其分開(kāi)來(lái)學(xué),只是希望自己在學(xué)習(xí)性能測(cè)試的時(shí)候不要被loadrunner局限了而已。只是覺(jué)得在做性能測(cè)試時(shí)不要帶loadrunner的思維,這樣更容易把握性能測(cè)試的本質(zhì)。性能測(cè)試工具,從廣義上講,在性能測(cè)試過(guò)程中使用到的所有工具都可以稱其為性能測(cè)試工具。從狹義上來(lái)講,我們可以把性能測(cè)試工具分為服務(wù)器端性能測(cè)試工具與前段性能測(cè)試工具。服務(wù)器端性能測(cè)試工具也我們

32、測(cè)試人員通常所認(rèn)為的性能測(cè)試工具。LoadRunner、JMeter、SilkPerformance、服務(wù)器端壓力性能工具需要支持產(chǎn)生壓力和負(fù)載,錄制和生成腳本,設(shè)置和部署場(chǎng)景,產(chǎn)生并發(fā)用戶和向系統(tǒng)施加持續(xù)的壓力。前端性能測(cè)試工具應(yīng)用比較廣泛,開(kāi)發(fā)人員,前端開(kāi)發(fā)人員、測(cè)試人員都會(huì)經(jīng)常用到。Firebug、fildder2、Yslow、前端性能測(cè)試工具只需要關(guān)于心瀏覽器等客戶端工具對(duì)具體需要展現(xiàn)的頁(yè)面的處理過(guò)程。服務(wù)器性能測(cè)試工具原理性能測(cè)試工具的主要作用是通過(guò)模擬生產(chǎn)環(huán)境中的真實(shí)業(yè)務(wù)操作,對(duì)被測(cè)試系統(tǒng)實(shí)行壓力負(fù)載測(cè)試,監(jiān)視被測(cè)試系統(tǒng)在不同業(yè)務(wù)、不同壓力性能下的性能表現(xiàn),找出潛在的性能瓶頸進(jìn)行分

33、析、優(yōu)化。客戶端與服務(wù)器相當(dāng)于兩個(gè)人,通過(guò)信息來(lái)進(jìn)行交流。由于初次見(jiàn)面不好意思直接交流,與是找來(lái)了中間傳話人,客戶端把信息告訴給傳話人,由傳話人來(lái)轉(zhuǎn)達(dá)給服務(wù)器。那么服務(wù)器反饋的信息也由傳話人轉(zhuǎn)達(dá)給客戶端。一般性能測(cè)試工具都需要錄制或編寫(xiě)客戶端行為腳本。這樣傳達(dá)人就有了客戶端的行為能力,從而假扮客戶端來(lái)欺騙服務(wù)器,與之進(jìn)行通信。有了客戶端行為了傳達(dá)人可以進(jìn)行自我復(fù)制。從而變出N多個(gè)傳達(dá)人對(duì)服務(wù)器進(jìn)通信。-這個(gè)傳達(dá)人的行為和能力也就是性能測(cè)試工具的基本特質(zhì)。(突然覺(jué)得性能工具像第三者插足,而且是可以自我復(fù)制瘋狂變態(tài)的第三者,哈哈!)對(duì)于目前流行的性能測(cè)試工具,他們的基本工作原理都是一致的。在客戶端

34、通過(guò)多線程或多進(jìn)程模擬虛擬用戶訪問(wèn),對(duì)服務(wù)器端施加壓力,然后在過(guò)程中監(jiān)控和收集性能數(shù)據(jù)。性能測(cè)試工具應(yīng)該具備什么的特質(zhì)呢?1、工具本身占用系統(tǒng)資源少,可擴(kuò)展性好,可用性強(qiáng)。2、能模擬真實(shí)業(yè)務(wù)事務(wù)操作,在并發(fā)時(shí)能真正產(chǎn)生業(yè)務(wù)壓力。(這一點(diǎn)是核心)3、對(duì)壓力測(cè)試結(jié)果能很好地進(jìn)行性能分析,快速找出被測(cè)試系統(tǒng)的瓶頸。4、測(cè)試腳本的重復(fù)性強(qiáng)。服務(wù)器性能測(cè)試工具的架構(gòu)用戶行為生成部分我為什么說(shuō)的這么朦朧,對(duì)于熟悉loadrunner的朋友,我說(shuō)成虛擬用戶腳本生成器,你更容易理解,這個(gè)腳本,我們可以錄制,也可以手工編寫(xiě)。你不要以為這是生成用戶行為的唯一方式。因?yàn)樵贘Meter成中是添加各種組件,通過(guò)對(duì)組件的

35、配置來(lái)完成用戶行為的,當(dāng)然也可以通過(guò)錄制。而在相對(duì)簡(jiǎn)陋的性能測(cè)試工具curl_loader(linux環(huán)境下的運(yùn)行的),他是通過(guò)編寫(xiě)配置文件的形式來(lái)描述用戶形為的。我前面也有提了,雖然性能測(cè)試工具由不同的形式來(lái)描述,但他們的原理是一樣的,都是通過(guò)Proxy方式來(lái)實(shí)現(xiàn),具體來(lái)說(shuō),Proxy作為客戶端和服務(wù)器之間的中間人,接收客戶端的數(shù)據(jù)包。壓力產(chǎn)生器壓力產(chǎn)生器用于根據(jù)腳本內(nèi)容產(chǎn)生實(shí)際的負(fù)載,在性能測(cè)試工具中,壓力產(chǎn)生器扮演著“產(chǎn)生負(fù)載”的角色。也就根用戶的設(shè)置,進(jìn)行自我復(fù)制來(lái)生成多個(gè)客戶端向服務(wù)器發(fā)送請(qǐng)求。對(duì)于工具來(lái)說(shuō),每復(fù)制出來(lái)的一份就是一個(gè)進(jìn)程或線程,進(jìn)程和線程的運(yùn)行是要占用系統(tǒng)資源的。所以

36、,對(duì)一臺(tái)壓力測(cè)試機(jī)來(lái)說(shuō)能運(yùn)行的虛擬用戶數(shù)也是有限的。根基測(cè)試機(jī)的配置而定。那么這個(gè)時(shí)候就要通過(guò)多臺(tái)測(cè)試機(jī)合作,來(lái)模擬更多的虛擬用戶向服務(wù)器發(fā)請(qǐng)求。那么,對(duì)于性能測(cè)試來(lái)說(shuō),很重要的一點(diǎn)就是產(chǎn)生“并發(fā)”的請(qǐng)求,不然就不會(huì)對(duì)服務(wù)器產(chǎn)生壓力。那多臺(tái)機(jī)子如何產(chǎn)生“步調(diào)一致”的虛擬用戶呢?使用“用戶代理”用戶代理用戶代理是運(yùn)行在負(fù)載機(jī)上的進(jìn)程,該進(jìn)程與產(chǎn)生負(fù)載壓力的進(jìn)程或線程協(xié)作,接收調(diào)度系統(tǒng)的命令,調(diào)度產(chǎn)生負(fù)載壓力的進(jìn)程或線程,從這個(gè)意義上看,用戶代理也是壓力產(chǎn)生器的一部分。調(diào)度能力我們?cè)谧鰪?fù)雜的性能測(cè)試時(shí),常常會(huì)設(shè)計(jì)各種場(chǎng)景,不同的虛擬用戶數(shù),不同事務(wù)的用戶比例,運(yùn)行時(shí)間,設(shè)置同步點(diǎn)等,這個(gè)時(shí)候也需要

37、我們的測(cè)試工具有壓力調(diào)度能力。從而才能更真實(shí)的模擬我們所設(shè)計(jì)的運(yùn)行場(chǎng)景。監(jiān)控系統(tǒng)監(jiān)控系統(tǒng)是性能測(cè)試工具直接與用戶進(jìn)行交互的主要部分,監(jiān)控系統(tǒng),主要用戶在壓力測(cè)試過(guò)程中對(duì)各種軟硬件進(jìn)行監(jiān)控,如對(duì)數(shù)據(jù)庫(kù)、應(yīng)用服務(wù)器,服務(wù)器的主要性能表現(xiàn)情況進(jìn)行監(jiān)控。用于判斷系統(tǒng)當(dāng)前處于什么狀態(tài)。當(dāng)然,監(jiān)控系統(tǒng)不是性能工具必須的部分,可以通過(guò)軟硬件系統(tǒng)自身的監(jiān)控工具或者第三方監(jiān)控工具進(jìn)行監(jiān)控。但是否有強(qiáng)大的性能計(jì)數(shù)器監(jiān)控系統(tǒng)是衡量性能測(cè)試工具是否強(qiáng)大的指標(biāo)之一。壓力結(jié)果分析壓力結(jié)果分析工具可以用來(lái)輔助進(jìn)行測(cè)試結(jié)果的分析,性能測(cè)試工具一般都能將監(jiān)控系統(tǒng)獲取的性能技術(shù)數(shù)器值生成曲線圖,折線圖等各種圖表。通過(guò)展現(xiàn)性能測(cè)試

38、過(guò)程中的各種參數(shù)指標(biāo),來(lái)供測(cè)試人員進(jìn)行分析。但這里需要強(qiáng)調(diào)的是,壓力結(jié)果分析工具本身不能代替分析者進(jìn)行性能結(jié)果分析,而只是提供多種不同的數(shù)據(jù)揭示和呈現(xiàn)方法而已。對(duì)于這些數(shù)據(jù)進(jìn)行分析必然要依靠測(cè)試工程師對(duì)系統(tǒng)性能分析的知識(shí)和經(jīng)驗(yàn)。對(duì)上面介紹的性能測(cè)試工具架構(gòu)的組成部分,不是第一個(gè)性能測(cè)試工具都具備,而所具備的強(qiáng)大程度也不相同。比如,有些性能測(cè)試工具不具備用戶代理能,有些監(jiān)控系統(tǒng)能監(jiān)控的資源很有限或簡(jiǎn)陋,有些結(jié)果分析數(shù)據(jù)的呈現(xiàn)不夠詳盡等。性能測(cè)試知多少-性能測(cè)試流程看到好多新手,在性能需求模糊的情況下,隨便找一個(gè)性能測(cè)試工具,然后就開(kāi)始進(jìn)行性能測(cè)試了,在這種情況下得到的性能測(cè)試結(jié)果很難體現(xiàn)系統(tǒng)真實(shí)

39、的能力,或者可能與系統(tǒng)真實(shí)的性能相距甚遠(yuǎn)。與功能測(cè)試相比,性能測(cè)試在技術(shù)層面具有更大的復(fù)雜性。在以往的測(cè)試流程中,性能測(cè)試只是測(cè)試流程的一部分,是系統(tǒng)或驗(yàn)收測(cè)試的一個(gè)可選項(xiàng)。但隨著測(cè)試技術(shù)的發(fā)展。許多公司也單獨(dú)把性能測(cè)試獨(dú)立出來(lái),建立專門(mén)的性能測(cè)試小組或團(tuán)隊(duì)。那么性能測(cè)試在實(shí)施的過(guò)程中也需要建立獨(dú)立的流程與規(guī)范。蟲(chóng)師提出了自己性能測(cè)試流程,與其它書(shū)本提出的流程在些小不同。流程的實(shí)施沒(méi)有絕對(duì)的對(duì)錯(cuò),適合自身的流程就是正確。下面看我所提到的流程性能需求分析性能需求分析是整個(gè)性能測(cè)試工作開(kāi)展的基礎(chǔ),如果你連性能的需求都沒(méi)弄清楚,后面的性能測(cè)試工具就無(wú)從談起了。在這一階段,性能測(cè)試人員需要與需求人員(

40、客戶)、領(lǐng)導(dǎo)及項(xiàng)目相關(guān)的人員進(jìn)行溝通,同時(shí)收集各種項(xiàng)目資料,對(duì)系統(tǒng)進(jìn)行分析,確認(rèn)測(cè)試的意圖。當(dāng)然,還需要客戶對(duì)性能的態(tài)度。測(cè)試需求分析階段的主要任務(wù)是確定測(cè)試策略和測(cè)試范圍。策略主要根據(jù)軟件類(lèi)型以及用戶對(duì)系統(tǒng)的性能的需求來(lái)定,測(cè)試范圍則主要分析系統(tǒng)的功能模塊進(jìn)行調(diào)研與分析。最終確認(rèn)明確的需求。性能測(cè)試計(jì)劃確定明確的需求之后,我們要做的工作就是制定性能測(cè)試計(jì)劃。對(duì)性能測(cè)試過(guò)程中所有需要工作制定與規(guī)劃。測(cè)試計(jì)劃的大體內(nèi)容:項(xiàng)目的簡(jiǎn)單背景描述,本次性能測(cè)試的需求與目的,性能需求分析的結(jié)果是什么。測(cè)試環(huán)境的準(zhǔn)備,需要什么樣的軟硬件配置,網(wǎng)絡(luò)狀況登錄。測(cè)試數(shù)據(jù)的準(zhǔn)備,對(duì)于某些性能測(cè)試是需要事先準(zhǔn)備測(cè)試數(shù)

41、據(jù)的。測(cè)試的策略,前面進(jìn)行需求分析的目的是制定測(cè)試策略,也就是設(shè)計(jì)符合需求的測(cè)試場(chǎng)景,需要對(duì)系統(tǒng)的哪些業(yè)務(wù)模塊進(jìn)行測(cè)試,如何進(jìn)行?需要設(shè)計(jì)哪些場(chǎng)景以及設(shè)計(jì)這些場(chǎng)景的目的。最后會(huì)明確一下人員配備,比如需要開(kāi)發(fā)、DBA、運(yùn)維都人員的參與協(xié)助,性能測(cè)試的時(shí)間安排。測(cè)試環(huán)境搭建測(cè)試環(huán)境搭建,分硬件環(huán)境與軟件環(huán)境,硬件環(huán)境主要是向上級(jí)審批硬件配備,在某些大型性能測(cè)試,可能需要公司購(gòu)置或租用硬件設(shè)備來(lái)進(jìn)行?;蛘呤菍?lái)原有設(shè)置進(jìn)行調(diào)配與重組,這個(gè)時(shí)候就需要網(wǎng)絡(luò)工程師的參與或協(xié)助。軟件環(huán)境的搭建對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)應(yīng)該毫無(wú)壓力,比如常見(jiàn)的三大環(huán)境,微軟的windows+IIS+SQL server 2005+.N

42、ET平臺(tái)、windows/linux+tomcat/weblogic+mysql+java、linux+apache+mysql+PHP等環(huán)境。當(dāng)然身為性能測(cè)試人員,不僅也需要會(huì)搭建軟件平臺(tái),更需要對(duì)每個(gè)平臺(tái)中的部分有比較深入的了解。因?yàn)樾阅軠y(cè)試的分析并不是死盯著系統(tǒng)應(yīng)用那一層。中間件、數(shù)據(jù)庫(kù)、系統(tǒng)、硬件都有可能成為系統(tǒng)的瓶頸。性能工具的引入其實(shí)走到這一步進(jìn)才需要引入性能測(cè)試工具,我們?cè)谌粘5墓ぷ髦型窍冗x定好測(cè)試工具然后再分析需求,制定計(jì)劃進(jìn)行測(cè)試。這樣我們?cè)谧鲂阅苄枨蠓治龅臅r(shí)候往往會(huì)往往會(huì)考慮所選的工具是否能實(shí)現(xiàn),無(wú)法實(shí)現(xiàn)可能就放棄這個(gè)需求或改變這個(gè)需求。這樣以某一工具為基礎(chǔ)點(diǎn)做出的性能

43、測(cè)試結(jié)果可能是不準(zhǔn)確的。工具的引入分為自行開(kāi)發(fā)與引入市面上的現(xiàn)有工具。市面上的現(xiàn)有工具又分為收費(fèi)與開(kāi)源免費(fèi),各有各的優(yōu)缺點(diǎn)。我們要做的是對(duì)需求進(jìn)行分析,從成本,購(gòu)買(mǎi)成本,開(kāi)發(fā)成本,現(xiàn)有開(kāi)源工具的二次開(kāi)發(fā)成本,人員學(xué)習(xí)使用成本以及時(shí)間成本等。在這里再?gòu)?qiáng)調(diào)一點(diǎn),不是只有壓力測(cè)試工具屬于性能工具,在性能測(cè)試過(guò)程中所用到的工具都屬于性能工具,如測(cè)試數(shù)據(jù)生成工具,性能監(jiān)控工具等。測(cè)試的執(zhí)行測(cè)試的執(zhí)行應(yīng)該是很大范圍的一塊內(nèi)容。也就是我在上一節(jié)中性能測(cè)試架構(gòu)所提到的內(nèi)容。用戶行為生成->壓力產(chǎn)生器->用戶代理->測(cè)試調(diào)度->系統(tǒng)監(jiān)控等。我們所選擇的工具如何來(lái)實(shí)現(xiàn)我們的需求,這個(gè)性能測(cè)

44、試工程師對(duì)引入的有足夠的了解。對(duì)協(xié)議的了解,可能需要編程的能力等。其實(shí)好多新手對(duì)性能的學(xué)習(xí)也是從某一工具的使用開(kāi)始的。測(cè)試結(jié)果的分析這里再重復(fù)一次,測(cè)試工具只是提供多種不同的數(shù)據(jù)揭示和呈現(xiàn)方法而已。工具本身并不能幫我們進(jìn)行性能結(jié)果的分析。對(duì)于性能測(cè)試結(jié)果的分析,這個(gè)需要性能測(cè)試工程師對(duì)整個(gè)被測(cè)環(huán)境的各種軟硬件都要有深入的了解。當(dāng)然,在這個(gè)過(guò)程中我們往往需要各個(gè)崗位人員的協(xié)助,開(kāi)發(fā)人員、DBA、運(yùn)維等。致力成為一位資深的性能測(cè)試工程師要走路還很長(zhǎng)。軟件硬件配置調(diào)整與優(yōu)化說(shuō)的簡(jiǎn)單點(diǎn)這個(gè)環(huán)節(jié)屬于系統(tǒng)調(diào)優(yōu)階段。這一項(xiàng)不是一個(gè)必須的環(huán)節(jié)。這個(gè)要看你本次性能測(cè)試的需求與目的。如果只是為了驗(yàn)證系統(tǒng)的能力的話

45、。在分析完測(cè)試結(jié)果后就可以出性能測(cè)試報(bào)告了。對(duì)于我們測(cè)試人員來(lái)說(shuō),我們對(duì)一個(gè)系統(tǒng)進(jìn)行功能測(cè)試的目的是驗(yàn)證系統(tǒng)功能是否是符合需求并可用的,但發(fā)現(xiàn)了缺陷之后是需要對(duì)缺陷進(jìn)行跟蹤和修復(fù)的,并不是把發(fā)現(xiàn)的缺陷寫(xiě)在報(bào)告里就完事的。當(dāng)然,功能缺陷與性能缺陷存在著本質(zhì)的缺陷。如果在性能測(cè)試過(guò)程中發(fā)現(xiàn)不滿足需求的缺陷,進(jìn)行調(diào)優(yōu)是一個(gè)不可缺少的過(guò)程。如果要對(duì)系統(tǒng)進(jìn)行調(diào)優(yōu)的話,測(cè)試執(zhí)行、結(jié)果分析、系統(tǒng)調(diào)優(yōu)將會(huì)形成一個(gè)循環(huán)持續(xù)的過(guò)程。直到滿足客戶的需求為止。性能測(cè)試知多少-性能測(cè)試計(jì)劃上一章節(jié)中我們對(duì)性能的需求進(jìn)行了分析,知道了測(cè)試對(duì)象,了解了測(cè)試需求,那么下面就需要制定一份詳細(xì)的計(jì)劃,來(lái)規(guī)劃和指導(dǎo)性能測(cè)試工作的進(jìn)

46、行。為了使你對(duì)性能測(cè)試計(jì)劃更清晰明白,這里以測(cè)試計(jì)劃的格式來(lái)描述。一、簡(jiǎn)介簡(jiǎn)介部分就不用過(guò)多描述了,無(wú)非項(xiàng)目的背景,進(jìn)行此次性能測(cè)試的原因,以及性能測(cè)試覆蓋的范圍等等,幾乎所有項(xiàng)目文檔都在開(kāi)端對(duì)項(xiàng)目進(jìn)行簡(jiǎn)單的闡述。二、性能測(cè)試需求尋找的被測(cè)試對(duì)象和壓力點(diǎn)要測(cè)試的對(duì)象不是憑空想象出來(lái),而是經(jīng)過(guò)分析與系統(tǒng)數(shù)據(jù)收集得到。下取幾個(gè)典型的壓力點(diǎn)登錄:對(duì)于一般的系統(tǒng)來(lái)說(shuō),登錄是用戶操作系統(tǒng)的前提,如果用戶根本就登錄不了,那么其它功能將毫無(wú)用處。例如網(wǎng)游戲,開(kāi)新服的時(shí)候,玩家擠破了腦袋只為登錄。查詢:查詢一般比較消耗系統(tǒng)和數(shù)據(jù)庫(kù)資源。搜索引擎的查詢功能就是典型,如果你在輸入框內(nèi)輸入內(nèi)容,很久就得不到結(jié)果。我

47、想被稱為“互聯(lián)網(wǎng)入口”的搜索引擎就不會(huì)存在。交易:對(duì)于一些電子商務(wù)系統(tǒng)來(lái)說(shuō),交易過(guò)程的性能要求是很高的,如果交易過(guò)程消耗用戶很長(zhǎng)時(shí)間的話。我寧愿去超市買(mǎi)東西了。當(dāng)然,除了交易速度外,對(duì)交易的成功率要求也是非常高的。不然,造成的損失也是不可估量的。被測(cè)的系統(tǒng)應(yīng)該是最重要的最基本的功能,也是用戶使用最頻繁的功能。一般的性能要求包括:系統(tǒng)容量:系統(tǒng)最大容納多少個(gè)用戶注冊(cè)。訪問(wèn)數(shù):同時(shí)訪問(wèn)系統(tǒng)的用戶數(shù)。并發(fā)數(shù):一個(gè)操作同時(shí)執(zhí)行的并發(fā)數(shù)目,一個(gè)系統(tǒng)中應(yīng)該有不同操作的并發(fā)數(shù)的組合(一般是有權(quán)限進(jìn)行操作的用戶)。系統(tǒng)的最大用戶數(shù)與最佳用戶數(shù):系統(tǒng)在承受的最大并發(fā)用戶數(shù)量,系統(tǒng)在最佳狀態(tài)下承受的并發(fā)用戶數(shù)據(jù)。

48、響應(yīng)時(shí)間:用戶提交一個(gè)操作到得到響應(yīng)的時(shí)間間隔。吞吐率:系統(tǒng)每秒鐘處理的TPS性能測(cè)試關(guān)鍵的一個(gè)因素就是壓力,性能是在系統(tǒng)設(shè)計(jì)滿足的最大壓力下的性能。并發(fā)數(shù)要不小于系統(tǒng)正常運(yùn)行的峰值,數(shù)據(jù)總量不小于系統(tǒng)正常運(yùn)行3個(gè)月的數(shù)據(jù)量。在描述并發(fā)用戶數(shù)目時(shí),總是會(huì)帶有相應(yīng)的時(shí)間段限制。系統(tǒng)的性能指標(biāo)實(shí)質(zhì)上應(yīng)當(dāng)使用單位時(shí)間內(nèi)系統(tǒng)處理請(qǐng)求的個(gè)數(shù)以及請(qǐng)求響應(yīng)時(shí)間描述。單位時(shí)間內(nèi)能處理的請(qǐng)求個(gè)數(shù)就是系統(tǒng)的業(yè)務(wù)吞吐量。虛擬并發(fā)用戶的數(shù)量可以使用如下的公式換算:(真實(shí)用戶數(shù)×每個(gè)真實(shí)用戶請(qǐng)求數(shù))/(總請(qǐng)求響應(yīng)時(shí)間+真實(shí)用戶總思考時(shí)間)=(虛擬用戶數(shù)×每用戶請(qǐng)求個(gè)數(shù))/(總請(qǐng)求響應(yīng)時(shí)間+虛擬用戶總

49、思考時(shí)間)=吞吐量。三、測(cè)試環(huán)境這里的測(cè)試環(huán)境主要指的軟件硬件環(huán)境和網(wǎng)絡(luò)環(huán)境。筆者認(rèn)為性能測(cè)試最好在一個(gè)獨(dú)立的環(huán)境內(nèi)進(jìn)行,這樣不會(huì)受到外界的干擾,能夠保證測(cè)試的數(shù)據(jù)是獨(dú)立有效的。如果現(xiàn)你對(duì)某個(gè)已經(jīng)上線的網(wǎng)站進(jìn)行壓力測(cè)試,那么你得到的數(shù)據(jù)不是獨(dú)立的,因?yàn)槟阍谧鰤毫y(cè)試的時(shí)候,其它散戶也在訪問(wèn)系統(tǒng)。軟件環(huán)境:這里的軟件環(huán)境主要指項(xiàng)目運(yùn)行的環(huán)境,比如采用什么樣的操作系統(tǒng)、中間件、和數(shù)據(jù)庫(kù)。硬件環(huán)境:這里的硬件環(huán)境除了主要包括主機(jī)內(nèi)部部件,cpu、內(nèi)存、磁盤(pán)以及主板、網(wǎng)卡等,傳輸介質(zhì)和路由器也應(yīng)該考慮在內(nèi),網(wǎng)絡(luò)環(huán)境:網(wǎng)絡(luò)環(huán)境除了考慮測(cè)試機(jī)與被系統(tǒng)服務(wù)器在一個(gè)局域網(wǎng)中進(jìn)行,還應(yīng)該保證這個(gè)網(wǎng)絡(luò)的獨(dú)立性。如

50、果在在性能測(cè)試的過(guò)程中,其它機(jī)子也在消耗著路由器資源。那么路由器也會(huì)影響到數(shù)據(jù)庫(kù)的傳輸速度。四、數(shù)據(jù)準(zhǔn)備在很多時(shí)候,我們是要準(zhǔn)備測(cè)試數(shù)據(jù)的,例如系統(tǒng)不允許相同用戶的重復(fù)登錄,那么必須要生成合法的用戶數(shù)據(jù)。有時(shí)要對(duì)系統(tǒng)進(jìn)行查詢測(cè)試,只有在系統(tǒng)有一定數(shù)據(jù)量進(jìn)才能驗(yàn)證出系統(tǒng)的真實(shí)性能。一個(gè)數(shù)據(jù)庫(kù)中有兩條數(shù)據(jù)和有兩千萬(wàn)條數(shù)據(jù),同相一條查詢操作,對(duì)系統(tǒng)造成的壓力是完全不一樣的。系統(tǒng)所需數(shù)據(jù)的分析可以參考以下方式:歷史數(shù)據(jù)分析有助于數(shù)據(jù)量級(jí)的確定。從歷史數(shù)據(jù)入手,找出高峰期數(shù)據(jù)量。從其他相似或者相同系統(tǒng)入手,進(jìn)行數(shù)據(jù)分析,找出高峰期數(shù)據(jù)量。無(wú)歷史或者相關(guān)系統(tǒng)可以參考的時(shí)候,就要對(duì)系統(tǒng)的性能數(shù)據(jù)進(jìn)行估算,包

51、含系統(tǒng)容量,并發(fā)數(shù)等數(shù)據(jù),估算以后給相關(guān)人員進(jìn)行評(píng)審或者修訂以后,按照大家同意的性能指標(biāo)進(jìn)行測(cè)試。測(cè)試數(shù)據(jù)最好和真實(shí)數(shù)據(jù)相同,如果能夠獲得真實(shí)系統(tǒng)運(yùn)行3個(gè)月的數(shù)據(jù),我們就可以在此基礎(chǔ)上進(jìn)行性能測(cè)試。關(guān)于數(shù)據(jù)的生成,我們可以祝一個(gè)工具完成,如數(shù)據(jù)庫(kù)數(shù)據(jù)生成工具,大小文件生成工具等。五、測(cè)試工具前面已經(jīng)介紹如何分析需求,需求確定下來(lái)之后,我們可以考慮引入什么樣的工具適合性能需求。當(dāng)然,在引入工具的時(shí)候除了考慮可以是否滿足需求,還應(yīng)該考慮工具的成本,這不單指工具的購(gòu)買(mǎi)成本,還有測(cè)試人員對(duì)工具的學(xué)習(xí)成本。關(guān)于測(cè)試工具的選擇,后面會(huì)單獨(dú)有一章節(jié)介紹,這里就不細(xì)說(shuō)了。如果你選擇的性能測(cè)試工具不是足夠的強(qiáng)大

52、的話,你可能還需要其它的輔助的工具。如果jmeter利用badboy來(lái)錄制腳本,更能提高腳本開(kāi)發(fā)效率。在壓力測(cè)試的過(guò)程中也可能需要性能計(jì)數(shù)器來(lái)記錄軟硬件的性能。如監(jiān)控服務(wù)器cpu、內(nèi)存的計(jì)數(shù)器,記錄中間件日志的監(jiān)控中工具,監(jiān)控?cái)?shù)據(jù)庫(kù)性能的監(jiān)控工具等。六、測(cè)試策略對(duì)于一個(gè)特定的業(yè)務(wù)系統(tǒng),用戶一般會(huì)分散在一天的各個(gè)時(shí)間段進(jìn)行訪問(wèn)。在不同的時(shí)間段中,用戶使用業(yè)務(wù)系統(tǒng)的頻率不同,而系統(tǒng)的繁忙程度不同。在一些特定的條件下,可能出現(xiàn)短時(shí)間內(nèi)用戶集中訪問(wèn)某個(gè)業(yè)務(wù)系統(tǒng)的情況。例如對(duì)于公文處理子系統(tǒng)而言,可能就存在短時(shí)間內(nèi)大量用戶查看并辦理某條公文的情況。在進(jìn)行性能測(cè)試時(shí),應(yīng)當(dāng)使用“考慮最壞情況的原則”。也就是

53、應(yīng)當(dāng)在用戶使用業(yè)務(wù)系統(tǒng)最頻繁、對(duì)系統(tǒng)造成最大壓力的情況下對(duì)系統(tǒng)的功能進(jìn)行測(cè)試,判斷各功能和頁(yè)面是否能夠滿足性能的要求,系統(tǒng)的響應(yīng)時(shí)間是否過(guò)長(zhǎng)。另一方面,系統(tǒng)性能的驗(yàn)證必須做到“覆蓋全面”。雖然系統(tǒng)中各個(gè)功能的使用頻率并不相同,一些功能的使用頻率相對(duì)于其他功能來(lái)說(shuō)比較低,但是在進(jìn)行性能測(cè)試和優(yōu)化時(shí),不能忽略這些功能,編制測(cè)試用例時(shí)也不能僅僅選擇最常用功能。例如可能所有的用戶都會(huì)訪問(wèn)我的通知列表,但是一般只有5%的用戶會(huì)使用通過(guò)系統(tǒng)設(shè)置模塊查找某個(gè)用戶的信息;但是在測(cè)試時(shí),我們并不能因?yàn)椴榭从脩粜畔⒐δ艿氖褂妙l率相對(duì)較少,而忽略掉這項(xiàng)功能的測(cè)試。所以,這里進(jìn)行系統(tǒng)性能測(cè)試時(shí),對(duì)于不同業(yè)務(wù),用戶的訪

54、問(wèn)比例應(yīng)該做一個(gè)合理分配。在測(cè)試策略上,我們還應(yīng)該考慮,同一個(gè)系統(tǒng)在不同硬件環(huán)境下的性能表現(xiàn)。從而讓系統(tǒng)滿足需求的情況下,硬件配置也能達(dá)到一個(gè)最佳的狀態(tài)。過(guò)份的增加硬件來(lái)滿足需求也是一種浪費(fèi)。再說(shuō)增加硬件設(shè)備不是能解決所有性能問(wèn)題的。七、人力與時(shí)間安排最后一條,就是要根據(jù)項(xiàng)目的進(jìn)度要求以及規(guī)模,來(lái)進(jìn)行人力與時(shí)間的安排。對(duì)于大型的性能測(cè)試,項(xiàng)目前期的需求調(diào)研,環(huán)境的部署,工具的選購(gòu)或開(kāi)發(fā),人員對(duì)測(cè)試工具的學(xué)習(xí)與使用,性能測(cè)試的后進(jìn)行,后期數(shù)據(jù)的分析與調(diào)優(yōu)。都需要人員安排的。有可以需要專業(yè)的,系統(tǒng)工程師、數(shù)據(jù)庫(kù)工程師、軟件開(kāi)發(fā)工程師、網(wǎng)絡(luò)工程師以及性能測(cè)試工程師的共同參與配合完成。不是一個(gè)性能測(cè)試

55、人員就可以全部搞定的。筆者聽(tīng)說(shuō),最牛x的性能測(cè)試,需要幾個(gè)國(guó)家的十幾個(gè)城市的性能測(cè)試團(tuán)隊(duì)同步時(shí)行。前期的準(zhǔn)備工作就需要幾個(gè)月的時(shí)間。如何把控性能測(cè)試的同步進(jìn)行。后期測(cè)試數(shù)據(jù)的匯總與分析。是一個(gè)非常復(fù)雜的過(guò)程。這個(gè)例子有待考證,我想說(shuō)明的是,對(duì)于大項(xiàng)目的性能測(cè)試,人員與時(shí)間安排也至關(guān)重要。-根據(jù)項(xiàng)目的不同,我們?cè)谧鲂阅軠y(cè)試計(jì)劃椒考慮的問(wèn)題不僅僅上面這些內(nèi)容,這一節(jié)所羅列的內(nèi)容是基本需要考慮的因素。半桶水談性能測(cè)試首先在我的職業(yè)生涯中,做性能測(cè)試的機(jī)會(huì)不多,發(fā)現(xiàn)性能瓶頸的次數(shù)更少,確切的說(shuō)只有2次。隨著大型分布式系統(tǒng),特別是Web App和云計(jì)算的推廣,性能測(cè)試的需求會(huì)更加迫切。今天我這個(gè)半桶水就

56、來(lái)談?wù)勑阅軠y(cè)試的話題,歡迎大家一起來(lái)討論。什么是性能測(cè)試?性能測(cè)試是通過(guò)自動(dòng)化的測(cè)試工具模擬多種正常、峰值以及異常負(fù)載條件來(lái)對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試。負(fù)載測(cè)試和壓力測(cè)試都屬于性能測(cè)試,兩者可以結(jié)合進(jìn)行。通過(guò)負(fù)載測(cè)試,確定在各種工作負(fù)載下系統(tǒng)的性能,目標(biāo)是測(cè)試當(dāng)負(fù)載逐漸增加時(shí),系統(tǒng)各項(xiàng)性能指標(biāo)的變化情況。壓力測(cè)試是通過(guò)確定一個(gè)系統(tǒng)的瓶頸或者不能接收的性能點(diǎn),來(lái)獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測(cè)試。中國(guó)軟件評(píng)測(cè)中心將性能測(cè)試概括為三個(gè)方面:應(yīng)用在客戶端性能的測(cè)試、應(yīng)用在網(wǎng)絡(luò)上性能的測(cè)試和應(yīng)用在服務(wù)器端性能的測(cè)試。通常情況下,三方面有效、合理的結(jié)合,可以達(dá)到對(duì)系統(tǒng)性能全面的分析和瓶頸的預(yù)測(cè)。注意這

57、里提到了三個(gè)方面,但平常我們往往注意力集中在服務(wù)端的性能而忽略了客戶端和網(wǎng)絡(luò)的性能。下面是我這個(gè)半桶水來(lái)談?wù)勔恍w會(huì):一、目的/需求為什么需要做性能測(cè)試或此次做性能測(cè)試的目的是什么?1、新項(xiàng)目/產(chǎn)品,首次發(fā)布,需要做基準(zhǔn)測(cè)試2、使用中的產(chǎn)品,重構(gòu)了某個(gè)模塊/某個(gè)模塊使用了新的技術(shù),需要一個(gè)評(píng)估3、使用中的產(chǎn)品,用戶量爆發(fā)了,用戶量從百萬(wàn)級(jí)增加到千萬(wàn)級(jí)4、增加了一個(gè)或多個(gè)頁(yè)面,需要對(duì)頁(yè)面的Latency進(jìn)行一次測(cè)試在測(cè)試開(kāi)始前,需要有準(zhǔn)備工作,對(duì)此次性能測(cè)試的目的做詳細(xì)了解,確定需要收集哪些數(shù)據(jù),關(guān)注哪些性能指標(biāo)。二、環(huán)境部署性能測(cè)試需要一個(gè)干凈的環(huán)境,這個(gè)環(huán)境包括硬件、網(wǎng)絡(luò)、操作系統(tǒng)、被測(cè)試的系統(tǒng),數(shù)據(jù)庫(kù)。那在開(kāi)始前,需要把這個(gè)環(huán)境部署準(zhǔn)備好,最好是能模擬線上的系統(tǒng),同

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論