Jmeter入門 Mac版


前言  

  上篇已經給大家介紹了一款自動化測試工具--locust。從介紹中可以我們知道locust是基於python語言進行自動化測試,所以需要有python基礎。而今天要給大家介紹的是Java開發常用並且可以說是官方標配的工具--Jmeter。

安裝配置

  因為Jmeter是使用JAVA寫的,所以使用Jmeter之前,需要安裝JAVA環境。(本人目前使用的是Jmeter 5.4.1 官方推薦搭配jdk1.8+使用)

  在這里給大家貼上Jmeter和Java下載地址:Jmeter 、 Java

  Java下載完后還需要配置環境變量,這里也簡單的介紹一下

  1、命令行運行'vi .bash_profile',在最下面添加JAVA_HOME和PATH.

 

 

   2、很多同學不知道Java安裝路徑,這里教大家一個簡單的命令 ‘which java’

 

  3、執行'source .bash_profile' 或者在 .zshrz內加上‘source ~/.bash_profile’

 

 

   4、執行 ‘java -version’查看java環境是否配置成功

 

 

   5、 將下載的Jmeter解壓,得到以下目錄結構,這里就簡單介紹lib和bin這兩個包。    

 

 

  5.1、jmeter目錄下的lib和java里的lib是一樣的概念,主要存放的是各種依賴(官方提供了一些通用的jar,也可以往里面添加第三方/自定義jar)

 

  bin目錄主要存放核心的運行文件、配置文件、日志等

 

 

   6、Jemter其他配置

  6.1、永久漢化--修改jmeter.properties文件,全文搜索language,並修改此處為‘language=zh_CN’.(注意將前面的“#”去掉)

  6.2、Jmeter快捷開啟--對運行文件進行alias。編輯‘vi .bash_profile’,輸入`alias jmeter="/Users/Jackpot/Downloads/apache-jmeter-5.4.1/bin/jmeter ; exit;"`

  6.3 只需在命令行輸入alias別稱就可以快速開啟jmeter.(我這里寫的別稱是“jmeter”)

 

  6.4 如果不進行6.2 6.3這兩步設置,那么每次啟動jmeter就必須輸入全路徑/進入jmeter的bin目錄執行`sh jmeter`  

 

 注意:dos控制台是不能關閉的呦。一旦關閉,啟動的Jmeter工具也會自動退出。

測試請求配置

  一、新增線程組。

  線程組用來模擬用戶。一個線程組模塊可以包含多個線程,每個線程代表一個用戶,這樣可以模擬高並發下的請求,並根據網站的響應信息來判斷網站的相關性能。

  1.1 線程組的基本配置

 

   1.2 、`在取樣器錯誤后要執行的動作`解釋

  繼續:某一個請求遇到錯誤后,其他請求繼續執行。我們在大量用戶並發的時候,某個請求失敗屬正常現象。

  啟動下一進程循環:如遇到錯誤后面的請求將不再執行,等下一輪再開始執行。例如線程組中包含登錄和退出兩個請求,若登錄請求失敗,退出請求將不再執行,等下一次重新迭代,從登錄開始執行。

  停止線程:遇到錯誤就停止線程再也不執行了。例如線程組中有50個線程,其中某一個線程的某個請求遇到錯誤即停止線程不再執行,剩下49個線程繼續執行。若線程錯誤的比較多,剩余的線程就較少,此時負載數量就不足了,測試結果不滿足測試要求,因此一般不會勾選此項。

  停止測試:某個線程某個請求遇到錯誤,停止所有線程,也就是停止整個測試,但是線程中的余下的請求還是會執行完再停止。例如線程組中包含登錄和退出兩個請求,其他線程遇到錯誤,現在要全部停下來,線程組退出請求還是會執行,然后再停止測試。

  立即停止測試:遇到錯誤立即停止所有線程,即整個測試。

  二、 構建HTTP請求

 

  下面的配置對於Java開發已經很熟悉吧。和Postman風格還是有那么幾分相像的。

 

   注:我這里都是使用的json格式的請求參數上,如果是文件上傳,可以勾選上面的`對post使用multipart/form-data`

  三、封裝請求頭

 

 請求頭的封裝是最簡單的,只需要從WEB頁面上講請求頭全部復制,然后粘貼就行

  四、添加斷言

 

   這里我推薦使用BeanShell斷言--BeanShell是基於Java語法的腳本語言,通過BeanShell可以對請求數據、響應數據或環境變量進行更加靈活的處理和判斷。

   關於BeanShell語法,可以參考JMeter使用BeanShell斷言

 

 

   BeanShell斷言中可以通過ResponseCode、ResponseHeaders及pre.getResponseDataAsString()來分別獲得String格式的響應狀態碼、響應頭、響應體數據,結合if判斷通過變量Failure=false或Failure=true來設置斷言是否通過,當設置Failure=true時,還可以設置FailureMessage來設置失敗原因。

  

  從上面的腳本可以清晰明了的看出來,完全就是java的語法,甚至還支持導包。說到導包我還得在提醒一句--導入的包必須是在Jmeter/lib內有的jar包,如果不存在可以手動添加到lib內

  五 察看結果樹  

 

  頁面上需要進行配置的地方也很少,有用的就兩個地方--請求/響應格式、顯示的日志內容

 

 

  六 執行啟動

  這個頁面給大家說一下紅色框里面的內容,這兩塊內容都是第一步創建`線程組`時創建的持續時間和周期,具體的含義就是“4個線程循環一次,持續時間為10s” 

   當⚠️標示旁邊出現紅色數字時,表示程序運行過程中出錯了,紅色的數字就是錯誤的個數。點擊⚠️,下面就會出現具體的錯誤日志。如上的日志就是說BeanShell斷言錯誤,我的錯誤原因是因為未在jmeter/lib內添加json.jar 直接導入org.json.*。在網上下載相應的jar文件並放到lib目錄下,再次運行就可以了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM