zoukankan      html  css  js  c++  java
  • Jmeter之断言——检查点

    Jmeter里的断言相当于lr中的检查点。用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致。

    使用断言的目的:在request的返回层面增加一层判断机制;因为request成功了,并不代表结果一定正确。

    使用断言的方法:

    在选择的Sampler下添加对应的断言(因为不同类型的断言检查的内容不同);配置好响应的检查内容(根据断言情况而定,有的断言控制面板不需要添加任何内容,如XML Assertion)。

    添加一个断言结果的监听器(从监听器中添加),通过“断言结果”可以看到是否通过断言;对于一次请求,如果通过的话,断言结果中只会打印一行请求的名称;

      如果失败,则除了请求的名称外,还会有一行失败的原因(不同类型的断言,结果不同)。

    PS:一个Sampler可以添加多个断言,根据你的检查需求来添加相应的断言,当Sampler下所有的断言都通过了,那么才算request成功。

    目前最新版本5.1.1版本里有13个断言:

    1、响应断言

     

    这里介绍下模式匹配规则:

               包括:返回结果包括你指定的内容

               匹配:(好像跟Equals查不多,弄不明白有什么区别)   

               Equals:返回结果与你指定结果一致

               Substring:返回结果是指定结果的字串

               否:不进行匹配

               要测试的模式:即填写你指定的结果(可填写多个),按钮【添加】、【删除】是进行指定内容的管理

    #案例:百度搜索:哈哈  的请求。

    1)测试模式填写了两个如下【值匹配成功】

    查看结果树可以看到,请求成功,则说明响应数据里包含这两个数据。

    2)填写两个响应数据里没有的数据,【值匹配失败】如下:

     

    查看结果树,查看断言失败了,并且提示没有该匹配数据。

     

    总结:一般如何没有断言错误,则可以证明该请求成功了,这里的断言作用和lr里的检查点是一样的。

    2、json断言

    参数:

    Assert JSON Path exists :  $.后面添加你想要检查的json字段。

    Addittionally assert value: 是否添加断言值, 添加的断言值和json返回的字段值进行比较,等于特定的值。

    Match as regular expression:  是否支持正则表达式。

    Expected Value:  添加断言值。

    Expect null:  预期空值,勾选这项,则会匹配断言结果为null的情况。

    Invert assertion :  取反,若上述断言结果为true,勾选此项,则断言结果为false ;

                                           若上述断言结果为false,勾选此项,则断言结果为true。

    #案例:如下图该请求返回一个json串。

    1)【匹配特定值】添加json断言,匹配front,如下图:

    查看结果树,可以看到请求成功。

     填写断言值为front444,匹配失败,如下图:

    2)【匹配正则表达式】Match as regular expression一定要勾上。

    匹配成功示例,匹配17位数,字和一个*号,这里的*号要加     进行转义,如图匹配:

    匹配失败示例:改为16位数字,匹配失败:

    3)【预期为null】

    4)【取反】这里就不演示啦。

    【规则】这里说下取json匹配字段的规则

    • $  根节点
    • @  现行节点
    • .  子节点
    • ..  不管位置,选择所有符合条件的
    • *    匹配所有元素节点
    • [,]  支持迭代器中做多选
    • ?()  支持过滤操作
    • []  迭代器的标示,子元素操作符
    • ()  支持表达式计算

    3、大小断言

    4、JSR233断言

    5、XPath断言

    6、HTML断言

    7、MD5Hex断言

    8、SMIME断言

    9、XML Schema断言

    10、XML断言

    11、断言持续时间

    12、比较断言

    13、Beanshell断言

    BeanShell之前关于定时器的随笔中有介绍过,是一种松散类型的脚本语言(这点和JS类似),一种完全符合java语法的java脚本语言,并且又拥有自己的一些语法和方法;

    作用对象:针对sampler中的Bean Shell sampler而使用的断言

    参数:

    Name:断言的名字(可以用一个比较容易理解和分辨的名称)

    Comments:注释(对这个断言进行一个解释,备注)

    Reset bsh.interpreter before each call:在每次调用Bean Shell之前重置bsh.interpreter类(bsh.interpreter是Bean Shell脚本语言的一种类,也可以理解为一种解析器)

    Parameters(String Parameters and String []bsh.args):String参数(String []bsh.args是主类main函数的形式参数,是一个String 对象数组,可以用来获取命令行用户输入进去的参数)

    Script file:脚本文件(可以填入脚本文件路径)

    Script(see below for variables that are defined):参照下文定义的变量(使脚本文件参照定义的变量来运行)

    这里重点介绍了前两个断言,和beanshell断言,其他的还未用到,用到的时候再补充啦~~~

  • 相关阅读:
    如何系统收集网页/电子书等相关的知识点
    针式PKM软件多个版本兼容功能的应用
    软件开发出路:做精某一卖点!
    深入针式PKM应用系列(1) 虚拟文件夹功能,让文件想放哪就放哪
    PKM软件:提供知识应用的工具支持
    解决长串英文字母显示不能自动换行的问题
    C#中判断字符串A中是否包含字符串B
    小技巧锦集
    解决Notes的"The remote server is not a known tcp/IP host"问题的方法
    将Sql Server自增长字段的目前识别值重调!
  • 原文地址:https://www.cnblogs.com/wuzm/p/10955547.html
Copyright © 2011-2022 走看看