Jmeter之Linux安装(Xshell),分布式运行Linux作为slave机
甲方爸爸要求,用Linux压测...... 所以在公司服务器Linux上搭建Jmeter
但实际一个Jmeter程序也有程序瓶颈~
所以在Jmeter瓶颈下,搭建分布式压测系统。(也许可以尝试在一台机器上安装多个Jmeter....这个我倒是没尝试)
拓扑图如下:分布式测试系统在同一个局域网内
1.安装Xshell,依据提供的ip,用户,密码登录服务器
xshell连接linux,参考网址:https://www.cnblogs.com/bf-blackfish/p/11156140.html
2.测试服务器是否安装JDK
输入命令:java -version (公司服务器都有部署系统,JDK当然就有咯~)
JDK安装:https://baijiahao.baidu.com/s?id=1625872524161069279&wfr=spider&for=pc
3.安装Jmeter
(1)创建文件夹Jmeter(管理测试相关工具和脚本)
命令:mkdir Jmeter //创建文件夹
命令:ll //查看详情
命令:cd Jmeter //进入Jmeter文件夹目录下
(2)安装上传下载工具包rz及sz
命令:yum install -y lrzsz //这个工具可以实现windows与linux互传文件
从Windows上传文件,上传命令为rz; 从Linux下载文件指令为sz; 上传的文件在当前命令行的目录下;
(3)rz 上传apache-jmeter-4.0.zip
先将本机中的apache-jmeter-4.0压缩(使用自己已经配置好的jmeter,上传解压后就能直接使用)
命令:cd Jmeter //进入自己创建的文件夹目录下
命令:rz //上传压缩包
命令:ll //查看目录详情
(4)解压apache-jmeter-4.0.zip
命令:unzip apache-jmeter-4.0.zip //解压zip 命令:ll //查看目录详情
进入apache-jmeter-4.0/bin目录下
(5)启动jmeter
命令:./jmeter.sh //启动jmeter
无权限启动!!!
命令:chmod 777 jmeter.sh //赋予这个启动项权限,但是也不能直接启动,哎
所以还是需要,=。=|||配置jmeter环境
使用命令启动,无GUI模式(jmx脚本最好删除所有的监听器,命令启动本来就没有视图,且能避免资源占用)
命令:pwd //查看当前目录,进入apache-jmeter-4.0后,输入这个命令能获得当前目录 /root/Jmeter/apache-jmeter-4.0
//服务器vim也没有 命令:yum -y install vim* //安装vim 命令:vim /etc/profile //将下面代码复制到Profile这个文件中,vim的操作就不细说了~ 注意已存在的环境变量,把jmeter的复制过去 export JMETER_HOME=/root/Jmeter/apache-jmeter-4.0 export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH export PATH=$JMETER_HOME/bin/:$PATH
然后启动配置文件(只要修改了,就需要再次启动):source /etc/profile
java -version(查看Java信息)
jmeter --version(查看jmeter信息)
出现了上面这个问题的原因是JDK版本太低,换个1.8的就OK了
命令:jmeter -n -t test.jmx -l log.jtl //无GUI运行当前目录下的test.jmx,并将结果保存到log.jtl中
4.分布式运行Jmeter
可以参考这2篇博文:
https://www.cnblogs.com/bf-blackfish/p/11078411.html
https://www.sunjs.com/article/detail/30f73b27fdc24c2eaf6ccddc0b48d3c9.html
把本机作为master,服务器作为slave。
这样就可以在本机看到图形化的结果,并且监听CPU和内存了
遇到的问题:ConnectException:Connection refused to host ......
我配置的是1099端口,让研发配置&开启下这个端口。
然后在master机上:telnet 1:1:1:1 1099 通了就可以用了
(遇到这种拒接连接的问题,先ping ip再telnet ip:port)