Jmeter 分佈式測試 詳細教程

單臺機器運行500個線程就基本到極限了,所以很多時候我們需要用到分佈式執行方式。

1. 介紹

Jmeter的分佈式執行方式,分爲一臺調度機和多臺執行機。其中調度機保存測試腳本,遠程啓動時分發給所有執行機。而執行機執行的過程中會把請求結果實時傳回給調度機。以達到分佈式測試的目的。
以下圖例中,以a機器作爲調度機,a、b、c機器作爲執行機進行測試。(機器緊張的情況下,a也可以充當執行機)
在這裏插入圖片描述
PS: 傳輸過程中會產生一定的損耗,所以不建議調度機參與執行。

2. 準備工作

2.1 執行機查到出ip地址

  1. 查詢本機ip地址
    windows在cmd執行ipconfig。Linux在終端執行ifconfig可以查到本機的ip地址。
    在這裏插入圖片描述
    PS: 因爲我這是A類地址,所以是10開頭的,一般是C類地址192.168.x.x。

2.2 調度機修改配置文件

  1. 進入調度機上Jmeter程序路徑,打開/bin/jmeter.properties 文件。
    在這裏插入圖片描述
  2. 找到remote_hosts這一行,填入所有執行機ip地址。(來自2.1 執行機查到出ip地址)
    在這裏插入圖片描述

3. 執行過程

3.1 執行機啓動服務端

  1. 在每一臺執行機上,進入Jmeter程序路徑,啓動\bin\jmeter-server.bat 文件。
    在這裏插入圖片描述
  2. 啓動後是這樣子的,這個終端不能關閉。紅框中會顯示本機IP地址。端口號在Jmeter4.0後是自動分配的。
    在這裏插入圖片描述

3.2 調度機遠程啓動所有執行機

  1. 在調度機上,運行Jmeter GUI界面。可以在運行-遠程啓動菜單看到配置文件中設定的執行機列表。
    在這裏插入圖片描述
  2. 我點了運行-遠程全部啓動,2個執行機各執行了一遍。
    執行過程中,調度機分發了.jmx腳本給了2臺執行機,2臺執行機執行過程中把執行結果傳回給了調度機。
    在這裏插入圖片描述
  3. 如果遠程執行成功的話,執行機上的jmeter-server.bat執行框會有內容更新
    在這裏插入圖片描述

4. 命令行進行遠程啓動

  1. 普通的命令行啓動是這樣的
    jmeter.bat -n -t 線程組.jmx -l test.jtl

  2. 帶上生成報告是這樣的
    jmeter.bat -n -t 線程組.jmx -l test.jtl -e -o Report

  3. 遠程啓動所有執行機,只需要加個 -r 參數即可
    jmeter.bat -n -t 線程組.jmx -r -l test.jtl
    在這裏插入圖片描述

  4. 執行完成後報告也是所有執行機的全部測試結果
    在這裏插入圖片描述

5. 可能遇到的問題

5.1 啓動jmeter-server.bat報錯

  1. Windows平臺 執行機如果運行 jmeter-server.bat 遇到以下錯誤 java.io.FileNotFoundException: rmi_keystore.jks
    在這裏插入圖片描述
  2. 進入執行機上Jmeter程序路徑,打開\bin\jmeter.properties 文件。
    找到#server.rmi.ssl.disable=false 這一行,改成true,記得把#去掉。
    在這裏插入圖片描述
  3. 調度機也需要修改爲#server.rmi.ssl.disable=true,否則遠程啓動時會報相同錯誤。
    在這裏插入圖片描述

5.2 遠程啓動時報錯

  1. 可能是你的調度機上執行的測試腳本中,含有執行機上沒有的插件內容。
    譬如這個情況是調度機上有"bzm - Concurrency Thread Group"線程組,但執行機上沒有這個插件。
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章