zoukankan      html  css  js  c++  java
  • jmeter断言

    断言:验证服务器返回的数据是否满足我们的要求
    即LR中的检查点,是对响应结果做一个判断,我们在请求一个网址时会有返回数据,那怎么判断请求是正确的呢,就需要对某一字段或内容进行匹配,如果跟预想的一样就认为请求是正确的,否则是失败的

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

    针对何时使用JMeter断言,下面给出了一些建议:
    (1)请求使用的是来自“CSV数据集配置”的数据
    (2)使用的HTTP的POST、PUT、PATCH方法
    (3)登录和注销后
    (4)当2xx status codes同时在正面测试和负面测试中返回
    (5)在API性能测试中
    (6)在功能测试中
    (7)有SOAP / XML-RPC请求
    需要注意:断言消耗内存,谨慎使用

    断言类型

    如果没有断言只能人工对比对接口返回的数据,接口很多时,比对数据的过程就会非常耗时,而且也容易出错,可以通过Fiddler抓包http请求来设置

    1、响应断言

    在使用该断言时,需要熟练使用正则表达式,如果请求中使用了变量,响应内容里写${variable}

    抓包查看Resopnse.png

    允许用户通过添加模式字符串来比较验证服务器返回的响应,Jmeter提供了很多种匹配规则,断言中设置要测试的模式,实际响应的内容与设计的字符串进行匹配,如果返回的内容包含了字符串,则认为该次测试通过,否则就是失败(模式中的内容也可以参数化)

    对断言做判断,只需添加【监听器--断言结果】
    1)如果断言成功,显示的是HTTP请求名称
    2)若失败,则会显示请求名称和失败的原因(“Test failed XXXXXX”内容)

    PS:一个Sampler可以添加多个断言,根据你的检查需求来添加相应的断言,当Sampler下所有的断言都通过了,才算成功 比如在测接口时,返回值是True,只能说明接口是通的,还得继续验证返回的data值是否正确

    • Apply to:一般情况下,使用默认的就行,如果一次发送多个请求(Ajax请求,GET或POST),就需要根据实际断言需要选择其他选项了。
    • 要测试的响应字段:根据实际需要选择
      • 响应文本
        服务器响应文本,一般情况下,我们都是勾选改选项,用于验证服务器返回值。
      • Document(text)
        通过Apache Tika从各种的文档中提取的文本进行验证,包括响应文本,pdf、word等等各种格式。jmeter会用Apache Tika去解析服务器响应内容,耗内存、也耗时间,解析易失败,尽量少用或不用。多用响应文本方式来进行断言验证
      • URL样本
        对请求的url进行断言,如果请求没有重定向(302),那么该url即为请求的url;如果有重定向(切跟随重定向),那么url则包含了请求url和重定向url。
      • 响应代码
        即http响应代码,例如200,404等等,需要注意: 由于jmeter默认情况下认为4xx,5xx时该请求失败,所以在断言这类响应代码时,需要同时勾选Ingore Status,才能正常去做断言。
      • 响应信息
        即响应代码对应的信息,例如OK, Not Found等等这类的。
      • Ingore Status 请参见4响应代码的使用说明。

    如下常见类似是响应信息,即http响应头信息,主要用于断言当响应头带有唯一或特定意义

          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: 260Connection: close
          Location: http://www.baidu.com/404.html
          Response Headers
    
    • 模式匹配规则:支持正则表达式
      • 包括:返回结果包括指定的内容,当返回值固定时,可以使用返回值做断言,效果和equals相同
      • 匹配:用正则表达式必须能匹配整个返回值,而不是返回值的一部分
      • Equals:返回结果与你指定结果完全一致
      • Substring:返回结果是指定结果的字串,不支持正则字符串
      • 否:相当于取反,即如果上述断言结果为true,勾选“否”选项后,则最终断言结果为false
    • 要测试的模式:要匹配的响应值(字符串或正则表达式),即接口测试结果的期望值或者其他期望值

    转自:https://www.jianshu.com/p/9d6752c8b565

  • 相关阅读:
    ORACLE学习记录
    Oracle拆分字符串函数
    spring3.2.5学习(二)——IoC注解配置
    spring3.2.5学习(一)——spring环境配置以及IOC简介
    使用SQL脚本将表字段生成实体类属性VO
    JAVA多线程笔试题
    初步接触LVS
    linux中shell,awk,sed截取字符串方法总结
    调用sort段错误问题
    开源软件许可协议简介
  • 原文地址:https://www.cnblogs.com/WYY-Lang/p/14083902.html
Copyright © 2011-2022 走看看