美文网首页
mac环境下 Dockerfile部署jmeter分布式环境

mac环境下 Dockerfile部署jmeter分布式环境

作者: 井湾村夫 | 来源:发表于2021-04-12 21:01 被阅读0次

    背景

    闲来无事重新又把使用Dockerfile部署jmeter分布式的知识回顾了一下,回头重新整理下使用docker-compose来启动整个环境。目前都是需要手动~<手动狗头>

    看图

    1.png
    2.png
    3.png

    解释

    1. 图片1 展示的就是是使用dokcer部署jmeter分布式的一个概览图,目的就是再一台物理机器上使用docker启动一台jmeter master,多台slave来实现jmeter的分布式压测
    2. 图片2 展示的是一台master 和salve的通信过程,jmeter slave需要开通 50000和1099两个端口号,
      其中server_port是从机服务的端口号,另一个是远程服务通信端口号。具体我也不太清楚;jmeter master 需要开通60000端口号,用来和slave通信
    3. 图片3展示的是一个压力效果,可以理解为单台机器压测时如果有20个压力,使用1主3从之后,可以用3倍的压力

    脚本-Dockerfile

    image.png
    可以看到我整个脚本的目录,一共有base ,client,和master ,sample-test四个目录,其中base是用来存放jmster基础镜像的文件,master是用来存放master的镜像,client是用来存放slave的镜像,最后sample-test是用来存放jmx脚本的-目的是通过挂载的方式把脚本共享给jmeter的master,如果有改动不需要每次再上传到master容器里,方便来操作。
    base的镜像
    FROM openjdk:8-jre-slim  # 镜像需要依赖java环境
    
    RUN apt-get clean && \
        apt-get update && \
        apt-get -qy install \
                    wget \
                    telnet \
                    iputils-ping \
                    unzip        # 安装一些常用工具
    RUN   mkdir /jmeter   # 在容器新建存放jmeter的目录
    
    ADD apache-jmeter-5.3/ /jmeter/apache-jmeter-5.3  # 把本地的jmeter添加到镜像里
    
    ENV JMETER_HOME /jmeter/apache-jmeter-5.3/    # 设置容器里jmeter的环境变量
    
    ENV PATH $JMETER_HOME/bin:$PATH
    

    master的镜像

    FROM myimages  #base镜像的名称
    MAINTAINER shd  # 作者
    
    # Ports to be exposed from the container for JMeter Master
    EXPOSE 60000   # 暴露端口号
    

    slave的镜像

    FROM myimages   #base镜像的名称
    MAINTAINER shd
    
    # Ports to be exposed from the container for JMeter Slaves/Server
    # 从JMeter Slaves/Server的容器中要公开的端口
    EXPOSE 1099 50000   #暴露端口号
    
    # Application to run on starting the container
    # 启动容器 运行应用程序
    ENTRYPOINT $JMETER_HOME/bin/jmeter-server \
                            -Dserver.rmi.localport=50000 \
                            -Dserver_port=1099    # 通过entrypoint的方式启动slave 的server
    
    

    启动镜像和容器的脚本

    docker build . -t myimages  # 构建base镜像
    
    
    docker build . -t slave_images # 构建slave镜像
    
    docker build . -t master_images # 构建master镜像
    
    # 通过挂载的方式启动主机
    docker run -itd --name master 
    -v /Users/shenhaodong/PycharmProjects/my_test/jmeter/sample-test:/sample-test 
    master_images    
    
    # 启动从机
    docker run -dit --name slave01 slave_images
    docker run -dit --name slave03 slave_images
    docker run -dit --name slave02 slave_images
    
    
    # 查看所有ip
    docker inspect --format '{{ .Name }} => {{ .NetworkSettings.IPAddress }}' $(sudo docker ps -a -q)
    
    

    执行压测脚本

    docker exec -it master /bin/sh  # 进入容器
    cd sample-test   # 进入脚本目录
    jmeter -n -t test.jmx -R 172.17.0.4,172.17.0.3  # 开启分布式压测
    

    需要注意⚠️:一定要记得把jmeter/bin/jmeter.properties 的server.rmi.ssl.disable=false 改成true,并且前面的#去掉

    server.rmi.ssl.disable=true
    

    相关文章

      网友评论

          本文标题:mac环境下 Dockerfile部署jmeter分布式环境

          本文链接:https://www.haomeiwen.com/subject/asqflltx.html