使用Jmeter有一段时间了,却很少写总结。下午有个朋友向我询问jmeter分布式的配置,晚上回来顺便写点东西吧!
在使用Jmeter进行性能测试时,如果并发数比较大(比如某个项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。
一、Jmeter分布式执行原理:
1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
2、执行时master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。
3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
二、执行机(slave)配置:
1、JDK (所有测试机统一版本,我使用的是1.7)
1.1 安装JDK
1.2 配置环境变量:JAVA_HOME,JMETER_HOME,PATH,CLASSPATH
2、Jmeter(所有测试机统一版本)
2.1 官网下载,我使用的是apache-jmeter-2.13
2.2 修改jmeter-server文件(master、slave都要配置)
添加 RMI_HOST_DEF=-Djava.rmi.server.hostname=172.18.11.20(slave IP)
在这里说明一下,为何指定本机的IP呢,是因为有些公司采用的是双网卡或者更多网卡,如果不指定就会报错。(具体error msg 后面我会说)
2.3 master端修改jmeter.bat 文件
添加set rmi_host=- Djava.rmi.server.hostname=172.18.11.39(master IP)
set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%
2.4 在jmeter.properties中自定义端口(也可以不修改)
agent 默认端口为1999 ,我这里修改某台机器的端口为1888
server_port=1888
server.rmi.localport=1888
2.5 启动服务
比如我有2台agent 172.18.11.199,172.18.11.20(多台配置重复上面的2.1、2.2、2.3、2.4)
分别启动 jmeter_server.bat
三、调度机( master)配置:
1、修改jmeter.properties
添加 remote_hosts=172.18.11.20:1888,172.18.11.199:1889(多台 agent使用逗号隔开)
2、重新启动jmeter.bat
这里可以看到所配置的slave的IP:PORT,这里可以选择启动某一台,或者选择全部启动.(如下图)
四、注意点说明:
1、调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以master自身会有消耗,所以建议单独用一台机器作为master。
2、参数文件:如果使用csv进行参数化,那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的。
3、每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。
五、可能遇到的问题:
1、执行机(slave)启动jmeter-server服务时,提示:
Could not find ApacheJmeter_core.jar …
… Trying JMETER_HOME=..
Found ApacheJMeter_core.jar
这个是因为开始没有找到ApacheJmeter_core.jar,然后去JMETER_HOME目录下查找,最后找不到了。如果不希望看到Could not find的字样,可以配置一下jmeter_home的路径(即bin目录的上一级目录),这样启动jmeter-server服务时,就只会看到Found ApacheJMeter_core.jar,当远程访问时,会看到控制台上打印出一行:Starting the test on host [ip]:port @....(大概是这样的,@后面是执行开始的时间),远程执行结束,会打印一行:Finished the test on host [ip]:port @...,表示远程执行结束。
2、调度机(master)远程启动时如下图
原因分析:
Jmeter采用了rmi进行远程调用,在开启RMI服务时,如果服务端有多个网卡,它只是使用其中任意一个网卡,默认情况下,导致jmeter的master机器和slaves机器不在同一个网段内,无法互通,导致失败。
解决方法为:2.2、2.3中的配置
如有疑问,欢迎加 企鹅群:113097051
相关推荐
02JMETER分布式原理 03jmeter 配置 slave 代理压测机 04jmeter 配置master控制器压测机 05JMETER分布式部署注意事项 06JMETER SLAVE和MASTER 分布式启动压测 07JMETER 分布式踩过的坑及填坑方法
本人实践,物超所值,一站式解决jmeter负载机环境问题,问题集合含: 1 slave机器的自定义端口号配置; 2 负载机(Slave)找不到参数文; 3 无数据,依赖文件报错的问题; 4 Server failed to start: java.rmi....
分布式性能测试
在测试机器配置低情况下,如何通过分布式部署jmeter在一个分布式局域网环境?本文档告诉你如何做。
利用JMeter进行负载测试的时候,使用单台机器模拟测试超过1000个行程的并发就有些力不从心,在执行的过程中,JMeter自身会自动关闭,要解决这个问题,可以使用分布式测试,运行多台机器运行所谓的 Agent 来分担 ...
《JMeter分布式压力测试详解》 在现代软件开发过程中,性能测试是不可或缺的一环,而Apache JMeter作为一款开源、跨平台的压力测试工具...正确配置和使用JMeter分布式测试,是保障软件质量和优化系统性能的重要手段。
《JMeter分布式测试详解》 在软件性能测试领域,Apache JMeter是一款广泛应用的开源工具,尤其在进行压力和负载测试时。本篇文章将深入探讨JMeter的分布式测试,旨在帮助测试人员理解并掌握如何利用JMeter进行大...
下面将详细介绍 JMeter 分布式执行的配置和实现过程。 分布式执行的必要性 在进行压力测试时,通常需要多台机器来模拟大量用户的请求,以便更好地模拟实际情况。但是,如果每台机器都需要单独配置和启动,会造成很...
JMETER 分布式注意事项 在进行 JMETER 分布式测试时,需要注意以下几个关键点,以确保测试的顺利进行和结果的准确性。 首先,保持 Contorller 和 Agent 机器的 JDK、JMeter 以及插件等配置版本的一致性非常重要。...
本章将深入探讨“第9章 高级篇之多节点JMeter分布式压测实战”,这一章节聚焦于如何利用JMeter进行多节点的分布式压力测试,以模拟大量并发用户对系统进行负载和稳定性测试。以下是对这一主题的详细阐述: 一、...
JMETER分布式部署实践详解 JMETER 为什么需要分布式 单台压测机通常会遇到客户端瓶颈,受制于客户机的性能。可能由于网络带宽,CPU,内存的限制不能给到服务器足够的压力,这个时候你就需要用到分布式方案来解决...
在本压缩包"MQTT-Jmeter分布式测试相关配置文档1.rar"中,我们将深入探讨如何使用JMeter进行MQTT协议的分布式测试。 MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息协议,设计用于物联网...
描述Jmeter在Windows端分布式压测,调度机和执行机的相关配置,亲测有效,如果单个机器无法完成压测需求,可以在Windows端使用多个电脑作为执行机进行压测。
在性能监控领域,JMeter分布式压测是常用的一种工具,用于模拟大量用户并发访问系统,以测试其性能和稳定性。然而,在进行分布式压测时,如何有效地监控和分析日志数据,特别是错误响应,成为了一个挑战。传统的日志...
2. **启动JMeter**:在配置好后,启动JMeter,在工具中设置线程组、配置元件、取样器、监听器等,然后通过“运行-远程启动”菜单命令选择远程启动单个或全部Agent,开始分布式测试。 ### 其他注意事项 1. **独立的...
基于 JMeter 开展性能测试教程(插件、监控、分布式压测) 基于 JMeter 的性能测试是软件测试中的一种重要方法,通过 JMeter,可以对软件系统进行压力测试、负载测试和性能测试。本教程将详细介绍如何使用 JMeter ...
#### 一、JMeter分布式测试概述 在软件性能测试领域,JMeter是一款非常流行的开源负载测试工具,它主要用于对Web应用进行压力测试。随着互联网应用的发展,单一的服务器往往难以满足高并发访问的需求,因此在性能...
测试计划描述了执行测试过程中JMeter的执行过程和步骤,一个完整的测试计划包括一个或者多个线程组(Thread Groups)、逻辑控制(Logic Controller)、实例产生控制器(Sample Generating Controllers)、侦听器...