性能測試通過幾種方式造數據
本文說的數據量主要包括基礎數據量(或者叫歷史數據量、墊底數據量、數據庫中已有的數據量)和參數化數據量,數據量在性能測試中起到非常重要的作用。對於在數據庫中只有幾條記錄和有幾億條記錄裏面查詢信息,那麽結果肯定相差非常大的,隨著業務量的增長,記錄也越來越多,因此在性能測試過程中,需要保持跟生產上相同級別的數據量。生產系統中業務中使用不同的數據、那麽我們在測試的時候需要考慮參數數據量的大小和數據分布的問題。
如果基礎數據量跟生產環境的基礎數據量不在同一個數量級上,將會導致相關指標例如響應時間比生產上快很多,不真實,甚至導致測試結果沒有參考意義。如果參數化數據量過少、未考慮數據分布的情況,將會導致測試結果不真實,甚至測試結果沒有參考意義。
基礎數據量:
測試環境基礎數據量需要跟生產環境基礎數據量保持在同一個數據量級上,一般情況下需要考慮未來三年數據量增長趨勢,如果增長過快需要在測試環境造非常多的數據。
參數化數據量:
1)參數化數據量盡可能的多,必要的情況下,可以清除緩存或者用寫代碼的方式提供參數化。
2)參數化數據分布,如果業務有明顯的地域等分布的特征,需要考慮數據分布的情況。
數據量預置的方法:
1)從生產庫導數據---最優方案
2)存儲過程生產數據,也可以寫腳本---建議登錄用戶數據使用存儲過程生產
3)loadrunner或jmeter生產---過程業務數據建議使用工具生產,數據比較真實
4)DataFactory 數據工廠生產數據------上手比較慢
ps:造數據盡量真實,這個很重要。例如:我們利用某個字段進行索引查詢,但是該字段全是一樣的,不僅沒有減少數據庫的壓力,反而增加了。
預置數據的腳本(具體腳本請移步飛測群):
1)mysql存儲過程樣例:
2)oracle存儲過程樣例:
3)java腳本生產數據樣例:
性能測試通過幾種方式造數據