成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Jmeter分布式測試的注意事項和常見問題

開發 測試 開源
Jmeter是一款開源的性能測試工具,使用Jmeter進行分布式測試時,也需要注意一些細節和問題,否則可能會影響測試結果的準確性和可靠性。

Jmeter是一款開源的性能測試工具,使用Jmeter進行分布式測試時,也需要注意一些細節和問題,否則可能會影響測試結果的準確性和可靠性。

一、Jmeter分布式測試時需要特別注意的幾個方面

1. 參數化文件的位置和內容

如果使用csv文件進行參數化,即通過讀取csv文件中的數據來為測試腳本提供不同的輸入值,那么需要注意以下兩點:

  • 需要把參數文件在每臺slave上拷貝一份,最好都放置在bin目錄下,因為Jmeter會直接從bin目錄下查找;
  • 參數文件的內容要保持一致,即每臺slave上的參數文件的行數、列數、數據類型等都要相同,否則可能會導致數據不匹配或缺失。

2. slave機器的響應數據

slave機器執行腳本時,若斷言執行成功,則在master機器上是看不到請求響應數據的,只有在斷言出錯時才可見slave的返回。這是為了節省網絡帶寬和提高測試效率,因為在分布式測試中,通常只關心測試結果的統計和分析,而不需要查看每個請求的詳細數據。如果需要查看slave的響應數據,可以在slave機器上打開jmeter.log文件,或者在master機器上設置Jmeter屬性mode=Standard,但這樣會增加網絡開銷和測試時間。

3. TCP取樣器的配置

若要使用Jmeter分布式進行TCP協議的測試,需要注意以下兩點:

  • TCP取樣器中“TCPClient classname”該欄必須填寫對應的協議,例如,如果要發送二進制數據,就要填寫org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl,如果要發送文本數據,就要填寫org.apache.jmeter.protocol.tcp.sampler.TCPClientImpl,否則可能會出現數據格式錯誤或無法發送的問題;
  • 以十六進制發送tcp數據包時,TCP取樣器中“End of line(EOL) byte value”必須填寫數據包的結束符,例如,如果數據包以0D 0A結尾,就要填寫13,否則jmeter會一直等待,無響應。

4. Linux下配置jmeter環境變量

如果在Linux系統下使用Jmeter,需要配置jmeter環境變量,以便于在命令行中直接啟動jmeter。具體步驟如下:

編輯/etc/profile文件,添加如下變量:

export JMETER_HOME=/usr/local/jmeter-5.0
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH

使配置文件立即生效,執行命令:

source /etc/profile

查看是否安裝成功,執行命令:

jmeter -v

二、Jmeter分布式測試的常見問題和解決方法

問題1:在master上運行jmeter-server.bat時,出現“Exception creating connection to:192.16..;nested exception is:java.io.FileNotFoundException:rmi_keystore.jks(系統找不到指定的文件)”錯誤

原因:Jmeter4.0以上的版本,默認啟用RMI連接的安全通信,需要創建密鑰庫。所以如果沒有創建密鑰庫,就會出現這個錯誤。

解決方法:

  • 方法一:修改apache-jmeter/bin/jmeter.properties 參數:server.rmi.ssl.disable=true

備注:將master和slave機器上的jmeter.properties文件 參數server.rmi.ssl.disable均改為true

其中linux上是用以下命令:vi jmeter.properties 使用/server.rmi.ssl.disable/進行查找

  • 方法二:手動生成秘鑰和證書。執行create-rmi-keystore.bat(Windows適用)或create-rmi-keystore.sh(Linux適用) 生成server.rmi.ssl.keystore.file的key文件,然后將key文件復制到所有的負載機的bin目錄下 修改jmeter.properties中

問題2:在slave上(linux系統)運行jmeter-server時,出現“An error occurred: Cannot start. localhost is a loopback address”錯誤

原因:Jmeter默認使用localhost作為RMI的主機名,但是localhost是一個回環地址,不能用于遠程連接。

解決方法:

  • 方法一:運行以下命令:./jmeter-server -Djava.rmi.server.hostname=192.16.*.*(本機ip)
  • 方法二:修改jmeter-server文件
# vi jmeter-server 將jmeter-server中的RMI_HOST_DEF=-Djava.rmi.server.hostname=192.16.*.*(本機ip)

運行./jmeter-server即可。

備注:Linux下后臺執行,啟用server:nohup ./jmeter-server -Djava.rmi.server.hostname=192.16.. &

查看確定jmeter是否啟動成功:ps axu | grep jmeter

問題3:遠程啟動slave機器時,如出現“Jmeter nested exception is:java.net.ConnectException connection timed out:connect ”錯誤

原因:可能是由于以下幾種情況導致的:

  • slave上的ip與master配置文件中的ip不一致;
  • slave機器上有虛擬網卡,導致ip地址不正確;
  • 防火墻或者安全軟件阻止了RMI的通信。

解決方法:

  • 查看slave上的ip與master配置文件中的ip是否一致;
  • 如果不一致,查看slave機器上是否有虛擬網卡,將網卡關閉,在此啟動Jmeter-server.bat,查看是否正確
  • 查看防火墻是否關閉

注:centos7上關閉防火墻:  firewall-cmd --state   //查看防火墻狀態:

systemctl stop firewalld.service //關閉防火墻

問題4:當設置csv文件路徑時,如果路徑不對,無響應

原因:Jmeter在讀取csv文件時,如果找不到文件,會一直等待,而不會報錯。

解決方法:將csv文件以“相對路徑”命名,即將csv文件直接放入bin目錄下,在Jmeter路徑中直接寫入文件名

問題5:(Linux)默認端看1099被占用,如何關閉某個被占用端口的方法

原因:Jmeter使用RMI進行分布式測試時,需要使用1099端口作為注冊端口,如果該端口被其他程序占用,就會導致無法啟動jmeter-server或者無法連接slave。

解決方法:

查看當前所有tcp端口,執行命令:

netstat -ntlp

查看所有1099端口使用情況,執行命令:

nestat -ntulp |grep 1099

查看占用1099端口的程序pid,執行命令:

lsof -i:1099

kill掉該進程,執行命令:

kill -9 1109 //kill掉該進程

問題6:如果使用slave發送數據后,長時間無響應

原因:可能是由于以下幾種情況導致的:

  • 發送的數據中存在csv參數文件,但是slave機器的bin目錄下沒有該文件;
  • 建立的tcp采樣器中屬性“TCPClient classname”處沒有添加協議:org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl

解決方法:

  • 查看發送的數據中是否存在csv參數文件,查看slave機器的bin目錄下是否有該文件;
  • 查看建立的tcp采樣器中屬性“TCPClient classname”處是否添加協議:org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl

問題7:如果你的JMeter返回數據是亂碼

原因:可能是由于JMeter的默認編碼和服務器的編碼不一致,導致數據轉換出錯。

解決方法:在JMeter安裝路徑的bin目錄下,打開文件jmeter.properties,把Sampleresult.default.encoding的值改為 utf-8 即可。

問題8:啟動jmeter時,報錯:Error occurred during initialization of VM Could not reserve enough space for object heap errorlevel=1

原因:可能是由于JMeter的默認堆內存大小不足以支持測試的負載,導致內存溢出。

解決方法:

  • bin目錄下打開jmeter.bat文件,查找set HEAP,將set HEAP=-Xms128m -Xmx512m修改為set HEAP=-Xms512m -Xmx512m;
  • 重新啟動jmeter.bat即可

問題9:當jmeter用作數據庫API測試時,如果數據庫接口中參數中傳遞一個數組,如getApps(int nu, int appID[ ]),實際使用過程中報語法錯誤

原因:可能是由于JMeter的默認參數分隔符是逗號,而數組參數需要用分號分隔,導致語法錯誤。

解決方法:在JMeter的數據庫連接配置中,將參數分隔符改為分號即可。

問題10:當jmeter在windows控制機中添加cvs文件參數化的時候,負載機沒有沒有文件的時候,遠程啟動后會執行失敗。(即使cvs文件中的變量沒有被引用)

原因:可能是由于JMeter在遠程啟動時,會先檢查參數文件的存在性,如果不存在,就會報錯。

解決方法:在負載機上添加相同的參數文件,或者在控制機上刪除參數文件的引用。

責任編輯:趙寧寧 來源: 測試玩家勇哥
相關推薦

2012-11-15 15:18:08

MooseFS

2011-06-14 15:25:28

C++多線程

2020-05-15 15:38:54

綜合布線5G網絡

2010-06-21 14:39:56

光纖測試

2009-11-24 14:42:00

CCNP實驗

2011-05-26 11:22:04

SEO

2009-06-25 14:41:06

JavaBean

2009-06-11 17:52:08

JavaBean

2022-09-23 09:25:04

代碼方法

2022-06-16 07:31:15

MySQL服務器服務

2010-10-12 16:50:31

綜合布線

2011-05-04 18:14:48

2022-01-17 09:18:28

JMeter分布式壓測

2022-07-18 08:58:29

CIO仆人式領導

2011-04-18 14:43:23

分布式測試分布式測試

2011-06-24 09:23:02

SEO

2009-07-22 17:47:21

Java語言常見字符串

2009-10-14 12:38:44

綜合布線系統測試

2023-03-08 08:16:26

2009-10-15 16:55:05

綜合布線系統測試
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品国产亚洲 | 国产成人精品一区二区三区网站观看 | 爱草在线 | 国产精品久久久久久久白浊 | 黄a网站 | 精品久久国产 | 国产日韩欧美综合 | 国产一级片一区二区 | 成人美女免费网站视频 | 五月激情婷婷在线 | 国产日产精品一区二区三区四区 | 国产伦精品一区二区三区精品视频 | 久久99精品久久久久久 | 欧美性大战久久久久久久蜜臀 | 国产真实精品久久二三区 | 日操操夜操操 | 福利片在线观看 | 亚洲精品一区二区在线观看 | 免费成人在线网站 | 国产亚洲一区在线 | 91国在线视频 | 黑人一级黄色大片 | 午夜一区 | 免费看黄视频网站 | 国产高清视频在线观看 | 欧美午夜影院 | 国产小视频在线观看 | 中文字幕 在线观看 | 91精品久久久 | 国产三级一区二区 | 免费1区2区3区 | 在线播放一区二区三区 | 黄色免费在线网址 | 国产色婷婷久久99精品91 | 亚洲免费三区 | 亚洲国产精品久久久 | 另类 综合 日韩 欧美 亚洲 | 国产免费播放视频 | 成人福利视频 | 国产精品久久久久aaaa | 国产中文 |