参考《全栈性能测试修炼宝典JMeter实战》第六章 JMeter 元件详解中第六节断言
断言用来对服务器的响应数据做验证,常用的断言是响应断言,支持正则表达式。


一、BeanShell Assertion
  用来访问JMeter的属性:
    log对象,可以利用此对象写日志
    SampleResult对象,从中获取响应数据、响应码等信息,只读
    Respose对象,获取响应数据,只读
    Failure,用来设置断言成功与否,Boolean类型
    FailureMessage,用来设置失败信息
    ResponseData对象,湖区响应数据
    ResponseCode,响应码
    ResponseMessage,响应信息
    ResponseHeaders,响应投信息
    RequestHeaders,请求头信息
    SampleLabel,取样器Label信息
    SamplerData,发送给服务器的数据
    Ctx (JMeterContext),JMeter上下文信息,从中可以获取线程数、线程号等信息
    Vars(JMeterVariables),获取JMeter中定义的变量,或者设置变量
   (JMeterPoperties),获取JMeter中的属性,或者设置属性
  其他几个方法:
    getResponseDataAsString:从SampleResult获取响应数据
    getResponseCode:从SampleResult获取响应消息
    getResponseMessage:从SampleResult获取响应消息


二、Compare Assertion
     比较断言,用来比较两次取样结果,支持正则表达式过滤。一般不建议使用,因为会消耗较多的资源,常用来调试。Compare Assertion与Cpmparison    Assertion Visualizer结合使用,前者进行设置,后者进行断言结果显示。


三、HTML Assertion
  HTML断言可以对HTML代码内容进行断言,支持XHTML和XML。
  在HTML断言中利用JTidy来解析HTML代码,JTidy是HTML Tidy的Java实现版本,提供了HTML的语法检查器。JTidy可以用来清除格式不好喝不对的HTML,还提供对整个HTML的DOM分析。


四、Size Assertion
  验证响应数据Size大小,主要参数说明:
    Apply to:断言应用范围
    Main sample and sub-samples:断言部分包括主Sample与子Sample
    Main sample only:断言部分仅仅是主Sample
    Sub-samples only:断言部分仅仅是子sample
    JMeter Variable:断言部分是JMeter变量
    Response Size Field to Test:那部分响应域参与断言
    Full Response:全部响应信息
    Response Headers:响应头信息,比如Http协议的头信息
    Response Body:响应主体内容部分,比如http协议HTML代码中的Body部分
    响应代码:响应代码
    响应信息:响应信息
    Size to Assert:断言时Size的阈值设置


五、XML Schema Assertion
  XML Schema,可扩展标记语言架构师以可扩展标记语言(标准通用标记语言的子集)为基础的,它用于可替代文档类型定义,一份XML schema文件描述了可扩展标记语言文档的结构。作用是定义一份XML文档的合法组建群,就像文档类型定义的作用一样,一份XML Schema定义:
    可以出现在文档里的元素
    可以出现在文档里的属性
    哪些元素是子元素
    子元素的顺序
    子元素的数量
    一个元素是否能包含文本,或应该是空的
    元素和属性的数据类型
    元素和属性的默认值和固定值


六、XML Assertion
  用来验证响应数据是正确的XML格式。


七、XPath Assertion
  对返回的XML格式信息进行断言


八、Duration Assertion
  持续时间断言,验证取样器运行测试消耗掉的时间,可以针对取样器与子取样器,时间单位是毫秒


九、响应断言
  判断返回内容中内容

十、其他断言元件
  SMIME Assertion
    对加密和签名的邮件进行断言
 

  MD5Hex
    对返回的MD5结果进行断言,使用简单,直接跳入MD5值

  JSR223断言
    规范请求,是指向JCP提出心中一个标准化技术规范的正式请求