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,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
## 修改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. 自定义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. 构建jm:base镜像。此步骤安装基本工具时可能会由于网络问题安装失败。多次重试一下就好。
 docker build -f ./jmbase -t jm:base .
  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. 根据自己的目录层级,创建对应文件夹。需要创建一个用于挂载目录的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. 根据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. (可选)当步骤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. 修改linux负载机jmeter的system.properties文件。在最后一行加上当前linux负载机的IP地址。因为我们前面通过-v进行了目录挂载,因此我们直接去对应目录修改即可。
## 修改system.properties文件。在最后一行加上当前linux负载机的ip地址
java.rmi.server.hostname=192.168.175.135

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

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

在这里插入图片描述

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

时间序列数据库选型: influxdb; netdiscover列出docker实例们的ip,docker管理工具lazydocker、scope

influxdb influxdb: 有收费版本、有开源版本 influxdb 安装、启动(docker) docker run -itd --name influxdb-dev -p 8086:8086 influxdb #influxdb的web客户端(端口8003)被去掉了 #8006是web-service端口#docker exec -it influxdb-dev bashinfluxdb 自带web界面 从后面的…

Rust-函数

简介 Rust的函数使用关键字fn开头。 函数可以有一系列的输入参数&#xff0c;还有一个返回类型。 函数体包含一系列的语句(或者表达式)。 函数返回可以使用return语句&#xff0c;也可以使用表达式。 Rust编写的可执行程序的入口就是fn main()函数。 以下是一个函数的示例…

代码随想录算法训练营第四天 |24.两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题02.07.链表相交,142、环形链表II

链表基础 1、链表定义&#xff1a; &#xff08;1&#xff09;链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff0c;最后一个节点的指针域指向null…

C++核心编程——文件操作

本专栏记录C学习过程包括C基础以及数据结构和算法&#xff0c;其中第一部分计划时间一个月&#xff0c;主要跟着黑马视频教程&#xff0c;学习路线如下&#xff0c;不定时更新&#xff0c;欢迎关注。 当前章节处于&#xff1a; ---------第1阶段-C基础入门 ---------第2阶段实战…

ROS无人机开发常见错误

一. Ubuntu 相关 1、SSH远程连接报错 解决方案&#xff1a;终端运行上述图中选中部分&#xff0c;更新一下即可 第一步&#xff1a; 第二步&#xff1a;根据提示输入yes后输入密码即可 第三步&#xff1a;成功后如下图所示 2、解决“E 无法获得锁/ var/lib/apt/lists/ (11 资…

Altium Desigenr 孔 规则修改2

1、过孔修改 在这里插入图片描述 2、物理孔

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-7 LQR控制器 Linear Quadratic Regulator

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-7 LQR控制器 Linear Quadratic Regulator 线性控制器设计-轨迹跟踪&#xff08;Fellow a Desired Path&#xff09;

如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 2

在 Part 1 中&#xff0c;我们一起了解了什么是 Prometheus 和 Grafana&#xff0c;以及使用这些工具的前提条件和优势。在本部分&#xff0c;将继续带您学习如何安装 Helm 以及如何使用 Prometheus Helm Charts。 开始使用 Helm 和 Helm Chart ArtifactHub 为 Helm Chart 提供…

Netty开篇——NIO章上(三)

Java NIO基本介绍 java non-blocking I/O 称为NIO(也叫New IO)。JDK4开始提供,同步非阻塞相关内容在 java.nio 包及子包下&#xff0c;对java.io 包中的很多类进行改写。三大核心: Channel(通道)&#xff0c;Buffer(缓冲区),Selector(选择器)NIO是面向缓冲区或者面向块编程的。…

Centos7.9服务器编译安装Nginx1.24.0和php8.3

Centos7.9服务器编译安装Nginx1.24.0和php8.3 服务器nginx原版本有安全漏洞,需要升级,由于原始是yum源安装,通过yum直接升级,无法正常升级完成,故而需要卸载yum源,重新编译安装。 1、查看原来nginx版本,ps查看原来nginx进程,运行状态: ps aux | grep nginx ​ root …

【HuggingFace Transformer库学习笔记】基础组件学习:Evaluate

基础组件学习——Evaluate Evaluate使用指南 查看支持的评估函数 # include_community&#xff1a;是否添加社区实现的部分 # with_details&#xff1a;是否展示更多细节 evaluate.list_evaluation_modules(include_communityFalse, with_detailsTrue)加载评估函数 accuracy…

RK3568驱动指南|第十二篇 GPIO子系统-第135章 GPIO子系统与pinctrl子系统相结合实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

解决ELK日志收集中Logstash报错的关键步

ElK执行日志收集的时候logstash报错&#xff1a; Failed to execute action {:action>LogStash::PipelineAction::Create/pipeline_id:main, :exception>“LogStash::ConfigurationError”, :message>“Expected one of [^\r\n], “\r”, “\n” at line 88, column 4…

ChromeDriver 添加到系统PATH

在软件测试和自动化脚本中&#xff0c;ChromeDriver是一个不可或缺的工具。为了方便使用&#xff0c;将其添加到系统PATH中是一个明智的选择。以下是在Windows、macOS或Linux上完成此任务的详细步骤。 在 Windows 上&#xff1a; 下载并保存 ChromeDriver&#xff1a; 访问Chro…

openEuler安装Docker艰辛路程

文章目录 安装docker测试docker关于windows docker拉取镜像查看所有镜像删除镜像删除不在运行的进程强制删除正在运行的进程 启动docker容器服务-d测试 停止docker容器服务查看docker启动进程更新容器(没有自启动功能&#xff0c;更新为自启动)docker端口映射进入容器修改内容退…

Unity AssetBundles资源管理和热更新

项目中的做法&#xff0c;在项目中一般会把资源按照文件目录去划分资源&#xff0c;以文件路径的名字作为AB的名字&#xff0c;一般都是把资源的这些放到预处理中。 一般会分为几个类型&#xff0c;比如把单个文件夹下的每个资源进行打bundle&#xff0c;把单个文件夹下的所有资…

新手练习项目 5:简易计算器(C++)

名人说&#xff1a;莫听穿林打叶声&#xff0c;何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#xff09; 目录 一、效果图二、代码&#xff08;带注释&#xff09;三、说明 一、效果图 二、代码&#xff08;带…

HTML--图片

HTML中使用 img标签来显示一张图片 它有三个属性&#xff1a; src alt tiltle src属性&#xff1a; 图片路径建议为相对路径&#xff0c;以免文件移动造成无法正常工作 用法&#xff1a; <img src"图片路径和名字"><!DOCTYPE html> <html> <…

QWebEngineView类方法、属性、信号与槽汇总

文章目录 📖 介绍 📖🏡 环境 🏡📒 使用方法 📒📝 使用示例📝 方法📝 属性📝 信号(Signals)📝 槽(Slots)⚓️ 相关链接 ⚓️📖 介绍 📖 QWebEngineView 是 Qt 提供的一个用于呈现 Web 内容的类,基于 Google 的 Chromium 浏览器引擎。它提供了对现…

Mac M1 Parallels CentOS7.9 Install Jenkins

官网: https://www.jenkins.io/ 一、Install & Check Java Env Oracle官网下载Java: https://www.oracle.com/cn/ # 拷贝到Jenkins服务器 scp Downloads/jdk-8u391-linux-aarch64.tar.gz root10.211.55.34:~# 解压 mkdir -p /opt/java && tar -zxvf jdk-8u391-li…