1. 程式人生 > >【測試123】性能測試之壓力測試

【測試123】性能測試之壓力測試

註冊 靜態 影響 用戶數 sql 另一個 準備 插入數據 fff

https://sq.163yun.com/blog/article/196036888966840320

線上問題:由於上遊某系統數據分布突變,引起下遊本系統的一個特定時間性能指標未達線。

性能需求:

1. 調整數據分布,重新測量系統在新的壓力場景下的吞吐量和關鍵性能指標,及此特定時間

2. 需要提高系統的處理能力,使得此時間性能達標,並且對其他性能指標無大幅度影響

一、性能測試數據準備

1. 鋪底數據準備

鋪底數據有目的: 鋪底數據的首要目的是讓性能測試環境與線上保持一致,或者說接近線上真實情況。

鋪底數據量多少合適? 這個完全根據產品的規模來預估,比如產品預計半年後註冊用戶數達到100w,則鋪底的時候需要鋪底100w用戶賬號。 如果是已上線產品,根據線上數據庫數據量進行預估,可以根據用戶規模的比列進行鋪底,如線上註冊用戶數一千萬,線下鋪底註冊用戶數100w,則總體數據規模為線上的十分之一左右。實際情況下,這裏會略微復雜,比如還要考慮線上數據庫集群和測試集群的硬件差異等,需做適當的調整。

1) 一個是保證待測系統有一定的規模,比如半年或一年後的用戶規模。 只做鋪底,在壓測中不會訪問到的數據。

這部分數據是為了使數據庫達到一定的規模,以發現數據庫查詢、更新等性能瓶頸,如忘記建立索引,查詢SQL不合理等問題。

只為鋪底,壓測時不會用到的這部分數據,在預設的過程中就比較隨意了,不用考慮數據是否合理,也不用考慮業務關聯關系,只要符合數據庫設計規則,能插入數據庫即可。

===》 本次測試:維持系統數據庫中的歷史數據為過去半年的數據量不變。

2) 另一個是為壓測做準備,準備每個要壓測的請求需要使用到的數據,這部分數據涉及到具體的業務,對性能測試結果影響比較大,具體說明可參考“參數化數據準備”章節。

在壓測時要用到的數據,比如API要傳參過去的數據,或者請求響應數據。這部分數據在鋪底的時候就要精細化的設計,包括數據大小,數量,分布等。

===》本次測試:為保證系統對輸入數據滿足預設分布的前提之下,還要滿足預設業務邏輯處理輸出的分布要求,對相應的數據庫靜態數據提前設定。

2. 參數化數據準備

二、性能測試數據準備方法

1. 從線上數據庫導入真實數據

2. 根據業務規則構造模擬數據

【測試123】性能測試之壓力測試