jmeter 镜像构建
jmeter 镜像构建
准备
- 下载 jmeter 安装包,官网下载
wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-${JMETER_VERSION}.tgz
wget https://downloads.apache.org/jmeter/binaries/apache-jmeter-5.6.3.tgz
- 下载 jmeter 插件包,默认的若不满足,先下载PluginsManager,https://jmeter-plugins.org/wiki/PluginsManager/
- 手动打包插件
Windows目录C:\johnny\soft\apache-jmeter-5.6.3\lib\ext
将所有插件打包,plugins.tar
normal dockerfile
# Author: johnny
FROM openjdk:8
WORKDIR /opt/
ARG JMETER_VERSION=5.6.3
COPY apache-jmeter-${JMETER_VERSION}.tgz /opt
RUN mkdir /opt/{test,report} && \
tar -xzf apache-jmeter-${JMETER_VERSION}.tgz && \
mv apache-jmeter-${JMETER_VERSION} jmeter && \
rm apache-jmeter-${JMETER_VERSION}.tgz
# 按需
ADD plugins.tar /opt/jmeter/lib/ext
ENV JMETER_HOME /opt/jmeter
ENV PATH $JMETER_HOME/bin:$PATH
EXPOSE 8686
CMD ["jmeter", "-n", "-t", "/opt/test/test.jmx", "-l", "/opt/report/result.jtl", "-e", "-o", "/opt/report"]
heap dockerfile
# Author: johnny
FROM openjdk:8
WORKDIR /opt/
ARG JMETER_VERSION=5.6.3
COPY apache-jmeter-${JMETER_VERSION}.tgz /opt
RUN mkdir /opt/{test,report} && \
tar -xzf apache-jmeter-${JMETER_VERSION}.tgz && \
mv apache-jmeter-${JMETER_VERSION} jmeter && \
rm apache-jmeter-${JMETER_VERSION}.tgz
# 按需
ADD plugins.tar /opt/jmeter/lib/ext
ENV JMETER_HOME /opt/jmeter
ENV PATH $JMETER_HOME/bin:$PATH
EXPOSE 8686
# 设置JMeter的堆内存大小
ENV HEAP="-Xms2g -Xmx4g"
CMD ["jmeter", "-n", "-t", "/opt/test/test.jmx", "-l", "/opt/report/result.jtl", "-e", "-o", "/opt/report"]
JMeter的默认堆内存设置通常为-Xms1g -Xmx1g,即初始堆内存和最大堆内存都设置为1GB
如果出现OOM的错误,可检查发压端主机资源,也可以考虑增加JVM堆内存,报错:Uncaught Exception java.lang.OutofMemoryError: Java heap space
增加JVM堆内存:在Dockerfile中添加了ENV HEAP=“-Xms2g -Xmx4g”,这会为JMeter的JVM设置初始堆内存为2GB,最大堆内存为4GB。
构建镜像
docker build -t jmeter:5.6.3 .
运行
# jmeter要求report目录必须为空
rm -rf /home/johnny/jmeter/report/
docker run --rm --name jmeter -v /home/johnny/jmeter/test.jmx:/opt/test/test.jmx -v /home/johnny/jmeter/report:/opt/report jmeter:5.6.3
cd /home/johnny/jmeter/report
## py3在线查看report
python -m SimpleHTTPServer 9999
导出report
tar -cvf report.tar report/