【Jmeter】Jmeter使用常见问题记录,持续

【Jmeter】Jmeter使用常见问题记录,持续~~~

1、利用负载机进行压测可能出现的问题:

(1)远程负载机 jmeter-server服务死掉,这个时候需要执行如下操作:

检查远程服务是否起来:ps -ef| grep jmeter, 如果起来了,会显示占用的进程号;

如果确认是进程是存在的,但是就是连不上远程服务,这个时候就杀死jmeter-server的进程:kill -9 ***(进程号),然后从新启动jmeter-server服务

如果进程不存在,直接启动jmeter-server服务

(2)远程服务正常启动,但是利用本地的jmeter客户端无法连接远程服务

这个时候,你首先要看看你电脑是不是有双网卡,比如笔记本电脑自行建了wifi共享、或者VM虚拟机新建了虚拟网卡、或者用了360wifi什么的。

(3)java.net.SocketException: Permission denied: connect;

    解决 Winows 启动配置文件:jmeter.bat,添加如下启动参数设置: set JVM_ARGS="-Djava.net.preferIPv4Stack=true"

说明,这个问题当时看了很久,后来终于在百度上找到了相关的blog(参考http://www.bubuko.com/infodetail-1278724.html)

(4)Jmeter-server启动失败:Cannot start. Unable to get local host IP address. is a loopback address

这个问题,每一次需要大型压力测试的时候,分配远程机器,需要重新部署服务总是会遇到,其实就是/etc/hosts文件设置不对导致Jmeter启动失败.

果然还是这个问题,贴/etc/hosts示例: 

127.0.0.1       localhost.localdomain localhost

10.20.10.31   higkoo.rdev.company.net higkoo

执行命令`hostname`查看当前机器名如果当前机器名与/etc/hosts不一致,则修改hosts修改你的本地ip+正确的hostname;

注意,还可以使用命令:./jmeter-server -Djava.rmi.server.hostname=192.168.5.90

(5)远程机器上的jmeter-server无法启动,这个时候,请查看权限

先使用ls -l查看当前情况下jmeter-server文件的权限,如果没有可执行权限,则需要修改权限;

chmod 777 jmeter-server  (7表示可写、读、执行),这里777直接给所有用户(包括你分配的用户组)全部加上了可执行权限。这里自行了解chmod的语法

2、Jmeter使用日常问题

(1)当时测试的接口,参数为中文的问题,需要转UTF-8,例如搜索接口的测试

利用BeanShell Preprocessor 处理请求参数的中文转码问题,解决方案请见另外一篇单独的blog(Jmeter利用BeanShell处理中文转码问题)

(2)本地启动jmeter报错,或者压测过程中假死:Java.lang.OutOfMemoryError: PermGen space

内存溢出

修改jmeter.bat文件:

        1、HEAP表示堆内存,xms、xmx分别表示初始化内存,最大内存,堆内存存储的全部是对象;

        2、NEW表示栈区,用来保存基础数据类型的对象和自定义对象的引用;

        3、PERM表示方法区,这个内存主要用来存放静态的类信息和方法信息,静态的方法和变量,final标注的常量信息等。

set HEAP=-Xms512m -Xmx1024m

   set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m

   set SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50%

   set TENURING=-XX:MaxTenuringThreshold=2

   set RMIGC=-Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000

   set PERM=-XX:PermSize=256m -XX:MaxPermSize=512m

3、使用Jmeter测试Dubbo接口可能出现的问题

将Dubbo接口测试服务的jar包放入jmeter lib/ext目录下,重新启动jmeter时可能会报spring jar包冲突,这是由于Dubbo工程师引入了spring相关的jar包了,但是Jmeter默认也是自带了spring-core-2.5.6.jar包的(在lib目录下),所以当我们将测试jar放到jmeter对应目录下,重启jmeter的时候回报spring的jar包冲突,所以在利用就jmeter做Dubbo接口测试的时候,我们需要将Jmeter自带的spring-core-2.5.6.jar包去掉。

猜你喜欢

转载自www.cnblogs.com/ceshi168/p/11964100.html