性能测试 —— docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台!

前言

在当前激烈的市场竞争中,创新和效率成为企业发展的核心要素之一。在这种背景下,如何保证产品和服务的稳定性、可靠性以及高效性就显得尤为重要。

而在软件开发过程中,性能测试是一项不可或缺的环节,它可以有效的评估一个系统、应用或者软件的性能指标。然而,如何提升性能测试效率,把测试结果转化为有价值的信息,则是一个更加重要的问题。

因此,本文提供了一个基于JMeter、Grafana和Influxdb的优化整合方案,将三个工具进行智能化整合,通过实时监控和数据分析,帮助团队更好地发现和解决性能问题,为企业提升产品和服务的质量打下坚实的基础。无论您是团队负责人、测试工程师、运维工程师或其他技术人员,都可以通过本文的方案,轻松打造智能化性能测试监控平台,从而在激烈的市场竞争中获得更大的优势。

一、influxdb安装并运行(选择2.0以下版本)

docker run -itd --name influxdb -p 8086:8086 influxdb:1.8.3

进入容器

docker exec -it influxdb /bin/bash

创建数据库

influxcreate database jmetershow databases

图片

二、grafana安装并运行

docker run -itd --name grafana -p 3000:3000 grafana/grafana

进入容器

docker exec -it grafana /bin/bash

访问grafana页面

http://ip:3000

图片

三、jmeter安装

直接用命令下载jmeter

wget https://mirrors.bfsu.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.3.tgz

我们使用dockerfile安装,内容如下

FROM java:8 ENV http_proxy ""ENV https_proxy "" RUN mkdir /jmeterdockerRUN mkdir -p /jmeterdocker/testRUN mkdir -p /jmeterdocker/test/input/jmxRUN mkdir -p /jmeterdocker/test/input/testdataRUN mkdir -p /jmeterdocker/test/report/htmlRUN mkdir -p /jmeterdocker/test/report/jtlRUN mkdir -p /jmeterdocker/test/report/outputdataRUN chmod -R 777 /jmeterdocker ENV JMETER_VERSION=5.4.3ENV JMETER_HOME=/jmeterdocker/apache-jmeter-${JMETER_VERSION}ENV JMETER_PATH=${JMETER_HOME}/bin:${PATH}ENV PATH=${JMETER_HOME}/bin:${PATH} COPY apache-jmeter-${JMETER_VERSION}.tgz /jmeterdocker RUN cd /jmeterdocker \    && tar xvf apache-jmeter-${JMETER_VERSION}.tgz \    && rm apache-jmeter-${JMETER_VERSION}.tgz

dockerfile文件路径下执行命令

docker build -t jmeter .

创建jmeter容器

docker run -itd --name=jmeter -v /tmp/jmeterspace/test/input/jmx:/jmeterdocker/test/input/jmx \-v /tmp/jmeterspace/test/input/testdata:/jmeterdocker/test/input/testdata \-v /tmp/jmeterspace/test/report/html:/jmeterdocker/test/report/html \-v /tmp/jmeterspace/test/report/jtl:/jmeterdocker/test/report/jtl \-v /tmp/jmeterspace/test/report/outputputdata:/jmeterdocker/test/report/outputdata \-p 1099:1099 \jmeter

jmeter脚本放在容器外的

/tmp/jmeterspace/test/input/jmx路径下

进入容器,执行以下命令

docker exec -it jmeter /bin/bashcd /jmeterdocker/test/input/jmxjmeter -n -t ***.jmx -l test.jtl参数说明:-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter-t 测试文件 -> 要运行的 JMeter 测试脚本文件-l 日志文件 -> 记录结果的文件

运行结果如图所示:

图片

图片

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


http://www.ppmy.cn/ops/109079.html

相关文章

python转换并提取pdf文件中的图片

#安装fitz包 pip install pymupdf 脚本如下所示: import fitz import re import os import time import sysarguments sys.argvfor arg in arguments:print(arg)def file_name_list(base_dir):for i, j, k in os.walk(base_dir):name [i.replace(.pdf, ) for i …

k8s调度(pod亲和、反亲和、污点、容忍度)

pod亲和性 针对对象为Pod,目的是实现,新建Pod和目标Pod调度到一起,在同一个Node上。 示例: apiVersion: v1 kind: Pod metadata:name: testpod01labels:app: myapp01env: test1 spec:containers:- name: testpod01image: nginx:…

Linux——redis主从复制、集群模式、哨兵模式

主从复制 部署至少两个redis的实例 // 提供数据冗余和备份 两个独立服务器两个虚拟机两个容器一个redis的master 节点可以有多个redis的replica 从节点, 而从节点也可以成为其他从节点的主节点 // 方便对于主复制架构进行扩展提供数据灾备,当red…

【深度学习】神经网络-怎么理解DNN、CNN、RNN?

怎么分清DNN、RNN、CNN? 最“大”的概念是人工神经网络(Artificial Neural Network, ANN),它是较为广泛的术语,通常指的是一类模拟生物神经网络的数学模型,其中包括神经元、权重和连接。在这个术语下&#…

【QT】自制一个简单的小闹钟,能够实现语音播报功能

做了一个自制的小闹钟,能够自己输入时间,以及对应的闹铃,时间到了自动播放设定的闹铃,可以随时取消重新设定,采用分文件编译 注意:需要在.pro文件中加入:QT core gui texttospeech 代码…

91、K8s之ingress上集

一、Ingress service模式: loadbalance NodePort:每个节点都会有一个指定的端口 30000-32767 内网 clusterip:默认模式,只能pod内部访问 externalName:需要dns提供域名 1.1、对外提供服务的ingress service&…

UE5.3_跟一个插件—Socket.IO Client

网上看到这个插件,挺好! 项目目前也没有忙到不可开交,索性跟着测一下吧: 商城可见,售价72.61人民币! 但是,git上有仓库哦,免费!! 跟着链接先准备起来: Documentation: GitHub - getnamo/SocketIOClient-Unreal: Socket.IO client plugin for the Unreal Engin…

【软件工程】CI_CD

CI/CD 1 主流技术 阶段常用工具代码管理GitSVN单元测试JUnit(Java)PyTest(python)aJest(JavaScript/Node.js)NUnit(C#)构建打包Maven(Java)Gradle(Java/Kotlin)npm/Yarn(JavaScript/Node.js)Docker(容器化)自动发布JenkinsGitLab CI/CDCircleCITravis CI部署环境Kubernetes(k…

HTTP 请求处理的完整流程到Servlet流程图

HTTP 请求处理的完整流程。从 TCP 三次握手开始,一直到 Servlet 处理请求并返回响应。 首先,让我解释一下 response.setContentType("text/html;charsetUTF-8"); 这行代码: 这行代码设置了 HTTP 响应的 Content-Type 头。它告诉浏…

CSS层叠样式表(Cascading Style Sheets)

CSS,全称为层叠样式表(Cascading Style Sheets),是一种用来描述文档(如HTML文档或XML应用)样式(如字体、颜色、间距等)展示方式的技术。它与HTML结合使用,能够控制网页的…

【软考】设计模式之抽象工厂模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. 适用性6. 优点7. 缺点8. java示例 1. 说明 1.提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。2.抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式。3.抽象工厂…

高光谱图像处理,使其适用于深度学习任务

高光谱图像具有丰富的光谱信息,通常由多个波段(channels)组成,远超过普通的RGB图像(3个波段)。这种高光谱数据在遥感、农业、医学等领域具有广泛应用。为了将高光谱图像适配深度学习检测任务,通…

秋招突击——算法练习——9/4——73-矩阵置零、54-螺旋矩阵、48-旋转图像、240-搜索二维矩阵II

文章目录 引言复习新作73-矩阵置零个人实现 54-螺旋矩阵个人实现参考实现 48-旋转图像个人实现参考实现 240-搜索二维矩阵II个人实现参考实现 总结 引言 秋招开展的不是很顺利,还是要继续准备,继续刷算法!不断完善自己,希望能够找…

Kubernetes中的PV与PVC:存储资源的抽象与申请

Kubernetes中的PV与PVC:存储资源的抽象与申请 1、PersistentVolume (PV)2、PersistentVolumeClaim (PVC)3、关系💖The Begin💖点点关注,收藏不迷路💖 在Kubernetes中,为了管理持久化存储,引入了两个核心概念: 1、PersistentVolume (PV) 定义:对底层存储资源的抽象…

计算机网络——第一章 计算机网络概述

文章目录 计算机网络——第一章 计算机网络概述一、引言二、计算机网络基础1、计算机网络的定义2、网络的组成 三、互联网概述1、互联网的基本概念2、互联网的发展历程 四、计算机网络的类别与性能1、网络的分类2、网络性能指标 五、计算机网络体系结构1、体系结构的概念1.1、分…

图为科技基于昇腾AI,打造智慧工厂检测解决方案

中国作为全球制造业的翘楚,在工业领域成就斐然。因工业生产的特殊环境与工艺要求,面临着高温、高压、易燃易爆等多重高危因素。 其生产装置通常大型化且密集,生产工艺复杂,生产过程紧密耦合。在这样的背景下,围绕“人…

【Linux系统学习】5.Linux实用操作 下

7.虚拟机配置固定IP 7.1 为什么需要固定IP 当前我们虚拟机的Linux操作系统,其IP地址是通过DHCP服务获取的。 DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更 原因1:办公电脑IP地址变化无所…

网络高级(学习)2024.9.10

目录 一、Modbus简介 1.起源 2.特点 3.应用场景 二、Modbus TCP协议 1.特点 2.协议格式 3.MBAP报文头 4.功能码 5.寄存器 (1)线圈寄存器,类比为开关量,每一个bit都对应一个信号的开关状态。 (2&#xff09…

从虚拟现实到元宇宙:Facebook引领未来社交的下一步

随着科技的迅猛发展,社交媒体正在经历一场深刻的变革。从最初的文本和图片交流,到如今的沉浸式虚拟现实(VR)和即将到来的元宇宙,社交互动的方式正在发生根本性的变化。作为行业领军者,Facebook(…

【数组与广义表】(基本概念与思路)

1.数组的定义及特点 数组:按一定格式排列起来的,具有相同类型的数据元素的集合。 1.1一维数组 若线性表中的数据元素为非结构的简单元素,则称为一维数组。一维数组的逻辑结构:线性结构,定长的线性表声明格式:数据类型 变量名称…