軟件測(cè)試中性能測(cè)試中設(shè)置思考時(shí)間的作用
性能測(cè)試是通過自動(dòng)化的測(cè)試工具模擬多種正常、峰值以及異常負(fù)載條件來對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試。負(fù)載測(cè)試和壓力測(cè)試都屬于性能測(cè)試,兩者可以結(jié)合進(jìn)行。通過負(fù)載測(cè)試,確定在各種工作負(fù)載下系統(tǒng)的性能,目標(biāo)是測(cè)試當(dāng)負(fù)載逐漸增加時(shí),系統(tǒng)各項(xiàng)性能指標(biāo)的變化情況。壓力測(cè)試是通過確定一個(gè)系統(tǒng)的瓶頸或者不能接收的性能點(diǎn),來獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測(cè)試。
吞吐量,這指的是服務(wù)器系統(tǒng)(包括軟件和硬件)單位時(shí)間內(nèi)處理業(yè)務(wù)的數(shù)量。我們現(xiàn)在做一個(gè)小試驗(yàn),寫一個(gè)小程序,執(zhí)行一個(gè)簡(jiǎn)單的業(yè)務(wù),并且在程序中進(jìn)行計(jì)時(shí),計(jì)算每分鐘能執(zhí)行多少次。然后當(dāng)我們運(yùn)行1路這個(gè)程序的時(shí)候,每分鐘能完成約6萬次。好,現(xiàn)在問一個(gè)問題,如果我們起2路,是不是每一路都能達(dá)到 6萬/分鐘 的吞吐量?
試驗(yàn)發(fā)現(xiàn),當(dāng)運(yùn)行2路的時(shí)候,兩個(gè)程序的數(shù)值都降了下來,但是它們的總和仍然是6萬次。而且不管我們起多少路,這些程序的性能總和都接近于6萬。
這就好像一個(gè)人1分鐘最快能吃1個(gè)饅頭,你讓他一個(gè)一個(gè)吃,他兩分鐘能吃2個(gè),如果你讓他一手拿一個(gè),同時(shí)吃,他兩分鐘吃不了4個(gè),還是只能吃兩個(gè)。
我們不是在說“考慮時(shí)間”么,哈哈,別急,因?yàn)樯厦娴膯栴}必須要先說清楚。
如果我們需要進(jìn)行性能測(cè)試的業(yè)務(wù)是一個(gè)單純的業(yè)務(wù),就好像上面舉的那個(gè)例子一樣,那么測(cè)試腳本中就不需要設(shè)置“考慮時(shí)間”,因?yàn)椴还苣阌檬裁捶椒y(cè)試,一個(gè)服務(wù)系統(tǒng)處理單一業(yè)務(wù)的吞吐量總是一個(gè)定值。
但是在實(shí)際環(huán)境里面,往往一個(gè)系統(tǒng)都是要處理多種業(yè)務(wù),并且這些業(yè)務(wù)之間是有邏輯關(guān)系的。舉例說明,比如一個(gè)論壇系統(tǒng),每天最常處理的業(yè)務(wù)有兩個(gè):A打開帖子、B回復(fù)帖子。那么每天系統(tǒng)處理AB業(yè)務(wù)的總數(shù)是不是一樣的呢,答案很明顯,看帖子多,回復(fù)的少一些。假設(shè)A:B=2:1。
好,如果我們不設(shè)置考慮時(shí)間,起2路A的腳本,1路B的腳本進(jìn)行性能測(cè)試,我們會(huì)得到什么結(jié)果呢?我們會(huì)得到這兩個(gè)業(yè)務(wù)的吞吐量,并且能算出每個(gè)小時(shí)系統(tǒng)完成A、B業(yè)務(wù)的總數(shù),吞吐量 × 時(shí)間 = 總數(shù)。
這時(shí)我們發(fā)現(xiàn),同樣時(shí)間,AB業(yè)務(wù)的處理總數(shù)卻不是2:1的關(guān)系,這是為什么呢?原因是這樣的,我們?cè)谂蹵B腳本的時(shí)候,這兩組腳本都在盡全力爭(zhēng)奪服務(wù)器的資源,他們的并發(fā)路數(shù)雖然是2:1,但是給服務(wù)器的壓力卻不一定是2:1,可能會(huì)出現(xiàn)偏差,測(cè)試結(jié)果就是最好的證據(jù)。A查看帖子由于響應(yīng)時(shí)間短,因此跑的次數(shù)更多,最后的比例可能是4:1。
那么這樣的結(jié)果有什么問題呢?偨Y(jié)為一句話:測(cè)試環(huán)境的業(yè)務(wù)和真實(shí)環(huán)境不符,這樣測(cè)出的數(shù)據(jù)沒有價(jià)值。即使測(cè)試通過,也不能證明真實(shí)環(huán)境是ok的;或者即使測(cè)試不通過,也不能說明真實(shí)環(huán)境不ok,呵呵。
比如上面的例子,如果我們測(cè)出的結(jié)果是B回復(fù)帖子的吞吐量不夠,響應(yīng)時(shí)間太長,那可能是因?yàn)锳業(yè)務(wù)搶走了過多的,本不屬于A的資源,而引起了B的性能降低。
說到這里,大家應(yīng)該明白了,我們?cè)O(shè)置考慮時(shí)間,是為了保證測(cè)試復(fù)合業(yè)務(wù)的時(shí)候,各個(gè)業(yè)務(wù)之間的比例關(guān)系符合我們的真實(shí)生產(chǎn)環(huán)境。
相關(guān)推薦:考試吧策劃:2010年軟件水平考試完全指南北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |