問題:如何進行性能測試建模?在性能測試過程中要建立哪些模型?
宗剛:性能測試過程需要考慮的模型有:業務模型、測試模型、用戶模型TPS模型、數據模型、失效模型、性能模型
業務模型:依據應用系統特點分析出來的不同的業務場景和業務配比。性能測試常常會通過歷史數據分析業務的重要性、交易頻率、易耗資源的交易以及未來的發展趨勢,最后確定一種業務配比。依據這個業務配比設計測試場景。這往往是不夠的,一個線上系統往往有多個業務模型,需要考慮時間驅動的如:白天、晚上、月末、過年過節,事件驅動的如:本拉登去世黃金業務突發變化、業務部門促銷等,第三方驅動:永遠不要相信第三方的內容,所以需要考慮第三方接口的業務突變,延時等等。
測試模型:如何將業務模型的內容轉化為可以測試的內容,就是測試建模需要解決的問題。通過業務建模分析出來的業務需要過濾,剔除一些不易執行的、相互包含的等等業務。最后落地為各種可執行的業務配比,業務配比完成后,需要考慮的是如何和測試工具映射起來,這個就牽涉到用戶模型和TPS模型。用戶模型是指按照業務配比設置發起壓力的用戶比例,這種方法存在一定的局限性,因為不同的交易響應時間是不同的,長交易完成1筆交易,短交易可能是5筆,特別是在較大壓力時,測試結果的業務配比會和真實的業務配比差距很大。所以一般情況下需要考慮TPS模型,這個是和業務模型相同的配比,這個模型的一個劣勢就是需要不斷調整并發用戶數。
數據模型:一個系統的大多數性能問題是數據庫問題,所以墊底數據或參數化數據是否和實際相符將直接影響性能測試的有效性。一般建議性能測試使用清洗后的生產數據,參數化數據盡量采集生產系統一天的交易數據。以前見過一個項目,說有的數據都是通過loadrunner壓進去的,所有數據都集中在一塊,測試結果和實際生產差距巨大,整個測試無效。
失效模型:主要是總結了大量以往生產系統經常出錯的模式,在設計測試案例的時候需要著重考慮。這部分要依據實際情況來定,如果能夠從運維部門獲得更多的事故數據就更有價值。
性能模型:不同的交易對系統的性能要求是不同的,依據測試的數據以及生產環境的數據建立模型,主要解決以下問題:測試環境中測試的數據如何映射到生產環境?生產環境中出現性能問題應該如何預測預防和優雅降級?生產環境應該如何擴容等等。
原文轉自:http://www.blogjava.net/qileilove/archive/2013/04/16/397896.html