1. 程式人生 > 其它 >效能測試理論知識(二)

效能測試理論知識(二)

面試工程中,效能測試你測什麼?關注的點是什麼?

1、程式的響應時間,系統的吞吐量,以及併發使用者數,和tps,qps以及DB的iops,和伺服器的系統資源(CPU和記憶體)

2、通過一定的工具或者程式碼的方式,來驗證被測的程式是否滿足效能測試的目標,以及驗證程式是否會出現oom,系統無響應,系統崩潰等情況

 

工作流程:

1、清楚效能測試目標是什麼?

2、用什麼工具怎麼去做?

3、過程中你需要收集資料

4、一定要有結論

 

效能測試模型也可以理解為效能測試步驟,具體彙總為如下: 測試前期準備 測試工具技術引入 效能測試計劃 測試設計與開發 測試執行與管理,資料收集 測試分析

 

面試題:

1、在效能測試之前,請根據順序簡述下需要有哪些測試工作準備

 

效能測試的過程中,測試環境的資源配置與生產環境的資源必須是一致的。

 

測試的前期準備工作:

1、梳理清楚效能測試的目標(參考之前的歷史資料,效能的目標有測試主導梳理出來,但是和大家一起溝通決定下來)

2、在目標清楚的基礎上梳理測試場景和準備測試資料

3、準備測試的資源(人力資源,機器資源)

 

測試工具技術引入:

1、loadRunner HP惠普公司研發的工具,主要在工業級的效能測試中具有非常大的優勢,他是收費的。

2、jmeter 是Apache基金會頂級的專案,是Java語言百分之百開發的,在頭部網際網路公司基本上都進行二次開發引用非常廣泛,他是開源的

3、locust是Python程式碼級別的效能測試工具,他是基於協程(微小的執行緒)

 

效能測試計劃:

1、具體測試場景執行的,負責人,和執行的開始介紹時間

2、前置工作內容

3、具體使用到的測試技術

 

測試設計與開發:

編寫指令碼來驗證具體的測試場景

 

測試執行與管理,資料蒐集:

1、在指令碼編寫的基礎上執行以及驗證測試場景

2、我們在測試的過程中需要收集資料(效能計數器) A、伺服器系統資源:CPU和Memory B、DB的資源:IOPS,連線數 C、服務資源:響應時間(最大,最小,平均,中位數(50%),90%,95%,99%),吞吐量,併發數

3、資料收集的思路:把這些資料寫到InfluxDB(時序資料庫),最後展示在Grafana的平臺上

 

場景:針對一碼通的系統,需要做併發的測試,目標資料是每秒併發15萬 1、5萬 2、10萬 3、15萬 4、20萬 5、25萬

 

測試分析: 1、結合收集到的資料分析是否和最初制定的效能測試目標吻合,如果達到了目標,輸出效能測試的報告

2、如果沒有達到目標,那麼開發繼續調整,優化,測試繼續測試

 

Locust:https://locust.io/

jmeter:https://jmeter.apache.org/

 

java -version

javac

 

當我們Java環境部署完畢之後需要在cmd中輸入命令來驗證:jvisualvm

JVM監控工具

 

驗收負載測試

在QA的環境模擬生產執行的業務壓力和使用場景組合,測試系統的效能是否滿足生產環境的效能訴求。

環境: 1、測試環境(QA) 2、預釋出環境 3、生產環境(線上)

 

測試環境沒問題到生產環境就有問題,這時候我們增加預釋出環境,現在預釋出環境測試,沒有問題了在上生成環境

 

負載測試

在被測系統上持續不斷的增加壓力,直到效能指標(響應時間等)超過預定指標或者某種資源(CPU&記憶體)使用已達到飽和狀態。核心是找到系統的處理極限,為系統調優提供資料,從而達到了解系統性能的容量。

 

壓力測試

該方法是指系統在一定飽和狀態下,具體如CPU,記憶體等飽和使用的情況下,系統能夠處理的會話能力,以及系統是否會出現錯誤,比如TimeOut,OOM,OverStackExpection(堆疊異常)。壓力測試的特點: 檢查系統在處於壓力情況下時應用的效能表現 等價於負載測試,使系統的資源處於一個瓶頸的狀態(建議CPU和記憶體在75%以上) 這種方式一般用於測試系統的穩定性

TimeOut:超時 OOM(Java.lang.Out Of Memory):記憶體洩露 OverStackExpection:堆疊溢位

 

系統的穩定性:被測系統在系統資源飽和的狀態下,依然能夠很好的處理系統的業務邏輯

比如說我們拿一碼通舉例,在一碼通系統資源飽和的情況下我們是否還能開啟二維碼健康碼,是否還能檢視核酸檢驗結果

 

配置測試

被測環境軟硬體環境引數的調整,達到最優的分配原則。

 

併發測試

模擬使用者的併發訪問,測試多使用者併發訪問同一個應用時是否存在死鎖或者其他的問題,併發測試的特點是:

1、發現系統中可能隱藏的併發訪問的問題

2、關注系統可能存在的併發問題,如記憶體洩露,執行緒鎖,資源爭用情況

3、使用的測試工具如profiler等

 

可靠性測試

給系統載入一定的業務壓力,讓應用持續執行一段時間,測試系統在這種條件下是否能穩定執行。

 

被測物件往往是一個服務,服務一般都會提供介面,那麼我們直接訪問這個介面可以來測試這個服務。

 

配置jmeter的環境變數

1、找到jmeter下載安裝包解壓過後的bin目錄,並複製路徑

2、 在系統環境變數中找到pash配置他的環境

 

 3、新建環境變數把複製的路徑放到裡面