JMeter - 实时结果 - InfluxDB和Grafana - 第2部分 - 添加自定义字段

我已经使用InfluxDB + Grafana来获取我的JMeter测试的实时结果。您可以在此处找到有关基本设置的更多详细信息在本文中,让我们看看我们如何在InfluxDB测量中添加一些自定义字段,以便在将来可能需要更快的搜索。

问题陈述:

在我的组织中,我们有一组负载生成器用于性能测试。我们使用这些机器来测试多个项目/应用程序。有时,我会为应用程序的组件级别测试创建多个套件。你可以在这里查看我是如何做到这一点的。

JM-测试-00

我们的后端监听器将所有指标发送到这些测量 - 当天结束 - 我们不确定这些指标属于哪个应用程序/项目。

JM-测试04

 

如果我们可以根据应用程序/项目/套件甚至Jenkins构建#来过滤指标,那就太好了。

 

解:

幸运的是,我们不必提出自己的实现来实现这一目标。使用现有的JMeter后端监听器本身,解决方案非常简单。

  • 就本文而言,我创建了一个简单的JMeter测试,如下所示。

JM-测试01

  • 让我们添加几个用户定义的变量,如下所示。我这里有硬编码值。您可以对其进行参数化 - 从Jenkins传递值。

JM-测试05

  • 现在我需要将这些值发送到InfluxDB。最简单的选择是更新后端监听器的rootMetricsPrefix

jmeter.${project}.${suite}.${jenkins.build.number}.

JM-测试06

  • 运行JMeter测试。等几秒钟。
  • 检查JMeter创建的测量值。

JM-测试07

  • 这些测量名称有助于我们识别项目/应用程序/套件/ Jenkins构建数量的度量标准。

 

但是,这不是我想要的!

不,我通缉

 

我不希望在InfluxDB中进行大量的测量,这些测量变得非常难以查询/维护。

让我们看看我们如何做得更好。

JMeter的石墨输入:

JMeter以下列格式向InfluxDB发送2种类型的指标。

  • 响应时间指标:

jmeter.testautomationguru.smoketest.121.Login.a.avg 135

JM-测试08

状态  可以通过,ko表示失败,a表示全部

度量可以是min,max,avg,pct90,pct 95等

页面可以是采样器级别详细信息的采样器名称,也可以是聚合信息的采样器名

InfluxDB接收到这样的数据时,如果它无法找到模板,如果它已经不存在,它将创建带有名称的测量,并将该值记录在测量中的当前时间戳中。

JM-测试09

 

  • 线程/用户指标:

jmeter.testautomationguru.smoketest.121.test.meanAT 10

这与上面相同。这里缺少页面和状态并被' test ' 取代

 

石墨输入的模板:

通过使用石墨输入模板,我们可以避免创建多个测量。

有关Graphite输入模板的更多信息,请点击此处

 

也就是说,响应时间石墨输入“ jmeter.testautomationguru.smoketest.121.Login.a.avg ” 的模板将是“ measurement.project.suite.build.page.status.metric ”

 

我们需要在不同的度量中记录线程/用户度量,因为它不能成为采样器级别度量的一部分。由于JMeter以略微不同的格式发送2个指标,因此让我们分别捕获它们。

 

通过使用正则表达式格式,如果输入是特定格式,我们可以指示InfluxDB使用特定模板。

JM-测试-10

 

对于此输入 - “ jmeter.testautomationguru.smoketest.121.test.meanAT ”,项目,套件,内部版本号可以是任何内容。肯定会接着进行“ 测试 ”。

因此,所有用户指标都可以通过此输入格式捕获 - “ jmeter。。*。测试 “

 

在InfluxDB配置文件中相应更新模板,然后重新启动InfluxDB以获取更新配置。

 

立即运行JMeter测试并查看。[请注意,InfluxDB仅将模板用于新输入。现有的测量值不能改变]

我们现在只能看到2个测量值。1表示响应时间,1表示用户指标。

JM-测试-11

如果我查询测量,我将我的项目/应用程序,套件,构建信息,页面,状态等作为不同的列。

JM-测试-12

 

“jmeter.test”用于具有类似信息的线程/用户度量。

JM-测试-13

 

这要好得多!!

 

什么-I-通缉

 

Grafana模板:

当我们记录项目,套件时,Jenkins构建#,metric等作为测量标签/列,我们可以使用Grafana模板来过滤/重复整行。

  • 转到Grafana - > 仪表板 - >管理仪表板 - >模板    创建一个新变量。

JM-GRF-01

查看此视频,了解如何创建模板变量并在查询中使用以进行过滤。

视频播放器
 
 
00:00
 
03:23
 
 
 

 

页面重复面板:

我们可以为每个变量/页面重复整个面板。观看此视频。

视频播放器
 
 
00:00
 
02:15
 
 
 

 

摘要:

正如我们所看到的,我们应该能够在InfluxDB中添加一些自定义数据,以便使用Graphite输入模板和Grafana模板变量进行更快速的搜索。

本文仅介绍JMeter性能测试结果。您可能对收集应用程序服务器性能指标+ JVM指标非常感兴趣。检查下面的TestautomationGuru文章

快乐测试和订阅🙂

posted @ 2019-02-14 23:34  DaisyLinux  阅读(524)  评论(0编辑  收藏  举报