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

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

  • 1、搭建环境说明
  • 2、windows主控机安装Jmeter
  • 3、linux负载机安装Jmeter
    • 3.1、安装docker环境
    • 3.2、使用docker安装jmeter
  • 4、windows主控机分发测试任务

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

# 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
## 修改system.properties文件。在最后一行加上当前windows主控机的ip地址
java.rmi.server.hostname=128.23.58.41

3、linux负载机安装Jmeter

3.1、安装docker环境

  1. centos下docker官方安装文档:Linux centos操作系统下安装docker
  2. 安装需要的安装包yum-utils。shell命令行输入:
yum install -y yum-utils
  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. 安装docker引擎
yum install docker-ce docker-ce-cli containerd.io
  1. 启动docker
systemctl  start  docker
  1. 设置docker开机自启动
systemctl enable docker
  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. 测试docker是否运行成功
##查看当前docker版本
docker version
##运行测试用例看看docker是否安装成功。没有报错即安装成功
docker run hello-world

3.2、使用docker安装jmeter

  1. 自定义jm:base的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. 构建jm:base镜像
 docker build -f ./jmbase -t jm:base .
  1. 自定义jmeter-slave的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. 根据自己的目录层级,创建jmeter-slave镜像。我的目录层级如下,其中名为jmaster的dockerfile文件用于linux做主控机的情况,此处不涉及。对应jmmaster、jmslave01文件夹分别存放着对应linux版的jmeter应用程序,用于在上方没有指定容器内运行环境(ENTRYPOINT $JMETER_HOME/bin/jmeter-server)的情况下,进行挂载,手动更改配置文件使用,此处也不涉及。
    在这里插入图片描述
## 创建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                      master       c6ba6cd0665c   6 months ago   416MB
jm                      base         5e1087e447bb   6 months ago   416MB
openjdk                 8-jre-slim   54301e8a1f0d   2 years ago    194MB
  1. 根据镜像运行容器
[root@localhost mydata]# docker run -it -d --name jmeter-slave -p 1099:1099 jm:slaves

## 当步骤2中jmeter-slave的dockerfile没有指定容器内运行环境时,手动挂载
## 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中dockerfile容器内没有指定运行环境、步骤4通过手动挂载 -v 的方式启动容器,需要修改对应的文件后才能进行主控机与负载机的连接。
## 修改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
## 修改system.properties文件。在最后一行加上当前linux负载机的ip地址
java.rmi.server.hostname=192.168.175.135

通过挂载的方式启动容器,修改配置文件后,重启jmeter

docker restart jmeter-slave

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

  1. 打开windows主控机的jmeter。远程启动。当请求成功发出后,配置成功。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/307748.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

element input组件自动失去焦点问题解决

最近在 Vue3 ElementPlus 中&#xff0c;使用 el-input 组件时&#xff0c;如果设置了 v-model&#xff0c;那么在每次改变内容后后&#xff0c;input 会自动失去焦点&#xff0c;这样会导致用户无法输入多个字符。 一、问题原因 如上图所示&#xff0c;配置项的 Name 和 Cod…

Zookeeper设计理念与源码剖析

Zookeeper 架构理解 整体架构 Follower server 可以直接处理读请求&#xff0c;但不能直接处理写请求。写请求只能转发给 leader server 进行处理。最终所有的写请求在 leader server 端串行执行。&#xff08;因为分布式环境下永远无法精确地确认不同服务器不同事件发生的先后…

网卡高级设置-提高网络环境

网卡高级设置&#xff0c;提高网络质量排除一些连接问题 一、有线网卡 1、关闭IPv6&#xff1b; 可以关闭协议版本6&#xff0c;因为它会引起一些网络连接问题&#xff0c;而且现在几乎用不到IP6。 2、关闭节约电源模式&#xff1b; 右击计算机->设备->设备管理器-&…

探索AI技术的奥秘:揭秘人工智能的核心原理

目录 前言 学习AI要看的第一本书 人工智能应当以人为本 史蒂芬卢奇&#xff08;Stephen Lucci&#xff09; 萨尔汗M穆萨&#xff08;Sarhan M . Musa&#xff09; 丹尼科佩克&#xff08;Danny Kopec&#xff09;&#xff08;已故&#xff09; 通晓六点&#xff0c;明白…

参会提醒|Move DevConf 2024 @上海

本次大会将有Move 语言核心开发者、Mysten Labs 联创、Aptos Labs Lead、Rooch 联创、MoveBit 联创、zkMove 联创等众多重量级嘉宾齐聚上海&#xff0c;与参会者们共同探讨 Move 的前进方向。 感兴趣的小伙伴们&#xff0c;现在报名还来得及&#xff01;报名参会即可现场领取大…

(1)(1.13) SiK无线电高级配置(五)

文章目录 前言 10 可用频率范围 11 DUTY_CYCLE 设置 12 低延迟模式 13 先听后说 (LBT) 14 升级无线电固件 15 MAVLink协议说明 前言 本文提供 SiK 遥测无线电(SiK Telemetry Radio)的高级配置信息。它面向"高级用户"和希望更好地了解无线电如何运行的用户。 1…

MVC+Layui 多选下拉框xmSelect

1、选择layui拓展第三方组件找到xmselect xmSelect下拉多选 xmSelect - Layui 第三方扩展组件平台 (layuion.com) 下载后放到项目文件中 2、项目引用js文件 <script src"~/Content/dist/xm-select.js"></script> 3、html添加表单设置id <div class…

鸿蒙开发已解决-arkts编译报错-arkts-limited-stdlib错误

文章目录 项目场景:问题描述原因分析:解决方案:适配指导案例此Bug解决方案总结项目场景: arkts编译报错-arkts-limited-stdlib错误。 我用Deveco studio4.0 beta2开发应用,报arkts-limited-stdlib错误 报错内容为: ERROR: ArKTS:ERROR File: D:/prRevivw/3792lapplica…

大数据毕业设计:图书推荐系统+可视化+Django框架 图书管理系统 (附源码+论文)✅

毕业设计&#xff1a;2023-2024年计算机专业毕业设计选题汇总&#xff08;建议收藏&#xff09; 毕业设计&#xff1a;2023-2024年最新最全计算机专业毕设选题推荐汇总 &#x1f345;感兴趣的可以先收藏起来&#xff0c;点赞、关注不迷路&#xff0c;大家在毕设选题&#xff…

UI自动化Selenium iframe切换多层嵌套

IFRAME是HTML标签&#xff0c;作用是文档中的文档&#xff0c;或者浮动的框架(FRAME)。iframe元素会创建包含另外一个文档的内联框架(即行内框架)。 简单来说&#xff0c;就像房子内的一个个房间一样&#xff1b;你要去房间里拿东西&#xff0c;就得先开门&#xff1b; 如上图…

java物品检验管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web 物品检验管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysq…

中小企业低成本如何进行推广?媒介盒子解答

数字化时代下&#xff0c;用户想要购买产品的第一步都是在网上查询相关信息&#xff0c;因此对于中小企业来说&#xff0c;怎么把自己曝光到网上&#xff0c;怎么可以让用户搜到类似关键词时名列其中是企业需要考虑的问题&#xff0c;今天媒介盒子就来和大家聊聊&#xff1a;中…

基于ZU19EG的100G-UDP解决方案

概述 本文档介绍ZU19EG与Mellanox CX6 100G网卡通信解决方案。 环境配置 FPGA硬件&#xff1a;519-ZU19EG的4路100G光纤PCIe加上计算卡 电脑&#xff1a;国产国鑫主板&#xff08;双PCU&#xff09;&#xff1a;Gooxi G2DA-B CPU:Intel Xeon Silver 2.2GHz 内存&#xff1…

CHS_03.1.3.3+系统调用

CHS_03.1.3.3系统调用 系统调用什么是系统调用&#xff0c;有何作用&#xff1f;系统调用又和普通的库函数的调用又有一定的区别为什么系统调用是必须的系统调用 按功能分类 可以分为这样的一些系统调用系统调用过程 这个小节的全部内容 系统调用 相关的知识 我们会为大家介绍什…

鉴源论坛 · 观模丨浅谈Web渗透之信息收集(下)

作者 | 林海文 上海控安可信软件创新研究院汽车网络安全组 版块 | 鉴源论坛 观模 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 信息收集在渗透测试过程中是最重要的一环&#xff0c;“浅谈web渗透之信息收集”将通过上下两篇&#xff0c;对信息收集、…

AI老照片修复-Bringing-Old-Photos-Back-to-Life

&#x1f3e1; 个人主页&#xff1a;IT贫道-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;私聊博主加WX好友&#xff0c;获取更多资料哦~ &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录 1. AI老照片修复原理-…

mysql查询优化策略

exist和in的区别 其实很多人都搞不清什么时候用exist什么时候用in&#xff0c;前提是有索引&#xff08;比如A.cc和B.cc&#xff09;&#xff0c;选择的标准是看表的大小。 总体宗旨试小表驱动大表&#xff0c;具体来说&#xff1a; 可能有点懵逼&#xff0c;让我们来捋下两者…

注意力机制简单理解

1. 什么是注意力机制&#xff1f; ​ 我们在日常的生活中对许多事物都有我们自己的注意力重点&#xff0c;通过注意力我们可以更加关注于我们注意的东西&#xff0c;从而过滤不太关注的信息。 看到一张人像图时&#xff0c;我们会更关注人的脸部&#xff0c;其次根据脸部再细分…

文件vcruntime140.dll找不到该怎么办?分析解决vcruntime140.dll

最近许多用户都说他们的电脑出现了一个提示&#xff0c;显示vcruntime140.dll文件缺失。你可能想知道这个突然出现的问题是怎么回事。实际上&#xff0c;这种情况通常意味着你的电脑中的vcruntime140.dll文件已经丢失了。这个DLL文件对于电脑上很多程序的运行至关重要&#xff…

Vue-9、Vue事件修饰符

1、prevent 阻止默认事件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>事件修饰符</title><!--引入vue--><script type"text/javascript" src"https://cdn.jsdeliv…