為什么要做性能測驗?
優化:后端代碼、sql陳述句、表設計,
**性能指標:**回應時間、并發量、錯誤率、吞吐量(tps/qps)、CPU、記憶體,
**回應時間:**遵循2/5/8原則;(在一定并發量的前提下,回應時間為2秒完全ok,回應時間為2~5秒也可以接受,回應時間超過5秒可以直接讓開發優化代碼了);
**并發量:**大概支持多少用戶同時發起請求;(根據公司業務決定,如果用戶量本身就不多,那并發量是可以酌情考慮的);
**錯誤率:**發送請求無回應;(不能超過0.5%);
**吞吐量:**單位時間內處理事務的能力,(吞吐量在100左右)(一個請求一個回應就是一個事務);
**CPU:**看服務器的CPU,(不能超過80%);
**記憶體:**看服務器的記憶體,(不能超過80%),
性能測驗是什么?
基于協議模擬用戶發出請求,對服務形成一定負載, 來測驗服務器性能指標是否滿足要求,性能指標關注點:時間性能(回應時間),空間性能(cpu/記憶體),
總結就是:多快好省!!!!
多:容納用戶量多;
快:回應時間快;
好:穩定性好,錯誤率少;
省:省資源,
性能測驗工具
loadrunner:企業級的,記憶體非常大;
jmeter:開源,免費,基于java撰寫,支持介面測驗、負載、壓力測驗等,多平臺支持,支持多協議,
jmeter
作用:介面測驗,性能測驗,資料庫測驗,性能測驗做的比較多,
下載jmeter之后,首先配置環境變數(不要出現中文和空格):此電腦右鍵,點擊屬性,點擊高級系統設定,在系統變數中點擊新建,變數名:JMETER_HOME,變數值:一定要到bin目錄(bin屬于那個目錄,把這個目錄拿過來),然后把%JMETER_HOME%\bin填充到path中,最終我們要啟動的是jmeter.bat,在黑視窗中輸入jmeter,就會幫我們打開jmeter,


執行緒組:
行程:一個正在執行的程式對應一個執行緒;
執行緒:一個行程里有多個執行執行緒;
執行緒組:按照執行緒性質對執行緒分組
二者關系:一個行程有多個執行緒組,一個執行緒組有多個執行緒,


我們可以先使用兩個普通的介面做正確錯誤對比:
正確的介面請求中可以看到連接方式、服務器的域名、客服端依據什么訪問的(還有我們jdk的版本);


我們可以右鍵執行緒組,點擊添加,點擊監聽器,點擊聚合報告,發起請求,就可以查看聚合報告中的資訊,
介面出錯在jmeter中怎么查看
兩種方法:
點擊添加—>點擊監聽器----->查看結果樹(回應資料/顏色)/聚合報告(error),

執行緒數:模擬用戶數量,ramp-Up:時間內完成所有的執行緒,回圈次數:回圈了幾次,


采樣器:
發起http請求:
右鍵執行緒組,點擊添加,點擊sampler,http請求;
1:引數傳遞中Parameters和Body Data不能同時使用,必須要保證其中至少一個為空,否則提示錯誤
2:在傳遞的引數中,介面引數名和引數值兩邊不能有空格,否則會報錯,


監聽器:
右鍵執行緒組–添加–監聽器–聚合報告/查看結果樹
通過顏色判斷介面對不對,紅色代表介面報錯,綠色代表介面正常回應,
取樣器結果:相應行和回應頭資訊一級回應傳遞位元組數和時間;
請求:請求url和引數;
回應資料:回應文本,報錯會有報錯資訊,
日志資訊:
并發量很大,報錯資訊重繪時,會把前面的報錯頂出去,但我們查看報錯資訊,所以勾選僅日志錯誤,創建一個檔案(檔案名.csv),把報錯日志保存在檔案中,可以在檔案中看到日志,


聚合報告:

1.測驗計劃是使用 JMeter 進行測驗的起點,它是其它 JMeter 測驗元件的容器,
2.執行緒組:代表一定數量的并發用戶,它可以用來模擬并發用戶發送請求,
3、取樣器(Sampler):模擬各種請求,所有實際的測驗任務都由取樣器承擔,存在很多種請求,
如:HTTP 、ftp請求等等,
4、監聽器:負責收集測驗結果,同時也被告知了結果顯示的方式,功能是對取樣器的請求結果顯
示、統計一些資料(吞吐量、KB/S……)等,
6、斷言:用于來判斷請求回應的結果是否如用戶所期望,是否正確,非常實用
7、定時器:負責定義請求(執行緒)之間的延遲間隔,模擬對服務器的連續請求,
5、邏輯控制器:允許自定義JMeter發送請求的行為邏輯,它與Sampler結合使用可以模擬復雜的
請求序列,
8. 配置元件維護Sampler需要的配置資訊,并根據實際的需要會修改請求的內容,
9. 前置處理器和后置處理器負責在生成請求之前和之后完成作業,前置處理器常常用來修改請求的
設定,后置處理器則常常用來處理回應的資料,
jmeter斷言操作:
**回應斷言:**回應斷言有很多中方式,可以通過回應文本、回應代碼、回應資訊、url,(一般用回應文本比較多),只要回傳體中包含它的,都可以用斷言來表示,適用多種型別,


**json斷言:**右鍵點擊斷言,點擊json assertion,在json assertion頁面中,$.想要獲取的值,點擊勾選框,在Expacted values輸入資料,進行對比,成功則成功,失敗則會報錯,適用于回傳結果是json型別的,


Xpath斷言: xml路徑語言,確定xm了檔案中某部分的語言,點擊請求右鍵,點擊添加,點擊斷言,點擊XPath Assertion,點擊Use Tidy勾選框啟用下面的格式,在XPath Assertion中添加資料,//*[@id='kw](/:是絕對路徑,//:是相對路徑),


定時器:
創建兩個請求,選擇一個請求,右鍵點擊添加,點擊定時器,點擊固定定時器,有一個執行緒延遲,默認是300毫秒,執行請求,可以在查看結果樹中看到,加了延遲時間的請求,會比沒有加延遲時間的請求延遲出現,


集合點:
集合在某一點,釋放所有執行緒,例:秒殺,
創建執行緒組,創建請求,右鍵請求,點擊添加,點擊定時器,點擊Synchronizing Time,集合點中的資料不需要修改,

邏輯控制器:
事務控制器: 創建執行緒組,點擊添加,點擊邏輯控制器,點擊事務控制器,勾選Generate parent sample,勾選之后實作是無暇的所有請求都是一個整體,事務控制器下的請求看成是一個整體,一個請求出錯,全都顯示為錯誤,


回圈處理器:
創建請求,在一個請求中添加回圈控制器;



HTTP請求默認值:
http請求默認值,會在發送http請求的時候,有一些引數是相同的,可以寫在http請求默認值中,進行使用,



多介面關聯:
在第一個介面中查詢出來的結果是另一個介面的請求引數,
①:點擊第一個請求,點擊后置處理器,點擊json extractor,json提取器, 將拿到的請求結果放在第二個請求中,右鍵請求點擊debug sampler ,驗證json運算式提取的值,



正則運算式:
操作須知
1)確定取值的范圍
2)確定取值的左右邊界,最好是能夠唯一確定的值的邊界
3)如果要查看我們的值是否正確,可以使用Debug Sampler參考${變數名}
點擊請求,點擊添加,點擊后置處理器,點擊正則運算式,




轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/382851.html
標籤:其他
上一篇:Postman的使用教程筆記
