当前位置: 首页 > article >正文

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

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.kler.cn/a/149738.html

相关文章:

  • Android Profiler 内存分析
  • Django Form
  • 11.11比赛总结
  • Vue2+3 —— Day3/4
  • Linux——简单认识vim、gcc以及make/Makefile
  • [CKS] Create/Read/Mount a Secret in K8S
  • Vue 双向数据绑定
  • ElasticSearch之cat indices API
  • 三十、elasticsearch集群
  • day66
  • C语言——J /字符函数和字符串函数
  • Python与设计模式--策略模式
  • Nginx(九) aio sendfile directio 组合使用测试(2)
  • 力扣:185. 部门工资前三高的所有员工(Python3)
  • JavaScript包装类型
  • mysql 中 varchar 和 text 的区别
  • STM32之模数转换器ADC
  • ubuntu22.04系统下载程序和依赖,并拷贝到指定路径下
  • Bypass open_basedir的方法
  • Linux 磁盘挂载
  • PHP调用API接口的方法及实现(一键采集淘宝商品详情数据)
  • 证明E(X+Y) =E(X) + E(Y)
  • Android 单元测试初体验(二)-断言
  • 【mybatis注解实现条件查询】
  • Nginx入门
  • 手写VUE后台管理系统5 - 整合状态管理组件pinia