您的位置:首页 > 其它

JMeter学习笔记--JMeter监听器

2014-12-21 18:08 218 查看
监听器(Listeners)是一种展示采样结果的测试元件,采样结果可以通过树、表格、图片加以展示,或者简单地写入某个结果文件之中。

注:不同的监听器通过不同的方式展示服务器响应信息,但它们都将同样的原始数据记录到某个输出文件中(在某个监听器中指定一个输出文件)

”Configure“ 按钮可以被用来配置哪些数据会被写入到结果文件之中,以及结果文件的格式CSV或者XML。与XML文件相比,csv文件占用的磁盘空间要小很多,当采样次数较多时,建议使用csv格式。另外测试人员可以使用简单控制器将一系列采样器组合起来,并为简单控制器添加一个监听器,多个采样器可使用相同的结果文件,前提是它们有相同的配置。

监听器默认配置:监听器默认保存哪些数据域,可以在jmeter.properties(或者user.properties)文件中通过属性定义。这些属性会作为监听器配置对话框的默认设置,还会影响命令行-l标识指定的日志文件(通常针对非GUI模式)。如在jmeter.properties中找到如下行:jmeter.save.saveservice.output_format= 如何保存采样信息是可以配置的,要获取最全面的信息,请选择“XML”格式,并在测试计划选中“Function Test Mode"复选框,如果复选框没有选中,那么默认保存的数据中会包含时间戳、数据类型、线程名、标签、相应时长、消息、编码以及成功标志。

sample_variables属性用来定义一些补充JMeter变量,这些变量的值会和采样结果一起被保存到JTL文件中。这些变量会作为补充列写入到CVS文件中,或作为补充属性写入到XML文件中。

配置采样结果的保存格式:使用配置对话框来设置将哪些数据保存到结果文件中(JTL)以CSV结尾的选项只影响CSV格式的结果文件;以XML结尾的选项只影响XML格式的结果文件。目前CSV格式的结果文件,不能记录包含换行符的数据。注意:cookies、method和查询语句会作为”Sampler Data“的一部分加以保存。

非GUI模式运行测试:当JMeter以非GUI模式运行时,可以使用-l(这是字幕,非数字1)标签为测试创建一个监听器(位于测试树的最顶层)。该监听器是测试计划新增的监听器,并不影响测试计划中原有的监听器。可以通过jmeter.properties文件中定义的属性来对该监听器进行配置。示例如下:jmeter -n -t testplan.jmx -l testplan_01.jtl -j testplan_01.log,需要注意,JMeter日志消息默认会写到jmeter.log中,每次测试运行都会重新创建该文件,若需要保存每次运行的日志文件,就需要用到-j选项,JMeter2.3.1及以后版本,支持在日志文件名中使用变量。如果文件名中包含成对的单引号,那么文件名就会以Simple Date Format格式来处理,而且文件名会携带上当前时间。例如:log_file='jmeter_'yyyyMMddHHmmss'.tmp',它能为每个日志文件生成唯一的文件名。

监听器资源占用:如果监听的采样器数目很多,那么监听器会占用大量内存。目前大多数监听器会保存每一次采样的数据备份,如:

Simple Data Writer

BeanShell/BSF Listener

Mailer Visualizer

Monitor Results

Sunmary Report

而下面的这些采样器不再保存所有单次采用的副本,因为采用周期相同的采样会被聚合起来,如此一来,监听器需要的内存会减少,特别是在大多数采用只耗费一秒或两秒的情况下

Aggregate Report

Aggregate Graph

Distribution Graph

要减少监听器占用的内存,请选择Simple Data Writer,并使用CSV格式保存结果文件

CSV记录格式:依赖于配置监听器过程中选择的数据域,只有指定的数据会被记录到结果文件之中,列的顺序在结果文件中是固定的。

timeStamp - in milliseconds since 1/1/1970

elapsed - in milliseconds

label - sampler label

responseCode -e.g. 200,404

responseMessage - e.g. OK

threadName

dataType -e.g. text

success - true or false

failureMessage - if any

bytes - number of bytes in the sample

grpThreads-number of active threads in this thread group

allTreads- total number of active threads in all groups

URL

Filename - if Save Response to File was used

latency - time to first response

encoding

SampleCount - number of samples(1,unless multiple samples are attregated)

ErrorCount - number of errors (0 or 1,unless multiple samples are attregated)

Hostname - where the sample was generated

IdleTime - number of milliseconds of "Idle" time (normally 0)

variables --if specified

XML记录格式:采用节点的名称可以是“sample"或者”httpSample"

采样属性:

by - Bytes

de - Data encoding

dt - Data type

ec - Error count(0 or 1 , unless mulitple samples are aggregated)

hn - Hostname where the sample was generated

it - Idle Time

lb -Label

lt - Latency=time to initial response(milliseconds) -not all samplers support this

na - Number of active threads for all thread groups

ng- Number of active threads in this group

rc -Response Code(e.g. 200)

rm - Response Message(e.g. OK)

s - Success flag(true/false)

sc- Sample count

t - Elapsed time(milliseconds)

tn - Thread Name

ts -timeStamp

varname -Value of the named variable

保存响应数据:使用Save_Responses_to_a_file 它会为作用域内的每个采样器产生一个结果文件,文件名同采样器名称。

加载(读取)响应数据

保存监听器GUI的数据:JMeter可以将任何监听器保存为一个PNG文件,用户可以在测试树种选择某个监听器后,右击选择“Save Screen As Image

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: