Jmeter对服务器进行压力测试 在使用Jmeter进行性能测试时,如果并发数比较大(比如5000+并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。

一、插件准备

下载地址:https://jmeter-plugins.org/downloads/all/

1、下载插件管理:

2、将管理插件放到jmeter/../ext文件夹中

Jmeter对服务器进行压力测试
在使用Jmeter进行性能测试时,如果并发数比较大(比如5000+并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。

 Jmeter对服务器进行压力测试
在使用Jmeter进行性能测试时,如果并发数比较大(比如5000+并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。

3、在插件管理中搜索PerfMon(测试服务器的cpu等)

添加插件

Jmeter对服务器进行压力测试
在使用Jmeter进行性能测试时,如果并发数比较大(比如5000+并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。

 Jmeter对服务器进行压力测试
在使用Jmeter进行性能测试时,如果并发数比较大(比如5000+并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。

host/ip设置为被测试服务器,就可以测试服务器的cpu、内存等

4、下载ServerAgent-2.2.1.zip

这里给一个百度盘链接http://pan.baidu.com/share/link?shareid=2974853586&uk=1528396991&fid=512652594025385

将下载的zip放到服务器上解压,如果是linux(需要jre环境),就进入serverAgent目录,运行startAgent.sh命令,如下:

启动:>>./startAgent.sh --udp-port 0 --tcp-port port(agent起来之后所监听的端口)

停止:>>./startAgent.sh --udp-port 0 --auto-shutdown

如果是windows环境:进入serverAgent目录,直接双击startAgent.bat,启动agent

注:agent启动默认监听的端口是4444

Jmeter对服务器进行压力测试
在使用Jmeter进行性能测试时,如果并发数比较大(比如5000+并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。

二、分布式准备

一、Jmeter分布式执行原理:

  1、Jmeter分布式测试时,选择其中一台作为控制机(master),其它机器做为执行机(slaverr)。

  2、执行时,master会把脚本发送到每台slaver上,slaver 拿到脚本后就开始执行,slaver执行时不需要启动GUI,如果引用到csv等外部的文件,则每台slaver所在的机器都需要相应位置放置该文件。

  3、执行完成后,slaver会把结果回传给master,master会收集所有slaver的信息并汇总。

二、执行机(slaver)配置:

  1、slaver机上需要安装Jmeter。

  2、添加环境变量:JMETER_HOME=D:B_TOOLSapache-jmeter-2.13,此处为你Jmeter的路径。(这一步本人从来忽略依然不影响使用,关键在于每一台机器上都需要安装上java,因为jmeter就是java写的)

  3、如果slaver是在windows下则直接启动bin目录下的:jmeter-server.bat;如果slaver是在liniux下则使用如下命令来启动:nohup ./jmeter-server -Djava.rmi.server.hostname=192.168.237.129 &,其中ip为slaver所在的机器的ip。

Jmeter对服务器进行压力测试
在使用Jmeter进行性能测试时,如果并发数比较大(比如5000+并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。

 4、 需要配置多少台就按上面的方法配置多少台。

三、调度机(master)配置:

1、脚本:简单的一个访问百度的脚本:

2、找到Jmeter的bin目录下jmeter.properties文件,修改如下配置IP和Port是slaver机的IP以及默认的1099端口

remote_hosts=192.168.205.149:1099,192.168.205.150:1099,192.168.12.36:1099

3、选择远程启动-->远程全部启动:

Jmeter对服务器进行压力测试
在使用Jmeter进行性能测试时,如果并发数比较大(比如5000+并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。

四、自定义端口:

上面其实已经实现了Jmeter的分布式测试,这部分主要介绍下如何自定义slaver端口:(需要把前面#注释去掉)

  1、slaver:在slaver机的Jmeter的bin目录下,找到jmeter.properties文件,修改如下两个配置项,比如我这里修改为1888:

server_port=1888

server.rmi.localport=1888

  2、启动slaver机上的jmeter-server.bat,如下图,端口已经修改为:1888

  3、master:修改master机器的jmeter.properties文件:

remote_hosts=10.13.223.202:1000,10.13.225.12:1888

Jmeter对服务器进行压力测试
在使用Jmeter进行性能测试时,如果并发数比较大(比如5000+并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。

五、注意:

  1、控制机本身也可以作为一台slaver,在remote_hosts后面加上127.0.0.1即可,但控制机(master)和执行机(slaver)最好分开,由于master需要发送信息给slaver并且会接收slaver回传回来的测试数据,其自身会有较大消耗,所以建议单独用一台机器作为mater。

  2、参数文件:如果使用csv进行参数化,那么需要把参数文件在每台slaver上拷一份且路径需要设置成一样的。

  3、每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。

    4、最好master和slave都是一样的jmeter版本,jdk版本

六、报错:出现下面错误后,要检查

Jmeter对服务器进行压力测试
在使用Jmeter进行性能测试时,如果并发数比较大(比如5000+并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。

1、关闭所有防火墙

2、slave有时会有虚拟网卡,要禁用,ip诸如169.254.129.192之类的(我就是最后这一步)

3、如果本机也作为slave时,需要修改配置文件中的127.0.0.1为真正的ip地址,通过ipconfig查看

4、slave机器需要打开jmeter-server.bat