性能测试:JMeter监听器

 

JMeter中的监听器有很多种


,这里主要介绍常用的几种:聚合报告、图形结果、查看结果树以及断言结果。

聚合报告 Aggregate Report

 作用:记录这次性能测试的总请求数、错误率、用户响应时间(中间值、90%、最少、最大)、吞吐量等,用以帮助分析被测试系统的性能。在聚合报告中,各个响应时间不能超过客户的要求,就是合格,例如不能超过响应时间2s,大于2s就是不合格的.

在这里用一个测试连接进行尝试:


点击运行,得到聚合报告如下,聚合

报告可以是调优的参考:


1. Label :每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值;

2.#Samples :表示测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代1次,那么这里就显示对应的 HTTP Request的执行次数是10;(因为在模拟过程中,经过两次lcts5... 所以在这里显示的总执行次数为20)

3. Average :平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间;(通过报告可以得到登录行为在哪个HTTP Request的响应时间最长)

4.Median :50%用户的响应时间小于此值,表示中位数;

5.90%Line :90%用户的响应时间小于此值;

6.Min:最少响应时间;

7.Max:最大响应时间;

8.Error% :本次运行测试中出现错误的请求的数量/请求的总数;

9.Throughput: 吞吐量,默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数 KB/sec;

10.Received KB/sec :每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec;

11.Sent KB/sec:每秒发送多少KB的数据;

图形结果 Graph Results

作用:通过图形展示出本次性能测试数据的分布。 图形结果一般作为聚合报告的分析辅佐。


1、样本数目:总共发送到服务器的请求数(聚合报告中的TOTAL #Samples)。

2、最新样本:代表时间的数字,是服务器响应最后一个请求的时间。

3、吞吐量:服务器每分钟处理的请求数。

4、平均值:总运行时间除以发送到服务器的请求数。

5、中间值:代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。

6、偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。

查看结果树 View Results Tree

 作用:以结果树的形式显示测试结果。查看结果树监听器放置的位置不同,得到的结果也不同。在线程组下添加察看结果树,查看线程组下所有请求的结果;放在具体某个请求下,只查看此请求的结果;若放在某个控制器节点下,则查看此控制器下节点执行的结果。


 如下图,这里的监听器放在线程组下,所有会显示所有的HTTP Request循环10次的结果。绿色代表测试通过,红色代表失败。

    而在下图中,监听器放在第一个HTTP Request下面,因此看到的是同个HTTP Request循环10次的结果。

取样器结果

Thread Name: 线组名称;

Sample Start: 启动开始时间 ;

Load time: 加载时长 ;

Latency: 等待时长 ;

Size in bytes: 发送的数据总大小 ;

Headers size in bytes: 发送头大小 ;

Body size in bytes: 发送数据的其余部分大小 ;

Sample Count: 发送统计 ;

Error Count: 错误统计 ;

Response code: 返回码 ;

Response message: 返回消息 ;

Response headers:返回头信息 ;

请求 

数据获取方式、路径、地址等以及传递的参数、cookie ;

响应数据 

响应加载的页面html;

断言结果 Assertion Results

   作用:用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致,一般与结果树结合使用。

如何设置/添加断言?

一个HTTP可以添加一条断言。如下图,给第二条HTTP增加一个响应断言


1、响应文本:响应服务器返回的文本内容,HTTP协议排除Header部分;

2、响应代码:指请求返回的状态,如200 ;

3、响应信息:指请求返回的响应信息,如OK、not found ;

4、Response Headers : 匹配响应的头信息 ;

5、Request Headers :请求头信息;

6、URL样本:匹配URL链接;

7、Document(text):对文档内容进行匹配。通过Apache Tika从各种的文档中提取的文本进行验证,包括响应文本,pdf、word等等各种格式。jmeter会用Apache Tika去解析服务器响应内容,耗内存、也耗时间,解析易失败,尽量少用或不用。多用响应文本方式来进行断言验证。

8、Ignore Status:一个请求有多个响应断言,其中第一个响应断言选中此项。当第一个响应断言失败时可以忽略此响应结果,继续下一个断言。如果下一个断言成功则还是可以判定事物成功的。

9、Resquest Data:相应的数据。

模式匹配规则

1、包括:响应内容包括需要匹配的内容即代表响应成功,支持正则匹配;

2、匹配:(1) 相当于 equals 。当返回值固定时,可以返回值做断言,效果和equals相同;(2) 正则匹配 。 用正则表达式匹配返回结果,但必须全部匹配。 即正则表达式必须能匹配整个返回值,而不是返回值的一部分。 

3、Equals : 返回结果与你指定断言完全一致,大小写敏感,需要匹配的内容是字符串非正则表达式 ;

4、SubString:响应内容包含需要匹配的内容才代表响应成功,大小写敏感,需要匹配的内容是字符串非正则表达式 。 

举例:

断言第二个HTTP的相应代码为200。当返回状态码确实为200时,断言结果中不提示异常,结果树中不报错。


而当把断言改为600时,看到以下情况:

你可能感兴趣的:(性能测试:JMeter监听器)