一個軟體/程式,是以程序的方式存在的,一個程序可含多個執行緒(一個軟體可以做多個事情,就是基於執行緒而實現的)
並行:
並行使用者數:同一時刻,伺服器/介面接收到的使用者量,例如同一時刻有22個同學同時點選登入按鈕,此時並行使用者數為22
並行請求數/qps/rps:同一時刻伺服器正在處理的請求數 (請求數一般理解為介面的請求數),例如點選登入按鈕後,會同時請求8個介面,則並行請求數為22*8
注意:通常意義上的並行指的是並行使用者數
jmeter效能測試原理:通過模擬高並行來測試伺服器在一段時間內的效能瓶頸/最大並行
1、設定執行緒數(線上程屬性裡設定執行緒數,一個執行緒數即為一個人)
也可以使用排程器設定時間,通常是5min、10min、30min這種比較短的
2、新增集合點(適用於順時並行較高的情景,在jmeter中不用設定所有的情況,在並行高的第一個介面設定)
應用場景:搶購/秒殺(等待執行緒數準備好了再衝)
例子:活動,大轉盤,每天九點開啟,獎品非常豐富,你做效能測試的時候,怎麼模擬這種情況?
設定集合點步驟:
①新增同步定時器
右鍵http請求--->新增---->定時器---->synchronizing timer
②設定定時器
設定並行後,會發現登入介面有的能正常執行,有的報錯,這是因為多個人共用同一個賬號導致的,所以針對這個情況,需要對資料進行引數化
引數化含義:單個執行緒需要單獨的資料,比如登入的賬號和密碼
1、引數化步驟
4.1.1:明確哪些資料需要做引數,資料是從哪裡來的
4.1.2:準備測試賬號
web介面:呼叫介面準備
小程式:生成openID的演演算法來建立測試賬號的token,再把token按照規則插入到Redis和資料庫表中
4.1.3:使用CSV資料檔案設定參照資料檔案
CVS資料檔案設定會自動取出單獨的資料,保證沒分執行緒資料是唯一的
①右鍵執行緒組--->新增---->設定元件---->CSV資料檔案設定
②選取已設定的檔案
③資訊頭管理器中,參照變數
即效能測試結果/效能指標,在測試計劃中新增
右鍵測試計劃--->新增--->監聽器--->聚合報告
指標判斷標準:
不同行業和專案對響應時間會有不同的要求,例如,網際網路:500ms以下,例如淘寶業務10毫秒左右;
金融企業,1秒以下為佳,部分複雜業務3s以下
保險企業:3s以下為佳
製造業:5s以下為佳
一般來說,響應時間都會遵循258原則,即2s以下優秀,2-5s可接受,5-8s良,8s差(不清楚就以8s作為依據)
專案給出的標準 200qps,失敗率不超過0.01%,一般的小公司系統,小於5%即可,比較簡單粗略
tps最主要的作用是用來找效能瓶頸(一般來說,隨著並行數的增加,系統的效能會先穩定增加,之後一段時間系統效能趨於平穩,最後系統效能會下降,系統效能下降的那個點,稱為效能拐點,可得到最大並行)
注:我們在專案中,一般是隻以響應時間、失敗率、CPU使用率來判斷效能指標就夠了