Jmeter 压测-利用Docker分布式压测
warning:
这篇文章距离上次修改已过193天,其中的内容可能已经有所变动。
要使用Docker进行JMeter分布式压测,你需要做以下几步:
- 准备JMeter主机(Controller):创建一个包含JMeter和所需插件的Docker镜像。
- 准备JMeter从机(Agent):创建另一个Docker镜像,用于运行JMeter代理。
- 启动JMeter容器,并在从机上运行代理。
- 从主机控制脚本执行和监控从机执行情况。
以下是一个简单的示例来说明如何实施这些步骤。
- 准备JMeter主机的Dockerfile:
FROM openjdk:8-jdk
RUN apt-get update && apt-get install -y curl tar unzip
RUN curl -L -O https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.4.1.tgz \
&& tar -xzf apache-jmeter-5.4.1.tgz \
&& mv apache-jmeter-5.4.1 /opt/jmeter \
&& rm apache-jmeter-5.4.1.tgz
WORKDIR /opt/jmeter
- 构建并运行JMeter主机容器:
docker build -t jmeter-controller .
docker run -it --name jmeter-controller -v /path/to/your/jmeter/testplan:/opt/jmeter/testplan jmeter-controller
- 准备JMeter从机的Dockerfile:
FROM openjdk:8-jdk
RUN apt-get update && apt-get install -y curl tar unzip
RUN curl -L -O https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.4.1.tgz \
&& tar -xzf apache-jmeter-5.4.1.tgz \
&& mv apache-jmeter-5.4.1 /opt/jmeter \
&& rm apache-jmeter-5.4.1.tgz
WORKDIR /opt/jmeter
COPY agent-start.sh /start.sh
RUN chmod +x /start.sh
ENTRYPOINT ["/start.sh"]
其中agent-start.sh
是启动JMeter代理服务器的脚本:
#!/bin/bash
jmeter-server \
-Dserver.rmi.localport=50000 \
-Dserver.rmi.ssl.disable=true \
-Jserver.port=1099 \
&
sleep 10
tail -f /dev/null
- 构建并运行JMeter从机容器:
docker build -t jmeter-agent .
docker run -it --name jmeter-agent -p 1099:1099 jmeter-agent
- 在JMeter主机容器内执行压测:
cd /opt/jmeter
jmeter -n -t /opt/jmeter/testplan/your-test-plan.jmx -R agent1,agent2 -l /opt/jmeter/results/result.jtl
其中-n
表示非GUI模式,-t
指定测试计划,-R
指定从机IP或名称,-l
指定结果文件。
以上步骤只是一个简化示例,实际使用时需要根据你的环境和需求进行调整。例如,你可能需要将测试计划和结果文件夹通过卷挂载到容器中,或者配置JMeter从机的IP白名单等。
评论已关闭