跳到主要内容

实时结果

从 JMeter 2.13 开始,你可以通过提供一个实现 AbstractBackendListenerClient 的类,使用可能使用任何后端(JDBC、JMS、Webservice……)的 Backend Listener 将实时结果发送到后端 。 JMeter 附带:

  • 一个 GraphiteBackendListenerClient,它允许你将指标发送到 Graphite 后端。
    此功能提供:
    • 实时结果
    • 漂亮的指标图表
    • 能够比较 2 个或更多负载测试
    • 存储监控数据只要 JMeter 产生相同的后端
  • JMeter 3.2 中引入的 InfluxDBBackendListenerClient 允许你使用 UDP 或 HTTP 协议将指标发送到 InfluxDB 后端此功能提供:
    • 实时结果
    • 漂亮的指标图表
    • 能够比较 2 个或更多负载测试
    • 能够向图形添加注释
    • 存储监控数据只要 JMeter 产生相同的后端

在本文档中,我们将介绍配置设置以绘制和历史记录不同后端中的数据:

  • InfluxDBBackendListenerClient 的 InfluxDB 设置
  • GraphiteBackendListenerClient 的 InfluxDB 设置
  • Grafana
  • Graphite

15.1 公开的指标

15.1.1 线程/虚拟用户指标

线程指标如下:

<rootMetricsPrefix>test.minAT

最小活动线程

<rootMetricsPrefix>test.maxAT

最大活跃线程数

<rootMetricsPrefix>test.meanAT

平均活跃线程

<rootMetricsPrefix>test.startedT

已启动线程

<rootMetricsPrefix>test.endedT

成品螺纹

15.1.2 响应时间指标

响应相关指标如下:

<rootMetricsPrefix><samplerName>.ok.count

采样器名称的成功响应数

<rootMetricsPrefix><samplerName>.h.count

服务器每秒点击次数,此指标累积 Sample Result 和 Sub 结果(如果使用 Transaction Controller,则应取消选中“Generate parent sampler”)

<rootMetricsPrefix><samplerName>.ok.min

采样器名称成功响应的最短响应时间

<rootMetricsPrefix><samplerName>.ok.max

采样器名称成功响应的最大响应时间

<rootMetricsPrefix><samplerName>.ok.avg

采样器名称成功响应的平均响应时间。

<rootMetricsPrefix><samplerName>.ok.pct<percentileValue>

为采样器名称的成功响应计算的百分位数。每个计算值都有一个指标。

<rootMetricsPrefix><samplerName>.ko.count

采样器名称的失败响应数

<rootMetricsPrefix><samplerName>.ko.min

采样器名称响应失败的最短响应时间

<rootMetricsPrefix><samplerName>.ko.max

采样器名称失败响应的最大响应时间

<rootMetricsPrefix><samplerName>.ko.avg

采样器名称失败响应的平均响应时间。

<rootMetricsPrefix><samplerName>.ko.pct<percentileValue>

为采样器名称的失败响应计算的百分位数。每个计算值都有一个指标。

<rootMetricsPrefix><samplerName>.a.count

采样器名称的响应数(ok.count 和 ko.count 的总和)

<rootMetricsPrefix><samplerName>.sb.bytes

发送字节

<rootMetricsPrefix><samplerName>.rb.bytes

接收字节

<rootMetricsPrefix><samplerName>.a.min

采样器名称响应的最短响应时间(ok.count 和 ko.count 的最小值)

<rootMetricsPrefix><samplerName>.a.max

采样器名称响应的最大响应时间(ok.count 和 ko.count 的最大值)

<rootMetricsPrefix><samplerName>.a.avg

采样器名称响应的平均响应时间(ok.count 和 ko.count 的平均值)

<rootMetricsPrefix><samplerName>.a.pct<percentileValue>

为采样器名称的响应计算的百分位数。每个计算值都有一个指标。(根据合格和不合格样品的总数计算)

Backend Listener 上 的默认百分位数设置为“90;95;99”,即 3 个百分位数 90%、95% 和 99%。

Graphite 命名层次结构 使用 点(“.”)来分隔元素。这可能与十进制百分位值混淆。JMeter 转换任何此类值,用下划线 ("-") 替换点 (".")。例如,“ 99.9 ”变成“ 99_9 ”

默认情况下,JMeter 发送在 samplerName“ all ”下累积的所有采样器的指标。如果配置了后端侦听器 samplersList,则 JMeter 还会发送匹配样本名称的指标,除非 summaryOnly=true

15.2 JMeter 配置

要让 JMeter 将指标发送到后端,请使用 InfluxDBBackendListenerClient 添加一个 BackendListener 。

流入数据库配置

流入数据库配置

15.3 InfluxDB 配置

执行以下操作之一来存储后端侦听器发送的数据:

你还可以使用 HTTP API,即 curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE jmeter"

15.3.1 InfluxDBBackendListenerClient 的 InfluxDB 设置

InfluxDB 是一个开源、分布式、时序数据库,可以轻松存储指标。安装和配置非常简单,阅读本文了解更多 InfluxDB 文档 的详细信息。
InfluxDB 数据可以通过 Grafana 在浏览器中轻松查看。

15.3.2 InfluxDBBackendListenerClient 的 InfluxDB 2 设置

配置应指定 influxdbToken 参数,并在 influxdbUrl 中指定 bucket 和 org 作为查询参数。有关更多详细信息,请参阅 InfluxDB v2 API

如何在 InfluxDB UI 中检索所需信息:

InfluxDB 2 配置

15.4 Grafana 配置

安装 grafana
阅读 文档 以获取更多详细信息。添加 数据源

这是你可以获得的仪表板类型:

Grafana 仪表板

15.5 Graphite Configuration

To make JMeter send metrics to backend, add a BackendListener using the GraphiteBackendListenerClient.

GraphiteBackendListenerClient section will help you do the configuration.

Graphite configuration

15.5.1 Graphite Sender

Two types of Senders are available. TextGraphiteMetricsSender, PickleGraphiteMetricsSender

  • For plaintext protocol, set graphiteMetricsSender parameter to org.apache.jmeter.visualizers.backend.graphite.TextGraphiteMetricsSender
  • For pickle protocol, set graphiteMetricsSender parameter to org.apache.jmeter.visualizers.backend.graphite.PickleGraphiteMetricsSender

To send large amounts of data, use the Pickle sender. It is a more efficient transmission method compared to textplain. Read the Graphite documentation for more details.

Graphite pickle sender