測試目的:10個用戶並發打開百度首頁(https://www.baidu.com/),百度能否正常響應。
操作步驟
一、打開JMeter
打開后的界面如下:
二、右擊“測試計划”,添加線程組
三、設置線程組的線程數
JMeter中的線程組,類似於LoadRunner中的虛擬用戶組,因為我們要測試10個用戶並發的情況,所以這里的線程數,要設置為10。
“Ramp-Up Period(in seconds)”的含義是達到最大線程數(這里設置的是10)所需要的時間(單位是秒)。
如果我們把Ramp-Up Period設置為100秒,那么JMeter就會在100秒內啟動所有10個線程,並讓它們運轉起來,每隔10秒啟動一個新線程。這里我們把Ramp-Up Period設置為1秒。
四、右擊“線程組”,添加“HTTP請求”
五、設置“HTTP請求”
服務器名稱或IP:www.baidu.com
-
協議:https
-
方法:GET
-
路徑:/
六、添加“察看結果樹”
“察看結果樹”是用來看測試結果的。
至此,測試腳本已經設置完了,我們可以執行一下了,看看當有10個用戶並發訪問百度首頁時,百度能否正常響應。
點擊“啟動”,執行測試腳本,如下:
執行完畢后,在“察看結果樹”里面會出現結果,如下:
在這里面,我們可以看到每個請求的請求數據和響應數據。
每個請求都有正確的響應,如下:
說明,在10個用戶在1秒內並發訪問的情況下,百度首頁仍然能正確響應。
但是在這里,我們會發現,每個請求的響應數據是亂碼的,如下:
這里,我們可以這么設置,如下:
右擊剛添加的“HTTP請求”,添加后置處理器
在腳本里面輸入:
prev.setDataEncoding("UTF-8");如下
再次執行腳本,響應數據就不會亂碼了,如下:
對於需要登錄才能使用的接口,有兩種方法可以測試:
1. 靜態token:通過抓捕工具fiddler或者其它工具,登錄用戶獲取token值,添加http信息頭管理器,添加參數:名稱(token名稱),值(獲取到的token值);
2.添加Http Cookie管理器,參數填寫登錄信息里的sessionID的key和key值,[域]/[路徑]這兩項可填可不填,如果填寫則填寫登錄的域和路徑。
第二種方法也可以什么參數都不填,但在線程組加上登錄請求,並且post請求勾選跟隨重定向,其他請求不勾選。
關於JMeter學習,這里給大家推薦一本書《零成本實現Web性能測試:基於Apache JMeter和Gatling》,大家看一下JMeter的那部分就可以了,需要電子版的可以留言郵箱