溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用Jmeter在linux環(huán)境實現(xiàn)分布式負載

發(fā)布時間:2020-07-03 06:50:21 來源:網(wǎng)絡(luò) 閱讀:2416 作者:809316839 欄目:軟件技術(shù)

分布式意義:在使用Jmeter進行性能測試時,如果并發(fā)數(shù)比較大(比如最近項目需要支持1000并發(fā)),單臺電腦的配置(CPU和內(nèi)存)可能無法支持,這時可以使用Jmeter提供的分布式測試的功能

  • 一、Jmeter分布式執(zhí)行原理
    1. Jmeter分布式測試時,選擇其中一臺作為調(diào)度機(master/Controller),其它機器做為執(zhí)行機(slave/Agent)
    2. 執(zhí)行時,master會把腳本發(fā)送到每臺slave上,slave 拿到腳本后就開始執(zhí)行,slave執(zhí)行時不需要啟動GUI,我理解它應(yīng)該是通過命令行模式執(zhí)行的
    3. 執(zhí)行完成后,slave會把結(jié)果回傳給master,master會收集所有slave的信息并匯總
    4. 分布式測試原理:如下圖
      使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
  • 二、執(zhí)行機(slave)配置
    1. slave機上需要安裝Jmeter,使用rz命令上傳jmeter壓縮文件,然后解壓
      使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
    2. 默認一般給的用戶不是管理員,則修改用戶環(huán)境變量即可:vi ~/.bashrc ,在文件末尾添加該行 export PATH=$PATH:/home/mdrsopen/apache-jmeter-4.0-performance/bin ,此路徑為jmeter的的路徑,修改完畢,輸入:wq退出,執(zhí)行 source?~/.bashrc
      使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
      使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
      • 輸入jmeter -v,出現(xiàn)下圖證明配置成功
        使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
    3. 進入jmeter的bin目錄,修改jmeter-server文件,指定主機ip
      使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
      • 去掉RMI_HOST_DEF前面的#,末尾的XX改成當前主機ip使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
    4. 可以對負載機端口進行修改,默認為1099,也可以修改成自己需要的端口,修改完畢,輸入:wq退出使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
    5. 輸入./jmeter-server啟動負載機,出現(xiàn)如下界面,證明啟動成功 使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
    6. 多臺slave的話,重復1~5步驟就好
    7. 如果腳本中調(diào)用了參數(shù)文件,或者其它上傳圖片等,都需要將文件放到slave節(jié)點bin目錄下,本次由于是用的相對路徑格式為../data/id.xls,則只需要手動在bin目錄的上一個層級創(chuàng)建一個data文件夾,然后把參數(shù)文件放到該文件下即可
      使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
      使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
  • 三、調(diào)度機(master)配置
    1. 腳本:一個devops平臺的查詢接口使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
    2. 找到Jmeter的bin目錄下jmeter.properties文件,修改如下配置,IP和Port是slave機的IP以及自定義的端口(負載機端口有一臺自定義為1234,有一臺默認為1099):remote_hosts=10.16.69.174:1234,10.16.18.21:1099使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
      • 多臺slave之前用","隔開,我這配置了2臺,可以看到標紅的這個就是上面截圖slave的IP和Port
    3. 打開Jmeter,選擇運行,有啟動、遠程啟動、遠程全部啟動三個選項:
      啟動:就是啟動當前master(調(diào)度機),把調(diào)度機當負載機單獨執(zhí)行
      遠程啟動:可以選擇執(zhí)行需要的負載機
      遠程全部啟動:顧名思義,就是啟動所有的負載機
    4. 選擇遠程啟動-->10.16.18.21:1099
      • master結(jié)果,這里我只啟動了10.16.18.21:1099這一臺slave,所以只有一個結(jié)果(線程數(shù)和循環(huán)次數(shù)都是1):使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
      • slave控制臺信息:
        使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
    5. 選擇遠程啟動-->遠程全部啟動:
      • master結(jié)果,全部啟動,我配置了2臺slave,所以有兩次執(zhí)行結(jié)果使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
  • 四、調(diào)度機(master)使用命令執(zhí)行分布式測試
    • widows環(huán)境執(zhí)行
      • jmeter -n -t 監(jiān)聽設(shè)置.jmx -r -l log.jtl
      • 參數(shù)說明 :
        -n ?告訴jmeter使用非GUI模式執(zhí)行測試
        -t ? 執(zhí)行的測試腳本名
        -r? 遠程執(zhí)行 , 在Jmter.properties文件中指定的所有遠程服務(wù)器
        -l? 結(jié)果文件,如果不寫路徑,則在執(zhí)行目錄生成使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
    • linux環(huán)境命令相同
  • 五、其它說明:
    1. 調(diào)度機(master)和執(zhí)行機(slave)最好分開,由于master需要發(fā)送信息給slave并且會接收slave回傳回來的測試數(shù)據(jù),所以mater自身會有消耗,所以建議單獨用一臺機器作為mater。
    2. 每臺機器上安裝的Jmeter版本和插件最好都一致,否則會出一些意外的問題。
    3. 執(zhí)行機(slave)設(shè)置的端口,首先要保證未被占用,可以使用該命令進行查詢,netstat -anp|grep 端口? 如果查詢?yōu)榭談t可以進行配置,如下
      使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
    4. 查詢有值,則代表該端口已經(jīng)被占用,需要換一個端口使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
    5. 啟動slave機器的server服務(wù)報如下錯誤,則要看apache-jmeter-4.0\bin下的jmeter.properties文件是否開啟server.rmi.ssl.disable=true,報錯如下
      使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
      默認為
      使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
      需要改成
      使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
    6. 啟動master如果也報java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory),修改方法一致,需要查看jmeter.properties文件是否開啟server.rmi.ssl.disable=true,報錯如下
      使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
    7. master執(zhí)行日志顯示執(zhí)行請求數(shù)量為0
      使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
      查看jmeter-server.log日志,該日志路徑在執(zhí)行jmeter-serer命令啟動slave節(jié)點的路徑,如下圖,啟動路徑在/apps下
      使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
      使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
      使用Jmeter在linux環(huán)境實現(xiàn)分布式負載
      由上圖可知是由于CSV元件找不到相對路徑導致執(zhí)行報錯,由于slave啟動節(jié)點路徑在/apps,所以需要把data參數(shù)文件放置在/apps上的一個層級,可以直接在jmeter/bin目錄下啟動slave節(jié)點,這樣相對參數(shù)文件就在bin目錄一個層級,具體見(二、執(zhí)行機(slave)配置介紹)

? ?如果文章對你有幫助,可以在右下角點擊關(guān)注功能,歡迎轉(zhuǎn)發(fā)、拍磚,本人會持續(xù)推出與測試有關(guān)的文章,與大家分享測試技術(shù),每一篇原創(chuàng)文章都是用心編寫,杜絕抄襲復制,微信公眾號與本平臺文章同步,方便大家查閱


QQ技術(shù)交流群:加群請輸入驗證信息51CTO
??????????????使用Jmeter在linux環(huán)境實現(xiàn)分布式負載


微信二維碼關(guān)注公眾號:

????????????使用Jmeter在linux環(huán)境實現(xiàn)分布式負載


關(guān)注之后,回復資源下載,即可獲取本人共享的各種資源下載地址

使用Jmeter在linux環(huán)境實現(xiàn)分布式負載

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI