遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

3种方式:JMeter+Grafana+Influxdb搭建可视化性能测试监控平台

用jmeter的朋友越来越多了,毕竟开源、免费、轻量,而且功能、自动化、性能,都能做,

最近不少朋友问JMeter+Grafana+Influxdb可视化性能测试监控平台搭建的问题,虽然网上资料不少,但是有些是错的;

so,抽时间总结了常用的3种搭建方式,供大家参考;

方式一:运行自定义镜像

方式二:docker方式安装

方式三:rpm包方式安装

建议通过云服务器来练习:https://www.cnblogs.com/uncleyong/p/12694334.html

方式一:运行自定义镜像

镜像方式可以快速部署到不同的环境上搭建可视化性能测试监控平台,我们也可以自定义镜像,参考:https://www.cnblogs.com/uncleyong/p/8894133.html

我已经自定义好了镜像,大家直接pull下来,按如下方式操作即可;如果打镜像或者运行过程中有问题,欢迎加作者微信交流;

下面我简单介绍下pull下来如何使用。

 

拉取:docker pull registry.cn-hangzhou.aliyuncs.com/qzcsbj/qzcsbj-influxdb_grafana:v1.0

 

运行容器:docker run -tid --name qzcsbj-influxdb_grafana -p 4000:3000  -p 9086:8086 --privileged=true 9756039ba6b4 /sbin/init

 

 

已经创建了数据库jemter,如果你要重新创建,进入容器:docker exec -it qzcsbj-influxdb_grafana /bin/bash

influx
show databases;
create database jmeter;
show databases;
use xxx;
exit;

访问grafana:http://ip:4000,登录:admin/admin

 

 跳过

 

 

 

 

添加数据源

 

 

 

 

选择数据源为InfluxDB 

配置

 

配置数据写库的频率(保持默认)

 

 测试数据源是否ok

 

 成功

 

 可以修改数据源

 

 

下载模板

https://grafana.com/grafana/dashboards

搜索

 

 

或者直接访问:https://grafana.com/grafana/dashboards?dataSource=influxdb&direction=asc&orderBy=name&search=jmeter

 

 

导入json模板:

 

可以直接输入:5496,也可以导入下载的json文件

 

 

 

 

修改为下面配置,然后点击“Import”

说明:改为1后,jmeter配置文件也要同步修改,建议保持默认5即可

 

 

 

 

 

 

 修改模板

 

 

可以删除

 

 下面展示的不是我们设置的值,是定义描述(所以,虽然上面把send interval改为1了,但是下面依然展示的是5)

so,如果要修改,建议删除后,重新导入模板

 

jmeter压测效果展示

jmeter脚本

 

给大家提个问题:下图measurement的值是否可以改?

https://www.cnblogs.com/uncleyong/p/14426561.html

效果图:

 

 

示例配置2:

summaryOnly:线程组有多个请求,展示明细,值改为false 

 

 

 

 

 

transaction勾选HTTP请求1

 

 

 

因为上面transaction勾选的HTTP请求1

 

 

 

模板还很多配置,感兴趣的可以深入研究下。 

 

方式二:docker方式安装

和方式一类似,只是你需要自己拉取镜像

详见:https://www.cnblogs.com/uncleyong/p/16453691.html

 

方式三:rpm包方式安装(org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender)

influxdb下载、安装、配置、启动

InfluxDB是一个当下比较流行的时序数据库,InfluxDB使用 Go 语言编写,无需外部依赖,安装配置非常方便,适合构建大型分布式系统的监控系统。

下载:wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.1.x86_64.rpm 

安装:yum localinstall influxdb-1.7.1.x86_64.rpm,grafana 的rpm包在本地,只需要解决依赖,就使用 yum localinstall

 

启动:systemctl start influxdb

查看状态:systemctl status influxdb.service

 

查看服务,默认启动了2个端口,分别是:8088,8086 

netstat -lntp |grep `ps -ef |grep influxdb |grep -v grep |awk '{print $2}'`

 

 

其中,我们要用到的8086是Grafana从数据库获取数据的端口、也是jmeter写数据的端口

下面也可以配置数据库认证(配置文件中搜索8086)

 

 

命令行方式进入数据库

 

创建数据库jmeter

 

再创建一个jmeter2

 

查看创建的数据库

 

创建jmeter脚本

 

 

 

  

influxdbUrl :http://ip:8086/write?db=jmeter,ip写安装influxdb服务的ip地址+端口,db指定常见的数据库jmeter

application名称自定义,后面grafana中会展示

jmeter中添加请求运行, 执行的数据就会记录到influxDB

 

下面脚本运行一次

 

 

 

 

有数据就说明jmeter入库成功。 

 

Grafana下载、安装、配置

下载:官网https://grafana.com/,或者用命令下载:wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.3-1.x86_64.rpm

(最好安装新版本grafana-6.7.3.linux-amd64.tar.gz)

安装:yum localinstall grafana-4.6.3-1.x86_64.rpm,grafana 的rpm包在本地,只需要解决依赖,就使用 yum localinstall

配置:vim /etc/grafana/grafana.ini

端口默认是3000

 

启动:systemctl start grafana-server,或者systemctl start grafana-server.service

查看状态:systemctl status grafana-server,或者systemctl status grafana-server.service

 

浏览器访问Grafana首页:ip:3000,账号/密码默认是admin/admin

 

创建用户

 

 

输入用户名、邮箱、登录名、登录密码

 

 

如果这个账号登录,test/test,下面展示用户名

 

再创建一个用户:qzcsbj2

账号密码:test2/test2

 

 

配置数据源 

 

 

 

创建用户qzcsbj的数据源,名称就用用户名,对应的数据库是jmeter

 

 

创建用户qzcsbj2的数据源,名称就用用户名,对应的数据库是jmeter2

 

 

为qzcsbj用户添加模板

导入模板

 

下载模板:https://grafana.com/grafana/dashboards?dataSource=influxdb

https://grafana.com/grafana/dashboards?dataSource=influxdb&search=jmeter

 

复制id5496

 

 

填写模板id:5496,然后点击“Load”

 

 

选择数据源

 

可以看到我们创建的两个数据源

 

选择第一个数据源,另外,下面间隔时间可以改为1s(如果改了,jmeter配置文件中也要同步改),建议保持5默认 

 

效果

 

 

 

也可以导入另外个的模板:4026

 

建议保持5默认 

 

 

为qzcsbj2用户添加模板

jmeter2为数据库

建议保持5默认 

 

 

用户qzcsbj的脚本,5u5min

 

 

 

用户qzcsbj2的脚本,3u5min

 

下面jmeter2不是数据,是添加模板的measurement名称,需要匹配

 

先把数据库jmeter和jmeter2的数据清了(delete from jmeter;   delete from jmeter2;),然后上面两份脚本分别发一笔请求 

下面jmeter是measurement名称(表)

 

下面jmeter2是measurement名称

 

第一份脚本场景是:5u5min

第一份脚本场景是:3u5min

运行完成后,

用户qzcsbj看到的

 

聚合报告845笔,加上最刚刚发的1笔,总共就是846

 

 

用户qzcsbj2看到的

 

聚合报告509笔,加上最刚刚发的1笔,总共就是510

 

方式三:rpm包方式安装(org.apache.jmeter.visualizers.backend.graphite.TextGraphiteMetricsSender)

如果配置文件保持默认,默认只启动了8086和8088

netstat -lntp |grep `ps -ef |grep influxdb |grep -v grep |awk '{print $2}'`

 

 

配置:vim /etc/influxdb/influxdb.conf,搜索:graphite

/graphite

改为:

2003是jmeter往数据库发数据的端口

 

 

 

 

点击【Graph】

 

点击【Edit】

 

修改名称

 

选择数据库

 

 

 

 

 

 

总结

其实,很多测试朋友喜欢这个监控,是因为炫酷,可以在领导面前装逼,出个很炫的报告,

我觉得真正性能监控分析,用这个是远远不够的(个人观点,只能做一个全局的监控,看到的都是表象,其实,我用命令也都能看到这些指标,最终都是需要定向监控分析,找出问题),

当然,如果你出去面试,可以把这个拿出去吹一下,毕竟工作不好找。

 

思考题:下图measurement的值是不是必须为jmeter?是否可以修改?

 

【bak】jmeter后端监听器的坑:measurement的值是不是必须为jmeter?https://www.cnblogs.com/uncleyong/p/14426561.html

 

 

【性能项目实战:jmeter+k8s+微服务+skywalking+efk】汇总

详见:https://www.cnblogs.com/uncleyong/p/15475614.html

 

posted @ 2019-07-06 21:01  全栈测试笔记  阅读(14394)  评论(1编辑  收藏  举报
浏览器标题切换
浏览器标题切换end