当前位置: 首页 > news >正文

用 docker 创建 jmeter 容器,能做性能测试?

我们都知道,jmeter 可以做接口测试,也可以用于性能测试,现在企业中性能测试也大多使用 jmeter。docker 是最近这些年流行起来的容器部署工具,可以创建一个容器,然后把项目放到容器中,就可以构建出一个独立的运行环境。

所以,有人就想,能否把他们俩弄到一块来使用?

今天,我就来给大家讲讲如何结合起来使用。

首先,选择一个linux机器,安装docker
然后,访问gitee开源网站,搜索“nmb-jmeter-docker"找到这个项目
然后,把项目的所有代码git下来,上传到linux系统的/opt路径下

用 docker 创建 jmeter 容器(普通 jmeter)

进入 base-jmeter-docker 文件夹

执行 sh build.sh , 构建本地 jmeter 镜像

默认版本是 jmeter5.1.1

待构建成功之后,把用 jmeter 创建的 jmx 脚本文件,上传到 Linux 机器的 base-jmeter-docker 路径下,执行

sh jmeter.sh -n -t YouJMX_file \ -l JTL_date +%Y%m%d_%H%M%S.jtl \ -j jmeter.log \ -e -o Report_date +%Y%m%d_%H%M%S

如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386     

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337 

也可以把你的 jmx 文件上传到其他路径,在运行 jmeter.sh 命令时,指定 jmx 文件路径

这个命令和 jmeter 的 CLI 模式命令是一样的,cli 的相关参数也是可以使用。

创建增强型 jmeter 容器(jmeter 带插件)

  1. 下载【jpgc-jmeter-docker】文件夹中所有文件

  2. 构建本地镜像: sh build.sh

  3. 使用构建的镜像,运行 jmx 文件

sh jmeter.sh -n -t YouJMX_file \ -l YouJTL_date +%Y%m%d_%H%M%S.jtl \ -j jmeter.log \ -e -o report_date +%Y%m%d_%H%M%S

默认 jmeter 版本为 5.1.1

如果想要更改为其他版本,依次修改:Dockerfile、build.sh、jmeter.sh 文件中的版本号 5.1.1

注意:请不要指定为低于 5 的版本,低于 5,生产的 HTML 报告可能有问题

在这个版本,改造了 HTML 报告和引入了 jpgc 插件,如果你还想要引入其他插件,可以自己打包压缩到 JmeterPlugins-jpgc.zip 文件包中。然后,执行 sh build.sh 构建新的镜像,

创建分布式 jmeter 容器(slave)

做性能测试,一般都会遇到 jmeter 不能产生足够数量的并发用户数,需要使用分布式来创建足够数量的并发用户数,但是,现实中,我们可能又不能获得足够数量的电脑。

使用 docker 创建 jmeter 的助攻服务,这样就能实现,理论上一台电脑上创建出任意多个 jmeter 助攻服务,产生出足够量的并发用户数。另外,在助攻机的维护上,也变的更加简单,因为所有的助攻机容器都是基于相同的镜像创建,理论上,所有容器都是一样。

  1. 下载【slave-jmeter-docker】文件夹中所有文件

  2. 构建本地 slave 镜像: sh build.sh

  3. 创建 slave 容器

docker run -itd --name slave1 nmb/jmeter-slave:5.1.1 server# 重复执行时,修改容器名称name值,则可创建多个slave容器

默认 jmeter 版本为 5.1.1

如果想要更改为其他版本,依次修改:Dockerfile、build.sh 文件中的版本号 5.1.1

注意:

1、该镜像中,加入 jpgc 插件,更改了 HTML 报告模板

2、请不要指定为低于 5 的版本,低于 5,生产的 HTML 报告可能有问题

3、助攻服务端口 1099, 5000, 因为后面 master 用 link 连接容器,所以,可以不用映射端口

想要创建多个 slave 容器,只需要修改创建容器命令中的指定的容器名称。

每个助攻服务的端口都是 1099 和 5000,如果直接映射到宿主机上,肯定会出现端口冲突的情况,所以,我们用 master 连接 link 每个 slave 容器,就不用担心端口冲突问题了。

创建分布式 jmeter 容器(master)

  1. 下载【master-jmeter-docker】文件夹中所有文件

  2. 构建本地 master 镜像: sh build.sh

  3. 修改 run-master.sh 文件中 --link 的数量和名称

冒号前面为 slave 容器名称,冒号后面为自定义别名

  1. 使用 master 容器执行分布式脚本

sh run-master.sh -n \ -R 助攻机别名(多个时用逗号分隔) \ -t YouJMXfile \ -l YouJTL_date +%Y%m%d_%H%M%S.jtl \ -j jmeter.log \ -e -o report_date +%Y%m%d_%H%M%S

默认 jmeter 版本为 5.1.1

如果想要更改为其他版本,依次修改:Dockerfile、build.sh 文件中的版本号 5.1.1

注意:请不要指定为低于 5 的版本,低于 5,生产的 HTML 报告可能有问题

注意:

  • 该镜像构建成功后,会带有 jpgc 插件,可以执行使用 jpgc 插件编写的脚本

  • 该镜像还对 jmeter 生产的 HTML 报告进行了改造,生产的报告将转换为中文

  • jmeter 分布式,主控和助攻机的 jmeter 必须一致,所以,master 和 slave 的 jmeter 版本务必一致

好了使用 docker 来创建 jmeter 进行性能测试的技术,已经讲完了,代码已经开源到 gitee, 如果你觉得有用,请帮忙点个 ZAN 噢!

相关文章:

用 docker 创建 jmeter 容器,能做性能测试?

我们都知道,jmeter 可以做接口测试,也可以用于性能测试,现在企业中性能测试也大多使用 jmeter。docker 是最近这些年流行起来的容器部署工具,可以创建一个容器,然后把项目放到容器中,就可以构建出一个独立的…...

Token 失效退出至登录页面

目录 前端设置: 1. 在登录页面,调用登录的接口后,直接获取当前时间并保存在本地,类似保存token。 2. 在路由守卫 获取本机存储的时间戳,加15分钟与当前时间进行对比,如果大于当前时间说明token失效&…...

微服务系列(2)--注册中心

在博文:微服务系列(1)里我们提到过注册中心的概念,简单来说微服务注册中心是一个用于存储和管理微服务实例信息的组件,它提供了服务注册、服务发现、服务健康检查等功能,以确保微服务之间的稳定通信。在微服务架构中,各…...

VSCode使用CMake断点调试

在 VS Code 中使用 CMake 进行断点运行调试,需要进行以下步骤: 确保已在系统中安装了 CMake 和调试器(如 GDB)。 在项目根目录下创建一个名为 .vscode 的文件夹。 在项目根目录下创建一个名为 build 的文件夹,并在终…...

Python爬虫异常处理心得:应对网络故障和资源消耗

作为一名专业的爬虫代理,我知道在爬取数据的过程中,遇到网络故障和资源消耗问题是再正常不过了。今天,我将与大家分享一些关于如何处理这些异常情况的心得和技巧。不论你是在处理网络不稳定还是资源消耗过大的问题,这些技巧能够帮…...

【CSS】CSS 布局——常规流布局

<h1>基础文档流</h1><p>我是一个基本的块级元素。我的相邻块级元素在我的下方另起一行。</p><p>默认情况下&#xff0c;我们会占据父元素 100%的宽度&#xff0c;并且我们的高度与我们的子元素内容一样高。我们的总宽度和高度是我们的内容 内边距…...

flutter开发实战-实现左右来回移动的按钮引导动画效果

flutter开发实战-实现左右来回移动的按钮引导动画效果 最近开发过程中需要实现左右来回移动的按钮引导动画效果 一、动画 AnimationController用来控制一个或者多个动画的正向、反向、停止等相关动画操作。在默认情况下AnimationController是按照线性进行动画播放的。Animati…...

ROS实现自定义信息以及使用

常见的消息包 消息包定义一般如下&#x1f447; &#xff08;1&#xff09;创建包和依赖项 &#xff08;2&#xff09;在新建的qq_msgs的包新建msgs的文件夹&#xff0c;在该文件夹里面新建Carry.msg类型的文件。 其实&#xff0c;Carry.msg就是你自己定义的消息类型&am…...

初始C语言——详细讲解操作符以及操作符的易错点

系列文章目录 第一章 “C“浒传——初识C语言&#xff08;更适合初学者体质哦&#xff01;&#xff09; 第二章 详细认识分支语句和循环语句以及他们的易错点 第三章 初阶C语言——特别详细地介绍函数 第四章 初始C语言——详细地讲解数组的内容以及易错点 第五章 初始C语言—…...

论文写作常用词句积累

X 连接词 表目的To this end/Toward that endto do soto this aimso as toTo tackle these issuesfor the sake ofaiming to do表转折howeverNevertheless表递进moreverFurthermore表对比on the other hand/On the contraryAlternativelyas in the case ofwhereas表顺序in a f…...

伺服系统::编码器

一、主要分类 二、组成与原理 光电编码器 磁编码器&#xff1a;N-->磁感元件&#xff08;0&#xff09;&#xff1b;S-->磁感元件&#xff08;1&#xff09;》脉冲 增量编码器的分辨率、倍频与细分技术 (99 封私信 / 81 条消息) 编码器有什么分类&#xff1f; - 知乎 (z…...

计算机网络 数据链路层 虚拟局域网 VLAN

...

Git全栈体系(五)

第八章 IDEA 集成 GitHub 一、设置 GitHub 账号 如果出现 401 等情况连接不上的&#xff0c;是因为网络原因&#xff0c;可以使用以下方式连接&#xff1a; 然后去 GitHub 账户上设置 token。 点击生成 token。 复制红框中的字符串到 idea 中。 点击登录。 二、分享工程…...

spring-boot webservice的例子

webservice发布服务 源码下载地址 spring-boot-webservice例子资源-CSDN文库 webservice cilent调用 源码下载地址 spring-boot-clintwebservice调用服务的例子资源-CSDN文库...

第八章 SpringBoot @ConfigurationProperties配置绑定

原始做法&#xff1a;读取到文件内容&#xff0c;再进行bean的绑定 public static void readProperties(String propertiesPath) throws IOException {Properties pps new Properties();pps.load(MainApplication.class.getClassLoader().getResourceAsStream("applicat…...

【SpringBoot】88、SpringBoot中使用Undertow替代Tomcat容器

SpringBoot 中我们既可以使用 Tomcat 作为 Http 服务,也可以用 Undertow 来代替。Undertow 在高并发业务场景中,性能优于 Tomcat。所以,如果我们的系统是高并发请求,不妨使用一下 Undertow,你会发现你的系统性能会得到很大的提升。 1、Tomcat 介绍 Tomcat是一个开源的Ja…...

java8 求和

1.BigDecimal求和 对象字段求和 List<Car> listnew ArrayList<>(); BigDecimal sumOfBigDecimals list.stream().filter(Objects::nonNull).filter(c -> c.getMiles() ! null).map(Car::getMiles).reduce(BigDecimal.ZERO, BigDecimal::add);BigDecimal集合求…...

手眼标定眼在手上

1、为什么要用手眼标定 参考手眼标定特别是眼在手上在网上的文章很多&#xff0c;但很多在实际中调试不通。在定位时候&#xff0c;往往希望相机能返回的是机械的世界坐标&#xff0c;而不是相机的的图像坐标。从而间接计算出相机坐标系与机械坐标世界坐标转换矩阵&#xff0c…...

【数据结构】初始二叉树

满二叉树 每个结点都有左右子树的二叉树。 完全二叉树 从上到下、从左到右排列&#xff0c;不落下一个结点进行排列的二叉树。 二叉树的性质 第i层最多有2(i-1)个结点深度为k的二叉树最多有 2k-1 个结点因为一颗深度为k的满二叉树的结点有2k-1&#xff0c;即nk-1&#xff…...

创建和使用角色(RHCE)

题目&#xff1a; 创建和使用角色 根据下列要求&#xff0c;在 /home/curtis/ansible/roles 中创建名为 apache 的角色&#xff1a; httpd 软件包已安装&#xff0c;设为在系统启动时启用并启动 防火墙已启用并正在运行&#xff0c;并使用允许访问 Web 服务器的规则 模板文件 i…...

机器学习数据准备框架与工业级实践指南

1. 机器学习数据准备框架全景解析在真实业务场景中&#xff0c;数据科学家60%以上的时间都消耗在数据准备环节。这个看似基础的阶段往往决定了模型效果的上限&#xff0c;却鲜有系统化的方法论指导。本文将拆解数据准备的标准流程框架&#xff0c;结合工业级实践中的典型场景&a…...

Qwen3-14B开源大模型实战:构建垂直领域微调数据集生成Pipeline

Qwen3-14B开源大模型实战&#xff1a;构建垂直领域微调数据集生成Pipeline 1. 开篇&#xff1a;为什么需要垂直领域数据集 在人工智能领域&#xff0c;通用大模型虽然表现优异&#xff0c;但在特定垂直场景下往往存在"知识盲区"。就像一位博学的教授&#xff0c;虽…...

嵌入式+PLC+微服务联合调试实战(VSCode工业调试全栈手册)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;VSCode工业调试全景概览 VSCode 已成为现代工业级软件开发与嵌入式系统调试的事实标准前端工具&#xff0c;其通过可扩展的调试适配器协议&#xff08;DAP&#xff09;无缝集成 GDB、LLDB、OpenOCD、J…...

中文文本分段提效工具:BERT模型在新闻编辑部稿件初筛流程中的落地案例

中文文本分段提效工具&#xff1a;BERT模型在新闻编辑部稿件初筛流程中的落地案例 1. 项目背景与价值 在新闻编辑部的日常工作中&#xff0c;记者们每天都会提交大量稿件。这些稿件往往篇幅较长&#xff0c;缺乏清晰的结构分段&#xff0c;给编辑的初审工作带来很大挑战。编辑…...

神经网络函数逼近原理与实践:从理论到代码实现

1. 神经网络作为函数逼近算法的本质在机器学习领域&#xff0c;监督学习的核心任务可以抽象为函数逼近问题。想象你手中有一本神秘的密码本&#xff0c;左边是各种加密信息&#xff08;输入&#xff09;&#xff0c;右边是对应的解密内容&#xff08;输出&#xff09;。虽然你不…...

机器学习工具链选型方法论与实践指南

1. 机器学习工具的重要性与选择逻辑在机器学习领域&#xff0c;工具链的选择往往比算法本身更能决定项目成败。从业十余年&#xff0c;我见过太多团队在工具选型上栽跟头——有的被臃肿的平台拖累进度&#xff0c;有的因功能缺失的库被迫重构&#xff0c;更常见的是在"全家…...

内存安全不是选配项:工信部《智能网联汽车软件供应链安全指引(2026试行版)》第3.2.1条强制要求C项目启用-Mmemory-safety=strict,否则不予准入

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;内存安全不是选配项&#xff1a;政策强制落地的底层逻辑 内存安全漏洞长期占据 CVE 高危榜单前列&#xff0c;据 NIST 统计&#xff0c;近五年超 70% 的严重系统级漏洞源于缓冲区溢出、悬垂指针或释放后…...

ZipAgent:基于Python的压缩包自动化处理与智能代理工具

1. 项目概述与核心价值最近在折腾一些自动化处理压缩包的任务&#xff0c;比如批量解压、按规则重命名、提取特定文件等&#xff0c;发现手动操作不仅繁琐&#xff0c;还容易出错。就在这个当口&#xff0c;我在GitHub上发现了JiayuXu0大佬开源的ZipAgent项目。乍一看名字&…...

投稿踩坑3个月,被拒两次才发现:一开始的选刊方向就错了

上个月终于接到了Accept通知&#xff0c;但回头看这整个投稿周期&#xff0c;真是一把辛酸泪。从去年年底开始投&#xff0c;到今年4月才正式被接收&#xff0c;中间被拒两次&#xff0c;每次审稿都要等一个多月。最难受的不是文章有问题&#xff0c;而是浪费了整整三个月才发现…...

电脑屏幕如何实时监控?分享五个实时监控电脑屏幕的方法,码住

在企业管理的过程中&#xff0c;许多管理者都曾遇到过这样的困惑&#xff1a;办公室里键盘声此起彼伏&#xff0c;员工们看似都在忙碌&#xff0c;但项目进度却停滞不前。某科技公司的负责人王总就曾发现&#xff0c;团队在项目冲刺阶段&#xff0c;竟然有核心成员在上班时间观…...