录制的脚本回放成功了, 但是运行有可能出现失败的情况, 所以有必要让JMeter来帮我们验证测试结果的正确性.

在Jmeter中是用断言组件来实现此功能的.

首先, 在需要添加断言的请求后面, 添加响应断言.

然后, 根据需要来添加需要响应的规则.

断言组件是通过获取服务器响应数据, 然后根据断言规则去匹配这些响应数据;匹配到是正常现象, 此时是看不到任何提醒的. 如果匹配不到, 此时Jmeter会断定这个事务失败, 在结果树中看到的请求名称是红色字体.

参数说明如下:

(1)Apply to: main sample and sub sample, main sample only , sub-sample only , jmeter variable

  关于应用范围,我们大多数勾选“main sample only” 就足够了,因为我们一个请求,实质上只有一个请求。但是当我们发一个请求时,可以触发多个服务器请求,类似于ajax那种,那么就有main sample  和 sub-sample之分了。
  此外,对于有重定向的请求,并且勾选了“跟随重定向”, 那么这两个请求都是 sub-sample,重定向后的请求(第二个请求)就是main-sample
 
(2)响应字段: 响应文本,Document(Text),url样本,响应代码,响应信息,Response Header,ignore status

  响应文本: 服务器响应文本,一般普通http响应,都勾选这个。
   Document(Text):一切Apache Tika 支持服务器响应,包括文本响应,还支持 PDF, Office, Audio, Video formats。jmeter会用Apache Tika 去解析服务器响应内容,会很耗内存,而且也很容易解析失败。所以一般普通http请求,不要选择这个。
  url样本:是对sample的url进行断言。如果请求没有重定向(302),那么就是这个就是请求url。 如果有重定向(且跟随重定向),那么url就包含请求url 和 重定向url
  响应代码:http响应代码,如101,200,302,404,501等。但当我们要验证404,501等http响应代码时,需要勾选“ ignore status”。因为当http 响应代码为400,500时,jmeter默认这个请求时失败的。
  响应信息:http响应代码对应的响应信息,例如:OK, Found
 
(3)模式匹配规则

  包括:返回结果包括你指定的内容,支持正则匹配
    例如:
    响应字段为: 响应文本
    模式匹配规则:包括
    断言为:1、invalid    2、[a-z]+
    当返回值为:{"msg":"channel invalid."} , 这两个断言都是ok的,返回true
  匹配:
    (1) 相当于 equals 。当返回值固定时,可以返回值做断言,效果和equals相同
    (2) 正则匹配 。 用正则表达式匹配返回结果,但必须全部匹配。 即正则表达式必须能匹配整个返回值,而不是返回值的一部分。
    例如:
    响应字段为: 响应文本
    模式匹配规则:匹配
    断言为:1、{"msg":"channel invalid."}   2、\{"msg":"[a-z]+ invalid\."\}  , 3、[a-z]+
    当返回值为:{"msg":"channel invalid."}   ,断言1 2 是ok的, 断言3是false
    原因是,断言1 只能用于equals,而断言3 只匹配了返回值部分,而不是全部匹配。
  Equals : 返回结果与你指定断言完全一致
  SubString:与 “包括”差不多,都是指返回结果包括你指定的内容,但是subString不支持正则字符串
    例如:
    响应字段为: 响应文本
    模式匹配规则:匹配
    断言为:1、invalid    2、[a-z]+
    当返回值为:{"msg":"channel invalid."} , 断言1返回true, 但断言2返回false
  :就相当于取反。 如果上面断言结果为true,勾选“否”后,最终断言结果为false。如果上面断言结果为false,勾选“否”后,则最终断言结果为 true。

Jmeter(五)检查点的更多相关文章

  1. 转 9 jmeter之检查点

    9 jmeter之检查点   jmeter有类似loadrunner检查点的功能,就是断言中的响应断言. 1.响应断言(对返回文字结果进行相应的匹配)右击请求-->添加-->断言--> ...

  2. Jmeter(五)_函数

    JMeter提供了很多函数,如果能够熟练使用,可以为脚本带来很多方便. JMeter函数是一种特殊值,可用于除测试计划外的任何组件. 函数调用的格式如下所示:${__functionName(var1 ...

  3. 9 jmeter之检查点

    jmeter有类似loadrunner检查点的功能,就是断言中的响应断言. 1.响应断言(对返回文字结果进行相应的匹配)右击请求-->添加-->断言-->响应断言-->添加“要 ...

  4. Jmeter之检查点

    检查点 Jmeter中检查点也叫断言,Jmeter中有很多类型的断言,但是最常用的是响应断言,即根据服务器返回的结果来判断测试是否通过. 响应断言 添加断言结果用于运行完毕后查看结果 测试通过 测试不 ...

  5. Jmeter(五)mysql的增删改查

    一.导入jdbc的jar包,因为jmeter本身不能直接连接mysql,所以需要导入第三方的jar包,来连接mysql jar包下载地址:https://pan.baidu.com/s/17qQZPF ...

  6. JMeter 五:监控服务器

    参考:http://jmeter.apache.org/usermanual/build-monitor-test-plan.html 添加Thread Group 添加方法:Test Plan上右键 ...

  7. Jmeter(五十)_性能测试模拟真实场景下的用户操作

    概述 我们在做性能测试的时候,不同的视角看到的结果都不一样. 例如响应时间 用户通过客户端向服务端发出请求的时间为: T1服务端接收到请求,处理该请求的时间为:T2服务端返回数据给客户端时间为: T3 ...

  8. jmeter(五十一)_性能测试中的服务器资源监控与分析

    概述 性能测试过程中,对服务器资源的监控是必不可少的.这里的资源又分了两块,windows和linux   linux下监控资源 访问网址http://jmeter-plugins.org/downl ...

  9. Jmeter(五)关联之正则表达式提取器

    我们在用Jmeter做接口或者性能测试时,经常会碰到第二个请求提交的的参数要从第一个请求返回的参数中获取,而这些参数值并不是固定的,是动态变化的,这种场景就要用到关联 Jmeter提供了一种叫做正则提 ...

随机推荐

  1. linux上如何安装mysql

    下载rpm包: wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 安装rpm:rpm -ivh mysql-com ...

  2. CPP标准模板库 随笔

    对于无序容器而言,其次序是不固定的,就算添加一个元素,也可能全盘改变次序.唯一可以保证的是,内容相同的元素会相邻.(eg: 23,1,1,25,3,27,5,7,11,11) 迭代器的种类: 1,前向 ...

  3. c++ 实时通信系统(基础知识TCP/IP篇)

    编写前的基础知识 C/S结构: C/S是Client/Server,即客户端/服务器端架构,一种典型的两层架构.客户端包含一个或多个在用户的电脑上运行的程序服务器端有两种,一种是数据库服务器端,客户端 ...

  4. python的isocalender()

    isocalender()返回指定日期的年,第几周,周几这三个值. 例子: import date date_time = datetime.date(2019, 5, 9) ret = date_t ...

  5. skywalking 6.1 简明指南

    skywalking 分布式系统的应用程序性能监视工具,专为微服务.云本机架构和基于容器(Docker.K8s.Mesos)架构而设计 背景 随着微服务架构的流行,一些微服务架构下的问题也会越来越突出 ...

  6. 谈谈我所理解的HashMap和HashTable

    HashMap和HashTable之间的联系和区别如下: 1.HashMap几乎可以等价于Hashtable,但是它们之间继承不同:HashMap extends AbstractMap implem ...

  7. kafka常见命令

    基础命令 查看已有topic 进入kafka解压目录:/home/zallds/kafka_2.10-0.10.2.1 执行如下命令,就会列出所有topic [zallds@PUBLIC-26 bin ...

  8. @InitBinder的作用

    由@InitBinder表示的方法,可以对WebDataBinder对象进行初始化.WebDataBinder是DataBinder的子类,用于完成由表单到JavaBean属性的绑定. @InitBi ...

  9. ES添加文档 踩坑之 —— The number of object passed must be even but was [1]

    读取文件,获取json格式的数据doc, 然后使用 bulkRequestBuilder.add(client.prepareIndex(index, type, id).setSource(doc) ...

  10. JAVA排序算法(一)冒泡排序、选择排序

    /* 冒泡排序 * * 相邻的元素,两两比较.如果第一个比第二个大,就交换他们两个. 大的后移 * 对每一对相邻元素做同样的工作,这样第一轮结束后,最大值在最后一个. */ public static ...