Jmeter分散式測試

五柳-先生發表於2016-02-20

在使用Jmeter進行效能測試時,如果併發數比較大(比如最近專案需要支援1000併發),單臺電腦的配置(CPU和記憶體)可能無法支援,這時可以使用Jmeter提供的分散式測試的功能。

一、Jmeter分散式執行原理:

  1、Jmeter分散式測試時,選擇其中一臺作為排程機(master),其它機器做為執行機(slave)。

  2、執行時,master會把指令碼傳送到每臺slave上,slave 拿到指令碼後就開始執行,slave執行時不需要啟動GUI,我理解它應該是通過命令列模式執行的。

  3、執行完成後,slave會把結果回傳給master,master會收集所有slave的資訊並彙總。

 

二、執行機(slave)配置:

  1、slave機上需要安裝Jmeter,具體如何安裝這裡不詳細介紹了。

  2、新增環境變數:JMETER_HOME=D:\B_TOOLS\apache-jmeter-2.13,此處為你Jmeter的路徑

  3、啟動bin目錄下的:jmeter-server.bat,啟動成功如下圖:

  

  4、上圖上標紅的IP和埠會在master裡配置時用到。IP就是slave機器IP,埠預設是1099,埠也可以自定義,這裡我自定義為1000,這個後面會講。 

  5、多臺slave的話,重複1~4步驟就好。  

 

三、排程機(master)配置:

  1、指令碼:簡單的一個訪問百度的指令碼: 

  

  2、找到Jmeter的bin目錄下jmeter.properties檔案,修改如下配置,IP和Port是slave機的IP以及自定義的埠(這裡埠我自定義為100,後面會講如何自定義):

        remote_hosts=10.13.223.202:1000,10.13.225.12:1000

    多臺slave之前用","隔開,我這配置了2臺,可以看到標紅的這個就是上面截圖slave的IP和Port.

  3、開啟Jmeter,選擇執行,有運程啟動、運程全部啟動兩個選項:

  

  4、選擇遠端啟動-->10.13.225.12:1000

    a) master結果,這裡我只啟動了10.13.225.12:1000這一臺slave,所以只有一個結果(執行緒數和迴圈次數都是1):

  

    b) slave控制檯資訊:

   

  5、選擇遠端啟動-->遠端全部啟動:

    a) master結果,全部啟動,我配置了2臺slave,所以有兩次執行結果:

  

  

四、自定義埠:

  上面其實已經實現了Jmeter的分散式測試,這部分主要介紹下如何自定義slave埠:

  1、slave:在slave機的Jmeter的bin目錄下,找到jmeter.properties檔案,修改如下兩個配置項,比如我這裡修改為1888:

      server_port=1888

      server.rmi.localport=1888

  2、啟動slave機上的jmeter-server.bat如下圖,埠已經修改為:1888

  

  3、master:修改master機器的jmeter.properties檔案:

      remote_hosts=10.13.223.202:1000,10.13.225.12:1888

  4、重啟jmeter.bat,如下圖,埠已經變了:

  

 

五、其它說明:

  1、排程機(master)和執行機(slave)最好分開,由於master需要傳送資訊給slave並且會接收slave回傳回來的測試資料,所以mater自身會有消耗,所以建議單獨用一臺機器作為mater。

  2、引數檔案:如果使用csv進行引數化,那麼需要把引數檔案在每臺slave上拷一份且路徑需要設定成一樣的。

  3、每臺機器上安裝的Jmeter版本和外掛最好都一致,否則會出一些意外的問題。

 


作者:Glen.He 
出處:http://www.cnblogs.com/puresoul/ 
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。

相關文章