一、性能测试指标:
二、性能监控平台介绍
平台依赖jmeter、influxdb、grafana三个工具,简单介绍三个工具各自的作用:
jmeter: 性能测试工具,负责采集数据
influxdb: Go 语言开发的一个开源分布式时序数据库,非常适合存储指标、事件、分析等数据,主要用于数据存储
grafana: 纯 Javascript 开发的前端工具,用于访问 InfluxDB,自定义报表、显示图表等
jmeter执行接口或性能测试,数据会存储在influxdb数据库中,grafana从数据库中拿到数据在界面进行动态可视化展示
三、性能监控操作步骤:
1、在本地编写jmeter脚本,脚本中右键选择监听器-->后端监听器,选择对应的监听器实现方式,监听方式默认为GraphiteBackendListenerClient
监听方式是可以修改的,不同的监听方式生成的数据格式不一致,在grafana上展示的形式也不一样,不同的监听方式对应不同的图形模板,此处以JmeterInfluxDBBackendListenerClient监听方式为例:
上图红线处JmeterInfluxDB的两种实现方式默认是没有的,需要安装jmeter插件后才会显示,插件下载地址:https://github.com/NovaTecConsulting/JMeter-InfluxDB-Writer/releases
插件下载后,放到jmeter安装目录下的/lib/ext目录下,重启jmeter后即可生效
上图中的配置项含义如下: 默认按照我上图配置的即可,influxdb在10.240.3.253上已经安装配置好,端口就是8086,数据库及账号密码也与上图保持一致
testName
:测试名称;在 testStartEnd 表中对应的字段是 testNamenodeName
:节点名称;在 testStartEnd 表中对应的字段是 nodeNameinfluxDBHost
:InfluxDB安装的服务器ipinfluxDBPort
:端口;influxDB端口,默认是8086,不用改即可influxDBUser
:数据库用户名influxDBPassword
:数据库密码influxDBDatabase
:数据库名称,我们之前配置的数据库是jmeter,所以填入即可retentionPolicy
:默认即可samplersList
:取样器列表;想收集哪些请求就填哪些,最好用正则去匹配useRegexForSamplerList
:是否使用正则;如果true则使用,samplersList里可以匹配正则表达
2、运行脚本,可以通过客户端查看数据,也可以进入influxdb容器,进入数据库界面查看数据,此步骤仅作为数据查看的一种方式,不是必须执行的
客户端下载地址:https://github.com/CymaticLabs/InfluxDBStudio/releases/tag/v0.2.0-beta.1
下载后打开按照如下步骤执行并配置数据库信息即可,数据库是jmeter,账号密码是admin/admin
执行完jmeter脚本,此处即会保存数据信息
3、登录grafana平台,网址: http://10.240.3.253:3001/ 账号:admin/admin
平台中已经配置了两个模板,分别对应的两种监听实现方式,如果监听方式选择了JmeterInfluxDBBackendListenerClient,则选择JMeter Load Test,即可打开监听界面
监听界面中选择展示数据的时间范围、自动刷新的时间后,即可动态展示jmeter性能数据
四、性能监控平台搭建
性能监控平台依赖InfluxDB+Grafana+Jmeter,主要根据docker进行安装,服务器为10.240.3.253
<一>、influxdb安装
1、拉取镜像
docker pull influxdb:1.8
2、运行容器
docker run -itd -p 8086:8086 -p 2003:2003 -p 8083:8083 --name my_influxdb influxdb:1.8
- 8083端口:InfluxDB的UI界面展示的端口
- 8086端口:Grafana用来从数据库取数据的端口
- 2003端口:Jmeter往数据库发数据的端口
3、修改influxdb配置
进入influxdb容器内部,进入到目录/usr/bin,生成配置文件
influxd config > /etc/influxdb/influxdb.conf,然后修改配置文件
由于influxdb镜像默认没有打包vim命令,因此可以先退出容器,使用docker cp命令将配置文件拷贝到宿主机,待修改完成后再拷贝进容器
docker cp -a a92f5e19c639:/etc/influxdb/influxdb.conf /home/influxdb.conf
修改配置文件,此处配置的jmeter这个数据库是没有的,后边需要手动创建
docker cp -a /home/influxdb.conf a92f5e19c639:/etc/influxdb/influxdb.conf 将配置文件再次拷贝到容器内
配置修改后重启容器 docker restart my_influxdb
4、进入容器/usr/bin目录,执行./influx启动客户端,然后输入sql语句操作即可
5、创建数据库
create database "jmeter"
创建人员
create user "用户名" with password '密码' with all privileges
6、执行exit退出,启动服务端
在/usr/bin目录下执行./influxd
7、查询数据
可以通过客户端查询,也可以通过命令行查询
命令行查询时,进入influxdb容器,启动influx,使用平时的sql语句查询即可
<二>、jmeter配置
参考上面---->三、性能监控操作步骤
<三>、Grafana安装
1、拉取镜像
docker pull grafana/grafana
2、启动服务
docker run -d -p 3000:3000 --name my_grafana grafana/grafana
3、访问服务
http://服务器ip:3000/login ,初始登录账号为 admin/admin
4、Grafana配置
可以自定义模板格式,也可以选择已有的模板进行数据的展示,自定义不做介绍,主要讲解如何使用已有的模板,因为当前模板已经比较全面了
模板下载地址:Dashboards | Grafana Labs
此处不同的模板对应不同的数据上报方式
5、点击 +,选择import
有两种方式上传模板,一种直接上传模板id,模板id为第四步选择模板后url末尾携带的id号,另一种是下载模板然后上传
6、然后就可以执行jmeter脚本并在模板界面展示性能数据了