• JMeter学习笔记-响应断言(四)


    1. 断言

    断言组件是通过获取服务器响应数据,然后根据断言规则去匹配这些响应数据;匹配到是正常现象,此时我们看不到任何提醒,如果匹配不到,即出现了异常情况,此时JMeter就会断定这个事务失败,那么我们在察看结果树中看到的请求名称是红色字体。断言组件有多个,在实际的测试过程中响应断言基本能够满足80%以上的验证问题。

    参数说明如下:

    √ 名称:可以随意设置,最好有业务意义。

    √ 注释:可以随意设置,可以为空。

    √ Apply to:应用范围,有以下4个选项。

      Main sample and sub-samples:匹配范围包括当前父取样器并覆盖至子取样器。

      Main sample only:匹配范围是当前父取样器。

      Sub-sample only:仅匹配子取样器。

      JMeter Variable:支持对JMeter变量值进行匹配。

    √ 要测试的响应字段:针对响应数据的不同部分进行匹配,包含以下7个选项:

      响应文本:响应服务器返回的文本内容,HTTP协议排除Header部分。

      Document(text):对文档内容进行匹配。

      URL样本:匹配URL链接。

      响应代码:匹配响应代码,比如HTTP协议返回代码“200”代表成功。

      响应信息:匹配响应信息,比如处理成功返回“成功”字样,或者“OK”字样。

      Response Headers:匹配响应中的头信息。

      Ignore Statues:一个请求有多个响应断言,其中第一个响应断言选中此项,当第一个响应断言失败时可以忽略此响应结果,继续进行下一个断言,如果下一个断言成功则还可以判定事务成功的。

    √ 模式匹配规则:包含以下5个选项:

      包括:响应内容包括需要匹配的内容即代表响应成功,支持正则表达式。

      匹配:响应内容要完全匹配需要匹配的内容即代表响应成功,大小写不敏感,支持正则表达式。

      Equals:响应内容要完全等于需要匹配的内容才代表响应成功,大小写敏感,需要匹配的内容是字符串非正则表达式。

      Substring:响应内容包含需要匹配的内容才代表成功,大小写敏感,需要匹配的内容是字符串非正则表达式。

      否:选择Equals与Substring时匹配是字符串,大小写敏感,有时会响应失败,此时可选择此项会降低匹配级别,类似降到“包括”“匹配”的级别,这样可以响应成功。

    √ 要测试的模式:填入你需要匹配的字符串或者正则表达式,注意要与模式匹配规则搭配好。

    2.事务

    TPS:每秒事物数。

    2.1 逻辑控制器

    逻辑控制器就是控制程序逻辑,JMeter逻辑控制器有很多种,比如循环控制器、随机控制器、模块控制器、事务控制器等。

    2.2 事务控制器

    参数说明:

    √ 名称:可以随意设置,最好有业务意义。

    √ 注释:可以随意设置,可以为空。

    √ Generate parent sample:如果事务控制器下有多个取样器(请求),勾选它,那么在“查看结果树”中我们不仅可以看到事务控制器,还可以看到每个取样器;并且事务控制器定义的事务是否成功是取决于子事务是否都成功,其中任何一个失败即代表整个事务失败。

    √ Include duration of timer and pre-post processors in generated sample:是否包括定时器、预处理和后期处理延迟的时间。

    3.集合点

    性能测试需要模拟大量用户并发,集合点能够尽量让虚拟用户同一时刻发送请求,在JMeter中集合点是通过定时器来完成的。

    3.1 定时器

    JMeter定时器用来控制取样器执行时机,有固定定时器、随机定时器等。

    3.2 同步定时器

    同步定时器用来保证我们的取样器在同一时刻向服务器发起负载,考虑到线程运行的时间快慢与场景需要,也提供了同步线程数量的设置。

    设置同步的线程数量,我们在运行测试时,每一个线程的运行时间可能不一样,想要让所有线程都集合在一起可能会等待较长时间,这种情况下我们可以先让一部分集合完毕的线程运行起来。另外,有些场景不一定要等待所有的线程集合完毕,只需要部分线程保证同步就可以了。

  • 相关阅读:
    deque源码2(deque迭代器、deque的数据结构)
    layui 使用随记
    SQL Server 跨服务器、跨版本使用复制 (2008、2012)
    SQLServer 跨服务器链接 Access数据库
    asp.net发布后其他电脑部署——未能加载文件或程序集 System.Web.Mvc, Version=2.0.0.0, Culture=neutral,
    JQuery 遍历table中的checkbox 并对行数据进行校验
    sql 动态行转列 (2005及以上版本)
    JS读取xml
    MVC 创建Controllers 发生 EntityType has no key defined error
    C# 去除数字中多于的0
  • 原文地址:https://www.cnblogs.com/mrgavin/p/8554145.html
Copyright © 2020-2023  润新知