效能測試理論知識(二)
面試工程中,效能測試你測什麼?關注的點是什麼?
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萬
測試分析: 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、新建環境變數把複製的路徑放到裡面