步骤三:运行Jmeter脚本,查看数据库
一开始,我的数据库是只有两张表的,这里方便演示,就只跑get、post请求了
如果成功了代表结果数据也存进InfluxDB里面了,接下来我们来看看使用 GraphiteBackendListenerClient 时会生成哪些表呢?
可以看到生成了三种前缀的表,分别是: jmeter.all 、 jmeter.get 、 jmeter.post ;最后其实还有 jmeter.test 开头的表,这个后面会单独拿出来说
============================================
=== 倘若不想了解每个指标的具体含义,可以跳过下面内容
=== 直接点击右侧目录,跳转至配置Grafana,查看下一步
============================================
步骤四:细品指标含义
为什么每个表都有jmeter前缀呢?
因为在Jmeter的Backend Listener配置了rootMetricsPrefix 值为 jmeter. ,你不喜欢前缀或者想起其他名,在Backend Listener里直接改 rootMetricsPrefix 的值就可以了
可以参考下官方文档的写法: <rootMetricsPrefix><samplerName>.ok.count ,rootMetricsPrefix和samplerName都是变量,可配置的
接下来,我们来说明下每个前缀的含义
jmeter.all :代表了所有请求;当summaryOnly=true时,就只有samplerName=all的表了
jmeter.get :代表了HTTP请求的名字是get,即samplerName=get
jmeter.post :代表了HTTP请求的名字是post,即samplerName=post
备注:假设你的某个HTTP请求叫【GET请求啊】,辣么你的数据库就会生成以jmeter.GET请求啊 为前缀的各种表
然后再针对不同指标说下它们的含义
划重点:这里的指标含义都是直接翻译Jmeter官方文档的
喜欢英文的小伙伴可以自行查看:http://jmeter.apache.org/usermanual/realtime-results.html
Thread/Virtual Users metrics - 线程/虚拟用户指标
跟线程组设置相关的
指标 | 全称 | 含义 |
<rootMetricsPrefix>test.minAT | Min active threads | 最小活跃线程数 |
<rootMetricsPrefix>test.maxAT | Max active threads | 最大活跃线程数 |
<rootMetricsPrefix>test.meanAT | Mean active threads | 平均活跃线程数 |
<rootMetricsPrefix>test.startedT | Started threads | 启动线程数 |
<rootMetricsPrefix>test.endedT | Finished threads | 结束线程数 |
Response times metrics - 响应时间指标
划重点:每个sampler都包含了所有响应时间指标,每个sampler的每个指标都会有单独的一个表存储结果数据
指标 | 含义 |
<rootMetricsPrefix><samplerName>.ok.count | sampler的成功响应数 |
<rootMetricsPrefix><samplerName>.h.count | 服务器每秒命中次数(每秒点击数,即TPS) |
<rootMetricsPrefix><samplerName>.ok.min | sampler响应成功的最短响应时间 |
<rootMetricsPrefix><samplerName>.ok.max | sampler响应成功的最长响应时间 |
<rootMetricsPrefix><samplerName>.ok.avg | sampler响应成功的平均响应时间 |
<rootMetricsPrefix><samplerName>.ok.pct<percentileValue> | sampler响应成功的所占百分比 |
<rootMetricsPrefix><samplerName>.ko.count | sampler的失败响应数 |
<rootMetricsPrefix><samplerName>.ko.min | sampler响应失败的最短响应时间 |
<rootMetricsPrefix><samplerName>.ko.max | sampler响应失败的最长响应时间 |
<rootMetricsPrefix><samplerName>.ko.avg | sampler响应失败的平均响应时间 |
<rootMetricsPrefix><samplerName>.ko.pct<percentileValue> | sampler响应失败的所占百分比 |
<rootMetricsPrefix><samplerName>.a.count | sampler响应数(ok.count+ko.count) |
<rootMetricsPrefix><samplerName>.sb.bytes | 已发送字节 |
<rootMetricsPrefix><samplerName>.rb.bytes | 已接收字节 |
<rootMetricsPrefix><samplerName>.a.min | sampler响应的最短响应时间 (ok.count和ko.count的最小值) |
<rootMetricsPrefix><samplerName>.a.max | sampler响应的最长响应时间 (ok.count和ko.count的最大值) |
<rootMetricsPrefix><samplerName>.a.avg | sampler响应的平均响应时间 (ok.count和ko.count的平均值) |
<rootMetricsPrefix><samplerName>.a.pct<percentileValue> | sampler响应的百分比 (根据成功和失败的总数来计算) |
不知道大家是否有个疑问,为何 a.min 、 a.max 、 a.avg 明明说的都是平均响应时间,但是括号里备注的又是和响应数相关的;但是Jmeter官方文档说明翻译过来的确是这样的..只能等我来寻找答案了!
经过我的“缜密”对比,可以发现官网说明的确是错的哈,真实情况如下!
a.min :是ok.min和ko.min的最小值
a.max :是ok.max和ko.max的最小值
a.avg :是ok.avg和ko.avg的平均值
接下来就是用数据说明事实!按照上面的指标顺序来看图哈!
配置Grafana
首先进入Grafana的首页,可以看到官方画了个流程:先创建数据源,再创建数据面板