使用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 

添加环境变量

  1. cd influxdb-1.8.4-1/usr/bin

  2. sudo cp {influx,influxd} /usr/local/bin/

启动influxdb

influxd

启动influxdb客户端,创建jmeter数据库

  1. influx

  2. 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

  1. cd grafana-7.5.2/bin

  2. ./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,文本最后加上以下内容

 
  1. JAVA_HOME=/usr/local/java/jdk1.8.0_181

  2. CLASSPATH=$JAVA_HOME/lib/

  3. PATH=$PATH:$JAVA_HOME/bin

  4. 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,文本最后加上以下内容

 
  1. export JMETER_HOME=/usr/local/apache-jmeter-5.4.3

  2. export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH

  3. export PATH=$JMETER_HOME/bin:$PATH

使环境变量生效

source /etc/profile

验证jmeter配置成功

jmeter --version

将jmeter脚本上传到当前文件夹中,执行以下命令启动jmeter

 
  1. jmeter -n -t ***.jmx -l test.jtl

  2. 参数说明:

  3. -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter

  4. -t 测试文件 -> 要运行的 JMeter 测试脚本文件

  5. -l 日志文件 -> 记录结果的文件

方法三:docker容器下安装
1.influxdb安装并运行(选择2.0以下版本)
docker run -itd --name influxdb -p 8086:8086 influxdb:1.8.3

进入容器

docker exec -it influxdb /bin/bash

创建数据库

 
  1. influx

  2. create database jmeter

  3. 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安装,内容如下

 
  1. FROM java:8

  2. ENV http_proxy ""

  3. ENV https_proxy ""

  4. RUN mkdir /jmeterdocker

  5. RUN mkdir -p /jmeterdocker/test

  6. RUN mkdir -p /jmeterdocker/test/input/jmx

  7. RUN mkdir -p /jmeterdocker/test/input/testdata

  8. RUN mkdir -p /jmeterdocker/test/report/html

  9. RUN mkdir -p /jmeterdocker/test/report/jtl

  10. RUN mkdir -p /jmeterdocker/test/report/outputdata

  11. RUN chmod -R 777 /jmeterdocker

  12. ENV JMETER_VERSION=5.4.3

  13. ENV JMETER_HOME=/jmeterdocker/apache-jmeter-${JMETER_VERSION}

  14. ENV JMETER_PATH=${JMETER_HOME}/bin:${PATH}

  15. ENV PATH=${JMETER_HOME}/bin:${PATH}

  16. COPY apache-jmeter-${JMETER_VERSION}.tgz /jmeterdocker

  17. RUN cd /jmeterdocker \

  18. && tar xvf apache-jmeter-${JMETER_VERSION}.tgz \

  19. && rm apache-jmeter-${JMETER_VERSION}.tgz

在dockerfile文件路径下执行命令

docker build -t jmeter .

创建jmeter容器

 
  1. docker run -itd --name=jmeter -v /tmp/jmeterspace/test/input/jmx:/jmeterdocker/test/input/jmx \

  2. -v /tmp/jmeterspace/test/input/testdata:/jmeterdocker/test/input/testdata \

  3. -v /tmp/jmeterspace/test/report/html:/jmeterdocker/test/report/html \

  4. -v /tmp/jmeterspace/test/report/jtl:/jmeterdocker/test/report/jtl \

  5. -v /tmp/jmeterspace/test/report/outputputdata:/jmeterdocker/test/report/outputdata \

  6. -p 1099:1099 \

  7. jmeter

将jmeter脚本放在容器外的/tmp/jmeterspace/test/input/jmx路径下

进入容器,执行以下命令

 
  1. docker exec -it jmeter /bin/bash

  2. cd /jmeterdocker/test/input/jmx

  3. jmeter -n -t ***.jmx -l test.jtl

  4. 参数说明:

  5. -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter

  6. -t 测试文件 -> 要运行的 JMeter 测试脚本文件

  7. -l 日志文件 -> 记录结果的文件

运行结果如图所示

运行结果如图所示

【总结】

以上三种方式都可以完成JMeter+Grafana+Influxdb平台搭建,这里可根据需要选择相应的方式安装即可

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/364091.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

共性化异步任务处理

背景 考虑到现有业务很多依赖于MQ的方式进行,这种方式需要依赖于MQ,发送消息到mq和消费mq消息时需要了解mq消息结构进行相应处理; 对于后续对同样的事件做其他处理的人如不能提前了解到已有相应消息发到了mq就得再发一次消息到mq等。 图1.1…

Paper - 蛋白质刚性对接(Rigid Protein-Protein Docking)的 ElliDock 算法

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/135973005 论文:ElliDock: Rigid protein-protein docking via equivariant elliptic-paraboloid interface prediction, ICLR 2024 …

【复现】智邦国际ERP SQL注入漏洞_36

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 智邦国际“一体化ERP”各类产品线,通过一体化ERP经典型、行业型、简易型、云应用、SAAS平台等产线产品,提…

【CSS】移动端适配

移动端适配怎么做? 适配的目的是在屏幕大小不同的终端设备拥有统一的界面,让拥有更大屏幕的终端展示更多的内容。 meta viewport (视口) 移动端初始视口的大小默认是980px,因为世界上绝大多数PC网页的版心宽度为980px ,如果网页…

7.4 Highest Locker Protocol/Pattern

Bruce Powel Douglass大师介绍-CSDN博客https://blog.csdn.net/ChatCoding/article/details/134665868嵌入式软件开发从小工到专家-CSDN博客https://blog.csdn.net/ChatCoding/article/details/135297955C嵌入式编程设计模式源码-CSDN博客https://blog.csdn.net/ChatCoding/art…

IT行业中最重要的证书

在IT行业,拥有一些含金量较高的证书是职业发展的关键。这些证书不仅可以证明技能水平,还有助于提升在职场上的竞争力。本文将介绍几个IT行业中最重要的证书。 1. Cisco认证 CCNA(Cisco Certified Network Associate)是Cisco公司新…

Acrel-1200分布式光伏运维平台屋顶光伏工商业屋顶光伏应用

上海安科瑞电气股份有限公司 胡冠楠 咨询家:“Acrelhgn”,了解更多产品资讯 行业现状 “十四五”期间,随着“双碳”目标提出及逐步落实,本就呈现出较好发展势头的分布式光伏发展有望大幅提速。就“十四五”光伏发展规划&#xf…

关键字const

1.定义常量 const int a; 2.定义常量指针 1.不可以通过常量指针来修改其指向的内容。 2.不能把常量指针赋值给非常量指针,反过来可以。 3.函数参量为常函数指针时,可以避免函数内部不小心改变指针所指地方的内容。

Linux ---- Shell编程之免交互

一、Here Document 多行重定向 1、Here Document定义 使用I/O重定向的方式将命令列表提供给交互式程序标准输入的一种替代品Here Document 是标准输 入的一种替代品,可以帮助脚本开发人员不必使用临时文件来构建输入信息,而是直接就地生产出一个文件…

猫什么时候发腮?公认发腮效果好的生骨肉冻干推荐

猫什么时候发腮是许多猫主人非常关心的问题。在猫咪的成长过程中,发腮是一项重要的体征,也是猫咪成熟的标志。想要让猫咪拥有可爱的肉嘟嘟脸型,主人需要在适龄的年龄段加强营养补给,不要错失最佳发腮期。那么,猫咪的最…

netty源码:(58)NioEventLoop中处理IO事件和普通事件的时间比例是多少?

在NioEventLoop的run方法中有如下代码片段: 当ioRatio不为100时,首先通过System.nanoTime()获取IO事件的开始处理时间,然后调用processSelectedKeys方法处理IO时间,然后再计算IO事件执行了多长时间。最后通过ioTime(I…

《区块链简易速速上手小册》第4章:区块链与加密货币(2024 最新版)

文章目录 4.1 比特币与区块链4.1.1 比特币基础4.1.2 比特币交易的工作流程:4.1.3 拓展案例 1:闪电网络4.1.4 拓展案例 2:比特币ATM 4.2 其他主要加密货币4.2.1 加密货币的多样性4.2.2 以太坊的案例4.2.3 拓展案例 1:非同质化代币&…

springboot 整合 PowerJob实现定时任务调度

最近项目需要使用定时任务,而使用了PowerJob做任务调度模块,感觉这个框架真香,今天我们就来深入了解一下新一代的定时任务框架——PowerJob! 简介 PowerJob是基于java开发的企业级的分布式任务调度平台,与xxl-job一样…

【JavaEE Spring】Spring AOP

Spring AOP 1. AOP概述2. Spring AOP快速⼊⻔2.1 引⼊AOP依赖2.2 编写AOP程序 3. Spring AOP详解3.1 SpringAOP核⼼概念3.1.1 切点(Pointcut)3.1.2 连接点(JoinPoint)3.1.3 通知(Advice)3.1.4 切⾯(Aspect) 3.2 通知类型3.3 PointCut3.4 切⾯优先级Order3.5 切点表达式3.5.1 ex…

什么是网络数据抓取?有什么好用的数据抓取工具?电商数据API免费测试入口

什么是网络数据抓取 网络数据抓取(Web Scraping)是指采用技术手段从大量网页中提取结构化和非结构化信息,按照一定规则和筛选标准进行数据处理,并保存到结构化数据库中的过程。目前网络数据抓取采用的技术主要是对垂直搜索引擎&a…

Maya------布尔 圆形圆角组件

17. maya常用命令7.布尔 圆形圆角组件_哔哩哔哩_bilibili 选中一个模型,再按shift加选另外一个模型 圆形圆角命令

QT5.14+VS2017安装踩过的一些坑

1.在QT中使用MSVC只能用VS2017,相应的调试器的版本只能用15.9,高于15.9的亲测都不行。完整的安装除了需要QT5.15和VS2017,还需要Windows SDK (10.0.22621) 下载地址:https://developer.microsoft.com/zh-cn/windows/downloads/win…

Qt读写Execl:QXlsx库

Qt三方库开发技术:QXlsx介绍、编译和使用 我自己记录的实例代码:https://download.csdn.net/download/cao_jie_xin/88795216 目录 一、概述二、下载三、编译四、加载QXlsx静态库五、介绍一些常用的功能1、一些头文件和命名空间2、创建一个excel文件3、…

消息中间件之RocketMQ源码分析(四)

消费者的Rebalance机制 客户端是通过Rebalance服务做到高可靠的。当发生Broker掉线、消费者实例掉线、 Topic扩容等各种突发情况时,消费者组中的消费者实例是怎么重平衡的,以支持全部队列的正常消费的? Rebalance服务的类图 RebalanceImpl的核心属性 …

CHS_06.2.3.4_2+用信号量实现进程互斥、同步、前驱关系

CHS_06.2.3.4_2用信号量实现进程互斥、同步、前驱关系 知识总览信号量机制实现进程互斥信号量机制实现进程同步信号量机制实现前驱关系 知识回顾 各位同学 大家好 在这个小节中 我们要学习怎么用信号量机制来实现进程的同步互制关系 知识总览 那么 我们之前学习了互斥的几种软…
最新文章