@import url(http://m.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
性能測試環(huán)境與真實環(huán)境的對比 《轉載》
性能測試模擬真實負載是比較困難的。性能測試與真實環(huán)境的對比,通常有這樣一些點:
1.客戶端展現(xiàn)。如果是Web應用,客戶端使用瀏覽器展現(xiàn)的,則一些的壓力測試工具都不具備展現(xiàn)的功能,也就是說,只是模擬發(fā)送http請求到接收請求,而瀏覽器對html內容進行渲染的時間,是無法模擬的,這很可能是真實環(huán)境體驗現(xiàn)測試結果不相同的地方。客戶端展現(xiàn)要與真實環(huán)境相同,必須單獨進行前端性能的分析。
2.網(wǎng)絡速率。性能測試時通常在局域網(wǎng)環(huán)境中,而真實的網(wǎng)絡用戶來自于全國甚至世界各地,其網(wǎng)絡情況不一致,而且有很大的偶然性。除了對壓測工具所在的機器進行一些網(wǎng)絡限速之外,很難完全模擬到真實的網(wǎng)絡負載情況。
3.軟硬件配置。軟件配置比較容易做到與真實環(huán)境一致,但硬件配置通常比較難做到。像線上使用的一些負載均衡機器或者路由設備比較昂貴,不可能在測試環(huán)境采用完全一樣的拓撲和集群,當然這些對測試結果影響通常可以分析到,不會有很大偏差,但這是一個無法完全與線上保持相同的點。
4.數(shù)據(jù)分布。數(shù)據(jù)分布要做到與線上一致有3個難點,1是對新應用而言,根本沒有線上數(shù)據(jù),因此無從模擬,只能手動造數(shù)據(jù),所以無法跟線上一致;2是即使是老的功能,線上數(shù)據(jù)因為商業(yè)機密等原因也未必能直接拿來作為測試數(shù)據(jù);3是用戶的訪問路徑,這點很難與線上做到一致。功能測試尚不能覆蓋掉所有的用戶操作路徑,何況性能測試?
以上四點,都是問題。因此性能測試很多情況下只能作為參考,用來發(fā)現(xiàn)明顯的性能問題。如果要做到100的準確,還是要做線上的即時監(jiān)控才行。
一般性能測試我會考慮4個方面,1、系統(tǒng)本身性能,2、網(wǎng)絡條件,3、軟件環(huán)境 4、硬件條件。
設計性能測試方案時,首先確認,你這個方案主要的目標是什么,然后就會有根據(jù)的進行測試設計了。
例如, 有個性能需求是:測試系統(tǒng)某個功能的大數(shù)據(jù)量(數(shù)據(jù)量級別)的查詢速度<3s,或者多用戶(100用戶)同時查詢時的查詢速度<3s。 其實這個需求的條件是不明確的。 這個只有條件1, 對于2、3、4條件都沒有明確的規(guī)定。 那么這個就需要你去補齊這些條件數(shù)據(jù)。
條件4:服務器硬件條件,這個在購買服務器時,對于硬件指標能達到什么級別,都會有一個比較明確的范圍的。如:硬件內存可以滿足多少事務處理,處理事務的速度等等
條件3:服務器軟件環(huán)境,如中間件,數(shù)據(jù)庫等,是否有連接限制,數(shù)據(jù)庫本身性能能否滿足足夠的大數(shù)據(jù)量存儲等。
條件2:服務器的網(wǎng)絡上下行速率如何,客戶端的網(wǎng)絡上下行速率又如何,網(wǎng)絡條件是很能影響測試結果的一個條件。
那么,對于上面的性能需求,因為你需要驗證的是系統(tǒng)本身的性能是否達到要求。那么條件2、3、4是可變的。
簡單的一個方案就是:
條件2 條件3 條件4
1 A C E
2 B D F
3 A D F
4 B C E
5 A D E
6 B C F
滿足上面的一行條件,然后去驗證 上面的性能需求是否達到要求,并且還要延伸做的是,在該條件下,能該性能指標能最大能達到什么數(shù)值。
然后對結果進行對比分析, 其實性能測試的方案設計及過程并不難,難的是結果的對比分析,這個需要靠經(jīng)驗和對性能指標的敏感度才能很好的體現(xiàn)。
以此類推,對于其他單個條件的,多個條件的性能測試,同樣可以按照這個嘗試。
當然,性能本身就是一個受很多因素影響的,簡單的分類肯定不能滿足實際的復雜程度,
但是個人覺得,我們把實際復雜的場景合理的簡單化,其實對系統(tǒng)的發(fā)展是有幫助的
posted on 2013-09-26 14:21
zouhui 閱讀(173)
評論(0) 編輯 收藏 所屬分類:
2.軟件測試 性能自動化