JMeter是Apache的開源壓測工具,支持參數化、斷言等功能。其豐富的開源生態提供了各種協議和控制器的擴展。本文將介紹如何使用JMeter來錄制壓測腳本,包括安裝JMeter、配置代理、錄制測試用例等步驟。
(可選)步驟一:安裝JMeter
首先需要安裝JMeter工具。如果您已經在本地安裝過JMeter,可忽略該步驟,直接執行步驟二:配置代理。
在macOS系統中,您可以按照以下步驟安裝JMeter。
下載JMeter。
訪問JMeter官網,在左側導航欄選擇 ,進入Download Apache Jmeter頁面。
單擊Binaries的
apache-jmeter-5.x.zip
,下載JMeter。說明apache-jmeter-5.x.zip
:其中,5.x中的x表示JMeter的版本,JMeter官網版本會不斷升級,這里建議下載最新的JMeter版本。
解壓下載的JMeter壓縮包,例如您可以解壓至apache-jmeter-5.x目錄下。
apache-jmeter-5.x目錄下,運行Jmeter腳本,啟動JMeter工具。
若為Windows系統,則運行bin/jmeter.bat腳本。
若為Linux和Mac系統,則運行bin/jmeter腳本。
步驟二:配置代理
在使用JMeter錄制壓測腳本之前,需要先配置代理。代理的作用是將瀏覽器發送的HTTP/HTTPS請求攔截下來,并將請求轉發給JMeter工具進行錄制。配置代理的具體操作如下。
在左側區域右鍵單擊TestPlan,然后選擇 ,添加JMeter代理錄制器。
在左側區域右鍵單擊TestPlan,然后選擇 ,添加ThreadGroup,用來保存錄制到的接口。
設置HTTP(S) Test Script Recorder。
在Target Controller區域選擇上一步驟中創建的ThreadGroup。即可將錄制結果,自動轉為ThreadGroup中的HTTP接口。
在HTTPS Domains區域填寫需要錄制的域名,然后過濾掉其他域名不需要壓測的接口。
重要本示例錄制電商網站Demo,其域名地址為:eshop.cfd289b4595734d9e9b2c847e63412a08.cn-hangzhou.alicontainer.com。
單擊Request Filtering頁簽(圖標①),設置Content-Type過濾器,如果是REST接口,建議將Include設置為application/json(圖標②),過濾掉JS、CSS等靜態資源。
添加URL過濾。
說明建議按照您的接口前綴添加URL過濾,避免無關URL被錄制到壓測腳本中。
由于本示例中,所有后端接口包含/api,因此添加URL過濾的具體步驟如下:
即需要在URL Patterns to Include區域下方,單擊Add(圖標①),然后輸入.*/api/.*(圖標②)。
重要這里需要按照您的接口名稱來設置,/api僅作為示例。
單擊Start(圖標①),開啟JMeter代理錄制器,此時代理端口為Global Setting中port,默認為8888。,然后在彈出的對話框中單擊OK(圖標②),即啟動了JMeter代理錄制器。
在客戶端配置代理。
如果是瀏覽器客戶端:
推薦使用PTS的Chrome錄制器插件,無需代理配置,即可錄制出JMeter腳本。
如果是移動端客戶端:
這里以Android系統為例,您可以在設置中找到WLAN,然后進入當前連接的WIFI網絡,如下圖所示,在代理區域選擇手動(圖標①),主機名填寫JMeter啟動的機器IP(圖標②),端口填寫8888(圖標③),然后單擊保存。
步驟三:錄制測試用例
配置代理后,即可開始錄制測試用例。具體操作如下。
在瀏覽器中,輸入要測試的網址,并訪問該Demo域名地址:
eshop.cfd289b4595734d9e9b2c847e63412a08.cn-hangzhou.alicontainer.com
,此時,JMeter代理會攔截下瀏覽器發送的HTTP/HTTPS請求。在JMeter工具中,打開Thread Group,可以看到攔截到的請求信息。您可以根據需要記錄請求參數和響應結果。
重復上述步驟1~2,模擬用戶的操作,直到錄制完整的測試用例。
停止錄制。
單擊JMeter工具界面左側的HTTP(S) Test Script Recorder,然后單擊Stop,停止JMeter代理,并在自己的客戶端,移除代理配置。
保存測試用例。
將錄制的測試用例保存為JMeter測試腳本jmx文件,并上傳至PTS的JMeter場景,調試并開始壓測。具體操作,請參見創建JMeter場景。