当我们在运行jmeter脚本时,可能会遇到当前负载机无法产生足够负载的情况,比如让你对百度网址进行1000000个线程同时请求的压测,但是不幸的是,你的电脑刚跑起来,你就发现卡死,CUP占用太大,内存爆了等,我总结了三种解决方式:

1.修改本地的jmeter.bat,具体如下

 

 jmeter是用java编写的一个工具,自然就涉及到JVM,上面是一些JVM的参数,比如初始堆最大堆,年轻代大小,晋升周期等,一般把-xmx设置成电脑内存的一半,再大就会影响性能,比如我的电脑是8G,那么我就设置成4096m
2.利用非GUI方式,如果GUI最多可以跑80个线程,那么非GUI方式大概可以跑100个,我们先把脚本写好保存为baidu.jmx,然后通过命令运行
 

 

 -n 非GUI方式

-t   脚本的路径,可以是相对路径,也可以是绝对路径

命令有很多,具体的可以百度,也可以把结果放到某个目录下,当然前提是jmeter目录你要加入到环境PATH中

3.远程运行多台机器

由一台master管理多台slave,其中master也可以作为slave,具体方式如下:

1.编辑jmeter.properties属性,修改如下,修改后记得重启jmeter

 

 remote_hosts=ip1,ip2,不用写端口,在jmeter2.3版本后会自动分配端口,ip1,ip2就是slave的ip,如果本机也是slave(master也是slave),那就加上127.0.0.1

2.远程slave机打开 jmeter-server.bat,这个文件在bin下

 

 

3.master机运行,这里以GUI方式为例

 

 

可以选择运行一个slave,也可以运行全部slave,结果和在本地运行一样

这里有一点要指出的是,比如说一些本地的依赖文件,如csv文件等,不会发送给远程,只能自己拷贝,一般都会把它写成相对路径的方式

 

 

如果是这样,那么远程slave的相对路径就是你的jmeter脚本路径,可以通过这种方式产生足够的并发量。