首页 » 软件开发 » 实现性能测试(容器创建镜像文件版本)

实现性能测试(容器创建镜像文件版本)

少女玫瑰心 2024-07-24 20:16:34 0

扫一扫用手机浏览

文章目录 [+]

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

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

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

实现性能测试(容器创建镜像文件版本) 软件开发
(图片来自网络侵删)

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

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

从nmb-jmeter-docker: 使用docker运行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带插件)下载【jpgc-jmeter-docker】文件夹中所有文件构建本地镜像:sh build.sh使用构建的镜像,运行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助攻服务,产生出足够量的并发用户数。
另外,在助攻机的维护上,也变的更加简单,因为所有的助攻机容器都是基于相同的镜像创建,理论上,所有容器都是一样。

下载【slave-jmeter-docker】文件夹中所有文件构建本地slave镜像:sh build.sh创建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)下载【master-jmeter-docker】文件夹中所有文件构建本地master镜像:sh build.sh修改run-master.sh文件中 --link的数量和名称

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

使用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进行性能测试的技术,已经讲完了,代码已经开源,有需要可以DD我

如果你觉得有用,请帮忙点个赞噢!

标签:

相关文章

天空蓝,介绍我国航空业发展的新引擎

近年来,我国航空业发展迅速,已成为全球航空市场的重要力量。其中,天空蓝作为我国自主研发的航空发动机,被誉为航空业发展的新引擎。本文...

软件开发 2024-12-25 阅读0 评论0

应用型网站,打造高效便捷的在线服务平台

随着互联网技术的飞速发展,应用型网站已经成为人们日常生活中不可或缺的一部分。它不仅为人们提供了便捷的生活服务,还为企业创造了广阔的...

软件开发 2024-12-25 阅读0 评论0

全球无代码浪潮下的创新与变革

随着科技的飞速发展,信息技术已成为推动全球经济增长的重要引擎。近年来,无代码开发技术逐渐崭露头角,成为引领企业数字化转型的新潮流。...

软件开发 2024-12-25 阅读1 评论0

免流协议,互联网时代的创新之钥

随着互联网的飞速发展,网络流量已成为制约用户体验的关键因素。为了解决这一难题,免流协议应运而生。本文将探讨免流协议的原理、应用及发...

软件开发 2024-12-25 阅读1 评论0