zoukankan      html  css  js  c++  java
  • JMeter学习笔记(1)JMeter基础知识

    参考 JMeter必知必会系列(1) JMeter基础 - by:Foreknew

    1.1 JMeter概述

    1,简介。主要用于应用程序的功能负载测试以度量软件的性能,也可以用于其他类型的测试比如接口测试,API测试等。

    2,测试组成。

      (1)测试计划

      (2)线程组

      (3)组件:包含配置原件、定时器、前置处理器、后置处理器、断言与监听器

      (4)控制器:包括取样器、逻辑控制器与测试片段

      

      说明:

      (1)测试计划

        测试计划描述了测试在运行时执行的一系列步骤。完整的测试计划由一个或多个线程组、逻辑控制器、取样器、监听器、定时器、断言和配置元件组成。

        测试计划元素是JMeter测试树的根节点,唯一的,所有的实测元素节点都位于跟节点之下。

        

      (2)线程组

        JMeter执行测试任务是由线程组来完成的。

        可配置线程数,多线程同时执行。

        例如监听器等其他元素可直接放在TestPlan下,这样可直接作用于所有线程组。

        一个TestPlan下可以有多个线程组,可设置并行或顺行

      (3)组件

        JMeter中最基本的元素为元件,元件是JMeter中最小的功能单元,每个元件都具有某种特定的功能。比如“Respomse Assertion”断言元件,可以是先对请求或相应是否预期的验证。

        JMeter将多个功能类似或逻辑上相关的元件归为一类,称为组件。JMeter包含六大组件:配置元件、定时器、前置处理器、后置处理器、断言、监听器。

        

        ①配置元件

          与取样器密切相关,类似于配置文件;修改配置文件可影响JMeter的行为,同样通过配置元件可以新增或修改请求内容,是先对请求的自定义。

        ②定时器

          默认情况下,JMeter线程按顺序执行取样器而不会出现暂停的情况。通过将定时器添加到线程组来指定延迟。如果不加延迟,JMeter可能会在很短的时间内发送过多的请求到服务器,导致服务器负载过重而崩溃。

          就是在范围内的每个取样器前加sleep

        ③前置处理器

          前置处理器在进行取样器请求之前执行一些操作。

          如果前置处理器附加到取样器元素,那么他将在该取样器元素运行之前执行。

          前置处理器经常用于在运行之前修改取样器请求的设置,或更新未从相应文本中提取的变量。

        ④后置处理器

          后置处理器在取样器请求完成后执行一些操作。

          如果后置处理器附加到取样器元素,那么它将在该取样器元素运行之后执行。

          后处理器通常用于处理响应数据,从中提取需要的值。

        ⑤断言

          断言用于验证取样器请求或对应的响应是否返回了期望的结果。

          JMeter测试是否执行成功,结果是否预期,都可以通过添加断言来进行验证。

        ⑥监听器

          监听器可以在JMeter执行测试的过程中搜集相关的数据,并将这些数据以树、图或者报告等形式呈现出来。

          比如:“图形结果”监听器绘制响应时间的曲线图

             “查看结果图”监听器显示取样器请求和相应的详细信息等。

          此外,有些监听器还可以将搜集到的测试数据保存到文件中以供以后使用。

      (4)控制器

        ①取样器

          取样器用于构建发给服务器处理的请求。不同的协议有不同的取样器,如HTTP请求,可以选择“HTTP Request”取样器,同时还可以通过添加配置元件来自定义请求。

        ②逻辑控制器

          取样器请求默认是以先后顺序依次执行的,某些情况下满足了复杂的业务/场景需求。通过逻辑控制器可以控制JMeter发送请求的逻辑,来实现复杂的业务/场景。比如有选择性执行某些请求,循环执行请求,整体执行逻辑上有依赖关系的请求,交替执行请求等。

    3,JMeter执行顺序与作用域

      (1)执行顺序

        类似于运算符或操作符的优先级,当JMeter测试中包含多个不同的元素时,哪些元素先执行,哪些元素后执行,并不是严格按照它们出现的先后顺序依次有序执行的,而是会遵循一定的内部规则,我们称之为JMeter元素的执行顺序,一般情况下JMeter元素按照如下顺序依次执行:

    0. 配置元件
    1. 前置处理器
    2. 定时器
    3. 取样器
    4. 后置处理器
    5. 断言
    6. 监听器

    一个简单的例子:

    其中①为取样器、②为配置元件、③为定时器、④为监听器、⑤为前置处理器、⑥为后置处理器、⑦为断言。

    执行顺序为:②-->⑤-->③-->①-->⑥-->⑦-->④

      (2)作用域

        JMeter作用域就是组件对取样器有效的区域,在这个区域内组件是起作用的。

        JMeter测试树中的元素可以分为两类:层次结构与顺序结构

        层次结构的元素包括:配置元件、定时器、前置处理器、后置处理器、断言与监听器;

        顺序结构的元素包括:取样器和逻辑控制器。

        一般而言顺序结构的元素没有作用域的概念,而作用域只针对具有层次结构的组件。

        

        具有层次结构的元素的作用域规则如下:  

    1)若其父节点为取样器,则其只对该取样器起作用;
    (2)若其父节点为逻辑控制器,则会影响逻辑控制器下的所有取样器;
    (3)若其父节点为线程组,则会影响线程组下的所有取样器;
    (4)若其父节点为测试计划,则会影响测试计划下的所有取样器。

    4,一个简单的JMeter测试计划

    以访问百度为例(www.baidu.com)。

    按照如下步骤完成测试计划:
    1.Test Plan节点上右键,选择Add->Treads(users)->Thread Group
      Tread Properties项下,设置“Number of Threads(users)”为1
    2.Thread Group节点上右键,选择Add->Sampler->HTTP Request
      Web Server项下,设置“Server Name or IP”为www.baidu.com
      HTTP Request项下,设置“Path”为/
    3.HTTP Request节点上右键,选择Add->Assertions->Response Assertion
      Field to Test项下,选择“Response Code在“Patterns to Test”项下,点击“Add”,输入200
    4.继续在HTTP Request节点上右键,选择Add->Listener->View Results Tree
    5.点击“Save”快捷按钮,然后输入测试计划文件名,保存
    6.点击“Start”快捷按钮执行测试,可以在“View Results Tree”中查看测试结果。
    
    JMeter测试查看结果树显示如下

        

  • 相关阅读:
    RabbitMQ
    操作系统复习知识
    计算机网络相关知识复习
    转帖--Linux的文件检索(locate、find、which、whereis)
    go-ioutil
    使用wrk进行压测
    03x01 Java基础语法
    02x03 Hello World!!!
    02x02 环境搭建
    02x01 Java入门
  • 原文地址:https://www.cnblogs.com/hubwang/p/13275299.html
Copyright © 2011-2022 走看看