监听器是JMETER的组件之一,用来显示测试结果。但是,他们不仅仅只有这些作用。JMeter监听器的多样性使性能工程师能够监视从JMeter发送的请求,并分析从被测系统接收的响应。
监听器通过JMeter的请求和响应,来收集时间和容量的相关信息,或者处理统计信息,如分布和百分比。高级测试人员甚至可以使用BeanShell或JSR223监听器来定制集合并整合性能测试指标。几乎所有监听器都能够将结果写入文件,从而允许性能工程师将它们转换为所需的格式。
这个博客系列将讨论不同类型的侦听器。这次我们将讨论以基本格式收集和显示样本数据的监听器,而不进行任何复杂的计算或操作。但首先,我们将解释在一个测试脚本中放置Listener的地方。
Placing Listeners in a Test Script
可以通过单击添加 – >侦听器找到所有侦听器。 JMeter侦听器将只收集来自或高于其级别的JMeter元素的数据。 如果侦听器作为子元素添加到脚本中,它将只显示与其父元素相关的数据。 如果在具有几个线程组的脚本的线程组下添加侦听器,则该侦听器将显示属于该线程组的所有采样器的数据。 如果需要查看脚本中所有采样器的报告,请将侦听器置于脚本中所有线程组的相同级别。
看图更直接:
View Results Tree
查看结果树监听器显示了JMeter的采样样本的生成,和与之相关断言结果。此侦听器按照JMeter脚本生成的顺序显示这些采样样本,并为每个样本提供参数和数据。
例如,对于HTTP采样器产生的每个样本,视图结果树监听器提供请求参数,响应参数和响应数据。这些都显示在相应的选项卡下:取样器结果,请求和响应数据。
“取样器结果”选项卡包含响应代码,头部,Cookies以及有关时间,延迟,响应大小(以字节为单位)的信息 – 分别用于头部,正文和错误计数。
请求选项卡包含有关JMeter脚本添加的头文件,URL,HTTP方法和cookie信息。
“响应数据”选项卡包含样本的响应正文。
查看结果树监听器最有用的元素之一是有个选项卡,它将样本主体中传输的信息转换为所需格式:简单文本,HTML或XML。 它也过滤子字符串,通过使用RegExp模式,特定的XPath,JSON路径或CSS。 这有助于构建和验证脚本中对应的后置处理器。
使用查看结果树监听器中使用RegExp测试器的示例如下面的屏幕截图所示。
查看结果树监听器还显示失败的断言,并比较预期和实际的结果。 但是,如果断言通过,则不显示成功。 下面的屏幕截图显示了一个示例。
View Results in Table
用表格查看结果监听器是以表格的形式显示有关每个样本的信息。 该表显示与时间相关数据,如每个样品,有效载荷数据,线程数和样品执行结果。 表中的结果是按时间样本的顺序排序。 此监听器对于快速评估被测系统的行为非常有用。
Response Time Graph
在测试过程中绘制样本响应时间图的附加监听器是响应时间图监听器。 此侦听器能够绘制所有样本或选定样本的图形。 这在下面的屏幕截图中示出
Assertion Results
“断言结果”侦听器在其作用域中显示所有断言的结果。 此侦听器显示样本显示的断言。 通过的断言不显示。 此侦听器如下面的屏幕截图所示:
但是到目前为止我们已经提到的监听器有一个问题 – 它们是资源消耗的元素。 因此,有时最好在测试期间将数据写入文件,然后在测试完成后处理保存的数据。 在数据了大的情况下,更应该如此。
为此,有一些监听器只将数据写入文件和JMeter日志,而不在表和图形中显示它们。 然后,样本中的数据可以以两种格式保存:CSV和XML。 格式和保存的数据在JMeter属性文件中定义。
Simple Data Writer
简单数据写入器是这样的监听器。 此侦听器能将结果写入提供的文件名中。 文件的内容及其格式在jmeter.properties文件中确定,jmeter.properties文件位于JMeter的’bin’文件夹中。 在下面的屏幕截图中,您可以看到JMeter属性文件的内容和保存的数据。
Flexible File Writer
灵活文件编写器比简单数据编写器更先进。 它允许您配置要打印到文件的样本数据,包括配置文件头和页脚。 侦听器如下面的屏幕截图所示:
Save Responses to a File
“保存响应到文件”监听器将每个特定响应的信息保存到单独的文件中,然后对其进行索引。 文件名由文件名的基本部分和索引组成。 使用此侦听器的开发人员应考虑可能会创建多个文件。
翻译至:BlazeMeter:JMeter Listeners – Part 1: Listeners with Basic Displays
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/194745.html