前言
入职一家医疗器材公司,研发团队组建不久,缺乏性能测试搭建平台,性能测试工具jmeter自带的聚合报告在Windows系统下展示效果不是很好,在linux环境下又无法实时可视化。
如果有一个性能测试平台可以将结果实时展示,可以提高我们对系统性能表现的掌握程度,另一方面也提高了我们的测试效率。市面上阿里的PTS性能测试平台体验还不错,但是要收费。
前段时间发现InfluxDB+Telegraf+Grafana+Jmeter的框架集成,就很好的解决了这些问题。
本文就记录下如何集成这些开源工具,搭建属于自己的性能测试监控平台。
一、安装环境
| 组件名称 | 版本说明 |
| 服务器 | Centos7.8 64位 |
| jmeter | 5.1.1 |
| JDK | 1.8 |
| InfluxDB | 1.15.2 |
| Grafana | 7.3.2 |
二、JDK和jmeter安装
1.登录linux服务器,查看可用的jdk版本
输入命令: yum -y list java*
执行成功后,界面显示如下:
2.安装jdk
输入命令:yum install -y java-1.8.0-openjdk-devel.x86_64
执行后安装成功后,界面显示如下:
3.验证安装结果
输入命令:java -version,界面显示如下:
此时显示了jdk的版本信息,代表安装成功了
4.安装jmeter
下载压缩包,然后将安装包上传至linux服务器,我采用的是直接将zip文件拖至linux服务器上
首先安装输入命令: yum install -y lrzsz ,安装linux下的上传和下载功能包,安装成功界面如下:
输入命令:cd /usr 进入usr目录下
输入命令: mkdir jmeter 新建一个名叫jmeter的文件夹
输入命令:cd /usr/jmeter 进入新建的目录下
将windows本地下载好的jmeter压缩包拖拽至linux的/usr/jmeter目录下,界面显示如下:
输入命令:yum install -y unzip zip 安装解压工具
输入命令: unzip apache-jmeter-5.1.1.zip ,进行解压
5.配置环境变量
输入命令 vim /etc/profile ,按 i 进入编辑模式,在最下面添加如下内容:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0 export CLASSPATH=.:JAVA_HOME/lib/dt.jar:$JAVA_HOME.lib/tools.jar:$JRE_HOME.lib export PATH=$JAVA_HOME/bin:$PATH export JMETER_HOME=/usr/jmeter/apache-jmeter-5.1.1 export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH export PATH=$JMETER_HOME/bin:$PATH
按esc按钮退出编辑模式,输入命令:wq 保存并退出
最后,输入命令 source /etc/profile ,使修改的配置生效
输入命令:jmeter -v,界面显示如下:
此时jdk和jmeter的安装就大功告成啦!
三、InfluxDB安装
1.InfluxDB介绍
InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。它可以存储我们jmeter实时的压测数据,然后用Grafana仪表盘看板来展示实时的压测数据。
2.下载安装
官网下载地址:InfluxDB
在linux服务器上,输入命令 wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.3.x86_64.rpm ,下载安装包
下载完成后,输入命令 sudo yum localinstall influxdb-1.8.3.x86_64.rpm ,解压安装包,界面显示如下:
3.修改配置
输入命令:vim /etc/influxdb/influxdb.conf
修改InfluxDB的配置,主要配置jmeter存储的数据库与端口号,还有需要将UI端口开放
# 找到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
4.启动服务
输入命令:/etc/init.d/influxdb restart
5.检查是否安装成功
输入命令:influxd,此时界面显示:
6.创建jmeter数据库
输入命令:influxd,打开数据库,输入命令:create database jmeter创建名称为jmeter的库,输入命令:show databases显示所有的库,包含jmeter就代表创建成功
四、Grafana安装
1.输入命令:wget https://dl.grafana.com/oss/release/grafana-7.3.2-1.x86_64.rpm,下载
2.输入命令:sudo yum install grafana-7.3.2-1.x86_64.rpm,安装
3.启动
下载安装完成后,输入命令 service grafana-server start 启动服务,打开浏览器,输入IP+端口,3000为Grafana的默认侦听端口。
系统默认用户名和密码为admin/admin,第一次登陆系统会要求修改密码,修改密码后登陆,界面显示如下:
添加数据源
首先是添加数据源,点击左上角的grafana图标,示例如下:
PS:选择influxdb作为数据源,需要在influxdb中创建该用户以及对应的数据库!
创建DashBoard
创建好数据源之后,就需要创建DashBoard(仪表盘),可以自定义,也可以导入你需要的仪表盘,官方提供了很多的可选仪表盘。
BashBoard地址:BashBoard
这里我选择jmeter相关的仪表盘,选择导入,示例如下:
①、搜索jmeter仪表盘
②、选择对应的仪表盘ID
③、复制ID,填入导入界面
PS:导入时候需要选择用户组以及对应的数据库!
④、展示仪表盘
PS:右上角可以选择数据展示的时间段和刷新频次!
五、实际使用