使用JMeter執行分布式測試,經常遇到各種各樣的報錯,本文就匯總下工作中經常遇到的幾種問題
1、本文master端為windows,slave端為linux
2、不管master和slave在windows還是linux,首先要保證網絡是通的,telnet ip 端口就行
3、適合平台大批量調用jmeter實現性能測試排查問題,端口占用,slave異常關閉,造成master端的僵屍進程
一、執行性能壓測,執行日志提示Failed to create UDP port(UDP端口創建失敗)
1. 出現該問題,就是jmeter的slave進程監聽端口被占用,導致不能使用該端口,報錯如下
2. 解決方法,只需要修改master機器的jmeter.property文件,該配置文件在jmeter的bin目錄下,默認配置只開放了10個端口范圍給監聽使用,只需要修改即可:
#jmeterengine.nongui.port=4445
#
# If the initial port is busy, keep trying until this port is reached
# (to disable searching, set the value less than or equal to the .port property)
#jmeterengine.nongui.maxport=4455
3. 修改成如下即可
jmeterengine.nongui.port=4445
#
# If the initial port is busy, keep trying until this port is reached
# (to disable searching, set the value less than or equal to the .port property)
jmeterengine.nongui.maxport=4475
二、執行性能壓測,master日志執行一部分就卡住不動
1. 異常界面如下,該任務執行過程,只顯示了部分執行結果,不會順利完成
2. 出現該問題,最大的可能就是slave進程被意外關閉了,比如內存不夠用,導致異常關閉,master監聽不到slave的消息,導致一直掛着
3. 首先在slave機通過netstat -anp|grep 1100,查看slave占用的端口是否正常,下圖代表該端口未被占用,slave進程已經關閉了,所以導致master一直卡住不動,需要重新啟動slave,重新壓測,如果查看slave機器的jmeter-server.log日志有報內存溢出,就需要修改默認最大內存
4. 出現該問題時,master進程都不會關閉,一直會占用系統資源,windows可以直接關閉執行界面,linux頁面執行就需要kill掉master進程
三、執行性能壓測,master日志沒有返回任何執行結果,slave有執行日志
1. 異常界面如下,該任務執行過程,只顯示了部分執行結果,不會順利完成
2. 出現該問題,首先查看slave機器的jmeter-server.log日志,在bin目錄下,由日志可以看到提示連接169.254.217.204異常,查看本機ip,發現該ip是一塊虛擬網卡,只需要禁用該網絡連接即可
3. 再次執行分布式測試,master執行日志正常顯示,報告正常生成
4. 首先要保證master機器和slave機器網絡是通的,需要在master執行telnet 10.16.69.174 1100 ,ip為slave機器ip,端口為slave端設置的端口,如果能正常進入到命令界面,證明和slave端連接是通的
四、執行性能壓測,執行日志提示Engine is busy - please try later
1. 報錯界面如下
2. 出現該問題,就是slave被占用沒有被釋放,可能是master執行時沒有正常關閉,導致slave一直被占用,只需要關閉slave服務,重新啟動即可,操作命令如下,首先netstat -anp|grep 1100,查詢出slave進程id,然后kill -9 id 即可
如果文章對你有幫助,歡迎關注本人公眾號,公眾號與本平台文章同步,方便大家查閱,本人會持續推出與測試有關的文章,與大家分享測試技術,每一篇原創文章都是用心編寫,杜絕抄襲復制
QQ技術交流群:加群請輸入驗證信息 博客園
微信二維碼關注公眾號:
關注之后,回復資源下載,即可獲取本人共享的各種資源下載地址