用 docker 创建 jmeter 容器, 实现性能测试

这篇具有很好参考价值的文章主要介绍了用 docker 创建 jmeter 容器, 实现性能测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

首先,选择一个linux机器,安装docker

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

下载代码,到linux机器的/opt路径下

进入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

也可以把你的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, 如果你觉得有用,请帮忙点个star噢!文章来源地址https://www.toymoban.com/news/detail-488762.html

到了这里,关于用 docker 创建 jmeter 容器, 实现性能测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jmeter5.x集合点实现高并发性能测试

      前言         ​ 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,

    2024年02月10日
    浏览(60)
  • 软件测试|深入解析Docker Run命令:创建和启动容器的完全指南

    简介 Docker是一种流行的容器化平台,用于构建、分发和运行应用程序。其中一个最基本且重要的Docker命令是 docker run ,用于创建和启动容器。本文将详细解析 docker run 命令的用途、参数和示例,帮助您全面掌握创建和启动容器的过程。 docker run 在Docker中,容器是运行应用程序

    2024年02月09日
    浏览(39)
  • 【业务功能篇86】微服务-springcloud-系统性能压力测试-jmeter-性能优化-JVM参数调优-Nginx实现动静分离

      压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求、测试系统在不同压力情况下的效率状况,

    2024年02月07日
    浏览(65)
  • docker+jmeter实现简单的分布式压力测试

    阶梯压力测试的场景是为了验证在系统运行期间,用户不断的登录系统并使用一段时间,通过阶梯的场景,模拟实际应用期间系统的稳定性、承载性。 二、常用的阶梯压力测试线程组 stepping Thread Group 步长插件 Concurrency Thread Group 步长并发插件 两者区别 stg不提供设置启动延迟

    2024年04月16日
    浏览(56)
  • docker容器启用ipv6地址方法,用ipv6地址访问容器方法流程、创建一个nginx容器用ipv6地址访问测试流程

    你如果没用使用Docker-Compose,就忽略配置,以了解为主,直接去看下面的docker配置。 docker-compose.yaml 文件必须使用 version: “2.*” , version: “3.*” 不支持 enable_ipv6 配置 如果已有旧的容器在运行(网络配置发生了变化),则需要先销毁容器 docker-compose down 然后再重新创建 doc

    2024年02月02日
    浏览(57)
  • 在 Docker 容器中运行 macOS:接近本机性能,实现高效运行 | 开源日报 No.96

    Stars: 2.6k License: MIT 这个项目是关于数据可视化中好的和不好的实践,作者通过一系列例子解释了哪些图表类型是不合适的,并提供了如何改进或替代它们。主要功能包括展示错误做法以及正确做法,并提供相应代码文件来生成相关图形。该项目核心优势在于: 提供有针对性

    2024年02月02日
    浏览(47)
  • 性能测试很简单-JMeter性能测试实践

    最近破费买了一台服务器,准备搭建自己的网站,顺便将自己开发的一些测试小工具部署到服务器上,虽然机器配置一般,还是决定对服务器进行压测一番,看一下服务器性能如何。本次压测选择的工具是JMeter,这个工具也是接口测试工具,可以做接口自动化测试。话不多说

    2024年01月16日
    浏览(44)
  • 【性能测试】jmeter数据库性能测试

    本文是记录使用jmeter对数据库进行性能测试,以及在测试过程中常使用的方法。 上传解压包,解压,配置环境变量 检查安装结果 说明: windows为免安装,直接执行bin目录下jmeter.bat可执行文件 将被测数据库JDBC对应的jar包,拷贝至jmeter工具lib目录下 数据库对访问client开启免密

    2023年04月08日
    浏览(90)
  • SpringBoot项目部署(Docker)——通过Dockerfile将打包好的jar包创建成镜像 & 在IDEA中配置docker,一键启动容器 & 用swagger进行测试

    1.Dockerfile命令初识,CMD…; 2.idea配置docker,图形化界面; 3.编写Dockerfile把jar包制作成镜像,并用idea一键生成和启动容器; 4.在Linux中测试,在宿主机用swagger进行测试; SpringBoot项目部署(jar包)——项目用maven打包成jar包 windows + Linux平台运行 Linux安装java 遇到的问题 Docker是一

    2024年02月05日
    浏览(51)
  • java集成Docker-java实现远程镜像、容器创建,服务发布

           目前项目中需要实现水利机理模型的容器化部署,使用docker实现模型容器化部署操作,互相隔离,就是一个不错的方案。 实现docker远程连接、远程安全连接 构建镜像、加载镜像、删除镜像、拉取镜像、创建容器、启动容器、停止容器、删除容器。 执行模型运行命令

    2024年02月04日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包