Jmeter是apacheg公司基於Java開發的一款開源的壓力測試工具,安裝Jmeter之前先安裝Jdk,具體JDK安裝和環境變量配置自行百度。這里不概述。
1.添加線程組
測試計划->添加->Threads->線程組
線程組相當於有多個用戶,同時去執行相同的一批次任務。每個線程之間都是隔離的,互不影響的。一個線程的執行過程中,操作的變量,不會影響其他線程的變量值
2.添加HTTP請求
線程組->添加->Sampler->HTTP請求
3.獲取所有學生接口
接口文檔描述如下:
簡要描述:
- 獲取學生信息接口
請求URL:
http://api.nnzhp.cn/api/user/stu_info
請求方式:
- GET
請求參數:
添加察看結構樹查看程序響應數據,線程組->添加->監聽器->察看結果樹,如下圖:
3.1 Jmeter察看結果樹中亂碼:
(1)在jmeter的bin目錄下找到jmeter.properties這個文件添加:sampleresult.default.encoding=utf-8
(2)重啟jmeter
Jmeter body data里面有亂碼怎么解決
(1)在jmeter的bin目錄下找到jmeter.properties這個文件添加:jsyntaxtextarea.font.family=Hack
(2)重啟jmeter
3.2 Jmeter參數化
所有的接口測試的訪問域名和端口都一樣時,一旦服務器地址變更,修改每個接口的IP或域名很費事的。我們可以將其參數化,方便操作
(1)用戶定義的變量
定義變量,填寫正確的值,通過名稱調用,調用格式為${IP},IP也可以通過HTTP請求默認值設置
(2)選項-函數助手對話框中的函數
- __Random(隨機數):random設置取值范圍,填寫值后,點擊生成,調用時直接復制函數字符串即可,隨機取值。
- __counter(自增):counter設置起始值無效,設置結束值無效,默認就是從1開始,只能通過線程數控制執行次數,填寫值后,點擊生成,調用時直接復制函數字符串即可!
- __time(時間):時間戳${_time(,)},時間戳表示從計算機發明那一天到現在過了多少秒,去掉后三位,再用轉化器轉化到現在的時分秒。
- 使用當時時間${__time(YYYYMMdd-HH:mm:ss,)}
(3)從文件中讀取參數:
首先,點擊線程組->添加->配置原件->CSV Data Set Config
第二步,准備文件,設置參數化變量名稱,文件路徑等。讀取文件中的數據時,使用數據對應的變量名,格式為${studi},${gold}
3.3 關聯
Jmeter中,用jp@gc-JSON PATH Extrator插件,可以獲取上個接口的響應數據,用在第二個接口中。
舉例:如何從JSON響應結果中獲取登錄接口的Sign值,Json中的數據整體是一個字典,字典dict嵌套list,list又嵌套字典dict.
按下標法取值,login_info是字典的第二個元素即dict.login_info.sign/dict["login_info"]["sign"]
3.4上傳文件