JMeter+Grafana+Influxdb搭建可视化性能测试监控平台原创

news2024/9/22 10:05:56

【背景说明】

使用jmeter进行性能测试时,工具自带的查看结果方式往往不够直观和明了,所以我们需要搭建一个可视化监控平台来完成结果监控,这里我们采用三种JMeter+Grafana+Influxdb的方法来完成平台搭建

如果你想视频学习Jmeter接口测试, 可以查看下方视频教程!

2023年B站最新Jmeter接口测试实战教程,精通接口自动化测试只需要这一套视频_哔哩哔哩_bilibili2023年B站最新Jmeter接口测试实战教程,精通接口自动化测试只需要这一套视频共计16条视频,包括:1.【Jmeter】什么是接口测试?为什么要做接口测试?、2.【Jmeter】接口架构设计分类以及接口协议、3.【Jmeter】Jmeter界面介绍和常用组件详解等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV1Ux4y1L7Lj/?spm_id_from=333.337.search-card.all.click

【实现原理】

通过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平台搭建,这里可根据需要选择相应的方式安装即可

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

长江商学院EMBA38期甄知科技:ChatGPT应用与实践初探

近期,长江商学院EMBA38期&甄知科技开展了题为“ChatGPT应用与实践初探”的线下沙龙活动,由上海甄知科技创始合伙人兼CTO张礼军主讲,主要给大家解密最近很火的ChatGPT是什么,分享如何玩转ChatGPT,初步探索ChatGPT对…

快来试试这几个简单好用的手机技巧吧

技巧一:相机功能 苹果手机的相机功能确实非常出色,除了出色的像素之外,还有许多其他实用功能可以提升拍摄体验。 这些相机功能提供了更多的选择和便利性,使用户能够更好地适应不同的拍摄需求。 自拍功能:通过选择自…

SCI图片制作排版全流程及论文配图规范

目录 引言 一、图片尺寸与格式要求 二、图片处理和组图排版的流程 1. 确定排版 2. 用PS处理位图 3. 生成矢量统计图 4. 用AI制作模式图并处理 5. 用AI制作排版组图 6. 导出为.tiff或.eps 三、图片素材与示意图的绘制方法 1. 绘制图片素材 2. 绘制示意图 结论 引言…

硬件系统工程师宝典(25)-----四种BJT应用电路分析

各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。上篇我们说到晶体三极管(BJT)可以看成是一个通过“监视”基极-发射极电流来控制集电极-发射极电流的元器件,并给出…

使用决策树模型Titanic数据集预测

数据准备 可以通过以下链接获取数据集: 百度网盘 请输入提取码 共包含三个csv文件: 《train.csv》训练数据集,包含特征信息和标签(是否幸存) 《test.csv》 测试数据集, 只包含特征信息 《gender_submission.csv》测试数据集…

远程FTP连接等

R1: <R1>ftp 192.168.2.100 用户名&#xff1a;1 密码&#xff1a;1 [R1-ftp]dir //查看当前FTP服务器中的文件列表 ..................... shengji.txt //复制想要下载的文件名 [R1-ftp]get 文件名 //下载相应的文件 [R1-ftp]q //返回R1设备 <R1>di…

观察级水下机器人使用系列之一系统构成

我们单位最近购买了一台观察级水下机器人&#xff08;ROV&#xff09;&#xff0c;型号为Seatronics Valor&#xff0c;工作最大水深300m。Valor ROV是一个计算机控制的电动ROV系统&#xff0c;使用Greensea Systems公司的OPENSEA控制系统。该系统需要一个三相电源380V输入&…

Model-Free TD Control: Sarsa

import time import random # 相对于Q 效果会差一些 class Env():def __init__(self, length, height):# define the height and length of the mapself.length lengthself.height height# define the agents start positionself.x 0self.y 0def render(self, frames50):fo…

二、go语言的编码规范

编码规范 一、 命名规范 Go在命名时以字母a到Z或a到Z或下划线开头&#xff0c;后面跟着零或更多的字母、下划线和数字(0到9)。Go不允许在命名时中使用、$和%等标点符号。Go是一种区分大小写的编程语言。因此&#xff0c;Manpower和manpower是两个不同的命名。 当命名&#xf…

华为OD机试真题 Java 实现【组装新的数组】【2023Q1 200分】

一、题目描述 给你一个整数M和数组N,N中的元素为连续整数&#xff0c;要求根据N中的元素组装成新的数组R。 组装规则&#xff1a; R中元素总和加起来等于M&#xff1b;R中的元素可以从N中重复选取&#xff1b;R中的元素最多只能有1个不在N中&#xff0c;且比N中的数字都要小…

如何设置工业设备的振动监测阈值

工业设备的振动阈值设置是确保设备正常运行和及时维护的关键步骤。本文将介绍一些常见的方法和策略&#xff0c;帮助您正确设置工业设备的振动阈值。 1. ISO 10816 振动烈度表格&#xff1a; ISO 10816 是一项国际标准&#xff0c;提供了设备振动水平的参考值。该标准将设备按…

【SpringMVC源码三千问】@RequstMapping和RequestCondition

RequestMapping 是 SpringMVC 中最常用的定义请求映射关系的注解。 下面我们来分析一下它的源码。 RequestMapping 先看下 RequestMapping 的定义&#xff1a; Target({ElementType.TYPE, ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) Documented Mapping publ…

day4 - 使用图像绘制动态时钟

本期的主要内容是利用OpenCV中包含的绘图函数&#xff0c;例如绘制线段、绘制矩形、绘制圆形等来绘制一个动态时钟的表盘。 完成本期内容&#xff0c;你可以&#xff1a; 掌握OpenCV常见的绘图函数 学会使用绘图函数绘制简单的图像 若要运行案例代码&#xff0c;你需要有&a…

linux——搭建NTP服务器

1、设置服务器时区 &#xff08;使用外部NTP时间源可不设置&#xff09; 在Linux系统中设置时区可以使用以下命令&#xff1a; 查看当前时区&#xff1a; timedatectl列出所有可用时区&#xff1a; timedatectl list-timezones设置时区&#xff1a; sudo timedatectl set-…

一、尚医通手机登录

文章目录 一、登录需求1、登录效果2、登录需求 二、登录1&#xff0c;搭建service-user模块1.1 搭建service-user模块1.2 修改配置1.3 启动类1.4 配置网关 2、添加用户基础类2.1 添加model2.2 添加Mapper2.3 添加service接口及实现类2.4 添加controller 3、登录api接口3.1 添加…

OpenAI再出新作,AIGC时代,3D建模师的饭碗危险了!

大家好&#xff0c;我是千与千寻&#xff0c;也可以叫我千寻哥&#xff0c;说起来&#xff0c;自从ChatGPT发布之后&#xff0c;我就开始焦虑&#xff0c;担心自己程序员的饭碗会不会哪天就被AIGC取代了。 有人说我是过度焦虑了&#xff0c;但是我总觉有点危机感肯定没有坏处。…

分布式事务解决方案-Seata

分布式事务解决方案-Seata 1.分布式事务问题1.1.本地事务1.2.分布式事务1.3.演示分布式事务问题 2.理论基础2.1.CAP定理2.1.1.一致性2.1.2.可用性2.1.3.分区容错2.1.4.矛盾 2.2.BASE理论2.3.解决分布式事务的思路 3.初识Seata3.1.Seata的架构3.2.部署TC服务3.3.微服务集成Seata…

C++ string类 迭代器 范围for

string类 在C语言当中 &#xff0c;也有字符串&#xff0c;它是以 " \0 " 结尾 的 一些字符的集合&#xff0c;在C的标准库当中还有一些 用于操作 str 类型的库函数&#xff0c;但是&#xff0c;这些函数的功能不是很全面&#xff0c;而且这些操作函数和 str 类型是分…

B2B企业需要什么样的客户体验管理?销售易出手了

导读&#xff1a;如何将类似B2C领域的私域体验延展到B2B领域&#xff1f; “不愿在顾客上花时间带来的结果只有一个&#xff0c;那就是让客户转而寻找值得他们花时间的消费体验。”2012年问世的《体验经济》一书&#xff0c;一语道破客户体验的重要性。 过去&#xff0c;提到体…

PG安装使用walminer插件教程

一、下载源码 https://gitee.com/movead/XLogMiner/tree/walminer_3.0_stable/ 二、编译安装插件 克隆下载源码后&#xff0c;将walminer目录放进pg下的contrib目录中 cd /home/postgres/postgresql-15.3/contrib/将walminer源码目录放进此路径下&#xff0c;进入walminer目…