Jmeter之压测分布式

今天给大家介绍一下分布式,为什么要介绍分布式呢, 因为我们会进行压测,如果压测当中要有大批量的用户并发, 我们可能要进行分布式压测,由于资源有限, 我今天就介绍一下伪分布式,便于那些刚开始学习的童鞋练习起来方便。好了,废话不多说,直接进去整体:

要有多台机器, 其中一台作为控制机,即controller,另外几台是代理服务器(server-agent),这边我就复制两台代理服务器,这边的原理就是,控制机分发任务给代理服务器,代理服务器接受任务,反馈结果给控制机(controller)

1. 复制出三个Jmeter 文件,两台作为代理服务器,一台作为控制机

2. 在两台代理服务器的Jmeter文件中找到Jmeter.properties文本中修改端口号分别为 server_port=3333,,4444

3.修改一下控制机的remote_hosts=127.0.0.1:3333,127.0.0.1:4444,好了然后去run 控制机(点击运> 远程启动所有),在run控制机之前先启动一下两台代理服务器的 jmeter-server.bat

run控制机的时候可能会遇到一些error,如:

Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception is:java.io.FileNotFoundException: rmi_keystore.jks,或者 Exception creating connection to: 127.0.0.1; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)

解决方案:修改 jmeter.properties 的文件 server.rmi.ssl.disable=false,改为true,并把前面的#去掉

控制机先新建脚本,然后下发给代理服务器,举个例子,打开百度首页,然后代理服务器各自分发500个用户(在控制机上面设置线程组500),在添加聚合报告查看结果,远程启动所有之后,看到聚合报告中会有1000个样本,就执行成功了,注意千万别点击绿色的那个箭头run,要点击运行>远程启动所有

好了上面是伪分布式的执行步骤。

真正在工作中实操的时候就不能直接复制3个Jmeter文件了,但是原理是一样的,只是两台代理服务器不需要改端口号了

       1、在负载机( Load Generator)上 安装 JMeter,并确定其中一台机器作为 控制机,其他的机器作为 代理服务器——假定我们使用两台机器 192.168.0.1 和 192.168.0.2 作为 代理服务器;
  2、在控制机JMeter 安装目录下找到 bin 目录,再找到 JMeter.properties 这个文件
  3、在JMeter.properties 这个文件中找到“remote_hosts=”,你可以找到这样一行“remote_hosts=127.0.0.1”。其 中的 127.0..0.1 表示运行 JMeter Agent 的机器,改为“remote_hosts=192.168.0.1:1099,192.168.0.2:1099”——其中的 1099 为 JMeter 的 控制机 和 代理服务器之间进行通讯的默认的 端口号,只改要作为控制机的机器上的此文件即可,改好之后要重启Jmeter,否则不会生效。
  4、保存文件,依次启动jmeter-server.bat为代理服务器(其实就是执行机,执行机不需要界面操作,写脚本之类的,所以直接命令行形式的,双击jmeter-server.bat),然后进入控制机进入 Run -> Remote Start 菜单项,在这里可以看到远程启动菜单下面有192.168.0.1 ,192.168.0.1两个IP地址
  5、然后点击Run 菜单下的“远程运行全部”菜单,后者单个执行

 

It's over

欢迎大家提问题,如有不对的地方!!!

posted @ 2020-04-19 22:27  傲语平生  阅读(229)  评论(0编辑  收藏  举报