jmeter分布式操作-远程启动功能探索

一、背景:
  1. 之前在Jmeter插件监控服务器性能一篇中说到,在非GUI环境中监控时为了保存监控数据需要修改jmeter脚本,并且每次通过施压机(远程服务器,非GUI环境)来压测时都要将jmeter脚本上传然后在服务器上通过命令行启动,测试完成后再把结果数据下载到本地GUI环境中查看,总是有很多不方便。
  2. 本次压测需求需要很大的并发量,例如3000,但是单台施压机难以实现,因此希望多台施压机并行,并且我能同步控制它们。
  3. 在这样的需求下经过了解,jmeter工具本身有一个很强大的远程启动功能,于是尝试了一下。
二、jmeter分布式原理
  1. 这个远程启动,网上说的高大上一点,就是jmeter的分布式控制~ 具体控制如下图:
    936688-20161025125331984-1039938506.png

  2. 客户端机器作为一个控制器controller,控制多台slave机器的操作。
  3. controller通过GUI界面启动slave机器,将jmeter压测发送给每台启动的slave,slave获得脚本后开始执行。slave本地不需预先存储脚本;
  4. 各台slave执行完成后,将结果传回给controller,controller收集整合显示。

三、jmeter远程启动配置
服务器(slave)配置
  1. 服务器(slave)需安装jmeter,最好与客户端(controller)保持同版本,jdk最好也保持同版本,无法满足时至少保证服务器上的jmeter能正常运行(如jmeter3.0以后需要jdk1.7及以上版本)。
  2. 在slave的%JMETER_HOME%bin目录下执行./jmeter-server命令启动jmeter服务就可以,启动成功如下图:
    936688-20161025103618640-66988081.png

  3. 注意:上图红框中的ip为服务器的ip地址,当服务器有多网卡时它会随机挑选一个网卡使用,红框中的端口号port为启动jmeter服务监听的port,一般会有个默认端口号1099,但最好自定义,确保端口号不冲突。修改方法在下文介绍。

客户端(controller)配置
  1. 在客户端上要保证执行命令能发送到服务器,因此需配置客户端远程的ip地址和port。在客户端安装目录的bin文件夹下,找到jmeter.properties,修改配置如下图,其中ip和port即为上一步slave的ip和port,如上图中jmeter-server启动时红框中显示的内容。多个slave机器的配置可通过逗号分隔。
remote_hosts=10.165.124.6:1029
  1. 配置完成后打开客户端jmeter的GUI界面,在运行-远程启动中即可看到自己配置的slave机器。
    936688-20161025104701531-1690383756.png

  2. 添加一个脚本,点击远程启动即可启动运行slave机器,此时在服务器上可看到控制台信息,在客户端通过监听器-聚合报告或察看结果数可看到执行结果。
    936688-20161025105049375-1139796805.png

    936688-20161025104851234-87036693.png

四、问题
slave机器的自定义端口号配置
  1. 在slave机器的%JMETER_HOME%bin目录下找到jmeter.properties,修改如下两项配置,即可自定义端口号:
server_port=1029
server.rmi.localport=1029
  1. 修改后执行服务端的jmeter-server即可看到控制台消息中修改是否生效;修改生效后需在客户端修改相应的jmeter.properties下的remote_hosts。
slave机器和客服端多网卡的问题
  1. 我在执行过程中slave机器的jmeter-server.log和客户端的jmeter.log中均报错提示connect refused。经过检查后发现服务器上有2个网卡,客户端有两个网卡,两台机器通过vpn在内网环境通信。而jmeter在远程通信的时候是随机选择一个网卡的ip,这样很容易导致连接不成功。
  2. 可通过如下配置指定服务器和客户端的网卡,在服务器端的jmeter-server文件中,修改配置指定服务器端的网卡ip
RMI_HOST_DEF=-Djava.rmi.server.hostname=10.165.124.6

在客户端的jmeter.bat中修改配置指定客户端的网卡ip

增加配置项:set rmi_host=-Djava.rmi.server.hostname=10.165.120.4
修改配置项:set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %CLASS_UNLOAD% %DDRAW% %rmi_host%
  1. 在修改配置后尝试远程启动,发现还是不成功,打开客户端jmeter.log,发现客户端发送成功;打开服务器端的jmeter-server.log显示服务器连接客户端不成功,尝试ping了一下也确实ping不通,然后网上搜了一下说是因为客户端的防火墙阻止了,关闭客户端所有防火墙,再次执行,测试成功。
依赖文件报错的问题
  1. 当jmeter脚本中需要依赖csv等数据文件时,该文件需上传至服务器,并需要设置正确的路径。

转载于:https://www.cnblogs.com/suntingme/p/5995721.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JMeter分布式远程启动配置是指将JMeter测试计划在多台远程服务器上运行,以提高测试性能和效率的一种配置方式。其主要步骤如下: 1. 安装Java和JMeter:在每台远程服务器上安装Java运行环境和JMeter软件,确保版本兼容。 2. 配置主机:在本地主机上打开JMeter,选择“运行”菜单中的“远程启动”选项,点击“添加远程主机”按钮。 3. 输入远程服务器信息:在弹出的对话框中,输入远程服务器的IP地址或域名,并选择相应的RMI端口号(默认为1099)。 4. 启动远程服务器:在远程服务器上打开命令行窗口或终端,在JMeter安装目录下的bin文件夹中执行以下命令: ``` jmeter-server.bat (Windows) sh jmeter-server.sh (Linux/Mac) ``` 5. 连接远程服务器:在本地主机的JMeter中,点击“开始”按钮,JMeter将会连接到远程服务器,启动测试计划。 6. 配置测试计划:在本地主机上创建或打开现有的测试计划,配置相关的线程组、取样器、断言等元素。 7. 运行测试计划:点击“运行”按钮,JMeter将会将测试计划分发到远程服务器上的各个节点进行并发执行。 8. 查看结果:测试完成后,可以在JMeter中查看测试结果,包括各个远程服务器上的响应时间、错误率、吞吐量等数据。 通过以上步骤,我们可以实现使用JMeter分布式远程启动配置来进行测试,提高测试的性能和效率。需要注意的是,远程服务器的配置和性能可能会影响测试结果,因此在进行分布式测试时,需确保所有远程服务器的环境均一致,并具备足够的计算和网络资源。 ### 回答2: JMeter分布式测试是指在多个计算机上同时执行JMeter测试计划,以模拟大规模用户负载的情况。为了实现JMeter分布式远程启动,需要进行以下配置: 1. 创建主节点:选择一台计算机作为主节点,并在该节点上进行JMeter的安装和配置。 2. 配置主节点:在主节点上编辑jmeter.properties文件,设置以下属性值: - remote_hosts:指定从节点的IP地址或主机名,多个节点之间使用逗号分隔。 - server_port:定义JMeter服务器的端口号,用于接收从节点的请求。 3. 启动从节点:在多台计算机上安装并配置JMeter,将从节点的IP地址或主机名添加到主节点的remote_hosts属性中。 4. 启动主节点:在主节点上使用命令行工具或JMeter GUI界面启动JMeter,确保服务器端口已打开并监听请求。 5. 配置测试计划:使用JMeter GUI编辑测试计划,包括线程组、采样器、断言等组件,并设置合理的参数。 6. 运行测试计划:选择“分布式”选项,指定要在远程节点上运行的线程数,并启动测试。 7. 监控测试执行:在主节点上监控测试的执行情况,包括每个从节点的响应时间、错误率等指标。 通过以上配置步骤,可以实现JMeter分布式远程启动分布式测试允许在多台计算机上同时执行测试,可以更加准确地模拟真实用户负载情况,并发现潜在的性能问题。 ### 回答3: JMeter是一个用于进行性能和负载测试的工具,可以通过分布式远程启动配置来进行多台机器上的测试。以下是关于JMeter分布式远程启动配置的解释: 1. 准备测试环境:首先,需要确保每台参与测试的机器上都已经安装了JMeter。同时,所有的机器需要在同一个网络中,能够互相访问。 2. 创建主服务器:在其中一台机器上,作为主服务器来控制和监控整个分布式测试过程。在这台机器上打开JMeter并创建一个测试计划。 3. 配置远程服务:在主服务器上,选择“远程测试”选项,并在“远程主机”中添加参与测试的其他机器的IP地址或域名。点击“添加远程主机”按钮来添加更多的机器。 4. 配置分布式测试:在主服务器上,选择“远程测试”选项下的“分布式测试”并选择“运行测试”按钮。这将启动测试计划,并将任务分发给其他的远程服务器。 5. 监控测试过程:在主服务器上,可以通过观察结果来实时监控测试的进程。结果将会从远程服务器返回到主服务器上。 6. 收集和分析结果:测试完成后,在主服务器上可以收集和分析测试结果。可以将结果导出为报告格式,以便进一步分析。 需要注意的是,分布式测试需要确保网络流量和资源充足,以免影响测试结果的准确性。此外,主服务器的性能也需要足够强大,能够处理并监控所有参与测试的机器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值