使用JMeter 做性能测试的时候, 然后需要模拟大量的请求, 单台电脑是不够的, 这时候必须使用Jmeter 提供的分布式测试的功能
JMeter 分布式测试的架构
1. 选择一台机器做Controller, 其他机器做Agent(执行测试的机器)
2. Contrller 机器, 会把脚本发送给Agent, 机器。 Agent拿到脚本后开始,并且执行测试的时候不需要启动GUI
3. 执行完成后, Agent会把结果发送给 Controller, 我们只需要在Controller 机器上汇总测试结果
架构如下
JMeter Agent 的配置
1. Agent 的机器上, 下载JMeter (JMeter的版本要和),
2. 添加环境变量 JMETER_HOME = c:\apache-jmeter-2.13 这个是你 JMeter的路径
3. 配置端口号, 打开 JMeter的bin目录下, 找到jmeter.properties 文件, 修改如下两个配置
server_port=1099 server.rmi.localport=1099
4. 启动 jmeter-server.bat , 如下图。 端口号是:1099 如下图所示:
5. 如果需要配置多台Agent, 重复上面几个步骤就行
Controller机器的配置和执行
1. 找到Jmeter的bin目录下, jmeter.properites文件, 修改下面配置,指向Agent机器, 多台Agent 使用 “,” 分隔
remote_hosts=10.0.0.8:1099,10.0.0.9:1099
2. 打开Jmeter, 新建几个简单的脚本, 点击 "运行" 菜单, 可以看到 有 "远程启动" 和 “远程全部启动” 选择全部启动, 可以看到脚本成功执行了。 看起来跟本机执行一样
3. 回头看下Agent 上, 可以看到
特别要注意的地方
1. 每台机器(Controller和Agent)上的JMeter以及插件都要一致, 这样可以免去一些不必要的麻烦
2. 有时候Controller 连不上Agent, 需要关闭Agent 机器上的防火墙。
3. 有时候Controller 连不上Agent, 需要更换Agent 上的端口号
4. JMeter 引用了一些文件路径。 那确保Agent机器上也存在这样的文件, 并且文件路径也要设置一样