执行机连接不上问题排查:
**
1. 连接执行机时应该看防火墙是不是关的
**
查看防火墙状态:
[root@centos6 ~]# service iptables status
iptables:未运行防火墙。
开启防火墙:
在这里插入图片描述
[root@centos6 ~]# service iptables start
关闭防火墙:
[root@centos6 ~]# service iptables stop
2.网络
1、使用就meter进行分布式压力测试时,脚本什么都配置好了,也能ping通负载机。控制机发送开始执行脚本后,间隔有1min负载机才收到指令
2、负载机屏幕显示:starting…
3、但是控制机这边一直收不到运行结果
最后检查网络的时候,发现虚拟机的网络一直是开通的,尝试把虚拟机网络全部禁掉再试了试,发现没有问题了
**
在非 GUI 模式下执行结果没有详情:
**
有时候,需要从 Linux 机器,执行 JMeter 压测,需要把 GUI 模式下生成的 jmx 文件迁移至 Linux 环境,然后执行 ./jmeter.sh -n test.jmx -l test.jtl 命令。
迁移后的 jmx 脚本不一定在 Linux 机器上可以成功执行,可能由于域名或者参数配置文件等原因,因此需要进行一次基准测试,确认返回数据符合预期后,开始压测。
但是,在 Linux 下执行 JMeter 压力测试,生成 jtl 的 文件,导入 GUI 模式下的 JMeter 后,没有请求信息和响应信息。因为结果比较占用资源,所以默认情况下没有
为了察看和验证返回信息,需要做如下配置:
在 bin目录下的 user.properties 文件中追加以下内容:
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.responseHeaders=true
插件下载:
1.Jmeter的插件下载https://jmeter-plugins.org/wiki/PluginsManager/,下载Plugins Manager安装包放到lib/ext目录里,然后重新打开jmeter,在“选项”中即可看到该插件
2.点击该插件图标,输入要安装的插件并搜索,即可安装成功
3.例如Weighted Switch COntroller插件下载好后,点击“线程”-添加–逻辑控制器–bz-Weighted Switch COntroller,weight是指发出去的所有请求中,占比情况。
计算方式,例如拓扑图:21000.2=4次
Non HTTP response code: java.net.ConnectExceptionexception报错:
前一段时间进行jmeter压测时,一直报错,查看了下日志才发现报了一堆Non HTTP response code: java.net.ConnectExceptionexception,直接jmeter就没发送到服务端
client implementation配置成java,结果奇迹出现了,发送不出去的错误被避免了,qps的量也上来了
总结:有加解密的情况下,默认的HTTPClinet在POST时会自动将特殊字符转义,然而Java在发送过程中却未处理;
jmeter发送http请求时,implementation会有以下几种选项
JAVA:使用的是JAVA JVM提供的http方法,但有一定的限制,
1、当jmeter释放一个请求后,同样的进程中可能不会再使用了;
2、只使用于单进程模式;
3、不支持虚拟主机,不支持相关的方法,不支持存储证书的请求
HttpClient4.1:使用的是Apache HttpClient4.1部件
空白:使用Http默认请求中配置或jmeter.properties中jmeter.httpsample中的配置