使用 AWS EC2 实例在 JMeter 中进行远程测试

Remote Testing in JMeter with AWS EC2 instance

我尝试使用我的计算机作为 Client/Master 并使用 EC2 实例作为从属来开始远程测试 我达到了所有这些要点:

  1. 在主服务器和从服务器上禁用防火墙。
  2. 我在 Master 和 Slave 上有相同版本的 java 和 JMeter。

我已将所有通信设置为通过端口 4000。

我的大师配置:

remote_hosts=10.xx.xx.xxx

server_port=4000

server.rmi.port=4000

server.rmi.localport=4000

server.rmi.ssl.disable=真

我的从站配置 [EC2 实例]
server_port=4000

server.rmi.port=4000

server.rmi.localport=4000

server.rmi.ssl.disable=真

在从 [EC2 实例] 上启动 JMeter 服务器的命令:

./jmeter-server -Gjava.rmi.server.hostname:10.xx.xx.xxx

在 Master [我的电脑] 上启动 JMeter 服务器的命令:

./jmeter-server -Gjava.rmi.server.hostname:192.xx.xx.xxx

在 运行 主机测试之后,测试在从机上开始并完成。

我的问题是 Client/Master 没有得到任何结果或摘要,它卡在并冻结在这一行:

正在等待端口 4445 上可能的 Shutdown/StopTestNow/HeapDump/ThreadDump 消息。

您的 10.xx.xx.xxx192.xx.xx.xxxclass A and class C 本地网络 ,这意味着它们无法从其他任何地方访问,只能从他们的各自的本地网络。

因此您将无法从您的计算机访问 EC2 实例内部 IP,反之亦然。

为了能够连接到 EC2 实例,您需要:

  1. 使用外部 (public) IP address 或 DNS 主机名
  2. AWS Security Groups
  3. 中打开4000端口

为了将结果从 EC2 机器返回到您的计算机,您需要有静态外部 IP 地址,您需要联系您的 ISP 或网络管理员来配置和分配此地址

可以在 JMeter Distributed Testing with Docker 文章中找到带有自定义端口的 master/slave 配置示例。

更多信息:Remote hosts and RMI configuration

如果您只有一台从机,那么投资 master/slave 配置根本没有意义,只需 run JMeter in command-line non-GUI mode in the EC2 instance 并在本地分析结果。

如果您计划使用 1 个以上的从站 - 也可以将主站转移到 EC2,这样您就可以使用内部 IP 地址