2021-11-11如何使用Jmeter + Grafana + InfluxDB 做性能测试监控

阅读目录

1. 安装InfluxDB
2. 安装Grafana
3. 配置Jmeter

序章

    前几天在群里看到大神们在讨论Jmeter + InfluxDB + Grafana监控。说起来Jmeter原生的监控确实太丑了。当年不断安慰自己说“丑一点没关系,只要能用,好用,就行了!”。但是内心并不是这样,做为一名测试人员,都有一颗精益求精的心。看到有东西可以替代那原生的监控数据,果断亲自动手部署了一套。

https://img-blog.csdnimg.cn/img_convert/150738808f051e6509ab795d4cd06003.png
是吧,很帅吧!数据是用InfluxDB来存储的,展示则是用Grafana来展示的

    InfluxDB是一个年轻的时序数据库,是用同样很年轻的语言“GO”开发出来的。小数据量的时候还性能还不错,但是数据量大一点,性能问题就体现出来了。不过只是收集一下我几个小时测试的数据,还是足够了。要是几个月的测试数据那还是挑别的数据库吧。

    Grafana是纯粹用js编写出来的,专门用来展示数据用的。

    基本上,就是Jmeter通过“Backend Listener”,将测试的数据上传到我的虚拟机上,通过InfluxDB来存储,Grafana来展示出来。我们访问web,稍微配置一下,就可以看到展示的数据了。

我的InfluxDB和Grafana都是部署在一台Linux虚拟机下面的。

虚拟机 — IP 192.168.245.131

  1. 安装InfluxDB

新建InfluxDB下载源

cat << EOF | tee /etc/yum.repos.d/influxdb.repo

[influxdb]

name = InfluxDB Repository - RHEL $releasever

baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable

enabled = 1

gpgcheck = 1

gpgkey = https://repos.influxdata.com/influxdb.key

EOF

使用yum下载InfluxDB

yum install -y influxdb

修改InfluxDB的配置,主要配置jmeter存储的数据库与端口号,还有需要将UI端口开放

[root@localhost ~]# vi /etc/influxdb/influxdb.conf

找到graphite并且修改它的库与端口

[[graphite]]

enabled = true

database = “jmeter”

bind-address = “:2003”

protocol = “tcp”

consistency-level = “one”

找到admin,将前面的#号去掉,开放它的UI端口

[admin]

Determines whether the admin service is enabled.

enabled = true

The default bind address used by the admin service.

bind-address = “:8083”

Whether the admin service should use HTTPS.

https-enabled = false

The SSL certificate used when HTTPS is enabled.

https-certificate = "/etc/ssl/influxdb.pem

启动InfluxDB

[root@localhost ~]# /etc/init.d/influxdb restart

Stopping influxdb…

influxdb process was stopped [ OK ]

Starting influxdb…

influxdb process was started [ OK ]

打开浏览器,访问虚拟机IP“http://192.168.245.131:8083”

如果启动成功应该会InfluxDB的web ui界面。查看有没有jmeter库,没有就新建一个。

在输入框中,输入如下,来新建库:

CREATE DATABASE “jmeter”
8083

  1. 安装Grafana

使用yum下载Grafana并且安装

yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.1-1.x86_64.rpm

启动Grafana

[root@localhost ~]# /etc/init.d/grafana-server restart

OKopping Grafana Server … [ OK ]

Starting Grafana Server: … OK

打开浏览器,访问虚拟机IP“http://192.168.245.131:3000”
在这里插入图片描述

grafana

输入用户名,密码登录系统。用户名与密码都是"admin"
在这里插入图片描述

login

添加需要展示数据的数据库
在这里插入图片描述

addData

添加InfluxDB数据库配置。输入帐号密码“admin / admin”,点击Test & Save 提示“Success”说明成功了

【注意】URL的端口是8086,而刚才配置的8083是UI的端口。

- 8083端口是InfluxDB的UI界面展示的端口

- 8086端口是Grafana用来从数据库取数据的端口

- 2003端口则是刚刚设置的,Jmeter往数据库发数据的端口

在这里插入图片描述

dataSources

  1. 配置Jmeter

  2. jmeter中,添加“监听器 -> Backend Listener”
    在这里插入图片描述

jConfig

  1. 配置“Backend Listener”,主要配置Host,如下图
    在这里插入图片描述

BackendListener

  1. 添加一个Java请求,方便测试。(因为想偷懒,Java请求我什么都不用写,直接运行就能成功)
    在这里插入图片描述

sJava

  1. 添加“监听器 -> 查看结果树” 运行一下Jmeter,主要看Java请求是否发送出去了
    在这里插入图片描述

send

没有什么问题,这个时候访问InfluxDB“http://192.168.245.131:8083”, 在输入框中输入如下,点击回车:

# 可以使用这个,这个是查询所有表,显示1条记录

[点击并拖拽以移动]

# 可以使用这个,这个是查询所有表,显示1条记录

select * from /.*/ limit 1

也可以使用这个,这个是显示所有表

show measurements

点击回车后,就应该有数据了,会出现下图:
在这里插入图片描述

inf

这个时候再回来配置Grafana,来展示这些数据

添加一个展示项目

点击“Home -> New”
在这里插入图片描述

new

添加一个图表

点击旁边的绿点“Add Panel -> Graph”
在这里插入图片描述

addGraph

配置图表

配置好了,就能看到图了。如果看不到图,请用Jmeter多发几次Java请求。下图中选择监控的选项,可以在Jmeter的官网上查看到对应的解释。
在这里插入图片描述

graphConfig

大致介绍几种我常用的监控。
名称 描述
jmeter.all.h.count 所有请求的TPS
jmeter.<请求名称>.h.count 对应<请求名称>的TPS
jmeter.all.ok.pct99 99%的请求响应时间
jmeter.<请求名称>.ok.pct99 对应<请求名称>99%的请求响应时间
jmeter.all.test.startedT 线程数

【注意】如果要监控<请求名称>的话,Jmeter上的“Backend Listener”修改如下参数

  1. 将“summanyOnly”修改成False,

  2. 将“userRegexpForSamplersList”修改成True,

  3. 并且要设置“samplersList”的值,“samplersList”是可以支持正则表达式的,“samplersList”的设置要与请求对应,否则找不到该请求。如图
    在这里插入图片描述

image

设置好了,运行一下,在Grafana里面,就可以看到自己的请求了。
在这里插入图片描述

image_thumb

如果想要了解这些监控都代表什么意思,可以访问Jmeter的官网地址去查看阅读“Apache JMeter - User’s Manual: Live Statistics”
在这里插入图片描述

最后来一张帅气的图:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值