Apache JMeter是一个纯Java开发的用于负载测试或者性能测试的开源软件。这篇文章介绍一下建立基于JMeter的一主多从的容器化压测环境。
基于Alpine的JMeter镜像
关于基于Alpine基础的JMeter镜像相关的介绍和使用方式,可以参看如下内容:
- https://blog.csdn.net/liumiaocn/article/details/101919657
基于容器的分布式压测环境
在JMeter创建的容器化的分布式压测环境中通过JMX定义压测内容,通过卷交换数据,使用Master节点进行作业的分配,在Slave节点上运行具体的压测内容。一个非常简单的一主多从构成的容器化分布式压测环境可以参看下图。
测试环境说明
本文使用一个Master节点,3个Slave节点形成的1主三从的分布式测试环境,为了简单演示使用的是同一台机器,具体构成如下所示
类型 | IP | 端口 | 说明 |
---|---|---|---|
Master节点 | 192.168.31.242 | - | 用于控制的Master节点 |
Slave节点-1 | 192.168.31.242 | 31099 | 用于进行压测的Slave节点1 |
Slave节点-2 | 192.168.31.242 | 31020 | 用于进行压测的Slave节点2 |
Slave节点-3 | 192.168.31.242 | 31021 | 用于进行压测的Slave节点3 |
镜像下载
liumiaocn:~ liumiao$ docker pull liumiaocn/jmeter:5.1.1
5.1.1: Pulling from liumiaocn/jmeter
9d48c3bd43c5: Already exists
b2da696b9ce3: Pull complete
Digest: sha256:bd7bb96d90b5ac7c8f72f147fc0b063bf845aa5f8daee48a1c525a1479d27d91
Status: Downloaded newer image for liumiaocn/jmeter:5.1.1
liumiaocn:~ liumiao$ docker images |grep jmeter |grep 5.1.1 |grep liumiaocn
liumiaocn/jmeter 5.1.1 9e0fdc73a1d9 8 hours ago 190MB
liumiaocn:~ liumiao$
Slave节点设定与启动
在本文的示例中,只需要分别在启动如下三个jmeter的Slave压测实例即可:
- Slave节点-1
启动命令:docker run -d -p 31099:1099 liumiaocn/jmeter:5.1.1 jmeter -Dserver.rmi.ssl.disable=true -s -j /tmp/jmeter-slave.log
- Slave节点-2
启动命令:docker run -d -p 31020:1099 liumiaocn/jmeter:5.1.1 jmeter -Dserver.rmi.ssl.disable=true -s -j /tmp/jmeter-slave.log
- Slave节点-3
启动命令:docker run -d -p 31021:1099 liumiaocn/jmeter:5.1.1 jmeter -Dserver.rmi.ssl.disable=true -s -j /tmp/jmeter-slave.log
启动示例结果如下所示:
liumiaocn:~ liumiao$ docker run -d -p 31099:1099 liumiaocn/jmeter:5.1.1 jmeter -Dserver.rmi.ssl.disable=true -s -j /tmp/jmeter-slave.log
f033f1166b50dae6526f125a4ae09c920aba29c07026a524794faba5d94e233d
liumiaocn:~ liumiao$ docker run -d -p 31020:1099 liumiaocn/jmeter:5.1.1 jmeter -Dserver.rmi.ssl.disable=true -s -j /tmp/jmeter-slave.log
0f2c01b91646e374216d792352c1d63267ef246cfc8eec49d157c4ff0d77203e
liumiaocn:~ liumiao$ docker run -d -p 31021:1099 liumiaocn/jmeter:5.1.1 jmeter -Dserver.rmi.ssl.disable=true -s -j /tmp/jmeter-slave.log
c168ec47eeca665af7a418ea2d531a8c22fc96a07442cc3c66dd48f2448658c1
liumiaocn:~ liumiao$
启动之后可以使用下述docker ps命令确认Slave节点服务运行状态
liumiaocn:~ liumiao$ docker ps |grep jmeter
c168ec47eeca liumiaocn/jmeter:5.1.1 "jmeter -Dserver.rmi…" 36 seconds ago Up 36 seconds 0.0.0.0: