zoukankan      html  css  js  c++  java
  • Jmeter 断言使用

    先说一下使用断言的目的:在request的返回层面增加一层判断机制。因为request成功了,并不代表结果一定正确。类似于QTP中的检查点检查点。断言的使用方法:

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

    step_2:添加一个断言结果的监听器(从监听器中添加),通过“断言结果”可以看到是否通过断言。对于一次请求,如果通过的话,断言结果中只会打印一行请求的名称;如果失败,则除了请求的名称外,还会有一行失败的原因。(不同类型的断言,结果不同。)

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

    下面简单说一下几种断言的使用(前3种应该较为常用一点):

    1、Response Assertion(响应断言)

    适用于判断返回内容中的内容,控制面板元素如下:

    位置1:名称、注释

    位置2:要测试的相应字段,即要检查的项

    位置3:模式匹配规则

    • 包括:返回结果包括你指定的内容
    • 匹配:(好像跟Equals查不多,弄不明白有什么区别)
    • Equals:返回结果与你指定结果一致
    • Substring:返回结果是指定结果的字串

    否:不进行匹配

    位置4:要测试的模式,即填写你指定的结果(可填写多个,如图中就是希望返回文本中包含有2个指定的字符串,只有当同时包含了这2个串,这个断言才算通过,否则,算失败。)按钮【添加】、【删除】是进行指定内容的管理

    2、Size Assertion(Size断言)

    Size Assertion用于判断返回内容的大小,Size Assertion控制面板元素如下:

    位置1:名称、注释

    位置2:指定大小(单位:字节)与比较类型,返回内容的大小、比较类型、指定字节大小的比较时的摆放顺序是:【返回内容的大小】【比较类型】【指定字节大小】,如果这个比较结果通过,则断言通过,如图中,如果返回内容的大小大于10个字节,则断言通过,否则失败。

    3、Duration Assertion(Size断言)

    Duration Assertion用于判断服务器的响应时间,控制面板元素如下:

    位置1:名称、注释

    位置2:响应时间设置(单位:毫秒),如果响应时间大于设置的响应时间,则断言失败,否则成功!(等于的情况不好设置,暂不知道具体情况如何)

     

    4、HTML Assertion(HTML断言)

    html assertion的作用是检查返回的的内容,格式是否符合指定格式的相关标准。具体见下面说明。HTML Assertion的控制面板元素如下:

    位置1:名称、注释

    位置2:Tidy Settings,Doctype有auto、omit、strict、loose(这里各设置代表什么意思暂不太了解)

    位置3:格式类型,即你按那种格式来检查返回内容,html or xhtml or xml?

    位置4:能接受的最大值设置,Error threshold:最大可以接受的错误数;Warning threshold:最大可以接受的警告数。如果勾选“Error only”这忽略Warning,只对Error作统计检查。如果对返回内容的检查结果不超过指定结果,则断言通过,否则失败。

    5、XML Assertion(XML断言)

    就目前的理解来看XML Assertion的作用是判断返回结果是否否和xml的格式即<></>成对出现。(不知这样理解对不对?如果是这样的话,这个在HTML中,设置Format为XML就可以实现了,为什么还需要这个呢?)XML Assertion控制面板元素如下:

    从控制面板上可以看出,XML Assertion不需要设置任何内容。

    在使用XML Assertion的过程中,遇到一个问题,弄不明白,问题贴在这里,希望路过的朋友,如果知道的话,帮忙解答一下:

    Jmeter中添加xml assertion

    断言结果:Error on line 1: The element type "Detail" must be terminated by the matching end-tag "</Detail>".

    但实际请求返回结果:

    <?xml version="1.0" encoding="UTF-8"?><Info><Country>中国</Country><Province>未知</Province><City>未知</City><Type>大学</Type><ISP>教育网</ISP><Detail>中国教育网</Detail></Info>

    问题:<Detail></Detail>是成对的,断言那边怎么会过不去?

  • 相关阅读:
    MySQL 列子查询及 IN、ANY、SOME 和 ALL 操作符的使用
    MySQL 标量子查询
    MySQL 子查询(subquery)语法与用法实例
    如何上传本地音乐获取MP3外链(欢迎分享和转载)
    RabbitMQ与Kafka的区别及其简单原理实现
    MySQL中varchar和char的区别
    MySQL降低insert, update, delete的优先级来优化性能
    Eclipse代码自动提示
    Java生成XML文件
    Java读取XML文件
  • 原文地址:https://www.cnblogs.com/Uther/p/5292097.html
Copyright © 2011-2022 走看看