前言
最近在學習重溫一門高併發課程之際又把Jmter的基礎瞭解和學習了一遍,這裏進行一個基礎的認知與記錄(下載版本爲當前最新版本,沒有漢化,不過基礎的單詞我相信難不倒大家)
來看一下系列目錄:
章節名稱 | 博客地址 |
---|---|
安裝部署Redis | 集成Redis(已完結) |
頁面登陸功能設計 | 登錄功能設計(更新優化中) |
秒殺頁面具體設計 | 秒殺詳情頁(已完結) |
JMeter初級壓測學習 | Jmeter壓測入門學習(已完結) |
頁面優化設計 | 頁面優化設計(已完結) |
接口優化 | RabbbitMq接口優化(已完結) |
圖形驗證碼等 | 圖形驗證碼及接口防刷(更新優化中) |
正文
下載與安裝
首先登錄官網JMetre官網,隸屬於apache。
然後點擊左側的下載按鈕:
選擇適合自己電腦的版本,這裏我選擇了zip到本地進行解壓縮。
tgz是對應linux下。zip對應windows。
這裏我放在D盤下面(注意路徑不要出現中文)進入到如圖所示的bin目錄下,雙擊運行jmeter.bat,若是不成功,右鍵管理員方式進行運行。
成功以後會出現如下圖所示情況:
初步壓測
- 右擊Test Plan(注意點擊黑色方框內的內容)表示添加一個線程組。
- NOT: 表示線程的個數,也就是你進行壓測時候併發是多少
RP: 表示啓動的時間,若是1,表示你的線程啓動時間是1s,一般我們設置爲0,表示線程同時啓動。
LC:表示循環的次數。循環訪問多少次。
- 添加請求默認值,這裏我對自己本地的請求地址進行壓測
goods/to_list
可能以後都還是會請求同一個主機的相同地址,所以先進行一個http請求默認值的設置。進行如下配置,以後http請求就不需要重複填寫主機和端口號。
- 添加測試用例
如圖所示我們在日後的添加中也不用添加上面的請求信息。
- 進行壓測監聽
- 進行小型測試,這裏我們調大線程數目和循環次數。調整線程數1000,循環次數10次。可以看到qps爲116,表示這個接口可以承擔的訪問量爲116次/秒。
以下是圖形分析景象(這裏我也看不是很明白,才疏學淺):
設置變量
以上我們分析了普通的壓測就是不設置任何的變量,對接口進行壓測處置,下面我們進行比較處置,看設置變量後會有什麼變化。
- 首先對於本代碼來說前面有提到,將token會帶回來放到cookie中,所以這裏可以添加參數進行一個壓測處置(PS 對於上一篇提到這裏的token的博客跳轉鏈接講的感覺不是很好,後期會出一篇文章具體講解一下)。
- 如何帶參數壓測:
- 查看結果
Emmm 差距有點大,感覺是對於第一個接口,訪問數據庫+redis緩存,對於第二個接口,沒有訪問MySqL本地數據庫,纔會導致差距如此大(當然這都不是大家關注的地方。)
- 添加多個用戶訪問。
對於本次壓測來說,這裏模擬的卻只是一個token(表示一個用戶)那在我們日常的壓測中如何模擬多個用戶呢?
如圖所示,我們將所要模擬的數據寫到配置文件中,用我們設定的分割符號分割,就能在配置文件中寫上我們要參與模擬的用戶來達到多用戶的壓測。
如下是配置文件中的內容。
完成以後,在對應的value地方就不用寫上所有的值,只需要寫上變量名字即可。
總結
以上就是利用jmeter進行簡單的壓測測試,限於本人在此項目中學習到的,日後會繼續深入瞭解學習一下,到時再出具體的文章進行講解與介紹。