用Jmeter分布式测试——多台电脑做压力测试

 在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需要模拟数以万计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。为了让jmeter工具提供更大的负载能力,这时可以使用Jmeter提供的分布式功能来启动多台电脑来分压测试。

一、Jmeter分布式执行原理:

  1、Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。

  2、执行时,Controller会把脚本发送到每台Agent上,Agent 拿到脚本后开始执行,Agent执行时不需要启动Jmeter,只需要把jmeter-server.bat文件打开,它应该是通过命令行模式来执行的。

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

二、代理机(Agent)配置:

1、Agent机上需要安装JDK、Jmeter,并且配置好环境变量。

2、打开“运行”,输入"cmd",打开运行面板,输入“ipconfig”,找到IP地址,例如是:192.168.100.207

用Jmeter分布式测试——多台电脑做压力测试_第1张图片 3-打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.100.207:1099,1099是端口号,可以随意自定义。

 用Jmeter分布式测试——多台电脑做压力测试_第2张图片

 4、打开jmeter-server.bat文件,就设置完成了,等待控制机(Controller)启动。

三、控制机(Controller)配置:

1、Controller机上需要安装JDK、Jmeter,并且配置好环境变量。

2、打开“运行”,输入"cmd",打开运行面板,输入“ipconfig”,找到IP地址,例如是:192.168.100.190:1099

 -打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=remote_hosts=192.168.100.190:1099,192.168.100.207:1099,1099是端口号,可以随意自定义。如果有多台代理机,这里需要把所有的代理机的IP地址和端口号都加入进来。

用Jmeter分布式测试——多台电脑做压力测试_第3张图片

 3.打开jmeter-server.bat文件,设置完成了。

四、开始添加线程组和请求来运行查看结果:

1、打开jmeter.bat文件,添加线程组,编辑线程数,这里设置1个线程数,循环1次,就是一台机器发送1*1=1个请求。两台机器就会有2个请求

用Jmeter分布式测试——多台电脑做压力测试_第4张图片

 

用Jmeter分布式测试——多台电脑做压力测试_第5张图片

 tips:

如果遇到Jmeter执行jmeter_server.bat报错java.io.FileNotFoundException:rmi_keystore.jks(系统找不到指定的文件)

用Jmeter分布式测试——多台电脑做压力测试_第6张图片 

1.bin目录下有一个create-rmi-keystore.bat执行这个按提示生成密钥。

会在bin目录下生成一个rmi_keystore.jks文件。

2.修改jmeter.properties文件下server.rmi.ssl.disable=true (记得去除server.rmi.ssl.disable=true前的#)

这行说明什么呢,就是让我们决定是不是要启动SSL
用Jmeter分布式测试——多台电脑做压力测试_第7张图片

3. 执行jmeter_server.bat 

 用Jmeter分布式测试——多台电脑做压力测试_第8张图片

 

端口号与设置的不同,需要端口设置:

jmeter.properties设置本机ip:端口

找到jmeter.properties文件,修改如下两个配置项,比如我这里修改为1888:
  server_port=1099
  server.rmi.localport=1099

用Jmeter分布式测试——多台电脑做压力测试_第9张图片 

用Jmeter分布式测试——多台电脑做压力测试_第10张图片 

 

你可能感兴趣的:(测试,jmeter)