1. 程式人生 > >性能測試之思

性能測試之思

-a 整理 。。 任務 都是 分發策略 我們 應用 負載均衡

最近工作之余,對以往的性能測試相關知識做了整理和復盤,發現了很多之前沒認真思考過的小細節,整理出來,以供參考。。。

1、如何理解性能指標?

在性能測試中,涉及的性能指標有很多,強行記憶理解可能是一件很吃力的事情。對性能指標進行分層劃分,這樣有助於記憶和理解。

在體育運動中,我們都知道提倡“更高、更快、更強”,其實對於系統的性能,我們也可以這麽理解,大概分層如下:

分層 說明
更高 資源:CPU%、Memery%、I/O
更快 速度:TPS、RT/ART
更強 容量、PV、Hit

2、層層分析性能瓶頸

軟件應用是一個很復雜的東西,影響性能表現的因素更多,直接影響OR間接影響,在分析過程中都是需要註意的。下面是一些比較常用的分析方法:

①、分層梳理

梳理層次 舉例說明
業務梳理 業務配比、依賴關系角度
數據梳理 真實數據統計準確性、測試數據失效過期、數據汙染
架構梳理 緩存、集群、負載均衡、分布式、微服務、異步通信、網關
參數梳理 最大連接數、最大線程數、JVM內存分配、timeout、異常/失敗重試次數
場景梳理 異常場景、容量場景、基準場景、並發場景、穩定性場景、多節點場景、容災恢復場景

②、模塊梳理

組成模塊 舉例說明
負載機 高並發下,負載機可能成為限制性能提升的瓶頸
網絡 高吞吐量下,網絡帶寬的不足會成為性能提升的瓶頸
中間件 緩存策略、代理分發策略、服務通信策略
服務器 CPU、Memory
數據庫 索引、鎖、分庫分表、視圖、實例等
操作系統 文件I/O、buffer、cached等

3、性能測試的方法論

①、性能測試場景一定要基於真實環境來模擬;

②、性能測試場景一定要基於具體清晰的指標來構建;

③、場景建模是分析的結果,性能需求分析是場景建模的前提;

④、開展性能測試之前,要設定統一的目標、分析方法、條理分明的流程以及高度的團隊協作和任務分配;

⑤、性能測試,執行監控分析是核心;

4、什麽時候需要關聯

①、服務端value動態返回;

②、數據在後續執行中需要引用;

③、業務場景有前後依賴關系;

5、如何理解ThinkTime?

①、要不要添加ThinkTime?

②、什麽時候用到ThinkTime?

③、用ThinkTime會有什麽效果?

④、ThinkTime是否匹配真實業務場景?

⑤、ThinkTime是否會影響到服務器資源?

6、你真的了解測試目的麽?

①、在什麽環境/條件下執行測試?(硬件配置、軟件版本/參數、測試環境)

②、被測試的系統業務場景是什麽?是否要剔除不必要的業務?

③、如果保證數據的真實性、有效性?如何避免數據汙染帶來的影響?

④、測試策略真的符合預期的目的麽?

⑤、系統的性能表現真的符合實際的生產場景麽?如何量化?

以上就是一些最近思考整理的問題,僅供參考,後續如有新的思考點,會更新,就醬。。。

性能測試之思