当前位置:   article > 正文

docker+jmeter实现windows作为主控机,linux作为负载机的分布式压测环境搭建_搭建容器化分布式测试环

搭建容器化分布式测试环

1、搭建环境说明

  1. 准备一台windows主机作为主控机,用于进行任务的分发以及结果的收集。
  2. 准备一台或多台的linux主机作为负载机,用于进行负载压测,需准备docker环境。本文用的CentOs发行版本的linux。
  3. 需确保windows主控机以及linux负载机之间能够ping通。
  4. windows主控机与linux负载机的jmeter版本需保持一致。JDK保持一致。本文jmeter使用版本为5.4.1。

2、windows主控机安装Jmeter

  1. windows版jmeter的安装教程很多,此处不做过多赘述,请自行安装Jmeter。可参考如下文章进行安装 Jmeter安装教程【5.5】【Windows】jmeter详细安装配置教程,装不好你打我
  2. 修改配置文件
## 修改jmeter.properties文件
# Remote Hosts - 此处填写对应linux负载机的ip地址,多台负载机ip地址通过逗号隔开
remote_hosts=192.168.175.135:1099,192.168.175.134:1099

# RMI port to be used by the server (must start rmiregistry with same port)
server_port=1099

# the following property before starting the server:
server.rmi.localport=1099

# Set this if you don't want to use SSL for RMI
server.rmi.ssl.disable=true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
## 修改system.properties文件。在最后一行加上当前windows主控机的ip地址
java.rmi.server.hostname=128.23.58.41
  • 1
  • 2

3、linux负载机安装Jmeter

3.1、安装docker环境

  1. centos下docker官方安装文档:Linux centos操作系统下安装docker
  2. 安装需要的安装包yum-utils。shell命令行输入:
yum install -y yum-utils
  • 1
  1. 设置镜像仓库地址
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    ##文档中仓库地址不在国内,访问较慢,此处可更改为别的镜像仓库,如:
    ##阿里云镜像仓:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 安装docker引擎
yum install docker-ce docker-ce-cli containerd.io
  • 1
  1. 启动docker
systemctl  start  docker
  • 1
  1. 设置docker开机自启动
systemctl enable docker
  • 1
  1. (可选)配置docker镜像加速。
    登录阿里云,找到镜像容器服务。按照步骤配置镜docker镜像。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://magantt5.mirror.aliyuncs.com”]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  1. 测试docker是否运行成功
##查看当前docker版本
docker version
##运行测试用例看看docker是否安装成功。没有报错即安装成功
docker run hello-world
  • 1
  • 2
  • 3
  • 4

3.2、使用docker安装jmeter

  1. 自定义jmbase的dockerfile文件。
# jmbase。dockerfile文件
# 基础镜像文件openjdk:8
FROM openjdk:8-jre-slim

# 镜像创建者名字
MAINTAINER yourname

# jmeter版本。与windows的jmeter版本保持一致
ARG JMETER_VERSION=5.4.1

# 安装基本工具
RUN apt-get clean && apt-get update && apt-get -qy install wget telnet iputils-ping unzip

# 安装jmeter
RUN mkdir /jmeter \
      && cd /jmeter/ \
      && wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-$JMETER_VERSION.tgz \
      && tar -xvzf apache-jmeter-$JMETER_VERSION.tgz -C /jmeter

# 设置jmeter容器环境
ENV JMETER_HOME /jmeter/apache-jmeter-$JMETER_VERSION/
ENV PATH $JMETER_HOME/bin:$PATH
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  1. 构建jm:base镜像。此步骤安装基本工具时可能会由于网络问题安装失败。多次重试一下就好。
 docker build -f ./jmbase -t jm:base .
  • 1
  1. 基于jm:base镜像自定义jmslaves的dockerfile文件。
# jm:slaves。dockerfile文件
# 使用jmbase作为基础镜像
FROM jm:base
MAINTAINER yourname

# 从JMeter Slaves/Server的容器中要公开的端口
EXPOSE 1099

# 启动容器 运行应用程序
ENTRYPOINT $JMETER_HOME/bin/jmeter-server \
                        -Dserver.rmi.localport=1099 \
                        -Dserver_port=1099 \
                        -Dserver.rmi.ssl.disable=true \
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  1. 根据自己的目录层级,创建对应文件夹。需要创建一个用于挂载目录的jmslave文件夹,该文件夹存放对应linux版本的jmeter应用程序。
    在这里插入图片描述
  2. 根据jmslaves的dockerfile文件,构建jm:slaves镜像。
## 创建jm:slave镜像
[root@localhost mydata]# docker build -f ./jmslaves -t jm:slaves .

##创建完成后,查看对应镜像
[root@localhost mydata]# docker images
REPOSITORY              TAG          IMAGE ID       CREATED        SIZE
jm                      slaves       464afdad68b6   2 hours ago    416MB
jm                      base         5e1087e447bb   6 months ago   416MB
openjdk                 8-jre-slim   54301e8a1f0d   2 years ago    194MB
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  1. 根据jm:slaves镜像运行容器。此处可能会报错,通过docker logs jmeter-slave查看容器日志,提示/bin/sh: 1: /jmeter/apache-jmeter-5.4.1//bin/jmeter-server: Permission denie错误。此处需要手动给我们自己新建用于存放linux版本jmeter的文件夹授权。执行chmod -R 777 /mydata/jmslave即可。
# -v进行目录挂载
[root@localhost mydata]# docker run -it -d --name jmeter-slave -v /mydata/jmslave01/jmeter/apache-jmeter-5.4.1:/jmeter/apache-jmeter-5.4.1 -p 1099:1099 jm:slaves
  • 1
  • 2
  1. (可选)当步骤3中dockerfile容器内没有指定运行环境,则需要需要修改jmeter.properties才能进行主控机与负载机的连接。此步骤可跳过。
## 修改jmeter.properties文件
# RMI port to be used by the server (must start rmiregistry with same port)
server_port=1099

# the following property before starting the server:
server.rmi.localport=1099

# Set this if you don't want to use SSL for RMI
server.rmi.ssl.disable=true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  1. 修改linux负载机jmeter的system.properties文件。在最后一行加上当前linux负载机的IP地址。因为我们前面通过-v进行了目录挂载,因此我们直接去对应目录修改即可。
## 修改system.properties文件。在最后一行加上当前linux负载机的ip地址
java.rmi.server.hostname=192.168.175.135
  • 1
  • 2

在这里插入图片描述
9. 通过挂载的方式启动容器,修改配置文件后,重启jmeter

docker restart jmeter-slave
  • 1
  1. 查看容器日志。当endpoint地址为当前linux负载机ip地址,且运行没报错即可。
docker logs jmeter-slave
  • 1

在这里插入图片描述

4、windows主控机分发测试任务

  1. 打开windows主控机的jmeter。远程启动。当请求成功发出后,配置成功。
    在这里插入图片描述
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/923606
推荐阅读
相关标签
  

闽ICP备14008679号