Jmeter分布式测试
单台机器运行500个线程就基本到极限了,所以很多时候我们需要用到分布式执行方式。
1. 介绍
Jmeter的分布式执行方式,分为一台调度机和多台执行机。其中调度机保存测试脚本,远程启动时分发给所有执行机。而执行机执行的过程中会把请求结果实时传回给调度机。以达到分布式测试的目的。
以下图例中,以a机器作为调度机,a、b、c机器作为执行机进行测试。(机器紧张的情况下,a也可以充当执行机)

PS: 传输过程中会产生一定的损耗,所以不建议调度机参与执行。
2. 准备工作
2.1 执行机查到出ip地址
- 查询本机ip地址
windows在cmd执行ipconfig。Linux在终端执行ifconfig可以查到本机的ip地址。

PS: 因为我这是A类地址,所以是10开头的,一般是C类地址192.168.x.x。
2.2 调度机修改配置文件
- 进入调度机上Jmeter程序路径,打开/bin/jmeter.properties 文件。

- 找到remote_hosts这一行,填入所有执行机ip地址。(来自2.1 执行机查到出ip地址)

3. 执行过程
3.1 执行机启动服务端
- 在每一台执行机上,进入Jmeter程序路径,启动\bin\jmeter-server.bat 文件。

- 启动后是这样子的,这个终端不能关闭。红框中会显示本机IP地址。端口号在Jmeter4.0后是自动分配的。

3.2 调度机远程启动所有执行机
- 在调度机上,运行Jmeter GUI界面。可以在运行-远程启动菜单看到配置文件中设定的执行机列表。

- 我点了运行-远程全部启动,2个执行机各执行了一遍。
执行过程中,调度机分发了.jmx脚本给了2台执行机,2台执行机执行过程中把执行结果传回给了调度机。

- 如果远程执行成功的话,执行机上的jmeter-server.bat执行框会有内容更新

4. 命令行进行远程启动
-
普通的命令行启动是这样的
jmeter.bat -n -t 线程组.jmx -l test.jtl -
带上生成报告是这样的
jmeter.bat -n -t 线程组.jmx -l test.jtl -e -o Report -
远程启动所有执行机,只需要加个 -r 参数即可
jmeter.bat -n -t 线程组.jmx -r -l test.jtl

-
执行完成后报告也是所有执行机的全部测试结果

5. 可能遇到的问题
5.1 启动jmeter-server.bat报错
- Windows平台 执行机如果运行 jmeter-server.bat 遇到以下错误 java.io.FileNotFoundException: rmi_keystore.jks

- 进入执行机上Jmeter程序路径,打开\bin\jmeter.properties 文件。
找到#server.rmi.ssl.disable=false 这一行,改成true,记得把#去掉。

- 调度机也需要修改为#server.rmi.ssl.disable=true,否则远程启动时会报相同错误。

5.2 远程启动时报错
- 可能是你的调度机上执行的测试脚本中,含有执行机上没有的插件内容。
譬如这个情况是调度机上有"bzm - Concurrency Thread Group"线程组,但执行机上没有这个插件。

JMeter分布式测试

本文介绍JMeter分布式测试的实现方式,包括如何配置调度机和执行机、启动服务端及远程启动执行机的过程,并解决可能出现的问题。
2441

被折叠的 条评论
为什么被折叠?



