【IT168 評(píng)論】
什么是性能測(cè)試?國(guó)內(nèi)眾說紛紜,理解各不相同。很難說清楚,在此截取一段英文的資料,小二在此不敢妄加翻譯。
In software engineering, performance testing is testing that is performed, from one perspective, to determine how fast some aspect of a system performs under a particular workload. It can also serve to validate and verify other quality attributes of the system, such as scalability, reliability and resource usage.
從技術(shù)類型來看,當(dāng)前主流的技術(shù)框架,有C/S和B/S。當(dāng)然,性能測(cè)試也相應(yīng)的分成這兩種。它們的測(cè)試方法,是不相同的。
C/S架構(gòu)的系統(tǒng),性能方面主要關(guān)心的是接口,以及數(shù)據(jù)庫端是否能承受得住壓力,還有數(shù)據(jù)庫是否存在并發(fā)問題。C/S架構(gòu)形式多樣,雖然關(guān)注的地方比較單一,但是性能測(cè)試非常復(fù)雜,針對(duì)不同的內(nèi)容,可能方法完全不一樣。在此,不做討論。
B/S架構(gòu)的系統(tǒng),性能方面關(guān)注的內(nèi)容比C/S豐富的多。經(jīng)典的web框架,分三層結(jié)構(gòu):客戶顯示層、業(yè)務(wù)邏輯層、數(shù)據(jù)庫層。隨著技術(shù)的發(fā)展,業(yè)務(wù)邏輯層又被拆分成很多層次,例如應(yīng)用層、基礎(chǔ)服務(wù)層、消息同步層、cache等等。業(yè)務(wù)邏輯層又可以使用多種中間件實(shí)現(xiàn),比如java開發(fā)的系統(tǒng),會(huì)用到 jboss。整個(gè)系統(tǒng)的性能,除了jboss,還依賴于apache、網(wǎng)絡(luò)、數(shù)據(jù)庫性能等。
計(jì)算機(jī)技術(shù)已經(jīng)廣泛應(yīng)用于企業(yè)管理、互聯(lián)網(wǎng)絡(luò)等方面,相應(yīng)的也誕生了辦公使用的OA系統(tǒng)和大型互聯(lián)網(wǎng)站系統(tǒng)?;\統(tǒng)可以劃分為這兩種。例如,人力資源管理系統(tǒng)、移動(dòng)的信息管理平臺(tái),都應(yīng)該屬于OA系統(tǒng)范疇;而淘寶網(wǎng),應(yīng)該屬于大型互聯(lián)網(wǎng)站系統(tǒng),而且是純粹電子商務(wù)方面的。這里,主要是針對(duì)淘寶網(wǎng)性能測(cè)試的思考。
在淘寶,系統(tǒng)架構(gòu)比上述的輕描淡寫更加復(fù)雜。針對(duì)這么復(fù)雜的大型系統(tǒng),面對(duì)每天巨大的流量、巨大的用戶群體,如何保證網(wǎng)站的性能?保證網(wǎng)站不宕機(jī)?通過性能測(cè)試可以解決這些問題,但是,新的問題又提出了,淘寶網(wǎng)的性能測(cè)試又該如何入手呢?
或許我們很容易想到,通過統(tǒng)計(jì)網(wǎng)站的用戶量,進(jìn)行大量用戶下的性能測(cè)試,就能保證網(wǎng)站的性能。但,事實(shí)真的是這樣嗎?不然。
其實(shí),網(wǎng)站與OA系統(tǒng)是有區(qū)別的。一個(gè)信息管理系統(tǒng),它是一定能計(jì)算出總用戶數(shù)和使用用戶數(shù)的,也能比較準(zhǔn)確的統(tǒng)計(jì)到并發(fā)用戶數(shù),而且在一定時(shí)間內(nèi),系統(tǒng)使用的頻率一定是不高的。但是,一個(gè)超大型的電子商務(wù)網(wǎng)站,面對(duì)幾億的用戶群體,在同一時(shí)間,使用用戶數(shù)是不停變化的,且在同一時(shí)刻,即便用戶在線,也可能點(diǎn)擊瀏覽的是不同的頁面,觸發(fā)的是不同的請(qǐng)求。如果單從并發(fā)用戶的角度去考慮問題,進(jìn)行分析和建模,未必適用。
既然傳統(tǒng)的策略不能用,我們?cè)撛鯓尤ッ鎸?duì)呢?我們需要尋找固定不變的東西,從而找到突破點(diǎn)。從互聯(lián)網(wǎng)的特點(diǎn)出發(fā),可以看到,在線用戶是不斷變化的,但是頁面是固定的。用戶U訪問了P頁面的行為,是能捕獲的。換句話,對(duì)于頁面P,不管當(dāng)前有100個(gè)用戶,還是1000個(gè)用戶在使用,頁面的page view是可以統(tǒng)計(jì)的。這,就是問題的突破口。通過該方式,可以將頁面流量直接轉(zhuǎn)化成page view,做為性能測(cè)試的預(yù)期目標(biāo),而不去care在線用戶數(shù)和并發(fā)用戶數(shù)。得到這個(gè)數(shù)值之后,再通過建模、分析,將它轉(zhuǎn)化成測(cè)試工具可以衡量的指標(biāo),從而使復(fù)雜的模型變得簡(jiǎn)單化。
突破口找到之后,接下來的工作就相對(duì)容易開展些。搭建性能測(cè)試環(huán)境、性能測(cè)試設(shè)計(jì)、性能測(cè)試腳本編寫與執(zhí)行、結(jié)果分析、調(diào)優(yōu)等環(huán)節(jié),都有了依據(jù)。
任何問題的解決,最難克服的就是突破口。
原文:http://tech.it168.com/a2009/0527/578/000000578519.shtml