初识 Jmeter

一、  提到测试软件,自然要跟 LoadRunner 比较着学习

 

 

二、jmeter 安装目录有哪些内容:

 

 

 

三、 Jmeter 功能概要

  1、Jmeter 工具组成部分

  资源生成器:用于生成测试过程中 服务器、 负载机的资源代码。(LR 中的 VuGen)

  用户运行器:通常是一个脚本运行引擎, 提供脚本要求模拟指定用户行为。 (LR中的 Controller)

  报表生成器:根据测试中实时地数据生成报告,提供可视化的数据显示方式。(LR中的 Analysis)

  TestPlan(测试计划): 用来描述一个性能测试,包含与本次性能测试所有相关的功能。也就是说本地性能测试的所有内容是基于一个计划的 (相当于LR的一个测试场景)

 

  

  2. Threads(Users) 线程 用户

    setup thread group  用于执行预测试操作。 类似 LR 的 init()

    teardown thread group  用于执行测试后的动作。 类似LR的end()

    thread group(线程组)我们通常添加运行的线程。 可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。 类似 LR()的 action()

 

  3. 测试片段  TestFragment

    测试片段元素是控制器上的一种特殊线程组,它在测试树上与线程组处于一个层级。他与线程有所不同,因为他不被执行,除非它是一个控制器模块或者是被控制器所引用时才会被执行

 

  以下是线程组的 8 类可执行元件:

 

  4. 配置元件(config Element)

    配置元件(config Element)用于提供对静态数据配置的支持。如 CSV Data Set config 可以将本地数据文件形成数据池(Data Pool)

 

  5.定时器(Timer)

    定时器(Timer)用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端 QPS 的手段。 类似 LoadRunner 里面的“思考时间” 。Jmeter 定义了 Bean Shell Timer 、Constant Throughput Timer、固定定时器等不同的Timer.

 

  6.前置处理器(Per Processors)

    用于在实际的请求发出之前对即将发出的请求进行特殊处理。 例如, HTTP URL 重写修复符则可以实现 URL 重写, 挡 URL 中有 sessionID 一类的 session 信息时,可以通过该处理器填充发出请求的实际的 sessionID

 

  7.后置处理器 (Post Processors)

    用于对Sampler 发出请求后得到的 服务器响应 进行处理。一般用来提取响应中的特殊数据(类似 LR 测试工具中的关联概念)

 

  8.断言(Assertions)

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

   9.监听器 (Listener)

 

    是用来对测试结果数据 进行处理和可视化展示的一系列元件。 图形结果、查看结果树、聚合报告。都是我们经常用到的元件。

    注意:这个监听器不是用来监听系统资源的元件。

  10.取样器(sample)

    取样器(sample)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,Jmeter 原生支持多种不同的  sampler,如 HTTP Request Sampler、FTP Request Sampler、 TCP Request Sampler

JDBS Request Sampler等, 每一种不同类型的 sampler可以根据设置的参数向服务器发出不同类型的请求

   11 逻辑控制器

 

    逻辑控制器,包括两类元件,

    一类是用于控制 test plan 中 sampler 节点发送请求的逻辑顺序的控制器,常用的有:  如果(If)控制器、switch Controller 、Runtimer Controller、循环控制器。

    另一类是用来组织可控制 sampler 节点的,如: 事务控制器、 吞吐量控制器

 

 

Jmeter 元件作用于 和 执行顺序

  1.元件作用于

    8 类可执行的元件(测试计划 与线程组不属于 可执行元件),这些元件中,取样器(sampler) 是典型的不与其他元件发生交互作用的元件, 逻辑控制器只对其子节点的取样器有效,而其他元件(配置元件、定时器、断言、  监听器)需要与取样器(sampler)等元件交互

  在 Jmeter中,元件的作用域是靠测试计划的树形结构中元件的父子关系来确定的,作用域的原则是:

       取样器(sampler) 元件不和其他元件相互作用,因此不存在作用域的问题.

      逻辑控制器(Logic Controller)元件只对其子节点中的取样器逻辑控制器作用

    除 取样器 和 逻辑控制器 元件外,其他6类元件,如果是某个取样器的子节点,则该元件对其父子节点起作用。如果其父节点不是取样器,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点)

  2. 元件的执行顺序

 

    

 

     关于执行顺序,有两点注意:

 

      前置处理器,后置处理器 和 断言 等元件功能对 取样器 作用,因此,如果在他们的作用域内没有任何取样器,则不会被执行

      如果在同一个作用域范围内有多个同一类型的元件,则这些元件按照它们在测试计划中的上下顺序一次执行。

 

posted @ 2020-02-17 18:03  gupanpan  阅读(82)  评论(0)    收藏  举报