Jmeter使用过程中遇到的问题及解决办法

Jmeter压测过程中遇到的那些事

1.      内存溢出

现象:GUI界面上,线程卡住,查看DOS窗口,提示内存溢出

解决方法:打开jmeter.bat文件,把set HEAP=-Xms512m –Xmx1024m修改为set HEAP=-Xms512m-Xmx512m。

为何要如此设置,不清楚原因。需要大牛指点原因。

2.      slave启动jmeter-server.bat,提示“Could notfind ApacheJmeter_core.jar”

原因:程序找到jmeter下的文件,是因为没有配置JMETER_HOME

解决方法:

(1)高级系统配置->环境变量,新建系统变量:JMETER_HOME等于你jmeter保存的根目录

(2)系统环境变量path中增加%JMETER_HOME%\bin。

然后重启jmeter-server.bat。jmeter环境是基于Java环境已配置。

3.   客户机可以正常ping通,但是不支持master访问,jmeter_server.bat也正常启动。

原因:客户机的防火墙没有关闭。最好两边防火墙都关闭。

4.  非GUI下启动远程服务器

(1)启动全部远程服务器,即启动jmeter.properties文件中remote_hosts配置的所有远程服务器;

   命令如下:jmeter -n -t .\Mark\search_list.jmx -r

(2)启动指定的远程服务器

   命令如下:jmeter -n -t .\Mark\search_list.jmx -R server1,server2

5.启动jmeter-server.bat时抛出了如下异常

Server failed to start: java.rmi.server.ExportException: Listen failed on port:
0; nested exception is:
        java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)
 
An error occurred: Listen failed on port: 0; nested exception is:
        java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)
errorlevel=1

问题分析
1.可能监听的端口被占用,修改端口号
2.Server相关的rmi配置需要调整
解决方案
在目录\apache-jmeter-5.0\bin下,用Notepad++编辑器打开名为jmeter.properties的文件
找到server.rmi.ssl.disable=false,改为true,并把前面的#去掉
保存配置调整,重新启动jmeter-server.bat即可恢复正常。

这个最好在做分布式的时候,控制机和代理机的jmeter.properties文件这个地方一并修改,不修改还是会报错。

6.jmeter-server.bat启动报:WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002.

 尝试使用 :以管理员身份启动。

7.Don't use GUI mode for load testing

这个是说不要用jmeter界面操作运行,网络上很多说正式测试最好用命令执行运行,不是很懂,但在jmeter界面操作运行也没什么问题。

(1)切换到jmeter的bin目录;

以命令行的方式启动:jmeter.bat -n -t C:\Users\Administrator\Desktop\测试文件\压力测试文件\分布式.jmx -l demo_lt.jtl -e -o C:\lt

注:
此处指定结果文件为demo_lt.jmx,运行后生成的结果文件(可以指定生成位置,没有指定就在jmeter的bin目录下):
demo_lt.jtl;统计目录为C:\lt

(2) 查看运行结果
运行JMeter,在导航栏中点击“ 查看结果树”,主界面中点击“浏览”,选择生成的结果文件demo_lt.jtl,效果如下图所示:

图4 查看结果树

(3) 查看统计结果
打开目录C:\lt,点击该目录下的index.html,可以看到详细的统计结果。下面两张图分别截取了性能指标和综合统计信息部分。

图5 性能指标

图6 综合统计信息

8. 分布式下测试master机器没有返回结果

slave机器服务终端显示,但是一个非常简单的脚本,执行超级慢,感觉不应该:

Starting the test on host 192.168.5.158:1099 @ Fri Aug 17 14:00:44 GMT+08:00 2018 (1534485644989)
Finished the test on host 192.168.5.158:1099 @ Fri Aug 17 14:05:18 GMT+08:00 2018 (1534485918786)

master机器没有返回结果。

解决:

1.怀疑jmeter环境变量配置,反复查看没有问题

2、怀疑jmeter.properties文件修改错误,反复查了master、slave机器的配置文件,没有问题

3、将问题转向机器IP,查看master机器IP,slave机器IP,都用的固定IP,没有问题

4、重新启动master机器的jmeter-server.bat,发现了和slave机器异样的地方,master机器显示的endpoint:IP是Vmware network Adapter vmnet1(安装VMWare的虚拟IP),jmeter-server启动的时候自动识别了虚拟机IP,没有识别本地网络IP

5、将网络适配器中的虚拟适配器禁用掉,重新启动jmeter-server.bat,endpoint变成了本地IP,再次尝试远程执行,成功,复杂的脚本执行也很快。

最终发现问题出现在第四个上:(我按照第4,5个方式做了,但是最后又有了问题,下面是我的试验情况,以及这样会产生什么问题)

jmeter-server.bat启动时的ip是虚拟机的ip。可以在本地开启虚拟机,在本事使用 ipconfig查一下:

上面本机Jmeter-server.bat;启动显示的ip地址。本机jmeter.properties里设置的remote_hosts的ip址要与Jmeter-server.bat启动显示的ip地址一样。不要按照上面那样去禁用网络设配器的虚拟机适配器。如果禁用了网络设配器的虚拟机适配器,本机Jmeter-server.bat启动时它就会用无线网络的ip地址,那样你再把jmeter.properties里的remote_hosts,设置为无线网络的ip地址,那样agent(虚拟机中代理机)机就会响应请求、数据,而界面也会弹出错误,如下图:

禁用网络设配器的虚拟机适配器,再配置本地jmeter.properties里的remote_hosts为无线网络的ip地址的后果:

那样你在本机用:telnet  192.168.61.128(虚拟机ip) 1099;

发现连接不上;

而当你把禁用的网络设配器的虚拟机适配器启动;再把本地jmeter.properties里的remote_hosts设置为本地meter-server.bat启动时的ip,就会发现:telnet  192.168.61.128(虚拟机ip) 1099 成功。这是自身实践的结果,因为禁用了网络设配器的虚拟机适配器,而去用无线网络的ip导致一直报上图 refused  to host错误,再在去网络上找解决这个错误的方法,试了老半天没成功,最终还是启用禁用网络设配器的虚拟机适配器,使用虚拟机的ip才成功。这个是我自身的这错误的原因,希望大家对大家有借鉴作用。

补充:如果你在虚拟机发现telnet 169.254.202.187(本机中ipconfig出来虚拟机ip) 1099连接不同,可以对这个虚拟机适配器进行关闭,使用另外的ip尝试(一般总有一个能够连接上)

———————————————
版权声明:本文为CSDN博主「fish_11」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Fish_11/article/details/77648645

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值