Jmeter系统学习

news2024/11/18 11:28:13

Jmeter体系结构

Jmeter概念:

元件:每一个功能,例如Http请求,响应断言等。

组件:每一类元件的组合,例如采样器,配置元件。

Jmeter体系可以分为3个维度:

  • X1--X5:负载模拟的过程。
  • Y1:负载模拟过程。Y2:负载模拟结果验证
  • Z:负载结果收集。

JMeter基本原理是建立一个线程池, 多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,通过监听器来记录测试结果。 如果取样器中有参数化的需求,可以通过X2 中的配置元件或者前置处理器来完成。 如果有关联需求, 可以通过后置处理器来完成。 如果我们想要设置运行场景, 比如模拟 多少用户, 运行多长时间, 就设置线程组。如果我们想要模拟并发场景, 可以利用定时器来设置:如果我们想要控制业务的执行逻辑,比如登录只运行一次, 我们可以用控制器来完成。

各组件介绍

取样器:模拟用户操作,向服务器发送请求。

断言:用来验证结构是否正确。

监听器:模拟操作结果收集。

前置处理器:请求发送前,做一些环境或者参数准备的工作,可以使用前置处理器。

配置元件:请求配置元件。

后置处理器:用于处理请求处理的结果。

控制器:用于控制处理逻辑。

定时器:

线程组:模拟用户,一线程一用户。

Test Fragment·:辅助组件,几乎可以放置任何元件。它一般不会运行。作用:1、脚本开发过程中备份元件,2:其下的元件可以被模块控制器调用,用来模块化请求。

Jmeter测试计划要素

脚本中测试计划(TestPlan)仅能有一个。

测试计划必须要有一个线程组。

至少要有一个取样器。

至少要有一个监听器。

Jmeter脚本开发

Jmeter Http协议录制

  • Http代理方式录制
  • Badboy方式录制

在同一作用域名范围内(不考虑逻辑控制器),测试计划中的元件按照如下顺序执行。
(1)配置元件(config elements )
(2)前置处理程序(Per-processors)
(3)定时器(timers )
(4)取样器(Sampler)
(5)后置处理程序(Post-processors) (除非Sampler 得到的返回结果为空)
(6)断言(Assertions)(除非Sampler 得到的返回结果为空)
(7)监听器(Listeners)(除非Sampler 得到的返回结果为空)

Jmeter元件

组件元件功能参数
SamperFTP Request
HTTP Request
JDBC Request
Java Request
LDAP Request
LDAP Extended Request
Access Log Sampler
BeanShell Sampler
JSR223 Sampler
TCP Sampler
JMS Publisher
JMS Subscriber
JMS Point-to-Point
JUnit Request
Mail Reader Sampler
Flow Control Action (was: Test Action )
SMTP Sampler
OS Process Sampler
MongoDB Script (DEPRECATED)
Bolt Request
Logic ControllerSimple Controller指定一个控制单元,不改变元件的执行顺序
Loop Controller控制器在每个线程中运行次数。Loop Count:循环次数。-1等同forever
Once Only Controller仅一次控制器,此控制器在每个线程中只会运行一次,无论多少个循环
Interleave Controller下属元件交互执行,是全部执行次数交替,不是每次循环。ignore sub-controller blocks:无视子控制器,每个元件作为一个独立执行节点
Interleave across threads:交替控制器下的请求将应用至所有线程和循环中迭代
Random Controller随机选择一个元件执行。ignore sub-controller blocks:无视子控制器,每个元件作为一个独立执行节点
Random Order Controller随机选择一个元件执行。但是会选择未执行的节点。
Throughput Controller控制其下的子节点的执行次数,无吞吐量控制功能。Percent executions:百分比计算执行次数。以整个执行计划作为基数。不受Per User影响。
Total executions:执行多少次后终止。
Per User:是否每个用户都执行total 次。
Runtime Controller控制子元件的执行时长(秒)。0则不执行。
If Controller满足表达式,则执行。Evaluate for all children:是否针对子节点。
While Controller下属元件一直运行到表达式为false。下标可以通过变量__jm__<Name of your element>__idx获取。Condition:条件。
blank:有取样器失败则退出。
LAST:最后一个取样器失败,则退出。
variable/function
Switch Controller指定下属元件执行。匹配指定序号和名称(name),则执行。序号超出范围,则0号执行,名称不匹配,则default执行,无default,则控制器不执行。Switch Value:下属元件序号,从0开始。也可以是元件name。
ForEach Controller每个取样器执行N次。输入变量为null,则不执行此次循环。下标可以通过变量__jm__<Name of your element>__idx获取Input variable prefix:输入变量前缀。
Start index for loop:开始下标,第一个元素下标为index + 1。
End index for loop:结束下标。(包含在内)
Output variable:输出参数名称
数字前是否加前缀"_".
Module Controller
Include Controller用来导入外部测试片段。测试计划不能有线程组,只能有一个简单控制器和其下元件。
Transaction Controller事务控制器,用于统计整个流程。
Recording Controller录制脚本放置此节点下。
Critical Section Controller关键部分控制器,用于核心部分的控制,确保其子节点下的取样器或控制器在一个线程中仅会执行一次
ListenersSample Result Save Configuration
Graph Results
Assertion Results
View Results Tree
Aggregate Report
View Results in Table
Simple Data Writer
Aggregate Graph
Response Time Graph
Mailer Visualizer
BeanShell Listener
Summary Report
Save Responses to a file
JSR223 Listener
Generate Summary Results
Comparison Assertion Visualizer
Backend Listener
Configuration
Elements
CSV Data Set Config
FTP Request Defaults
DNS Cache Manager
HTTP Authorization Manager
HTTP Cache Manager
HTTP Cookie Manager
HTTP Request Defaults多个HTTP请求的默认值
HTTP Header Manager
Java Request Defaults
JDBC Connection Configuration
Keystore Configuration
Login Config Element
LDAP Request Defaults
LDAP Extended Request Defaults
TCP Sampler Config
User Defined Variables
Random Variable生成随机数字
Counter记录迭代次数
Simple Config Element
MongoDB Source Config (DEPRECATED)
Bolt Connection Configuration
AssertionsResponse Assertion
Duration Assertion
Size Assertion
XML Assertion
BeanShell Assertion
MD5Hex Assertion
HTML Assertion
XPath Assertion
XPath2 Assertion
XML Schema Assertion
JSR223 Assertion
Compare Assertion
SMIME Assertion
JSON Assertion
JSON JMESPath Assertion
TimersConstant Timer固定时间定时器
Gaussian Random Timer高斯随机数,可用于模拟思考时间
Uniform Random Timer让线程暂停一个随机时间。
Constant Throughput Timer用于平稳吞吐量。
Precise Throughput Timer
Synchronizing Timer同步定时。用于并发同时执行
BeanShell Timer
JSR223 Timer
Poisson Random Timer
Pre ProcessorsHTML Link Parser
HTTP URL Re-writing Modifier
User Parameters
BeanShell PreProcessor
JSR223 PreProcessor
JDBC PreProcessor
RegEx User Parameters
Sample Timeout
Post-ProcessorsRegular Expression Extractor
CSS Selector Extractor (was: CSS/JQuery Extractor )
XPath2 Extractor
XPath Extractor
JSON JMESPath Extractor
Result Status Action Handler
BeanShell PostProcessor
JSR223 PostProcessor
JDBC PostProcessor
JSON Extractor
Boundary Extractor
Threads
(Users)
Thread Group
tearDown Thread Group
setUp Thread Group
Test Plan
No-Test ElementsHTTP(S) Test Script Recorder (was: HTTP Proxy Server )
HTTP Mirror Server
Property Display

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/129801.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(二十八)Vue之组件化编码流程

文章目录组件化编码流程拆分静态组件实现动态组件实现交互实现添加实现勾选实现删除实现全选与全不选实现清除已完成任务TodoList案例小细节Vue学习目录上一篇&#xff1a;&#xff08;二十七&#xff09;Vue组件的样式 先看一个需求&#xff1a;TodoList案例 功能&#xff1a…

c# http请求使用multipart/form-data 方式上传文件及其他参数

这次的需求是请求java那边的一个excel批量上传的接口。但是他们的接口要求是这样的 于是自己写了个方法&#xff1a; 调用&#xff1a; 控制器层 var file this.HttpContext.Request.Files[0];//获取前端传来的文件 var fileName file.FileName; //注意&…

控制RK3568的GPIO

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、设备树中是如何描述引脚的&#xff1f;1.pinctrl子系统2.gpio子系统二、使用步骤总结前言 RK3568的引脚资源还是相当多的&#xff0c;一共有5组GPIO&#x…

数图互通高校房产管理——房屋修缮管理

数图互通房产管理系统在这方面做得比较全面&#xff1b; 实现房屋修缮改造、装修维护、零星维修线上管理&#xff0c;建立机制规范管理&#xff0c;避免私自改扩建。 建筑物立项审批全流程资料和过程管理&#xff0c;建筑物修建施工、维修审批流程管理。整套系统包含了建筑物从…

链下签名实现

什么是签名 比如我们在使用 opensea 的时候&#xff0c;经常会提示我们进行数字签名&#xff0c;如下图&#xff1a; 用户进行 sign 确认&#xff0c;即用自己的私钥对一段数据进行签名&#xff0c;得到一个 signature&#xff0c;其他人可以使用你私钥对应的公钥&#xff0c…

推荐5款Windows桌面效率工具

今天我想分享一些自己比较喜欢的桌面端软件&#xff0c;还请大家包涵指正。如果你曾搜索过 Windows 效率工具推荐&#xff0c;对下文的软件或许有所了解。不过为了凑字数&#xff0c;我还是会再介绍一遍。 1.文件定位——Listary Listary 是我使用频率最高的软件之一&#xf…

Java重点源码回顾——HashMap1.8

1. 概述 在之前的文章中&#xff0c;我们介绍了HashMap1.7的源码&#xff0c;今天我们来看下HashMap1.8的源码。HashMap1.8相比于1.7最大的改变就是改变了1.7中采用数组链表的方式存储键值对&#xff0c;转而由数组链表红黑树的方式来存储键值对。HashMap1.8的底层结构如下图所…

RPC 好,还是 RESTful 好

OSI网络七层模型 RPC服务 RPC架构 同步调用与异步调用 流行的RPC框架 HTTP服务 总之 RPC主要是基于TCP/IP协议的&#xff0c;而HTTP服务主要是基于HTTP协议的&#xff0c;我们都知道HTTP协议是在传输层协议TCP之上的&#xff0c;所以效率来看的话&#xff0c;RPC当然是要更…

【python】py课后作业程序题5「PTA」

py字典合集7-1 Python猜数游戏7-2 jmu-python-分段函数7-3 循环求e的近似值&#xff08;高教社&#xff0c;《Python编程基础及应用》习题6-7&#xff09;7-4 jmu-python-判断是否构成三角形7-5 jmu-python-输入输出-计算字符串中的数7-6 jmu-python-随机生成密码7-7 jmu-pytho…

vscode使用CMake Tool插件构建第一个CMake的helloworld工程

vscode使用CMake Tool插件构建第一个CMake的helloworld工程一、linux环境准备1.1 CMake安装1.2 gcc/g的安装二、vscode 插件安装2.1 C扩展2.2 CMake Tool三、使用CMake构建第一个工程3.1 创建工程目录3.2 使用CMake Tool创建第一个Project3.3 Configure 第一个project四、构建工…

Java中序列化接口Serializable的serialVersionUID的作用

原文网址&#xff1a;Java中序列化接口Serializable的serialVersionUID的作用_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Java中序列化接口Serializable的serialVersionUID的作用。 序列化与反序列化 含义 序列化&#xff1a;将java对象转化为字节序列。反序列化&#xff1a…

【mysql】索引的基本使用

文章目录1. 索引的声明与使用1.1 索引的分类1.2 创建索引1.2.1 创建表的时候创建索引&#xff08;隐式&#xff09;1.2.2 在已经存在的表上创建索引&#xff08;显式&#xff09;1、创建普通索引2、创建唯一索引3、主键索引4、创建单列索引5、创建联合索引6、创建全文索引7、创…

33、基于STM32的计时器(Proteus仿真+程序)

编号&#xff1a;33 基于STM32的计时器 功能描述&#xff1a; 使用proteus 软件设计一个基于STM32的家用计时器&#xff0c;该系统包含多个按键、LED运行灯和时间显示(时间显示是LCD1602) 其功能如下: 1、利用按键实现设置计时时间功能&#xff0c;时间格式:AB:CD:E 例如01:5…

【攻防世界】江苏工匠杯 Web easyphp

打开页面是一个代码审计的题目&#xff0c;是我不太熟悉的东西&#xff0c;但是没关系&#xff0c;我们可以学是吧&#xff0c;以下为源代码 <?php highlight_file(__FILE__); $key1 0; $key2 0;$a $_GET[a]; $b $_GET[b];if(isset($a) && intval($a) > 60…

【ES实战】ES集群节点迁移与缩容

ES集群节点迁移与缩容 文章目录ES集群节点迁移与缩容master节点迁移场景一场景二场景三data节点迁移数据迁移操作1、查询集群原来的配置2、清空节点数据3、检查是否排空数据迁移原则缩容前置检查项master节点迁移 场景一 集群上的master部署情况&#xff0c;一台机器上同时部…

智能化IT运维平台建设方案,基于智和信通运维体系的高敏捷二次开发

随着企业信息进程不断加速&#xff0c;运维人员需要面对越来越复杂的业务和越来越多样化的用户需求&#xff0c;不断扩展的应用需要越来越合理的模式、越来越智能的工具来保障运维能灵活便捷、安全稳定地开展。企业网络规模的不断扩大&#xff0c;从初期的几台服务器发展到庞大…

Python3 | vscode配置环境

vscode版本&#xff1a;1.74.2python版本&#xff1a;3.9.0win10系统 准备工作&#xff0c;在win10系统 1&#xff0c;安装python3&#xff0c;配置环境变量2&#xff0c;安装vscode 接下来&#xff1a;就可以在vscode配置python环境 1&#xff0c;下载和安装python插件 快…

2022年总结以及2023年的计划

2022年总结以及2023年的计划 文章目录2022年总结以及2023年的计划年终复盘投资理财学习方面前端方面&#xff1a;后端方面&#xff1a;数据库&#xff1a;读书&#xff1a;疫情工作爱情新的一年的展望按照每年的惯例&#xff0c;我每年的总结&#xff0c;复盘会在这几天完成。 …

软件测试精准定位BUG小技巧

目录 一、前置知识 二、定位技巧 一、前置知识 1. 熟透系统业务、团队成员情况 2. 熟悉使用F12或抓包工具 3. 了解HTTP/HTTPS协议&#xff0c;能够区分请求URL、请求头、请求体、入参、响应数据、响应码 4. 具备操作常规Linux命令&#xff0c;能否登入服务器查看Log日志&…

通信原理 | 波段的划分

波段(wave band) 在无线电技术中,波段(wave band)这个名词具有两种含义。 电磁波频谱的划分,例如长波、短波、超短波等波段。 发射机、接收机等设备的工作频率范围的划分。若把工作频率范围分成几个部分,这些部分也称为波段,例如三波段收音机等。 波段划分 波段通常是…