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元件的信息并呈现
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
基于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设置全局变量token过程图解
返回登录后的token使用json path Extractor插件,定位到获取后的token为变量 在登录下后置处理器下添加json path Extracto插件 根据上面获取到的token位置路径编写变量 头部添加全局token变量 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.
-
Jmeter工作原理及常见错误解析
工作原理 错误解析汇总 JMeter结果树响应数据中文乱码解决办法 打开jmeter配置文件搜索encoding修改编码格式改为utf-8 Jmeter服务器反馈登陆不成功问题 导入到JMeter后,执行场景,发现登录校验成功,但后续的动作都未成功: 问题原因:在登录校验成功后,进行重定向时,Cookie被重置的: 解决办法:校验页面的HTTP请求中,有看到一个:自动重定向.跟随重定向的设置: 修改默认的"自动重定向"为"跟随重定向"重新执行场景.(改为追随重定向)
-
Jmeter post上传文件实现过程详解
上周五东西都收拾好了,然后被叫住加班,直接搞到凌晨一两点,原因是另一个项目的性能出了点问题.为此我抓包写了一下主业务流的接口,涉及到文件上传,记录一下吧. 一.创建线程组,添加各类组件 这个就不用说了.由于需要登录,所以我加了一个信息头管理器,把token写在里面. 二.文件上传 有接口文档的话,那就对着文档写,没api文档,就自己抓包看了.(注意:我在线程组下面加了http信息头管理器是因为我下面的"核对数据"和"预览发送"两个步骤需要这个Content-Type
-
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命令行执行脚本如何设置动态参数
最近看到在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介绍 一款融合接口.性能都能完成的测试工具 纯JAVA开发的工具 开源工具 支持多种协议 应该是测试业界目前应用最多的工具之一 二.接口执行实现 添加HTTP取样器:右击测试计划--新建并右击线程组--添加--取样器--新增HTTP请求 在HTTP请求元件中添加相应请求信息(请求行.请求头.请求正文) 添加察看结果树:右击线程组--添加--监听器--新增察看结果树 保存刚设置的接口脚本,点击执行 三.关联实现 3.1 关联的概念 关联也称为串行传参或数据依赖,即上一个接口返
-
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
随机推荐
- Linux编译安装vsftpd服务器(本地用户验证方式)
- python 中的divmod数字处理函数浅析
- JS简单的轮播的图片滚动实例
- JQery jstree 大数据量问题解决方法
- 修改destoon会员公司的伪静态中的com目录的方法
- ThinkPHP下表单令牌错误与解决方法分析
- JS获取IE版本号与HTML设置IE文档模式的方法
- jsp操作MySQL实现查询/插入/删除功能示例
- 详解docker国内镜像拉取和镜像加速registry-mirrors配置修改
- PHP反射类ReflectionClass和ReflectionObject的使用方法
- 提高jQuery性能优化的技巧
- js的for in循环和java里foreach循环的区别分析
- 用户 jb51net 登录失败。原因: 该帐户的密码必须更改
- sql server递归子节点、父节点sql查询表结构的实例
- 批量执行sql语句的方法
- jQuery Mobile和HTML5开发App推广注册页
- java反射之方法反射的基本操作方法
- 讲解Java设计模式编程中的建造者模式与原型模式
- JFinal实现伪静态的方法
- MySQL 8.0.13设置日期为0000-00-00 00:00:00时出现的问题解决