接口測試工具之JMeter(1)
接口測試工具之JMeter(1)
1.Jmeter簡介
Jmeter是apache公司基於java開發的一款開源壓力測試工具,它是java開發的,所以運行的時候必須要安裝jdk才可以,jmeter是免安裝的,拿到安裝包之後直接解壓就可以使用了,它也是跨平臺的在linux、windows、macos上都可以使用
2.Jmeter使用
2.1 創建http請求流程
1、添加線程組
2、添加http請求
3、在http請求中寫入接口url、路徑、請求方式、參數
4、添加查看結果樹(多個http請求只需添加一個結果樹)
5、調用接口、查看返回值
PS :解決兩個亂碼問題方法
jmeter查看結果樹亂碼
在jmeter的bin目錄下找到jmeter.properties這個文件
1、添加上sampleresult.default.encoding=utf-8
2、重啟jmeter
jmeter body data裏面亂碼
在jmeter的bin目錄下找到jmeter.properties這個文件
1、添加jsyntaxtextarea.font.family=Hack
2、重啟jmeter
2.2 get請求
get請求一:
入參可以放在路徑中或在parameters中添加
get請求二:添加Headers
添加Http信息頭管理器
2.3 post
post請求一:表單提交
post請求二:json提交
post請求三:添加cookie
添加HTTP信息頭管理器
在HTTP信息頭管理器中添加cookie信息,cookie值為上述登錄接口返回結果中的sign值
post請求四:上傳文件
2.4 Jmeter參數化
在調用接口的時候,有入參,那參數裏面的值如果經常變化的話,就得每次去改了,很麻煩,這時候咱們就把需要經常變的值,改成可以變化的或者是咱們提前設置好的一些值,這樣的話,調用的時候就不用每次都改它的值了.
Jmeter參數化的方式有三種
(1)用戶定義的變量
這種就是為了方便管理參數,只能有一個值,比如說ip地址不經常變化的
在線程組中添加一個用戶定義的變量,然後寫key和value就可以了,key就是這個參數的名稱,也就是你在腳本裏面取的值,value就是具體值了。在取參數化的值的時候,使用${name}這樣去取值,name就是你取的變量名稱。
調用
(2)函數生成器
函數生成器可以參照一定的規則生成數據
隨機數__Random,可以在你指定的一個範圍內取隨機值
自增函數__counter
取當前時間__time,不加參數時為時間戳(計算機發明到現在過了多少秒),如果在有一些需要傳時間的情況下可以使用,日期格式是:yyyy-MM-dd HH:mm:ss(年-月-日-小時:分鐘:秒)
調出函數助手:選項—>函數助手對話框
註冊用戶接口:
在線程組中將循環次數改為5,即一次調用5次請求,註冊5個用戶
查看結果樹:
(3)從文件中讀取
文件讀取就是事先寫好一些數據,然後從文件中讀取,比如說學生金幣充值接口,將需充值的學生id寫在文件userId.txt中,jmeter在做壓測時直接從userId.txt中讀取即可
從文件中讀取的話,三個步驟
1、讀取文件
2、取文件內容裏面的參數,給它一個名字
3、使用值
從文件讀取,需要在線程組裏面添加一個CSV Data Set Config,它就是做前面兩步的操作的
參數解釋:
Filename:文件路徑,若只寫文件名字需把文件放在jmeter的bin目錄中
Variable Names:變量名稱,是用戶自己定義的(若有多個變量需用Delimiter中定義的符號隔開)
Delimiter:多個變量間用什麽符號隔開,默認為英文逗號
Stop thread on EOF:文件中的數據讀完之後是否再循環讀取,默認為false
金幣充值接口:
第一列為userid,第二列為金幣值,中間用英文逗號隔開
查看結果樹:
2.5 Jmeter關聯
1、 調用第一個接口,然後從這個接口的返回數據裏面拿到某個值
2、 放到第二個接口裏面來用
例如:金幣充值接口
在登錄接口中添加jp@gc-JSON Path Extractor
登錄接口的返回值:
查看結果樹:
添加調試工具Debug Sampler,查看詳情
PS:登錄接口需放在金幣充值接口前面
接口測試工具之JMeter(1)