##给的要求是要做5W个Jmeter压测,但是单个服务器进行Jmeter压测数量一旦超过了某个数值就会出现数据不准的错误,所以在这里记录一下解决方法。
#服务器进行分布式压测:详细过程,在上一篇博客有,可以看看。
#进行分布式压测,主要分为,控制机和代理机。控制机顾名思义就是总控制,代理机就是不同的机器来执行脚本的机器。
代理设置:
作为代理机,首先要求就是能与主机相互ping通!这个很关键,要不然的话,后面都进行不下去。
其次,要知道代理机本身的IP地址,如果不知道的话,可以在cmd里输入ipconfig;
如果是服务器的话,也有Linux下的方法,可以自行百度,这里就不多说了。
然后就是打开jmeter-server.
在服务器上打开jmeter-server:
sh jmeter-server -n
注意:此时要在bin目录下。
jmeter-server用vim 打开是可以看到是这样的:
1098就是你设置的代理机的端口号
#控制机设置:
首先就是更改jmeter.properties下的remote
我这里写localhost,你那里肯定就要填之前代理机的ip地址,包括端口号也要填写。
接下来就是远程启动:
sh jmeter.sh -n -t [你的脚本名] -R [你要启动的IP1]:[对应端口], [你要启动的IP2]:[对应端口] -l [生成的结果文件]
运行完成以后,就会出现:end of test(大概是这个意思。。忘了)
服务器数量不够的解决方法:
就是在一台服务器上,复制粘贴多个Jmeter,然后都打开jmeter-server,只要他的端口号不一样,就可以了。
这样就相当于,控制机是自己,代理机也是自己,代理机的数量还可以是根据你的服务器性能来决定。
只是有个缺点,就是如果你的脚本文件里,有自定义的数据文件csv,那只能用一份csv文件,因为脚本里的数据文件的位置是写死的。