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

news2024/12/27 13:05:52

我们都知道,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 噢!

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

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

相关文章

独立站私域怎么玩?浅浅了解一下吧!

当你是一个跨境电商独立站的卖家,你的工作有三个主要焦点:充分利用流量、提升用户转化率和降低用户的总体成本。 然而,除了利用广告以外,是否有更多的策略可以帮助你接触到用户,同时降低吸引新用户的成本呢&#xff1…

LeetCode150道面试经典题-合并两个有序数组(简单)

合并两个有序数组 题目: 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意&a…

每天一道leetcode:剑指 Offer 11. 旋转数组的最小数字(适合初学者)

今日份题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如&am…

前端页面性能优化,性能测试算法优化,MeterSphere开源持续测试平台v2.10.5 LTS版本发布

2023年8月7日,MeterSphere一站式开源持续测试平台正式发布v2.10.5 LTS版本。自2023年5月发布v2.10 LTS版本后,MeterSphere开源项目组坚持每两周发布小版本,持续进行问题的修复更新,并针对部分功能进行优化。 本次发布的MeterSphe…

【深度学习】采用自动编码器生成新图像

一、说明 你知道什么会很酷吗?如果我们不需要所有这些标记的数据来训练 我们的模型。我的意思是标记和分类数据需要太多的工作。 不幸的是,大多数现有模型从支持向量机到卷积神经网,没有它们,卷积神经网络就无法训练。无监督学习不…

7月27日上课内容 Firewalld防火墙

iptables 软件防火墙 包过滤防火墙firewalld 防火墙包过滤防火墙。网络层centos7自带的默认的防火墙。取代iptables firewalld两种配置模式 运行时配置 永久配置 iptables是静态防火墙 firewalld是动态防火墙。 firewalld安装区域来进行划分: 9个区域 moba里面要打开防火墙 fi…

智慧工厂解决方案[60页PPT]

导读:原文《》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 完整版领取方式 完整版领取方式: 如需获取完整的电子版内容参考学习 您可以关注…

OpenCv.js(图像处理)学习历程

opencv.js官网 4.5.0文档 以下内容整理于opencv.js官网。 简介 OpenCV由Gary Bradski于1999年在英特尔创建。第一次发行是在2000年。OpenCV支持c、Python、Java等多种编程语言,支持Windows、Linux、Os X、Android、iOS等平台。基于CUDA和OpenCL的高速GPU操作接口也…

【Seata1.5.2 下载 配置 整合 踩坑 测试】—— 含各种踩坑记录(详细版)

💧 S e a t a 1.5.2 ——含各种踩坑记录 \color{#FF1493}{Seata1.5.2 —— 含各种踩坑记录} Seata1.5.2——含各种踩坑记录💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的博客🎐 &…

KM生存分析

这个系列从2022年开始,一直更新使用R语言分析数据及绘制精美图形。小杜的生信笔记主要分享小杜学习日常!如果,你对此感兴趣可以加入该系列的学习。 最终图形 本期图形代码 ##KM生存分析 ##20230807##导入包 library(survival) library(surv…

【深度学习】StyleGANv2 2019 论文,Analyzing and Improving the Image Quality of StyleGAN

StyleGAN论文: 《A Style-Based Generator Architecture for Generative Adversarial Networks》 论文:https://arxiv.org/abs/1812.04948 代码: https://github.com/NVlabs/stylegan StyleGANv2论文: 《Analyzing and Improving …

Linux葵花宝典-无需自宫版

1. Linux简介 1.1 什么是Linux Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由Linus Torvalds于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、…

【知网检索稳定】第八届现代管理和教育技术国际学术会议(MMET2023)

第八届现代管理和教育技术国际学术会议(MMET 2023)将于2023年09月22-24日在中国上海召开。会议由四川大学、泰国程逸皇家大学、泰国程逸皇家大学中泰同文同学国际交流中心主办、乐山师范学院、四川职业技术学院、AEIC学术交流中心协办。会议主要围绕会议…

边写代码边学习之numpy

1. numpy.matmul() 用法 matmul() 用于计算两个数组的矩阵乘积。示例如下 def matmul_test():array1 np.array([[[1.0, 3], [1, 1], [2, 3]]])array2 np.array([[2, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0],[1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0], ])result np.matmul(array1, …

C语言有关文件的操作

打开文件与关闭文件 在编写代码时,我有一个习惯是“保证一一对应”。 写下代码fopen()之后,还没有写对文件进行增删查改等操作的代码,先立刻写上fclose(),避免忘记关闭FILE* fd的情况。 不关闭fd,在fopen()次数较少的…

linux初始命令

如果没有ip地址,配置: 查看当前时间: 指定格式查看时间: 修改时间: 查看时区: 设置时区: 查看当前工作目录: root的家目录就是根,普通用户家目录是home

迈瑞BeneVision N17/N15/N12协议解析

迈瑞BeneVision N17/N15/N12协议解析

pdf 怎么转换成word 文档?这几种方法不容错过

pdf 怎么转换成word 文档?PDF 和 Word 都是日常工作和学习中常见的文档格式,但是它们拥有不同的特点。PDF 可以保持文档格式的一致性,并且不易修改,而 Word 则更加灵活,可以随意编辑和修改。因此,将 PDF 转…

春秋云镜 CVE-2020-26042

春秋云镜 CVE-2020-26042 Hoosk CMS v1.8.0 存在sql注入漏洞 靶标介绍 Hoosk CMS v1.8.0 install/index.php 存在sql注入漏洞。 启动场景 漏洞利用 SQL注入POC POST /install/index.php HTTP/1.1 Host: xxxx User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; r…

无涯教程-Perl - chdir函数

描述 此功能将当前工作目录更改为EXPR,如果未指定,则更改为用户的主目录。此函数调用等效于Unix命令 cd EXPR 。 语法 以下是此函数的简单语法- chdir EXPRchdir返回值 如果失败,此函数返回0,如果成功,则返回1。 例 以下是显示其基本用法的示例代码,假设您在/user/home/…