zoukankan      html  css  js  c++  java
  • JMeter响应断言详解

      响应断言 :对服务器的响应进行断言校验

      (1)应用范围: 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   

      关于main sample and sub sample,有兴趣的可以看看这个帖子   

      http://stackoverflow.com/questions/28214936/jmeter-in-which-scenario-i-can-use-main-sample-or-sub-sample-or-both-for-te   

    (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   

      HTTP/1.1 200 Ok   

      HTTP/1.1 302 Found   

      Response Header : 响应头信息,例如   

      Server: Tengine   

      Date: Thu, 12 Mar 2015 09:43:52 GMT   

      Content-Type: text/html   

      Content-Length: 260   

      Connection: close   

      Location: http://www.baidu.com/404.html   

    (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   

      当返回值为:{"msg":"channel invalid."} , 断言1 3是false, 断言2才是ok的。   

      原因是,断言1 只能用于equals,而断言3 只匹配了返回值部分,而不是全部匹配。   

      Equals : 返回结果与你指定断言完全一致   

      SubString:与 “包括”差不多,都是指返回结果包括你指定的内容,但是subString不支持正则字符串   

      例如:   

      响应字段为: 响应文本   

      模式匹配规则:匹配   

      断言为:1、invalid    2、[a-z]+   

      当返回值为:{"msg":"channel invalid."} , 断言1返回true, 但断言2返回false   

      否:就相当于取反。 如果上面断言结果为true,勾选“否”后,最终断言结果为false。如果上面断言结果为false,勾选“否”后,则最终断言结果为 true。

  • 相关阅读:
    Attach Files to Objects 将文件附加到对象
    Provide Several View Variants for End-Users 为最终用户提供多个视图变体
    Audit Object Changes 审核对象更改
    Toggle the WinForms Ribbon Interface 切换 WinForms 功能区界面
    Change Style of Navigation Items 更改导航项的样式
    Apply Grouping to List View Data 将分组应用于列表视图数据
    Choose the WinForms UI Type 选择 WinForms UI 类型
    Filter List Views 筛选器列表视图
    Make a List View Editable 使列表视图可编辑
    Add a Preview to a List View将预览添加到列表视图
  • 原文地址:https://www.cnblogs.com/sunjump/p/8133840.html
Copyright © 2011-2022 走看看