一、前言
前面文章已經介紹Apache JMeter的基本概率和如果使用,但作為一個開發人員,自己寫的代碼都應該要好好的COD EREVIEW,好好的自測吧。但是有些場景比如高并發、負載和性能測試的時候,不借助工具是不好進行測試的。Jmter工具設計之初是用于做性能測試的,它在實現對各種接口的調用方面已經做的比較成熟,因此,本次直接使用Jmeter工具來完成對Http接口的測試,因此也建議大家使用這款工具進行測試,比如秒殺、高并發下送券送積分活動等。代碼層面咱再另外分析,實際場景可定會更加復雜,這里先分享下自己的一次完整的測試用例。有不對的或者錯誤的地方還希望大家指正。
二、準備工作
2.1 新增一個測試積分,輸入名稱后點擊保存到一個地方,我這里選的D盤
?
2.2 ?新增一個線程組命名并保存
?
2.3 ?新增一個默認的HTTP Cookie 管理器,如果是服務器要驗證登錄信息等,可以添加對應的會員登錄信息。
?
2.4 新增HTTP信息頭管理器!參數Content-Type:application/json,表示你的POST請求是JSON格式的
?
2.5?HTTP請求默認值,這個管理器可以添加多個的,發起時可以組合成一個,非常方便
?
2.6 添加HTTP請求以及相應的監控器,這里因為配置了默認的HTTP默認參數,所有HTTP請求這里可以不填.
2.7 設置用戶領取積分限額,這個在自己的代碼層設置
point.setMaxTotalLimit(Long.valueOf(100000)); //總發送積分數
point.setMaxLimit(Long.valueOf(1000)); //每人最大領取數
point.setNumPerDay(Long.valueOf(10)); //每人每天最大領取數
point.setPoint(1); //單次發放積分數
三、測試結果
3.1 圖形監聽結果
3.1 http請求監聽查看樹結果
3.1?Summary Report看板
?
3.1 數據庫查看成功領取積分數記錄,這里查到正確領取次數為10次,并沒有出現超發的情況!
?
四、總結
4.1 亂碼問題,如果出現返回結果亂碼問題,可以在D:\apache-jmeter-3.2\bin目錄下的jmeter.properties文件 把sampleresult.default.encoding=UTF-8
4.2?Summary Report監聽器相關參數解釋:
-
- Label:每個 JMeter 的 element(例如 HTTP Request)都有一個 Name 屬性,這里顯示的就是 Name 屬性的值
- #Samples:表示你這次測試中一共發出了多少個請求,如果模擬10個用戶,每個用戶迭代10次,那么這里顯示100
- Average:平均響應時間——默認情況下是單個 Request 的平均響應時間,當使用了 Transaction Controller 時,也可以以Transaction 為單位顯示平均響應時間
- Median:中位數,也就是 50% 用戶的響應時間
- 90% Line:90% 用戶的響應時間
- Min:最小響應時間
- Max:最大響應時間
- Error%:本次測試中出現錯誤的請求的數量/請求的總數
- Throughput:吞吐量——默認情況下表示每秒完成的請求數(Request per Second),當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction perSecond 數
- KB/Sec:每秒從服務器端接收到的數據量,相當于LoadRunner中的Throughput/Sec
?