測試結果分析完成后,即可進行性能問題確定與優化操作。通常情況下,系統出現性能問題的表象特征有以下幾種:

1.響應時間平穩但較長

測試一開始,響應時間就很長,即使減少線程數量,減少負載,場景快執行結束,響應時間仍然很長。

2.響應時間逐步變長

測試過程中,負載不變,但運行時間越長,響應時間越長,直至出現很多錯誤。

3.響應時間隨著負載變化而變化

負載增加,響應時間變長,負載減少,響應時間下降,資源使用率也下降。

4.數據積累導致鎖定

起初運行正常,但數據量積攢到一定量,立刻出現錯誤,無法消除,只能重啟系統。

5.穩定性差

特定場景或運行周期很長以后,突然出現錯誤,系統運行緩慢。
 

Jmeter性能測試系列

以上幾種是筆者在性能測試過程中碰到的幾種性能有問題的特征。一旦出現上述幾種情況,基本可以判定系統存在性能問題。接下來即是針對具體問題具體分析,從而發現問題并提出解決辦法。

響應時間長,系統越來越慢,出現業務錯誤,通常由以下幾種情況造成:

(1)物理內存資源不足

(2)內存泄漏

(3)資源爭用

(4)外部系統交互

(5)業務失敗時頻繁重試,無終止狀態

(6)中間件配置不合理

(7)數據庫連接設置不合理

(8)進程/線程設計錯誤

分析過程中,假設每一個猜想是正確的,然后逐一排除。

結合上述問題,本次性能測試過程中隨機瀏覽購買商品時,出現了填寫收貨地址時間變長、數據庫錯誤等問題,某些指標未能滿足預先設定,故本次性能測試不通過。

性能測試是個嚴謹的推理過程,一切以數據說話,在沒有明確證據證明系統存在性能問題的時候,千萬不可隨意調整代碼、配置、甚至是架構。因為一旦調整了,就必須重新開展功能及性能回歸測試,而且可能影響現網業務。

性能調優后,需做功能及性能的回歸測試,從而保證調優活動正確完成,且未造成額外的影響。