【性能测试】Jmeter基础

文章目录

一、Jmeter的组成

Jmeter组成
【性能测试】Jmeter基础

  • 断言:适合做自动化测试,多并发不推荐用断言,性能测试不是准确性测试。

  • 配置元件:并发前,配置信息。

  • 后置处理器:并发完成之后想要做些什么,可以用来处理关联问题。

  • 前置处理器:请求发生前要干什么。

  • 逻辑控制器:当满足了什么什么,就做什么什么。

    女朋友对程序员说: “亲爱的,去超市买一个西瓜吧, 如果他们还有鸡蛋,再买20个。” 结果程序员带了21个西瓜回家。 女朋友愤怒地说:“为什么买21个西瓜回来”? 程序员答:“因为他们确实有鸡蛋”。
  • Sampler:放的是真正意义上的请求。

二、Jmeter组件介绍

  • 线程组——Jmeter实现多并发
    负载发生器,用多线程或多进程的方式来模拟用户的使用行为。Jmeter是以线程的方式来进行模拟用户的并发访问的。


  • 逻辑控制器——Jmeter实现逻辑分支控制
    用来控制测试脚本的逻辑判断,也可以理解为如何控制脚本的运行。例如:如果控制器,就是当满足什么样的条件后执行哪一步操作。


  • 配置元件——Jmeter实现配置管理
    用来提供一些配置相关的信息,如Http请求头、cookie管理,提供参数化数据。还可以进行用户自定义变量等配置,定义常量等。

    • JDBC Connection Configuration
      【性能测试】Jmeter基础
    • JDBC Request
      【性能测试】Jmeter基础

  • 前置处理器——Jmeter实现请求预处理
    用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如,用户参数,可以在实际发送请求之前来定义变量,可以在后边的实际请求中进行使用。


  • 定时器——Jemeter集合点、定时并发
    用于操作与操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手段。类似于LoadRunner里的“思考时间”。设置等待时间主要是为了模拟用户实际的使用场景。


  • Sampler——Jmeter实现各种请求的发送
    取样器,是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,Jmeter原生支持多种不同的Sampler。


  • 后置处理器:Jmeter实现关联
    (关联概念的应用器)用于对Sampler发出请求后得到的服务器响应进行处理。一般用来提取响应中的特点数据。

    • 正则表达式提取器:常用来提取token
      【性能测试】Jmeter基础
      Regular Expression:
      ():表示封装待返回的匹配字符串
      .:匹配任何字符
      +:一次或多次
      ?:不要贪婪,在找到第一个匹配项后停止
      .*:任意字符
      \d:数字字符匹配,等效于[0,9]

      Template:
      $0$:获取表达式中的全部内容 (name=tj_login class=lb>登录)
      $1$:获取表达式中匹配到的第一个内容 (lb)
      $1$$2$:表达式中匹配到的第一个内容和第三个内容的拼接(lb登录)

      Macth No.:
      正则表达式匹配数据的最终结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。当为 0 时,随机返回匹配的数据。

      Default Value:
      匹配失败时的默认值。通常用于后续的逻辑判断,可以使用一些特殊含义的,比如0,NULL,ERROR等。


  • 断言——Jmeter实现数据预判
    断言用于检查测试中得到的相应数据是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致。


  • 监听器——Jmeter实现监控数据可视化
    用来对测试数据进行处理和可视化展示的一系列组件。例如:查看结果树,聚合报告。


  • 函数助手
    Tools->Function Helper Dialog
    选择函数->填写值-> 生成函数名

    • 随机数(_Random)

    • 参数化助手(_CSVRead):以文件的形式做参数化
      【性能测试】Jmeter基础
      csv文件列号:从0开始

    • 计数器(_counter)
      【性能测试】Jmeter基础
      全局计数器(true)和线程计数器(false)区别
      【性能测试】Jmeter基础

    • 唯一数(_UUID)

上一篇:笔记:读Character-Aware Neural Language Models


下一篇:字面量, 符号引用与直接引用