jmeter修改压力机最大连接数_4.centos下Jmeter+InfluxDB+Grafana环境的搭建1

本文介绍了如何搭建JMeter、InfluxDB和Grafana环境,以及在JMeter中配置InfluxdbBackendListener和GraphiteBackendListener进行压力测试数据收集。详细讲解了数据库创建、监听器配置和参数说明,并展示了Grafana的效果图。文章还提及了使用Influxdb和Graphite协议的区别,以及后续将分享的压测监控环境优化和填坑经验。
摘要由CSDN通过智能技术生成

如果这些内容对你有帮助,也可以打开微信扫一扫,加关注:

0a9db1da8fd15c48dac7a7ffc7136d34.png

一、前言

    本文中influxdb和Grafana下载、安装、配置及使用见另外3篇文章:

1.Influxdb使用1

2.Influxdb使用2

3.Grafana使用

【开篇说明】:本文使用工具环境约定:influxdb-1.6.2、GrafanaV4.2.0、jmeterV5.1

    Grafana效果展示图:

af3aefe586ad798dac0296a9d90d2fed.png

    对应的jmeter聚合报告数据:

cf50257cec24a1139d99206692f3e6f7.png

二、influxdb中jmeter数据库创建

    环境部署运行正常后,这里需要配置和jmeter关联的数据库、表、及管理用户。见如下全部命令:

[root@georgeComputer ~]# influx      #另外开1个linux端连接数据库Connected to http://localhost:8086 version 1.6.2InfluxDB shell version: 1.6.2> show databases         #查询库名name: databasesname----_internal> CREATE DATABASE "jmeterTest"     #创建jmeter传送数据的库> use jmeterTestUsing database jmeterTest> CREATE USER "admin" WITH PASSWORD '123456' WITH ALL PRIVILEGES        #创建数据库账号和密码

三、Jmeter中后台监听器的配置

    这里有两种方式:influxdbGraphite,两种都可以用,注意influxdb的配置文件进行对应协议的修改即可。

    1.添加【InfluxdbBackendListener】后台监听器

9802f664f029a93150fda3724ed7670e.png

    Jmeter->测试计划-监听器(Listener)-后端监听器(Backend Listener),在Backend Listener implementation中选择->org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBack...

【参数说明】:

    influxdbMetricsSender:org.apache.jmeter...influxdb...

    influxdbUrl:http://192.168.2.253:8086/write?db=jmeterTest  #数据库连接配置修改ip/端口/数据库名(influxdb中创建的jmeter数据库名)即可

    application:Jmeter压测Demo    #可以看成是场景名,可用来分类筛选

    measurement:jmeter     #数据库表名

    summaryOnly:true     #true:统计总请求;false:统计子请求,要配合samplersRegex使用

    samplersRegex:.*     #请求名匹配正则规则

    percentiles:90;95;99

    testTitle:getDemoNoParam接口测试

    eventTags:测试demo

    ##用了Influxdb的http协议后,measurements会多出如下这么多对应数据表:jmeterTest、events

d7be992445ce23222a413db4e7a96b05.png

> select * from jmeter limit 2name: jmetertime                application  avg               count countError endedT hit  max maxAT meanAT min minAT pct90.0 pct95.0 pct99.0            rb     sb startedT statut transaction----                -----------  ---               ----- ---------- ------ ---  --- ----- ------ --- ----- ------- ------- -------            --     -- -------- ------ -----------1595929357925000000 jmeter072801                                    0               0     0          0                                                  0               internal1595929362786000000 jmeter072801 5.929999999999997 5208  0                 5208 34               0         12      32      33.989999999999995 473928 0           all    all

    time:时间戳

    application:应用名、场景名,即jmeter配置中的application

    avg:平均响应时间

    count:请求数,也就是TPS的T

    countError:错误请求数

    endedT:Finished threads-结束线程数

    hit:每秒点击数

    max:成功采样最大响应时间

    maxAT:Max active threads-最大活跃线程数

    minAT:Min active threads-最小活跃线程数

    meanAT:Mean active threads-活跃线程数

    min:成功采样最小响应时间

    pct90:采样器90%响应百分比

    pct95:采样器95%响应百分比

    pct99:采样器99%响应百分比

    rb:接收包,单位bit 转换到jmeter中接收KB/sec,需要运算下,如487942/8/1024=59KB/s

    sb:发送包,单位bit 转换到jmeter中发送KB/sec

    startedT:Started threads-启动线程数

    statut:值为ok 、ko、all,用于设置了summaryOnly=false和samplersRegex,开启了子请求数据抓取的场景,如果不抓取子请求信息,则这里无ok和ko的值

    transaction:事务名,只要设置发送子请求方式,设置summaryOnly=false和samplersRegex的这里才有值,否则都是all

    示例1:  samplersRegex设置为:getDemoNoParam-p.*

> select time,application,count,countError,hit,responseCode,startedT,statut,transaction from jmeter where "transaction"!= 'internal' and "transaction" != 'all' and "statut" != 'all' order by time descname: jmetertime                application count countError hit responseCode     startedT statut transaction----                ----------- ----- ---------- --- ------------     -------- ------ -----------1596166285577000000 jmeter07312 130                                            ok     getDemoNoParam-pass1596166285355000000 jmeter07312 2710                                           ok     getDemoNoParam-pass

    示例2:  samplersRegex设置为:.*

> select * from jmeter order by time desc limit 10name: jmetertime                application avg               count countError endedT hit  max maxAT meanAT min minAT pct90.0            pct95.0           pct99.0            rb     responseCode     responseMessage                                      sb startedT statut transaction----                ----------- ---               ----- ---------- ------ ---  --- ----- ------ --- ----- -------            -------           -------            --     ------------     ---------------                                      -- -------- ------ -----------1596165795354000000 jmeter07312                                    0               7     7          7                                                                                                                                             7               internal1596165795354000000 jmeter07312 6.460000000000001 2666                         26               1         16.900000000000006 24                25.989999999999995                                                                                          ok     getDemoNoParam-pass1596165795354000000 jmeter07312 6.460000000000001 2666                         26               1         16.900000000000006 24                25.989999999999995 242606                                                                       0           all    getDemoNoParam-pass1596165795354000000 jmeter07312 5.630000000000001 2663                         26               1         14.900000000000006 23.94999999999999 26                 242333                                                                       0           all    getDemoNoParam-faile1596165795354000000 jmeter07312 5.630000000000001 2663                         26               1         14.900000000000006 23.94999999999999 26                                                                                                          ko     getDemoNoParam-faile1596165795354000000 jmeter07312 6.460000000000001 5329  2663              5329 26               1         14                 23.94999999999999 25.97999999999999  484939                                                                       0           all    all1596165790355000000 jmeter07312                   2721                                                                                                                   Assertion failed Test failed: text expected to contain /无参getDemo222/                    getDemoNoParam-faile1596165790355000000 jmeter07312                                    0               7     7          7                                                                                                                                             7               internal

    2.添加【GraphiteBackendListener】后台监听器

    Jmeter->测试计划-监听器(Listener)->后端监听器(Backend Listener)->在Backend Listener implementation中选择->org.apache.jmeter.visualizers.backend.graphite.Graphite.....

    注意:使用此协议需要在influxdb的配置文件中开启graphite协议;和1中influxdb协议不同的是这里的数据库名是在配置文件中设置的

ea8df1984569e743675cee793e934c10.png

    配置项说明:

    graphiteHost:influxdb中开启了graphite协议的机器IP

    graphitePort:2003是influxdb配置文件中graphite板块里的bind-address

    rootMeticsPrefix:设置指标前缀,查看时更方便区分,比如jmeter.all.a.avg

    summaryOnly:true/false 是否统计总量,如果是false就需要设置samplersList

    samplersList:测试Sampler名称,支持正则表达式,全部的话使用 .*

    useRegexpForSamplerList:true/false Sampler名称是否支持正则

    percentiles:90;95;99

    #influxdb的配置文件中的graphite板块如下:

[[graphite]]  # Determines whether the graphite endpoint is enabled.是否启用  enabled = true  #数据库名配置  database = "jmeterTestGra"  retention-policy = ""  #数据库连接ip和端口配置  bind-address = ":2003"  #协议配置  protocol = "tcp"  consistency-level = "one"

    ##用了Graphite协议后,measurements会多出如下这么多对应数据表:

b7e318f54cbaf9eb782ac4e263e53e1e.png

    详细参数如下:

#####响应相关指标##############jmeter.all.a.avg:ok.count和ko.count的平均值jmeter.all.a.count:ok.count+ko.countjmeter.all.a.max:ok.count和ko.count的最大响应时间jmeter.all.a.min:ok.count和ko.count的最小响应时间jmeter.all.a.pct90:采样器90%响应百分比,成功加失败总数的百分比jmeter.all.a.pct95:采样器95%响应百分比,成功加失败总数的百分比jmeter.all.a.pct99:采样器99%响应百分比,成功加失败总数的百分比jmeter.all.h.count:每秒点击数jmeter.all.ko.count:失败响应数jmeter.all.ok.avg:成功采样平均响应时间jmeter.all.ok.count:成功响应数jmeter.all.ok.max:成功采样最大响应时间jmeter.all.ok.min:成功采样最小响应时间jmeter.all.ok.pct90:成功采样90%响应时间jmeter.all.ok.pct95:成功采样95%响应时间jmeter.all.ok.pct99:成功采样99%响应时间jmeter.all.rb.bytes:接收的字节数jmeter.all.sb.bytes:发送的字节数######线程数及用户相关指标#########jmeter.test.endedT:Finished threads-结束线程数jmeter.test.maxAT:Max active threads-最大活跃线程数jmeter.test.meanAT:Mean active threads-活跃线程数jmeter.test.minAT:Min active threads-最小活跃线程数jmeter.test.startedT:Started threads-启动线程数

    这些参数详细说明可参考jmeter官网:

    https://jmeter.apache.org/usermanual/realtime-results.html

77d187f309d2d5cbca9f1da93d037509.gif

写在最后

    经过上面几篇文章的总结,jmeter压测监控环境总算是倒腾出来了,但是中间也遇到了各种坑,一次次的掉进去又爬出来,收获了不少经验,下一篇将会总结下各种填坑经验以及优化后Grafana中的模版、Sql。希望能帮助有需要的朋友。

#####欢迎加好友交流切磋####

QQ:464314378

微信群请先加群主微信,群主会拉各位小伙伴进群,注意添加备注。

e056bf0ec5e325ff1f17c412cf4ee767.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值