1. 程式人生 > 實用技巧 >JMeter java模擬多使用者高併發請求測試(json,form表單)

JMeter java模擬多使用者高併發請求測試(json,form表單)

1.情景展示

  在實際開發過程中,需要進行測試的時候,往往需要進行壓力測試,或者高併發情況下,同時對一張表資料進行修改、讀取操作,程式會不會出現多個使用者取出的資料一致,或者修改次數與實際請求數不一致等問題。

2.分析

  如果在專案中寫多執行緒模擬併發請求,並不是很好,還需要自己寫程式碼,來回修修改改;

  有一個工具就可以很好的模擬出高併發請求,供我們直接使用:JMeter,開源、免費;

  使用前提:JAVA執行環境

3.JMeter下載及安裝

  下載

  下載地址見文末推薦。

  這裡需要注意的是:

  點選“Download Releases”,出現的當前永遠最新版本,紅框裡會標註:當前版本執行的java最低版本;

  Linux系統下載*.tgz檔案,windows系統下載*.zip檔案;

  至於想要下載歷史版本,不知道在哪裡藏著。

  安裝

  下載成功後,解壓到想要存放的位置,比如:D盤

  和tomcat一樣,只要你配置了JAVA_HOME環境變數,它就能執行(只要java版本號>=JMeter的最低要求,啟動就不存在閃退的情況)。

  雙擊執行jmeter.bat檔案即可。

  此時,會啟動兩個程式;

  使用java編寫的圖形介面

  這倆是同一個程式,關閉其中任何一個,另一個也會跟著關閉。

  下面,切入正題。

4.模擬多使用者高併發請求(json請求)

  第一步:建立執行緒組;

  選中TestPlan,右鍵,Add,新增執行緒組。

  設定執行緒組引數。

  這裡配置為:10個執行緒,同時啟動,迴圈1次。

  第二步:新增http請求預設值;

  新增http請求預設值,所有的請求都會使用設定的預設值;

  設定協議為http,IP為localhost,埠為8080,專案訪問路徑(請求上下文)設定為/,請求字符集設定為UTF-8;

  大家根據自己的實際需要進行配置,嫌費事的可以是不新增http預設請求配置,在請求單獨配置也是沒有問題的。

  第三步:配置請求頭

  設定請求頭為application/json,目的是:告訴伺服器,我傳送的json資料。

  Content-Type:application/json

  以上資訊複製到剪貼簿,選擇:Add From Clipboard,即可自動將以上內容填充進去。

  也可以自己手動配置,點選底部“Add”,會增加一欄,雙擊進去,輸入內容即可。

  需要說明的是:如果想要傳送JSON請求

  這一步不能省略,否則,伺服器會將請求資料當做"text/plain"來識別。

  第四步:新增Http請求

  必須選中“Thread Group”,才能新增“HTTP Request”

  我這裡需要將請求方式改為POST,請求地址,字符集;

  選擇“Body Data”,新增即將請求的JSON資料。

  第五步:新增監聽器;

  這裡新增三種:聚合報告、圖形結果、用表格檢視結果,區別在於結果展現形式不同。

  第六步:執行,並檢視結果;

  紅框裡,是我們所建立的所有配置;

  點選選單欄的綠三角,就會立刻傳送請求;

  這個提示的意思是:在執行(傳送請求)之前,是否進行儲存的友好提示;

  選擇No,是不影響請求的執行噠。

  執行結束後,看三個監聽器的返回結果。

  一般情況下,我們還會檢視伺服器的返回結果,所以,再新增一個監聽器:結果樹。

  切換到結果樹檢視,選中返回型別為JSON,選中其中一個請求,Response Body裡面將會是格式化後的JSON資料(當然了,這是要取決於伺服器返回給咱的是什麼格式的資料)

  這裡接收到的中文是亂碼,也不知道是什麼情況。

  

  第七步:清空監聽記錄,重新請求;

  再次請求時,這些監聽器的記錄是一直疊加的;

  如果想要清空這些監聽器的記錄的話,點選“clear”,只清空當前選中的監聽器;點選“Clear All”會清空所有新增的監聽記錄。

  這種方式更快捷

  注意:

  到此為止,我們只是模擬了一個使用者,而不是多個使用者,換言之,其實是同一個使用者的併發請求。

  第八步:多使用者併發JSON請求;

  同樣地,選中“Thread Group”,新建一個http請求

  紅框裡,可以換個名字,方便區分;

  其它配置基本一樣,除了請求的json資料改一下就可以啦。

  清空記錄,傳送請求,檢視結果

  此時,每個請求都併發了10次,相當於每個使用者同時傳送了10條請求。

  如果想要模擬10個不同的使用者併發,我們可以建立10個HttpRequest,確保每個請求裡面的資料都不一樣,執行緒修改成:1

  這樣,就確保了10個使用者併發請求,且每個使用者只請求1次。

  第九步:儲存當前配置檔案。

  按快捷鍵:Ctrl+S

4.模擬多使用者高併發請求(form表單請求)

  第一步:建立執行緒組;

  同上

  第二步:新增http請求預設值;

  同上  

  第三步:新增資料來源; 

  新建一個文字檔案,名字隨意,比如:config.txt;

  目的:該檔案用於配置使用者資訊(其實就是請求引數);

  裡面資料每行有兩個值,userIduserToken,中間用逗號隔開,我這裡設定了兩個使用者的資訊。

  第三步:新建Csv Data Set Config設定;

  目的:引用上面的資料來源檔案。

  Csv Data Set Config中引用配置檔案config.txt,並定義變數名為userIduserToken(名稱隨意,只要一會和下面保持一致就可以啦)

  第四步:選中“Thread Group”,新建一個http請求;

  同上

  在請求中引用配置檔案中的變數:

  在填寫引數Value的地方不要將值寫死,而是寫為${變數名}這種格式,我這裡想要引用配置檔案中userToken的值,所以寫為${userToken}

  至此,配置完畢,我們不用再像併發json那樣配置多個請求,才能模擬出不同使用者的併發。因為我們在配置檔案config.txt,幾行記錄就代表幾個使用者。

  第五步:測試

  方法同上。

寫在最後

  哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!

相關推薦: