Jmeter分布式测试中常见问题及注意事项

Jmeter进行分布式测试时需要特别注意的:

1)如果使用csv进行参数化,需要把参数文件在每台slave上拷贝一份,最好都放置在bin目录下,因为Jmeter会直接从bin目录下查找;

2)slave机器执行脚本时,若断言执行成功则在master机器上是看不到请求响应数据的,只有在断言出错时才可键slave的返回;

3)若要使用Jmeter分布式进行测试,TCP取样器中“TCPClient classname”该栏必须填写对应的协议;

4)以十六进发送tcp数据包时,TCP取样器中“End of line(EOL) byte value”必须填写数据包的结束符,否则jmeter会一直等待,无响应。

 

Jmeter分布式测试常见问题:

问题1:在master上运行jmeter-server.bat时,出现“Exception creating connection to:192.16.*.*;nested exception is:java.io.FileNotFoundException:rmi_keystore.jks(系统找不到指定的文件)”错误

解决方案:修改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/进行查找

 

问题2:在slave上(linux系统)运行jmeter-server时,出现“An error occurred: Cannot start. localhost is a loopback address”错误

解决方案:方法一:运行以下命令:./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 ”错误

解决方案:

1)查看slave上的ip与master配置文件中的ip是否一致;

如果不一致,查看slave机器上是否有虚拟网卡,将网卡关闭,在此启动Jmeter-server.bat,查看是否正确

2)查看防火墙是否关闭

注:centos7上关闭防火墙:  firewall-cmd --state   //查看防火墙状态

                           systemctl stop firewalld.service //关闭防火墙

问题4:当设置csv文件路径时,如果路径不对,无响应

解决方法:将csv文件以“相对路径”命名,即将csv文件直接放入bin目录下,在Jmeter路径中直接写入文件名

 

问题5:(Linux)默认端看1099被占用,如何关闭某个被占用端口的方法

1)netstat -ntlp //查看当前所以tcp端口

nestat -ntulp |grep 1109 //查看所有1109端口使用情况

2)lsof -i:1109 //查看占用1109端口的程序pid

3)kill -9 1109 //kill掉该进程

(windows)上关闭已被占用的端口

http://www.jb51.net/os/windows/203315.html

如1099端口被占用:1)在cmd命令行下输入以下命令:netstat  -aon|findstr "1099",回车之后就可以看见列表中的PID,然后根据PID在电脑的任务管理器中查看对应的占用程序,然后将其关闭即可;2)然后根据查询的PID找到对应的进程,我们可以看到占有1099这个程序的进程ID,如:5264,继续输入命令【tasklist|findstr "5264"】,5264就是进程ID,现在知道是哪个进程占用的我们的端口,即可在任务管理器中杀掉该进程。

 

问题6:如果使用slave发送数据后,长时间无响应

问题排查:

1)查看发送的数据中是否存在csv参数文件,查看slave机器的bin目录下是否有该文件;

2)查看建立的tcp采样器中属性“TCPClient classname”处是否添加协议:org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl

 

问题7:如果你的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

解决方法:1)bin目录下打开jmeter.bat文件,查找set HEAP,将set HEAP=-Xms128m -Xmx512m修改为set HEAP=-Xms512m -Xmx512m;2)重新启动jmeter.bat即可

问题9:当jmeter用作数据库API测试时,如果数据库接口中参数中传递一个数组,如getApps(int nu, int appID[ ]),实际使用过程中报语法错误

解决方法:可尝试在调用该接口传参中加入关键字“ARRAY”,如getApps(3, ARRAY[7,8])

 

 

 

 

 

你可能感兴趣的:(JMeter)