Linux环境上JMeter分布式压测

1.介绍

1.1使用背景

     JMeter压力测试时,在Windows环境上向服务器施压,对PC机本身的资源消耗较大,并发用户量大时会导致压测机资源消耗过量而卡死;PC机所使用的网络带宽在高并发量时可能存在瓶颈,且网络原因会影响测试结果的准确性。

     Linux服务器的资源配置一般要高于PC机,所以在相同局域网的Linux服务器上搭建JMeter环境,通过命令执行压测脚本,可以降低网络带宽对测试结果的影响;减少因压测机本身资源不足导致的报错。当公司项目并发量要求高达6000时,单台Linux压测机无法支持如此高并发量,此时可以使用Jmeter提供的分布式测试的功能解决高并发量的测试需求。

1.2.Jmeter分布式原理

准备多台相同局域网的Linux服务器,一台做为Master(调度机)-发送脚本、收集压测结果,其它的做为Slave(压测机)-模拟用户向服务器发送请求,并把结果传给Master。

2.环境搭建

2.1配置Master

1.在Master上安装JMeter环境;

2.进入JMeter的bin目录,修改jmeter.properties,remote_hosts=ip1:1099,ip2:1099,ip3:1099...(server_port默认是1099,可以根据实际情况修改);如下图:

2.2配置Slave

1.在压测机上安装JMeter环境;

2.访问执行机上JMeter的bin路径,修改jmeter.properties,server.rmi.ssl.disable=true,httpclient.timeout=1000;

3.通过命令“./jmeter-server”,启动jmeter-server;

4.多台slave,重复步骤1~3步;

3.分布式压测

步骤1.在Windows的JMeter上编写压测脚本,如设置并发量为2000;

步骤2.将本地编辑好的测试脚本X.jmx上传到Master服务器上;(参数文件:如果对脚本进行参数化,需要把参数文件在每台slave上拷一份且路径需要设置成脚本中读取参数的路径);

步骤3.在Master上执行分布式压测,有两种压测命令可选;

1).jmeter  -n -t X.jmx -r -l X.jtl (在所有从压测上分别执行2000个用户并发,如分布式环境有3台slave机器,实际对服务器的并发量即2000*3=6000);

2).jmeter  -n -t X.jmx -R ip1:port,ip2:port -l X.jtl (在指定的从压测机上分别执行2000个用户并发,如分布式环境有3台slave机器,该命令实际对服务器的并发量即2000*2=4000);

步骤4.压测完成后,下载Master上的压测结果X.jtl;

步骤5.在Windows上解析压测结果;

注:本文属于原创,本博客下所有内容,凡注明"来源:laofashi2015"的所有文字、图片和音视频资料,版权均属laofashi2015所有,任何媒体、网站或个人未经本人协议授权不得转载、链接、转贴或以其他方式复制发布/发表。已经本人协议授权的媒体、网站,在下载使用时必须注明"稿件来源:laofashi2015",违者本人将依法追究责任。

猜你喜欢

转载自blog.csdn.net/laofashi2015/article/details/90638901