Jmeter测试结果分析这一篇,我打算分成上下两部分。上篇,主要讲述如何使用jmeter中Assertion对结果进行简单的分类;下篇,主要讲述的是当我们拿到测试结果后,我们应该如何去看待这些测试结果。

用过LoadRunner的人都知道,LoadRunner本身提供了很多函数可以对收集回来的结果进行一些初步的分析。例如可以做到判断返回的结果是否正确;判断request的response time是否大于x秒之类的。相比起LoadRunner,Jmeter在这方面没有那么强大,但是个人认为,对于一些编程基础不是太好的测试人员来说,Jmeter比LoadRunner易用性上面做得更出色。

Assertion--断言,通常是用于对每一个request sampler进行额外验证的工具。下面通过一个例子来介绍一下常用的几个Assertions。

假设现在要进行一个登陆的压力测试,下面是对pass的几个定义:

1.正确login后,必须收到返回的身份验证和用户个人信息下载的完成信息;

2.响应时间不能超过150毫秒

3.返回的结果大小不能小于750bytes

根据以上的要求,我们在对应的request sampler下面添加了以下的Assertions。

A.Response Assertion

Response Field to Test -- 标示被检查对象是什么?

Pattern Matching Rules -- 标明被检查对象与验证内容之间的关系,Contains(包含关系);Matches(匹配关系);Equals(相等关系);Not(非关系)

Pattern to Test -- 需要验证的内容列表

B.Duration Assertion

Duration to Assert -- 允许的响应时间的最大值

C.Size Assertion

Size to Assert -- 对于返回结果文件大小的标准定义

二、结果分析

添加了以上的Assertions后,我运行了一次脚本。以下是存放结果的.jtl文件的内容:

timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,Latency

11/04/08 13:22:03,172,Do Login,200,OK,Thread Group 1-1,text,false,The operation lasted too long: It took 172 milliseconds, but should not have lasted longer than 150 milliseconds.,835,172

11/04/08 13:22:03,156,Do Login,200,OK,Thread Group 1-2,text,false,Test failed: text expected to contain /loginMsg="OK"/,633,156

11/04/08 13:22:03,156,Do Login,200,OK,Thread Group 1-3,text,false,The operation lasted too long: It took 156 milliseconds, but should not have lasted longer than 150 milliseconds.,839,156

11/04/08 13:22:03,156,Do Login,200,OK,Thread Group 1-4,text,false,The operation lasted too long: It took 156 milliseconds, but should not have lasted longer than 150 milliseconds.,836,156

11/04/08 13:22:03,78,Do Login,200,OK,Thread Group 1-5,text,true,,779,78

11/04/08 13:22:03,63,Do Login,200,OK,Thread Group 1-7,text,false,Test failed: text expected to contain /loginMsg="OK"/,570,63

11/04/08 13:22:03,141,Do Login,200,OK,Thread Group 1-6,text,false,The result was the wrong size: It was 721 bytes, but should have been greater than 750 bytes.,721,141

11/04/08 13:22:03,78,Do Login,200,OK,Thread Group 1-9,text,false,The result was the wrong size: It was 724 bytes, but should have been greater than 750 bytes.,724,78

11/04/08 13:22:03,204,Do Login,200,OK,Thread Group 1-10,text,false,The operation lasted too long: It took 204 milliseconds, but should not have lasted longer than 150 milliseconds.,1137,204

11/04/08 13:22:03,2985,Do Login,200,OK,Thread Group 1-8,text,false,Test failed: text expected to contain /loginMsg="OK"/,570,2985

我们可以看到,每一个Sampler都会经过Assertions的判断,只要有一个不符合条件的都会标示为False。

其实除了以上讲到Assertion,jmeter还提供了其他一些比较实用的Assertion,而我在这也不一一介绍了。

有兴趣的可以看一下jmeter的user manual,然后再自己动手试验一下。

<待续>

Jmeter测试结果分析(上)的更多相关文章

  1. 【转】Jmeter测试结果分析

    Jmeter测试结果分析这一篇,我打算分成上下两部分.上篇,主要讲述如何使用jmeter中Assertion对结果进行简单的分类:下篇,主要讲述的是当我们拿到测试结果后,我们应该如何去看待这些测试结果 ...

  2. Jmeter测试结果分析(下)

    Jmeter测试结果分析(下) 前文再续,续接上一回.上一篇讲了如何利用Assertion将测试结果进行初步的筛选.那么,当我们拿到了测试结果之后,我们应该如何去看待它们呢?它们又是怎么来的呢? 一. ...

  3. Jmeter 测试结果分析之聚合报告简介

    Jmeter 测试结果分析之聚合报告简介 by:授客 QQ:1033553122 聚合报告(aggregate report) 对于每个请求,它统计响应信息并提供请求数,平均值,最大,最小值,错误率, ...

  4. Jmeter 测试结果分析之聚合报告简介

    聚合报告(aggregate report) 对于每个请求,它统计响应信息并提供请求数,平均值,最大,最小值,错误率,大约吞吐量(以请求数/秒为单位)和以kb/秒为单位的吞吐量. 吞吐量是以取样目标点 ...

  5. jmeter 测试结果分析术语

    label:定义http请求名称. samples:测试中一共发出的请求. average:平均响应时长.默认是单个request的平均响应时长. median:中位数,50%用户的响应时长. 90% ...

  6. Jmeter测试入门——分析HBase访问服务性能瓶颈

    开启HBase服务 新建线程组,设定线程数为10:  设定请求方法和请求参数: 查看请求的返回结果: 查看服务响应的性能分析结果: 可能出问题的地方:Phoenix.数据库连接池(操作Phoenix)

  7. Jmeter测试结果分析

    *.jtl文件内容: 请求发出的绝对时间,响应时间,请求的标签,返回码,返回消息,请求所属的线程,数据类型,是否成功,字节,             响应时间 1458294513309,   382 ...

  8. jmeter 响应结果分析一

    转自:http://www.cnblogs.com/Carrie_Liang/archive/2008/11/05/1327604.html Jmeter测试结果分析这一篇,我打算分成上下两部分.上篇 ...

  9. jmeter测试HTTP请求

    HTTP超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.(详情参考看一下百科) HTTP发送请求有GE ...

随机推荐

  1. Scal(三)——类与对象

    Scala快速入门(三)--类与对象 一.类 这边类的模板如下,和Java很像 object a { def main(args: Array[String]): Unit = { val perso ...

  2. shell命令学习记录

    id id会显示用户以及所属群组的实际与有效ID hostname 用来显示或者设置主机名(show or set the system’s host name).环境变量HOSTNAME也保存了当前 ...

  3. socket链接的关闭连接与close和shutdown的区别

    TCP主动关闭连接 appl: close(), --> FIN FIN_WAIT_1 //主动关闭socket方,调用close关闭socket,发FIN <-- ACK FIN_WAI ...

  4. mybatis配置加载源码概述

    Mybatis框架里,有两种配置文件,一个是全局配置文件config.xml,另一个是对应每个表的mapper.xml配置文件.Mybatis框架启动时,先加载config.xml, 在加载每个map ...

  5. Django:新手入门学习资料汇总

    (1)作者(刘江)(神都公务员出身,军工专家,文章详尽全面):http://www.liujiangblog.com/course/django/2 (2)魔力Python:作者(小楼一夜听春语)(文 ...

  6. JAVA内存存储分配粗略讲解

    以String类型为例:String s1 = "ABC"; String s2 = "ABC"; String s3 = new String("A ...

  7. vue-cli中模拟数据的两种方法

    我所使用的是新版vue-cli 首先进行所需插件的安装,vue-resource,json-server,proxyTable. 目录结构如图 在main.js中引入vue-resource模块,Vu ...

  8. hive传递参数与调用

    在运行hive命令时传入参数,使用-hivevar 和 -hiveconf 两种参数选项,来给此次的执行脚本传入参数 -hivevar : 传参数 ,专门提供给用户自定义变量. -hiveconf : ...

  9. 20190716NOIP模拟赛T1 礼物(概率dp+状压)

    题目描述 夏川的生日就要到了.作为夏川形式上的男朋友,季堂打算给夏川买一些生 日礼物. 商店里一共有种礼物.夏川每得到一种礼物,就会获得相应喜悦值Wi(每种 礼物的喜悦值不能重复获得). 每次,店员会 ...

  10. 用python进行服务器的监控

    用python进行服务器的监控 在linux服务器中,一切皆为文件,就是说,服务器运行的个中信息,其实是可以从某些文件中查询得到的:百度后,你会知道,在Linux系统中,有一个/proc的虚拟文件系统 ...