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

发表于:2019-6-12 16:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:飞扬_0426    来源:CSDN

  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])

     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号