【Jmeter】Jmeter基础8-Jmeter元件介绍之断言

  • 断言主要用于对服务器响应的数据做验证。Jmeter提供了多个断言元件,其中最常用的是响应断言。

2.8.1、响应断言

  • 作用:对Jmeter取样器返回值进行断言。
  • 参数说明:
    • 测试字段
      • 响应文本:从服务器返回的响应文本,Response Body
      • 响应代码:取样器结果中的Response code,如200,500等
      • 响应信息:取样器结果中的Response message
      • 响应头:Response headers
      • 请求头:Requset Headers
      • URL样本:请求的地址,即Request Body中的地址
      • 文档(文本):通过Apache Tika从各种的文档中提取的文本进行验证,包括响应文本,pdf、word 等等各种格式。jmeter 会用Apache Tika去解析服务器响应内容,耗内存、也耗时间,解析易失败,非必要尽量不用。一般响应文本方式来进行断言验证就足够了。
      • 忽略状态:指示JMeter 设置sampler status的初始状态为 success。sample status是否成功,由已Response status和断言结果决定,当选中Ignore Status时,Response status被强制设置为success,不执行进一步的断言判断。如:当Response code为404时,不勾选该项,Response status为failure,当勾选时,Response status为success:
      • 请求数据:Request Body
    • 模式匹配规则:
      • 包括:响应内容包括需要匹配的内容即代表响应成功,支持正则表达式
      • 匹配:响应内容要完全匹配需要匹配的内容即代表响应成功,支持正则表达式
      • 相等:响应内容要完全匹配需要匹配的内容即代表响应成功,不支持正则表达式
      • 字符串:同包括,不支持正则表达式
      • 否:取反
    • 测试模式:输入断言条件,值或正则表达式,配合模式匹配规则使用
    • 自定义失败消息(Custom failure message): 自定义的失败消息,如:自定义消息为"出错啦~!!",断言失败后查看:

2.8.2、JSON断言

  • 作用:针对响应结果是applicaton/json格式的请求进行断言。
  • 参数说明:
    • Assert JSON Path exists:JsonPaht表达式
    • Additionally assert value:默认不勾选,不勾选时仅判断是否包含表达式中指定的字段不判断值的内容,勾选后解锁 Expected Valuel,可以指定判断值是否相等
    • Match as regular expression:正则匹配
    • Expected Valuel:指定一个值,用于表达式取值判断,预期值不填表示空字符,与null不等价
    • Expect null:若验证提取的值为null,则勾选此项;验证null值,还是需要勾选"Additionally assert value",否则验证的是JSONPath能否找到路径
    • Invert assertion:对断言结果取反
  • 示例:
    • 仅匹配字段:
    • 匹配值,勾选正则:
    • 断言值为null:

2.8.3、JSON JMESPath Assertion

  • 作用:使用JMESPath语法进行断言
  • 参数说明:同JSON断言,语法不同。
  • 示例:断言成功:

2.8.4、大小断言

  • 作用:判断响应结果是否包含正确数量的byte,使用频率较低,一般用于返回报文为固定长度的请求
  • 参数说明:
    • 响应字段大小:
      • 完整响应:全部响应
      • 响应头:响应头
      • 响应的消息体:响应体
      • 响应代码:Response Code,如200
      • 响应信息:Response Message,如OK
    • 字节大小:字节大小
  • 示例:响应代码为200(3字节),断言如下:

2.8.5、XPath断言

  • 作用:返回是Xml格式时,用Xpath 方式进行语法检查,判断采样器在业务上是否正确
  • 示例:XPATH断言成功:

2.8.6、XPath2断言

  • 作用:返回是Xml格式时,用Xpath 方式进行语法检查,判断采样器在业务上是否正确;和xpath断言相比,多了命名空间列表。如果使用了额外的命名空间,使用此窗口引入,一行一个。

2.8.7、HTML断言

  • 作用:判断取样器的返回是否为Html格式,仅做格式校验,使用场景很少。
  • 参数说明:
    • Tidy Settings:Tidy 环境(Tidy是一个HTML语法检查器和打印工具,可以将HTML转换为XML类型的文件)
    • Doctype:文档类型
      • omit:疏忽遗漏的
      • auto:动态的
      • strict:严格的
      • loose:宽泛的
    • Format:文件格式。可选择HTML/XHTML/XML三种不同类型的文件格式来检查返回内容
    • Errors only:误差校正(能接受的最大值),如:设置为10,解析时,10个错误以下都断言成功
    • Error threshold:误差/错误范围(可选择误差/错误数量的范围,最大值)
    • Warning threshold:警告范围(可选择误差警告的数量范围,最大值)
    • 如果勾选"Error only"这里忽略Warning,只对误差作统计检查;如果对返回内容的检查结果不超过指定结果,则断言通过,否则失败。
    • 将JTidy报告写入文件:写入JTidy报告的文件(JTidy是Tidy的一个java移植,可以将它当成一个处理HTML文件的DOM解析器)

2.8.8、MD5Hex断言

  • MD5是一种消息摘要算法,用以提供消息的完整性保护,适用于返回报文为固定长度,返回值不变,且报文内容比较大时的断言;使用比较简单,直接填入MD5值,执行服务器响应的MD5哈希并将其与给定的Md5哈希进行比较。
  • 参数说明:
    • MD5Hex:输入预期的响应MD5哈希值

2.8.9、XML断言

  • 作用:断言返回是否为xml格式,使用较少
  • 示例:第一个请求返回为json,第二个xml:

2.8.10、断言持续时间

  • 作用:判断响应时间
  • 参数说明:
    • 持续时间(毫米):超过该值,则断言失败。
  • 示例:

2.8.11、BeanShell断言

  • 作用:通过脚本灵活进行断言,主要通过Failure标识是否失败和FailureMessage标识失败信息。
  • 示例:
    • 断言成功
    • 断言失败:
相关推荐
CesareCheung1 天前
JMeter分布式压力测试
分布式·jmeter·压力测试
测试界清流1 天前
jmeter使用技巧
jmeter
春时似衿里1 天前
jmeter配置数据库连接步骤
数据库·jmeter
新知图书1 天前
JMeter的安装部署
jmeter
程序员杰哥1 天前
什么是Jmeter? Jmeter工作原理是什么?
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·测试用例
乐神嘎嘎嘎2 天前
Jmeter测试
jmeter
卓码软件测评2 天前
第三方软件测试机构【性能测试工具用LoadRunner还是JMeter?】
java·功能测试·测试工具·jmeter·性能优化
BatyTao2 天前
Jmeter执行数据库操作
数据库·jmeter
二宝哥2 天前
性能测试工具Jmeter之java.net.BindException: Address already in use
jmeter