使用JMeter+Grafana+Influxdb搭建可视化性能测试监控平台
【背景说明】
使用jmeter进行性能测试时,工具自带的查看结果方式往往不够直观和明了,所以我们需要搭建一个可视化监控平台来完成结果监控,这里我们采用三种JMeter+Grafana+Influxdb的方法来完成平台搭建
【实现原理】
通过influxdb数据库存储jmeter的结果,再通过grafana采集influxdb数据库数据,完成监控平台展示

【平台搭建】
方法一:Windows或macOS环境下搭建
1.InfluxDB安装
首先进入influxDB官网下载安装包(选择2.0以下版本)
https://portal.influxdata.com/downloads/
Windows可使用以下链接直接下载
https://dl.influxdata.com/influxdb/releases/influxdb-1.7.9_windows_amd64.zip
下载完成后进行解压,以Windows为例:
进入文件夹可看到以下目录

点击influxd.exe启动数据库,启动成功如下图所示

点击influx.exe进入influxdb客户端,进入后创建名字为“jmeter”的数据库

2.grafana安装
首先进入grafana官网下载安装包
https://grafana.com/grafana/download
选择对应系统后下载,以Windows为例:
解压完成后进入bin目录点击grafana-server.exe来启动grafana程序
启动完成后打开浏览器输入http://localhost:3000进入grafana登录页面

默认用户名和密码都为admin,进入首页后点击添加数据库

选择influxdb数据库,填写以下信息即可

点击sava&test,显示data source is working表示数据库连接成功

导入已下载好的仪表盘

也可以到grafana官网寻找模板,在导入模板处输入需要模板的Downlosds编号即可
https://grafana.com/grafana/dashboards


最后如图所示

3.jmeter配置
1.jmeter中,添加“监听器 -> 后端监听器”

配置后端监听器,目的是把jmeter的结果存入influxdb数据库

方法二:Linux环境下搭建
1.influxdb安装.
使用命令直接安装influxdb
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.4_linux_amd64.tar.gz
解压influxdb压缩包
tar -zxvf influxdb-1.8.4_linux_amd64.tar.gz
添加环境变量
-
cd influxdb-1.8.4-1/usr/bin -
sudo cp {influx,influxd} /usr/local/bin/
启动influxdb
influxd

启动influxdb客户端,创建jmeter数据库
-
influx -
create database jmeter

2.grafana安装
使用命令直接安装
wget https://dl.grafana.com/oss/release/grafana-7.5.2.linux-amd64.tar.gz
解压安装包
tar -zxvf grafana-7.5.2.linux-amd64.tar.gz
启动grafana
-
cd grafana-7.5.2/bin -
./grafana-server
访问grafana网页,其余操作和方法一相同
http://ip:3000

3.jdk+jmeter安装
安装jmeter之前需要先安装jdk,下载jdk(可以使用下面地址进行下载,也可以去官网下载,官网需要登录oracle)https://www.jdkdownload.com/,我这选择jdk-8u181-linux-x64.tar.gz版本下载
解压jdk
tar -zxvf jdk-8u181-linux-x64.tar.gz
配置环境变量,修改配置文件vi /etc/profile,文本最后加上以下内容
-
JAVA_HOME=/usr/local/java/jdk1.8.0_181 -
CLASSPATH=$JAVA_HOME/lib/ -
PATH=$PATH:$JAVA_HOME/bin -
export PATH JAVA_HOME CLASSPATH
使环境变量生效
source /etc/profile
验证jdk配置成功
java -version

使用命令直接安装jmeter
wget https://mirrors.bfsu.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.3.tgz
解压jmeter
tar -zxf apache-jmeter-5.4.3.tgz
配置jmeter环境变量,vi /etc/profile,文本最后加上以下内容
-
export JMETER_HOME=/usr/local/apache-jmeter-5.4.3 -
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH -
export PATH=$JMETER_HOME/bin:$PATH
使环境变量生效
source /etc/profile
验证jmeter配置成功
jmeter --version

将jmeter脚本上传到当前文件夹中,执行以下命令启动jmeter
-
jmeter -n -t ***.jmx -l test.jtl -
参数说明: -
-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter -
-t 测试文件 -> 要运行的 JMeter 测试脚本文件 -
-l 日志文件 -> 记录结果的文件
方法三:docker容器下安装
1.influxdb安装并运行(选择2.0以下版本)
docker run -itd --name influxdb -p 8086:8086 influxdb:1.8.3
进入容器
docker exec -it influxdb /bin/bash
创建数据库
-
influx -
create database jmeter -
show databases

2.grafana安装并运行
docker run -itd --name grafana -p 3000:3000 grafana/grafana
进入容器
docker exec -it grafana /bin/bash
访问grafana网页,其余操作和方法一相同(需注意容器内连接influxdb使用容器ip)
http://ip:3000

3.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 /jmeterdocker -
RUN mkdir -p /jmeterdocker/test -
RUN mkdir -p /jmeterdocker/test/input/jmx -
RUN mkdir -p /jmeterdocker/test/input/testdata -
RUN mkdir -p /jmeterdocker/test/report/html -
RUN mkdir -p /jmeterdocker/test/report/jtl -
RUN mkdir -p /jmeterdocker/test/report/outputdata -
RUN chmod -R 777 /jmeterdocker -
ENV JMETER_VERSION=5.4.3 -
ENV 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/bash -
cd /jmeterdocker/test/input/jmx -
jmeter -n -t ***.jmx -l test.jtl -
参数说明: -
-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter -
-t 测试文件 -> 要运行的 JMeter 测试脚本文件 -
-l 日志文件 -> 记录结果的文件
运行结果如图所示


运行结果如图所示


【总结】
以上三种方式都可以完成JMeter+Grafana+Influxdb平台搭建,这里可根据需要选择相应的方式安装即可
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

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


视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。
相关文章:
使用JMeter+Grafana+Influxdb搭建可视化性能测试监控平台
【背景说明】 使用jmeter进行性能测试时,工具自带的查看结果方式往往不够直观和明了,所以我们需要搭建一个可视化监控平台来完成结果监控,这里我们采用三种JMeterGrafanaInfluxdb的方法来完成平台搭建 【实现原理】 通过influxdb数据库存储…...
django模板下,vue的使用(前后端不分离)
目录 关于djangovue的结合使用一、在你的templates中引入vue.js二、关于vue与django模板变量的冲突问题三、示例结语 关于djangovue的结合使用 网上的相关教程基本上都是部署node.js,npm安装vue,生成vue项目,然后将vue项目部署至django,这些…...
python笔记(7)List(列表)
目录 创建列表 取列表中的值 更新列表 删除元素 脚本操作符 嵌套列表 Python列表函数&方法 创建列表 创建一个列表(List)用方括号[]括起来就可以,数据项之间用逗号作为分隔符,数据项可以是字符串,数字,甚至…...
java 抠取红色印章(透明背景)
一个亲戚让我帮他把照片里的红色印章抠出来,,,记录下处理过程,代码如下,可直接用: public static void signatureProcess(String sourceImagePath, String targetImagePath) {Graphics2D graphics2D null…...
CSS及javascript
一、CSS简介 css是一门语言,用于控制网页的表现。 cascading style sheet:层叠样式表 二、css的导入方式 css代码与html代码的结合方式 (1)css导入html有三种方式: 1.内联样式:<div style"color:red&quo…...
LeetCode 1997.访问完所有房间的第一天:动态规划(DP)——4行主要代码(不需要什么前缀和)
【LetMeFly】1997.访问完所有房间的第一天:动态规划(DP)——4行主要代码(不需要什么前缀和) 力扣题目链接:https://leetcode.cn/problems/first-day-where-you-have-been-in-all-the-rooms/ 你需要访问 n 个房间,房间从 0 到 n - 1 编号。同…...
BootsJS上新!一个库解决大部分难题!
不知不觉距离第一次发文章介绍自己写的库BootsJS已经过去一个月了,这个月里收到了许许多多JYM的反馈与建议,自己也再一次对BootsJS进行了改进与完善,又一次增加了很多功能,为此我想应该给JYM们汇报汇报这个月的工作进展。 BootJS仓…...
智慧公厕,让数据和技术更好服务社会生活
智慧公厕,作为智慧城市建设中不可忽视的一部分,正逐渐受到越来越多人的关注。随着科技的不断进步,智能化公厕已经成为一种趋势,通过数据的流转和技术的整合,为社会生活带来了更好的服务。本文以智慧公厕源头实力厂家广…...
Spark基于DPU Snappy压缩算法的异构加速方案
一、总体介绍 1.1 背景介绍 Apache Spark是专为大规模数据计算而设计的快速通用的计算引擎,是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些不同之处使 Spark 在某些工作负载方面表现得更加优越。换句话说&am…...
如何使用python链表
在Python中,可以使用类来实现链表的数据结构。链表是一种数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的引用。 下面是一个简单的链表类的示例: class Node:def __init__(self, data):self.data …...
ADB的主要操作命令及详解
ADB,全称Android Debug Bridge,即安卓调试桥,是一个通用的命令行工具,其允许你与模拟器实例或连接的安卓设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对Unix shell(可用来…...
傻瓜式启动关闭重启docker容器的脚本
运行脚本后,界面如下: 选择对应的编号后,会列举所有关闭的容器或者所有开启的容器列表,当我要启动一个容器 时输入1,就会出现下面的页面。 然后输入指定的编号后,就会启动对应的容器。 脚本代码如下&#…...
R语言使用dietaryindex包计算NHANES数据多种营养指数(2)
健康饮食指数 (HEI) 是评估一组食物是否符合美国人膳食指南 (DGA) 的指标。Dietindex包提供用户友好的简化方法,将饮食摄入数据标准化为基于指数的饮食模式,从而能够评估流行病学和临床研究中对这些模式的遵守情况,从而促进精准营养。 该软件…...
Elasticsearch 索引模板、生命周期策略、节点角色
简介 索引模板可以帮助简化创建和二次配置索引的过程,让我们更高效地管理索引的配置和映射。 索引生命周期策略是一项有意义的功能。它通常用于管理索引和分片的热(hot)、温(warm)和冷(cold)数…...
buy me a btc 使用数字货币进行打赏赞助
最近在调研使用加密货币打赏的平台,发现idatariver平台 https://idatariver.com 推出的buymeabtc功能刚好符合使用场景,下图为平台的演示项目, 演示项目入口 https://buymeabtc.com/idatariver 特点 不少人都听说过buymeacoffee,可以在上面发…...
Solidity Uniswap V2 Router swapTokensForExactTokens
最初的router合约实现了许多不同的交换方式。我们不会实现所有的方式,但我想向大家展示如何实现倒置交换:用未知量的输入Token交换精确量的输出代币。这是一个有趣的用例,可能并不常用,但仍有可能实现。 GitHub - XuHugo/solidit…...
网络安全渗透测试工具
网络安全渗透测试常用的开发工具包括但不限于以下几种: Nmap:一款网络扫描工具,用于探测目标主机的开放端口和正在运行的服务,是网络发现和攻击界面测绘的首选工具。Wireshark:一个流量分析工具,用于监测网…...
springcloud+nacos服务注册与发现
快速开始 | Spring Cloud Alibaba 参考官方快速开始教程写的,主要注意引用的包是否正确。 这里是用的2022.0.0.0-RC2版本的springCloud,所以需要安装jdk21,参考上一个文章自行安装。 nacos-config实现配置中心功能-CSDN博客 将nacos-conf…...
【C++程序员的自我修炼】基础语法篇(一)
心中若有桃花源 何处不是水云间 目录 命名空间 💞命名空间的定义 💞 命名空间的使用 输入输出流 缺省参数 函数的引用 引用的定义💞 引用的表示💞 引用的特性💞 常量引用💞 引用的使用场景 做参数 做返回值…...
小狐狸JSON-RPC:钱包连接,断开连接,监听地址改变
detect-metamask 创建连接,并监听钱包切换 一、连接钱包,切换地址(监听地址切换),断开连接 使用npm安装 metamask/detect-provider在您的项目目录中: npm i metamask/detect-providerimport detectEthereu…...
重新定义你的窗口管理体验 - StreamWindow 4.0
StreamWindow 4.0版本带来了重大更新,也做了很多优化和完善。 距离发布APP已经过去小半年了,这款macOS上的3D窗口管理工具随着4.0版本通过审核,带来大量的功能更新和完善,尤其引入了一种新的动画特效:扑克牌洗牌特效。…...
OpenClaw+Qwen3-32B低成本方案:RTX4090D镜像长任务稳定性实测
OpenClawQwen3-32B低成本方案:RTX4090D镜像长任务稳定性实测 1. 为什么需要测试长任务稳定性? 上周我遇到一个头疼的问题:用OpenClaw整理3年积累的摄影素材时,任务执行到2小时突然中断。检查日志发现是显存溢出导致模型服务崩溃…...
从钟形曲线到假设检验:用Python可视化带你理解正态分布在数据分析中的实际应用
从钟形曲线到假设检验:用Python可视化理解正态分布的核心价值 第一次接触统计学时,我被那些复杂的公式和抽象概念搞得晕头转向。直到有一天,导师在咖啡杯旁画了一条钟形曲线:"看,这就是正态分布——它像不像我们部…...
GraphRAG:当 RAG 遇上知识图谱,信息检索从此不一样了
假设你把公司过去三年的所有周报、会议纪要、项目文档丢进一个 RAG 系统,然后问它:“过去一年里,研发团队和产品团队之间的主要分歧有哪些?”——大概率你会得到几段看起来相关的文字片段,但拼不出一个完整的答案。 这…...
深入浅出:图解程序控制、中断和DMA的工作原理与性能差异
深入浅出:图解程序控制、中断和DMA的工作原理与性能差异 想象你在一家餐厅点餐:第一种方式是服务员每隔30秒就来问你"好了吗";第二种是你按服务铃,服务员立刻过来;第三种是厨房直接把菜送到你桌上——这正是…...
颠覆式窗口置顶:Topit重新定义Mac多任务处理体验
颠覆式窗口置顶:Topit重新定义Mac多任务处理体验 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 在数字工作空间爆炸式增长的今天,Mac用…...
小白友好!Gemma-3-12B-IT WebUI部署常见错误及修复方法
小白友好!Gemma-3-12B-IT WebUI部署常见错误及修复方法 1. 为什么你的WebUI总是打不开? 你是不是也遇到过这种情况:跟着教程一步步部署Gemma-3-12B-IT的WebUI,最后一步打开浏览器,输入地址,结果页面一直转…...
vLLM-v0.17.1在专利分析系统中的应用:权利要求生成与比对
vLLM-v0.17.1在专利分析系统中的应用:权利要求生成与比对 1. 技术背景与需求分析 专利分析是知识产权领域的重要工作,其中权利要求书的生成与比对是核心环节。传统方法依赖人工撰写和比对,效率低下且一致性难以保证。随着大语言模型技术的发…...
5大理由让你立即选择Argos Translate:开源离线翻译的终极解决方案
5大理由让你立即选择Argos Translate:开源离线翻译的终极解决方案 【免费下载链接】argos-translate Open-source offline translation library written in Python 项目地址: https://gitcode.com/GitHub_Trending/ar/argos-translate Argos Translate是一款…...
老王-你驾驭不住的东西才会显相
你驾驭不住的东西,才会显相 ——展现即风险,驾驭方为道“大象无形。” 真正强大的人,从不轻易显相—— 因为显,即招;露,即险。⚠️ 你想展现什么,就必须能驾驭什么。🔥 六大展现&…...
