干货 | Jmeter+Grafana+Influxdb性能测试监控

背景 我们很多时候使用JMeter做性能测试,很难及时察看压测过程中应用的性能状况,总是需要等到测试

背景

我们很多时候使用JMeter做性能测试,很难及时察看压测过程中应用的性能状况,总是需要等到测试完成后去看Report。

另一方面,如果需要把结果分享给其他人员,我们需要一个简单漂亮的图形,比如HTMLDashboard但需要等待整个测试完成。

今天我们来讲讲该如何使用JMeter+InfluxDB+Grafana打造压测可视化实时监控。

解决方案

JMeter引入Backend Listener,用于在压测过程中实时发送统计指标数据给时序数据库Influxdb。

通过配置Grafana(开源的WEB可视化看板)数据源连接到Influxdb,我们就可以创建炫酷的可视化看板,并可以实时获取到测试指标数据。

JMeter&InfluxDB集成

InfluxDB配置

安装并启动,搭建方式网上很多,这里不做阐述。

安装完成后登录进去创建数据库:


JMeter配置

Jmeter脚本编写好后,添加BackendListener,参考下图配置好:

参数说明:

  • influxdbUrl:目标influxdb类型数据库的连接方式,这里为jmeter_demo数据库。端口为8086

    application:建议按照测试业务命名

    measurement:数据写入哪个数据表,建议按照业务线命名

    samplersRegex:.*表示捕获所有的HTTP请求。如果需要过滤,请使用正则表达式

    验证结果

    执行业务脚本,查看jmeter_demo数据库中表:积分系统

    OK,我们已经可以将统计指标数据成功发送到jmeter_demo数据库。

    Grafana&InfluxDB集成

    Grafana是一个开源软件,拥有丰富的指标仪表盘和图形编辑器,适用Graphite,Elasticsearch, OpenTSDB, Prometheus,InfluxDB。

    简单点说就是一套开源WEB可视化平台。安装启动自行百度,这里不重复介绍。

    使用浏览器打开 http://IP:3000/login,访问Grafana主页:

    创建InfluxDB数据源,连接上jmeter_demo数据库:


    Dashboard设计

    如果让大家去设计一个好看的Dashboard,估计大家都不太想从零开始自己设计。

    其实Grafana官网提供丰富的模版的库,大家可以自己上去找,然后进行二次扩展。

    官网模版库:https://grafana.com/dashboards

    此处我参考网上模板并进行了二次开发,其中包含了两部分:

    第一部分:Templating定义3个变量,$request为表名称,这里指的是业务线,$Application为表中的按照标签分类的数据,这里指的是当次测试业务(业务+时间戳保证唯一性)

    第二部分:添加Graph

    配置sql,包含实时并发数,总请求数,成功请求数,失败请求数,响应时间,QPS。

    配置并发数Graph,核心Metrics为:

    整体效果图如下,至此我的监控页面完成:

    经过我的简单介绍,大家是否对用JMeter+InfluxDB+Grafana打造压测可视化实时监控有了更清楚的了解呢?快实践看看吧~

打开APP阅读更多精彩内容