jmeter的Dockerfile如下:
FROM alpine
# Install packages
RUN apk update \
&& apk upgrade \
&& apk add --update openjdk8-jre bash tar unzip wget\
&& rm -rf /var/cache/apk/*
ARG JMETER_VERSION="4.0"
# Install jmeter
RUN mkdir /jmeter \
&& cd /jmeter/ \
&& wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-${JMETER_VERSION}.tgz \
&& tar -xzf apache-jmeter-${JMETER_VERSION}.tgz \
&& rm apache-jmeter-${JMETER_VERSION}.tgz \
&& mkdir /jmeter-plugins \
&& cd /jmeter-plugins/ \
&& wget https://jmeter-plugins.org/downloads/file/JMeterPlugins-ExtrasLibs-1.4.0.zip \
&& unzip -o JMeterPlugins-ExtrasLibs-1.4.0.zip -d /jmeter/apache-jmeter-${JMETER_VERSION}/ \
&& wget https://jmeter-plugins.org/files/packages/jpgc-perfmon-2.0.zip \
&& unzip -o jpgc-perfmon-2.0.zip -d /jmeter/apache-jmeter-${JMETER_VERSION}
# Set Jmeter Home
ENV JMETER_HOME /jmeter/apache-jmeter-${JMETER_VERSION}/
# Add Jmeter to the Path
ENV PATH $JMETER_HOME/bin:$PATH
WORKDIR /search/odin/daemon
将上述Dockerfile制作成镜像后,可以根据需要启动,这里提供两种启动方法:
(1)启动一个固定的container(常驻),然后进入container内部执行压测。
具体可以用以下compose启动:
version: '3'
services:
jmeter4.0:
build:
context: ./
dockerfile: Dockerfile
image: jmeter4.0
container_name: jmeter4.0
volumes:
- /Users/apple/Applications/workspace/jmeter/jmeter-run:/search/odin/daemon/
entrypoint:
- /bin/bash
tty: true
stdin_open: true
进入container后可以直接使用jmeter命令执行压测;具体使用方法与在宿主机直接执行相同。
(2)启动一次container执行一次压测。
具体可以用以下compose启动:(jmeter -v 可以替换为实际的压测命令)
version: '3'
services:
jmeter4.0:
build:
context: ./
dockerfile: Dockerfile
image: jmeter4.0
container_name: jmeter4.0
volumes:
- /Users/apple/Applications/workspace/jmeter/jmeter-run:/search/odin/daemon/
entrypoint: "jmeter -v"
tty: true
stdin_open: true
当命令执行完后,container会自动进入退出的状态。
此时,可以通过 docker logs jmeter4.0查看日志;可以通过命令中指定的输出文件的位置查看执行结果。