使用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…...
union在c语言中什么用途
在C语言中,union是一种特殊的数据类型,可以在同一块内存中存储不同类型的数据。它的主要用途有以下几个: 1. 节省内存:由于union只占用其成员中最大的数据类型所占用的内存空间,可以在不同的情况下使用同一块内存来存…...
2024年华为OD机试真题- 寻找最优的路测线路-Java-OD统一考试(C卷)
题目描述: 评估一个网络的信号质量,其中一个做法是将网络划分为栅格,然后对每个栅格的信号质量计算。路测的时候,希望选择一条信号最好的路线(彼此相连的栅格集合)进行演示。现给出R行C列的整数数组Cov,每个单元格的数值S即为该栅格的信号质量(已归一化,无单位,值越大…...
WPF 多路绑定、值转换器ValueConvert、数据校验
值转换器 valueconvert 使用ValueConverter需要实现IValueConverter接口,其内部有两个方法,Convert和ConvertBack。我们在使用Binding绑定数据的时候,当遇到源属性和目标控件需要的类型不一致的,就可以使用ValueConverter…...
【Linux多线程】线程的同步与互斥
【Linux多线程】线程的同步与互斥 目录 【Linux多线程】线程的同步与互斥分离线程Linux线程互斥进程线程间的互斥相关背景概念问题产生的原因: 互斥量mutex互斥量的接口互斥量实现原理探究对锁进行封装(C11lockguard锁) 可重入VS线程安全概念常见的线程不安全的情况…...
Linux网卡bond的七种模式详解
像Samba、Nfs这种共享文件系统,网络的吞吐量非常大,就造成网卡的压力很大,网卡bond是通过把多个物理网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,具体的功能取决于采用的哪种模式。 Lin…...
【学习笔记】java项目—苍穹外卖day01
文章目录 苍穹外卖-day01课程内容1. 软件开发整体介绍1.1 软件开发流程1.2 角色分工1.3 软件环境 2. 苍穹外卖项目介绍2.1 项目介绍2.2 产品原型2.3 技术选型 3. 开发环境搭建3.1 前端环境搭建3.2 后端环境搭建3.2.1 熟悉项目结构3.2.2 Git版本控制3.2.3 数据库环境搭建3.2.4 前…...
C++之STL整理(2)之vector超详用法整理
C之STL整理(2)之vector用法(创建、赋值、方法)整理 注:整理一些突然学到的C知识,随时mark一下 例如:忘记的关键字用法,新关键字,新数据结构 C 的vector用法整理 C之STL整…...
机器学习作业二之KNN算法
KNN(K- Nearest Neighbor)法即K最邻近法,最初由 Cover和Hart于1968年提出,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路非常简单直观:如果一个样本在特征空间中的K个最相似&…...
笔记81:在服务器中运行 Carla 报错 “Disabling core dumps.”
背景:使用实验室提供的服务器配 Carla-ROS2 联合仿真的实验环境,在安装好 Carla 后运行 ./CarlaUE4.sh 但是出现 Disabling core dumps. 报错,而且不会出现 Carla 的窗口; 解决:运行以下命令 ./CarlaUE4.sh -carl…...
ensp中pc机访问不同网络的服务器
拓扑图如下,资源已上传 说明:pc通过2个路由访问server服务器 三条线路分别是192.168.1.0网段,192.168.2.0网段和192.168.3.0网段,在未配置的情况下,pc设备是访问不到server的 具体操作流程 第一;pc设备…...
安卓开发者网站/免费web服务器网站
下载,安装 VLC 从http://download.videolan.org/pub/videolan/vlc/下载对应版本的VLC Portable文件 下载安装 win64 版本的软件安装包 安装好。 安装 python-VLC 插件包 pip install python-vlc 安装完成后 可以开始测试了 VLC 插件包一定 是依赖于VLC软件的&…...
免费单页网站模板/常德网站设计
System.Diagnostics.Process 属性 public bool EnableRaisingEvents { get; set; }//获取或设置在进程终止时是否应激发 Exited 事件。 事件 public event EventHandler Exited //在进程退出时发生。进程退出的时候,一般需要把Process对象释放掉[比如一个Windows应用…...
如何做网站的链接结构/南宁网站推广哪家好
Ctrl Shift “” Ctrl Shift “-”...
wordpress 付费剧集网站/桂林市天气预报
通信技术发展数十年我们的生活也发生了翻天覆地的变化1G-5G,承载了多少回忆和未来...文案:ZHY制作:胖胖背锅:毒少来源: 科技每日推送-END-【文章版权归原作者所有,其内容与观点不代表Unitimes立 场。翻译文…...
门户网站采用较多的模式是/阿里指数官网入口
实际上一个人有没有的房产运,在八字命理中是有信息显示的。有者买了就赚,有者买了就亏,有者无缘无故会获得一套或几套房子,有者一生与房产无缘,有者即使有良产万顷,最后也会变卖一空。那么如何从八字中断你…...
行业网站怎么推广/留号码的广告网站不需要验证码
假期 # 生活 # 水文 咱们继续假期第三天的日常更文,没看上篇的铁子们我把地址贴在下面。 点我 虽然是假期,但我规划已久的睡懒觉流程却是一直执行不下去。这不今天早上八点我就起床了,当然起的早不是为了“卷”,而是吃早餐。说出…...