jmeter:压测系统的docker化

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命令执行压测;具体使用方法与在宿主机直接执行相同。

jmeter:压测系统的docker化_第1张图片

(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查看日志;可以通过命令中指定的输出文件的位置查看执行结果。

 

你可能感兴趣的:(性能测试,docker)