Jmeter结构体系及运行原理顺序解析

一、Jmeter 运行原理:

Jmeter 时以线程的方式来运行的(由于Jmeter 是 java 开发的所以是运行在 JVM 虚拟机上的,java 也是支持多线程的)

二、Jmeter 结构体系

1.线程组

性能测试需要模拟大量用户负载的情况,线程组就是用来完成这个任务的,在线程组中我们可以设置运行的线程数(用户数),运行时长,循环次数等

2.逻辑控制器

控制循环次数等

3.配置元件

性能测试过程中为了模拟大量用户操作我们需要做参数化,那么 Jmeter 参数化就可以通过配置元件来完成,另外 Jmeter 也提供了众多的函数(函数对话框),来帮助我们生成动态的数据

4.定时器(集合点)

为了足够真实的模拟用户负载,我们有时会需要模拟这些请求在同一时刻发送,就好像把大家集合在一条起跑线上同时起跑,那么我们就需要一个集合的功能

5.前置处理器

在脚本开发过程中,我们在请求发送前可能会做一些环境或者参数的准备工作,如对数据库操作前需要先建立数据库连接或者使用"用户参数"对用户账号密码参数化

6.取样器 smapler

用来模拟用户操作,向服务器(被测系统)发出 http 等请求

7.后置处理器

后置处理器一般放在取样器后,用来处理服务器返回的结果

8.断言(检查点)

用来验证结果是否正确,用一个预设的结果与实际结果匹配

9.监听器

  • 测试结果需要添加监听器来收集
  • 添加监听器,可以保存结果到文件,结果可以供再次分析使用
  • 展示结果,可以以表格及图形的形式展示结果,方便测试人员分析结果

三、Jmeter 元件运行顺序

  • 配置元件

    • 元件会影响其作用范围内的所有元件
  • 前置处理器
    • 元件在其作用范围内的每一个 sampler 元件之前执行
  • 定时器
    • 元件对其作用范围内的每一个 sampler 有效  
  • 取样器 sampler
  • 后置处理器
    • 元件在其作用范围内的每一个 sampler 元件之后执行
  • 断言
    • 元件对其作用范围内的每一个 sampler 元件执行后的结果执行校验
  • 监听器
    • 元件收集其作用范围的每一个 sampler元件的信息并呈现

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Jmeter工作原理及常见错误解析

    工作原理 错误解析汇总 JMeter结果树响应数据中文乱码解决办法 打开jmeter配置文件搜索encoding修改编码格式改为utf-8 Jmeter服务器反馈登陆不成功问题 导入到JMeter后,执行场景,发现登录校验成功,但后续的动作都未成功: 问题原因:在登录校验成功后,进行重定向时,Cookie被重置的: 解决办法:校验页面的HTTP请求中,有看到一个:自动重定向.跟随重定向的设置: 修改默认的"自动重定向"为"跟随重定向"重新执行场景.(改为追随重定向)

  • 基于Jmeter生成测试报告过程图解

    相对于Loadrunner,Jmeter其实也是可以有测试报告产出的,虽然一般都不用(没有Loadrunner的报告那么强大是一方面),还是顺手写一下吧,其实方法在用命令运行jmeter的时候就已经说明了 1. 准备脚本文件 2.cmd中运行一下命令 - -jmeter-n-t test.jmx(脚本的绝对路径) -lresult.jtl(自定义的名称) -e-o \tmp\result_report(测试报告的绝对路径)例:jmeter -n -t C:\Users\ZC\Desktop\te

  • Jmeter连接Mysql数据库实现过程详解

    昨天把Mysql装好了,这个躺在草稿中很久的文章也可以出炉了. 首先需要准备个Mysql jdbc驱动包,尽量保证其版本和你的数据库版本一致,至少不低于数据库版本,否则可能有问题.去官网扒一个下来吧:https://dev.mysql.com/downloads/connector/j/ 1.测试计划(Test Plan)下面把jdbc驱动包导入. 2.线程组下添加一个配置元件JDBC Connection Configuration. Variable Name:自定义参数,在JDBC Req

  • Jmeter post上传文件实现过程详解

    上周五东西都收拾好了,然后被叫住加班,直接搞到凌晨一两点,原因是另一个项目的性能出了点问题.为此我抓包写了一下主业务流的接口,涉及到文件上传,记录一下吧. 一.创建线程组,添加各类组件 这个就不用说了.由于需要登录,所以我加了一个信息头管理器,把token写在里面. 二.文件上传 有接口文档的话,那就对着文档写,没api文档,就自己抓包看了.(注意:我在线程组下面加了http信息头管理器是因为我下面的"核对数据"和"预览发送"两个步骤需要这个Content-Type

  • Jmeter设置全局变量token过程图解

    返回登录后的token使用json path Extractor插件,定位到获取后的token为变量 在登录下后置处理器下添加json path Extracto插件 根据上面获取到的token位置路径编写变量 头部添加全局token变量 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • Jmeter关联实现及参数化使用解析

    前言 一.Jmeter介绍 一款融合接口.性能都能完成的测试工具 纯JAVA开发的工具 开源工具 支持多种协议 应该是测试业界目前应用最多的工具之一 二.接口执行实现 添加HTTP取样器:右击测试计划--新建并右击线程组--添加--取样器--新增HTTP请求 在HTTP请求元件中添加相应请求信息(请求行.请求头.请求正文) 添加察看结果树:右击线程组--添加--监听器--新增察看结果树 保存刚设置的接口脚本,点击执行 三.关联实现 3.1 关联的概念 关联也称为串行传参或数据依赖,即上一个接口返

  • Jmeter命令行执行脚本如何设置动态参数

    最近看到在Linux上折腾jmeter的人越来越多,不过即使在windows上,jmeter的脚本我还是建议用命令行来执行(降低GUI模式带来的性能损耗,不过拿jmeter来做接口测试的无所谓).做性能测试的时候,有时候可能需要不停的去设置"线程组"那个界面的参数(例如线程数.循环次数.持续时间等),而每次修改-->保存-->cmd中运行总感觉麻烦,那就找一种方法可以在命令行中直接指定参数的值. 查看相关资料实操,可以发现JMeter的测试计划在运行Sampler之前会先加

  • Jmeter后置处理器实现过程及方法应用

    1.JSON Extractor Json extractor 后置处理器用在返回格式为 Json 的 HTTP 请求中,用来获取返回的 Json 中的某个值.并保存成变量供后面的请求进行调用或断言等. Variable names:保存的变量名,后面使用 ${Variable names} 引用 JSON Path expressions:上一步中调试通过的 json path 表达式 Match Numbers:匹配数字(0代表随机,1代表第一个,-1代表所有) Default Values

  • Jmeter结构体系及运行原理顺序解析

    一.Jmeter 运行原理: Jmeter 时以线程的方式来运行的(由于Jmeter 是 java 开发的所以是运行在 JVM 虚拟机上的,java 也是支持多线程的) 二.Jmeter 结构体系 1.线程组 性能测试需要模拟大量用户负载的情况,线程组就是用来完成这个任务的,在线程组中我们可以设置运行的线程数(用户数),运行时长,循环次数等 2.逻辑控制器 控制循环次数等 3.配置元件 性能测试过程中为了模拟大量用户操作我们需要做参数化,那么 Jmeter 参数化就可以通过配置元件来完成,另外

  • Python程序运行原理图文解析

    本文研究的主要是Python程序运行原理,具体介绍如下. 编译型语言(C语言为例) 动态型语言 一个程序是如何运行起来的?比如下面的代码 #othermodule.py def add(a, b): return a + b #mainrun.py import othermodule a = ['xiaoke', 1, 'python'] a = 'xiaoke string' def func(): a = -5 b = 257 print(a + b) print(a) if __name

  • JSP程序运行原理、文档结构及简单输入输出实例分析

    本文实例讲述了JSP程序运行原理.文档结构及简单输入输出.分享给大家供大家参考.具体如下: 目标: 掌握Web应用的文档结构: 掌握JSP的运行原理: 掌握JSP的简单输入和输出. 主要内容: 通过一个简单实例介绍Web应用的文档结构和运行原理: 通过一个简单的注册功能介绍基本的输入输出. 实现内容:客户端验证. 1. 文档结构 每个应用都有一个根目录,例如ch2:理论上可以放在任何地方,但是需要配置,简单的做法,直接放在了webapps这个目录下,在这个目录的应用会被自动加载. 在根目录下会有

  • Jmeter线程组传参原理解析

    这篇文章主要介绍了jmeter线程组传参原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 背景介绍: 使用jmeter做登录和搜索接口的测试: 登录接口请求头为:Content-Type: application/x-www-form-urlencoded; charset=UTF-8 搜索接口请求头为:Content-Type: application/json; charset=UTF-8 同时,搜索的请求头中需要用到登录接口返回值中

  • Java线程状态运行原理解析

    这篇文章主要介绍了Java线程状态运行原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码实例如下 package com.fgy.demo05; /** * 等待唤醒案例:线程之间通信 * 注意: * 同步使用的锁对象必须唯一 * 只有锁对象才能调用wait和notify()/notifyAll()方法 */ public class Demo1WaitAndNotify { public static void main(Strin

  • 路由器基本原理和结构体系

    编者按:从本期开始的华为企业网络技术广场,以其全线路由器与交换机产品为基础,将展示华为完整的企业网络解决方案.基于自主研发的技术与产品,华为可以满足不同用户构建企业网络的需求. 路由器基本原理和结构体系 路由器在IP网络中的位置 整个IP网络由许多子网络构成,各子网络又由许多主机组成.子网内部的主机通信,由链路协议直接进行:子网之间的主机通信,要通过路由器来完成.路由器是多个子网的成员,在它的内部有一张表示Net ID与下一跳端口对应关系的路由表.通信起点主机发出IP包被路由器接收后,路由器查路

  • hashset去除重复值原理实例解析

    Java中的set是一个不包含重复元素的集合,确切地说,是不包含e1.equals(e2)的元素对.Set中允许添加null.Set不能保证集合里元素的顺序. 在往set中添加元素时,如果指定元素不存在,则添加成功.也就是说,如果set中不存在(e==null?e1==null:e.queals(e1))的元素e1,则e1能添加到set中. 下面以set的一个实现类HashSet为例,简单介绍一下set不重复实现的原理: package com.darren.test.overide; publ

  • 深入理解以DEBUG方式线程的底层运行原理

    目录 一.Java 运行时数据区域 二.用 DEBUG 的方式看线程运行原理 三.线程运行原理详细图解 四.用 DEBUG 的方式看多线程运行原理 一.Java 运行时数据区域 友情提示:这部分内容可能大部分同学都有一定的了解了,可以跳过直接进入下一小节哈. Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途,以及创建和销毁的时间. 全文我们都将以 JDK 7 的运行时数据区域为例: 先简单解释下线程共享和线程私有是啥意思. 所谓线

  • vue.js diff算法原理详细解析

    目录 diff算法的概念 虚拟Dom h函数 diff对比规则 patch patchVnode updateChildren 总结 diff算法的概念 diff算法可以看作是一种对比算法,对比的对象是新旧虚拟Dom.顾名思义,diff算法可以找到新旧虚拟Dom之间的差异,但diff算法中其实并不是只有对比虚拟Dom,还有根据对比后的结果更新真实Dom. 虚拟Dom 上面的概念我们提到了虚拟Dom,相信大家对这个名词并不陌生,下面为大家解释一下虚拟Dom的概念,以及diff算法中为什么要对比虚拟

  • golang切片原理详细解析

    目录 切片的解析 切片的初始化 字面量初始化 make初始化 切片的截取 切片的复制 切片的扩容 总结 切片的解析 当我们的代码敲下[]时,便会被go编译器解析为抽象语法树上的切片节点, 被初始化为切片表达式SliceType: // go/src/cmd/compile/internal/syntax/parser.go // TypeSpec = identifier [ TypeParams ] [ "=" ] Type . func (p *parser) typeDecl(g

随机推荐