一、性能监控平台优势
我们日常用的比较多的jmeter、ant和jenkins的集成,虽然更容易上手,但是我们只能看到最终的报告结果,很难监控到测试过程中的实时数据,数据量大了更是很难梳理有效数据。
可以参考文章:测试allen说:Jmeter+ant+jenkins持续集成
企业流行的一个监控方案是:jmeter+influxdb+grafana。
jmeter工具:Apache JMeter是Apache组织开发的基于Java的压力测试工具,可以模拟大量线程(虚拟用户)针对被测系统进行大并发的压测。在本监控平台中起到生成数据源的作用(采集数据)。
InfluxDB工具:InfluxDB Go 语言开发的一个开源分布式时序数据库,非常适合存储指标、事件、分析等,它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。在本监控平台起到数据存储的作用。
grafana工具:纯 Javascript 开发的前端工具,可用于访问 InfluxDB数据库,自定义SQL形成各种报表、图表等。在本监控平台中起到数据图表展示的作用。
二、性能监控平台软件安装
我们InfluxDB数据库和grafana监控平台搭建在Centos7系统中,作者使用虚拟机部署了一遍,在公司里建议还是部署在阿里云服务器上。
jmeter我们部署在win11系统上。
centos7最简版虚拟机安装:测试allen说:最小化Centos7虚拟机环境搭建
1、jmeter安装
jmeter是一个免安装的软件,直接下载、解压缩、配置一下环境变量接口,我们部署jmeter在win11系统上。
jmeter5以上版本需要jdk版本8+。
1)下载jmeter
下载链接:https://mirrors.tuna.tsinghua.edu.cn/apache/jmeter/binaries/
2)安装jmeter
下载后解压缩到:d:/apache-jmeter-5.0
3)配置jmeter
把d:/apache-jmeter-5.0/bin配置在环境变量path中。
JAVA_HOME : 中间变量明,值配置家目录(根目录)
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
4)验证安装情况
ctrl+r–>cmd–>jmeter,回车弹出jmeter的GUI界面:
到此,jmeter软件就算部署完成了。
2、influxDB安装
在centos7系统中,依次执行如下的命令:
- 下载InfluxDB安装包
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.6.3.x86_64.rpm
2)安装InfluxDB
sudo yum localinstall influxdb-1.6.3.x86_64.rpm
3)修改InfluxDB的配置
vim /etc/influxdb/influxdb.conf
键盘输入i,进行编辑,需要修改两处(按照图中数据设置即可):
输入:wq,保存退出。
4)启动、查看InfluxDB数据库状态
启动命令: systemctl start influxdb.service
查看状态命令: systemctl status influxdb.service
5 ) 创建名为jmeter的数据库
常见的influxdb数据库的操作命令:
influx
show databases;
create database jmeter;
drop database jmeter;
use jmeter;
select * from jmeter;
注意上述配置中出现的三个端口的作用:
8086端口:Grafana用来从数据库取数据的端口
2003端口:刚刚设置的,Jmeter往数据库发数据的端口
至此,InfluxDB数据库就安装并配置成功了!!
3、grafana安装
1)下载grafana安装包
下载时间可能稍微有点长,这个要看你的带宽了。
wget https://dl.grafana.com/oss/release/grafana-6.5.2-1.x86_64.rpm sudo
2)安装grafana
yum localinstall grafana-6.5.2-1.x86_64.rpm
3)启动grafana服务
启动命令: systemctl start grafana-server.service
查看状态命令: systemctl status grafana-server.service
4)访问grafana页面
chrome浏览器访问地址:http://xxx.xx.xx.xx:3000,ip为虚拟机的ip地址或者阿里云服务器的公网地址(端口需要在安全组内开通),用户名和密码默认都是admin,点击Login即可,登录后记得改密码,到此,grafana安装就完成了。
三、监控jmeter压测数据
下面我们就完整部署一次jmeter的压测,采集数据后存储在influsDB数据库,使用granfana看板展示压测数据的报表。
1、创建influxDB数据源
登录grafana,在首页直接点击:Create your first data source(上图第二步),也可以按照下图操作。
然后,选择InfluxDB作为我们的数据源:
配置参数如下:
记住配置的参数,点击保存退出即可,到此数据源配置完成。
2、下载官网的看板模板
grafana官方提供了看板模板库,非常精致,我们可以直接下载使用(第三步)。
官方模板库: https://grafana.com/dashboards
点击进入,下载模板对应的json文件到本地或者直接复制该模板的id。
3、grafana导入模板
回到我们自己部署的grafana网站,导入上文下载的模板。
进入模板加载页面:
按照下图设置参数:
点击import,进入看板界面,看板已经准备好了,下面就可以在jmeter中运行压测,生成数据,并采集数据到influxDB数据库,该看板就可以从数据库读数据进行展示了。
4、jmeter准备压测脚本
调试一组压测脚本,并设置脚本运行时间持续600s。
为该线程组添加监听器–>后端监听器。
设置后端监听器:InfluxDBBackendListenerClient
首先来看看每个配置项的含义
influxdbUrl:安装influxdb的路径;格式为:http://主机地址:8086/write?db=数据库名,这个数据库名字在数据源配置设置的jmeter
application:应用名称;在 events 表中对应的字段是 application
measurement:表名;数据存储到哪个表,默认是jmeter,不用改即可
summaryOnly:false,当你线程组有多个请求又想知道每个请求的结果数据时,最好填false
samplersRegex:.*
percentiles:90;95;99,支持的百分比事务响应时间指标
testTitle:测试名称;在 events 表中对应的字段是 text
eventTags:Grafana允许为每个注释显示标签
5、运行jmeter压测
在grafana首页中点击首页看板链接:
查看看板中监控到的jmeter压测数据,是不是显示效果非常好啊。
到此,我们jmeter+influxdb+grafana性能测试监控平台就算搭建好了,可以愉快地实时查看性能测试数据啦。
转载:https://zhuanlan.zhihu.com/p/672732926
感谢大佬无私分享