Jmeter性能测试入门之常用组件

news2024/12/29 8:56:16

一个jmeter的脚本通常包含线程组+取样器+断言+定时器+逻辑控制器+配置元件+监听器

线程组部分用法介绍:

【普通线程组】:
在这里插入图片描述
**线程数:**可以理解为虚拟用户数
**Ramp-Up时间(秒):**运行指定线程数需要的时间
**循环次数:**勾选“永远”之后,线程组会一直运行,直到手动停止;不勾选永远,会按照设置的值循环执行
**Same user on each iteration:**每次迭代相同的用户
**延迟创建线程直到需要:**意思是当需要的时候才去创建线程,主要用于模拟用户实际行为和负载。
**调度器-持续时间:**测试计划的持续时间
**调度器-启动延迟:**测试计划启动一段后,线程组才会启动。注意!这个延迟不是指线程创建时的间隔时间。

截图所示的场景为:测试计划启动之后,间隔5s才去启动线程组。线程组需要在10秒内启动100个线程,平均每秒启动100/10个线程,循环执行两次。测试计划持续60s后停止。

在介绍下面两种线程组之前,需要拓展一下jmeter的插件
下载一个插件管理包jmeter-plugins-manager版本.jar,放到jmeter的lib/ext目录下,重启jmeter,就可以选择对应的外部插件进行使用。注意插件管理包与jmeter的版本的匹配程度。

【Stepping Thread Group-递增线程组】:
主要用于:
在这里插入图片描述

**this group will start:**表示总共要启动的线程数
**first,wait for:**表示测试计划运行多久之后,开始启动线程。设置为0表示立即启动。
**then start:**表示初次想要启动的线程数量,如果为0,表示最开始不会启动线程。
**next add:**后续每次启动的线程数量
**threads every:**运行多长时间后,再去启动下一批次的线程
**using ramp-up:**启动指定数量线程需要花费的时间
**then hold load for:**线程全部启动完之后,持续运行多长时间
**finally,stop:**指定时间内,停止的线程数量
**threads every:**指定时间,停止线程
截图所示的场景为:总共启动100个线程,计划运行10秒之后,启动10个线程;并且运行30秒之后,每5秒再启动10个线程。当所有的线程均启动之后,持续运行60秒后,每10秒就停止10个线程。

【Ultimate Thread Group-极限线程组】:
主要用于:梯度加压

**Start Threads Count:**要启动的线程数量
**Initial Delay,sec:**延迟多少秒之后开始启动线程
**Startup Time,sec:**启动指定线程花费的时间(秒)
**Hold Load For,sec:**所有线程(不同梯度的线程)全部启动完成之后,持续运行时间
**Shutdown Time:**多长时间之后,释放掉所有线程

取样器:
【Http请求】:
在这里插入图片描述
基础模式:
**协议:**向服务器发送的HTTP请求协议类型,可以是HTTP或HTTPS,默认为HTTP,大小写均可
**服务器名称或IP:**服务器的IP或域名,不含协议类型。比如:www.baidu.com、192.168.31.1,不用再加上http或https
**端口号:**服务器端口号,默认值为80。http协议默认端口是80,https协议的默认端口为443
**请求方法:**可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等
**路径:**请求的URL路径
**内容编码:**默认为ISO-8859-1编码,常用配置为utf-8
**自动重定向:**如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 会自动重定向到新的页面,但是Jmeter是不记录重定向的过程内容,即在查看结果树中只能看到重定向后的响应内容
**跟随重定向:**取样器的默认选项,当响应code是3xx时,自动跳转到目标地址。与自动重定向不同,Jmeter会记录重定向过程中的所有请求响应, 在查看结果树时可以看到服务器返回的内容,如有多个跳转则多个请求都会被记录下来
**使用 KeepAlive:**持久连接。默认勾选,jmeter与目标服务器之间使用 Keep-Alive方式进行HTTP通信。
勾选时,压测时会带来长连接超时报错的问题。注意:性能测试强烈建议不勾选
**使用multipart/form-data:**一般发送POST请求时,需要勾选,并在 Files Upload 中上传对应的文件。默认不勾选(不常用)
**与浏览器兼容的头:**勾选multipart/form-data时,勾选此项会截掉http请求头中 的Content-Type和Content-Transfer-Encoding,而只发送Content-Disposition部分(不常用)
**参数:**通常是粘贴接口中的入参信息。需要使用到“从剪贴板添加”的功能,如果是自己手动添加,需要注意名称要与接口原本定义的字段保持一致。
消息体数据: json格式的字符串
文件上传: 文件名称中填写上传文件本地路径;参数名称为参数名。MIME 类型:上传文件的媒体类型。常见的媒体类型见附件
在这里插入图片描述
高级模式:暂时未使用过,不做赘述。

逻辑控制器:
【if控制器】:
使用场景:需要满足指定条件之后,才去执行对应的业务。
需要注意表达式的写法,如果是自定义的表达式不要去勾选lnterpret Condition as Variable Expression

在这里插入图片描述

【事务控制器】:

在这里插入图片描述
Generate parent sample:意思是生成一个父样本。当需要将一个完整业务流程当做一个事务时,即需要勾选该选项。未勾选时,取样器的执行结果不会被归纳到一个事务下。勾选后,执行结果会被归于同一个事务下。注意!勾选后任意一个子事务执行失败均代表该事务执行失败。
在这里插入图片描述
勾选Generate parent sample后,聚合报告会将该事务控制器下的取样结果合并统计,未勾选时,会分别统计
在这里插入图片描述
Include duration of timer and pre-post processors in generated sample:中文含义为是否包含定时器和前置处理器的执行时间。默认不勾选,勾选之后聚合报告中,会统计这些时间,会导致执行结果不是很准确。

【循环控制器】:
作用:控制其下取样器的循环次数,最终的循环次数会受线程的循环次数的影响。如线程循环次数设置为2,循环控制器的循环次数设置为3,那么最终循环控制器下的取样器的执行结果只会有2次。
在这里插入图片描述

【仅一次控制器】:
作用:控制其下取样器的执行次数为一次。

如:我现在的线程循环次数为2,处于仅一次控制器中的取样器就执行了一次,未受到循环次数的影响,不在仅一次控制器的取样器,就随线程的循环次数执行。
在这里插入图片描述
注意!当仅一次控制器处于循环控制次下时,仅一次控制器下取样器的执行次数会受循环控制器中循环次数的影响
在这里插入图片描述

【吞吐量控制器】:

作用场景:同一个线程组有多个并发,一部分需要做A业务,一部分需要做B业务,就需要使用吞吐量控制器。(需要将A、B业务分别放入不同的吞吐量控制器中)
在这里插入图片描述
Total Executions:如果选择该项,意味着将通过具体的数据去控制该控制下取样器的执行次数。
Percent Executions:选择该项时,是按比例控制。
吞吐量:基于上述选项,如果选择Total Executions,设置的值就是执行次数;选择Percent Executions,设置的值就是执行比例。

如:我第一个控制器执行次数设置为7,第二个执行比例设置为30%,执行之后,就可以得到如下结果。不同控制器设置的执行数量(比例)之和,可以大于线程组设置的线程数量,执行结果会按照设置数量(比例)执行。
在这里插入图片描述
Per User:该项的意思是每个用户,如果选择该项,建议将吞吐量应设置为空(因为设置的执行次数或者执行比例将会失去意义,如果选择Total Executions,吞吐量是否为空都不影响按线程数量执行;但是如果选择Percent Executions,则需要将吞吐量的值设置为空,不然对应控制器下的取样器不会执行)在这里插入图片描述

配置元件:
【http信息头管理器】:
作用:用于存放接口的header头部信息,通常一个线程可以只存在一个作为公共的http信息头管理器。当取样器下存在信息头时,会以取样器下的信息头内容为准。
在这里插入图片描述

【httpcookie管理器】:
cookie的作用:cookie是存放在客户端,用于记录用户登录状态、跟踪统计用户访问该网站的习惯、识别用户身份、保存客户信息。
作用:jmeter中cookie管理器的作用就是把接口请求产生的cookie 进行自动收集并保存(但是不会体现在cookie管理器中)后续的请求会自动使用cookie管理器收集的cookie。
在这里插入图片描述
每次反复清除cookies:每次运行的时候,都会将cookie删除
Use Thread Group configuration to control cookie clearing:通过线程组去控制cookie的清除

【http请求默认值】:

作用:将接口的信息填写之后,后续的取样器无需在填写上述内容
在这里插入图片描述

定时器:
【固定定时器】:
作用:设置之后,线程中的每个请求都会间隔设置的时间执行,时间单位是毫秒。

【统一随机定时器】:
作用:对每一个线程随机延迟一定时间;总体延迟时间 = 随机时间(不会超过设置的最大随机延迟值) + 常量时间
在这里插入图片描述
Random Delay Maximum (in milliseconds):随机延迟值
Constant Delay Offset (in milliseconds):常量延迟值

【高斯随机定时器】:
作用:生成一个呈高斯分布的时间间隔, 延迟间隔=高斯分布值(平均0.0和标准差1.0)* 指定的偏差值 + 固定延迟偏移
在这里插入图片描述
【常数吞吐器】:
作用:负载测试(按需求,单位时间发送指定数量的接口请求-吞吐量)
在这里插入图片描述
只有此线程:控制每个线程的吞吐量,选择该模式时,总吞吐量=目标吞吐量*线程数量
所有活动线程:设置的吞吐量将会分配到每个活动线程上面(活动线程:正在执行测试任务的线程,如果目标吞吐量设置为100,此时有2个线程组,那么每个线程组的样本数量理论上为60)-如果需要控制多个线程组的吞吐量,需要将该定时器置于测试计划下,与线程组平级
当前线程组所有活动线程:设置的吞吐量将会分配到当前线程组的每个活动线程上面
所有活动线程(共享):设置的吞吐量将会分配到每个线程组的活动线程上面(我设置的目标吞吐量为60/min,此时有2个活动线程,那每个线程组运行的样本数量为30)
当前线程组的所有线程(共享):设置的吞吐量将会分配到当前线程组的每个活动线程上面。

监听器:

监听器主要是一些测试结果分析的报表,在后续文章进行记录。

                                                                                                            学海无涯

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

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

相关文章

java基础+数据库基础+系统+JVM问题

的哎的哎 1、基础部分 java线程池 队列的选择 答&#xff1a; SingleThreadPool:适用于多个任务顺序执行的场景。 它使用的是LinkedBlockingQueue<>()&#xff0c;无界的阻塞队列&#xff0c;就意味着会有内存溢出的风险。 FixedThreadPool: 适用于任务量固定耗时长的…

QDDR究竟是什么?

QDDR究竟是什么? 在当今的高科技时代&#xff0c;我们经常遇到各种各样的缩写和术语&#xff0c;其中QDDR就是其中一个。那么&#xff0c;究竟什么是QDDR呢&#xff1f; QDDR&#xff0c;全称Quad Data Rate&#xff0c;是一种同步动态随机存储器&#xff08;SDRAM&#xff09…

验证链(CoVe)降低LLM中的幻觉10.31

验证链&#xff08;CoVE&#xff09;降低LLM中的幻觉 摘要1 引言2 相关工作3 验证链&#xff08;Chain-of-Verification&#xff09;3.1 生成基准回答3.2 计划验证3.3 执行验证3.4 最终验证的回答 4 实验&#xff08;直译&#xff09;4.1 任务4.1.1 WIKIDATA4.1.2 WIKI-CATEGOR…

应用于智慧矿山的皮带跑偏视频分析AI算法

一、引言 随着科技的发展&#xff0c;人工智能技术已经在各个领域得到广泛应用。而在智慧矿山领域&#xff0c;皮带跑偏视频分析是其中一个重要的应用方向。本文将详细介绍皮带跑偏视频分析AI算法的原理&#xff0c;以期为智慧矿山的发展提供有益的参考。 二、算法原理 1. 视…

【3妹教我学历史-秦朝史】2 秦穆公-韩原之战

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 3妹&#xff1a;2哥&#xff0c;今天下班这么早&#…

CT MR 三维重建可视化系统

前言 本文通过研究医学可视化的不同算法&#xff0c;在 vc环境下&#xff0c;以可视化软件包VTK 为平台&#xff0c;编程设计实现了三维建模系统&#xff0c;实现了 DICOM图像的三维重建。 材料与方法 使用符合 DICOM 标准的临床 CT、MRI图像数据&#xff0c;在 vc环境下&…

高等数学公式

目录 一.高中二.高数基础三.高数第一章 空间解析几何与向量代数2.向量代数6.二次曲面 第二章 多元函数的微分学第三章 重积分一、二重积分二、 三重积分直角坐标下三重积分的计算柱面坐标下三重积分的计算球面坐标下三重积分的计算曲面面积 第四章 曲线积分与曲面积分1、对弧长…

Qt常见类名关系整理

1、QAbstractItemModel与QAbstractItemView 模型的基类: The QAbstractItemModel class provides the abstract interface for item model classes. Inherited By: QAbstractListModel&#xff0c;QAbstractProxyModel,and QAbstractTableModel 视图的基类: The QAbstractIte…

代购商城源码是否可以定制开发?

定制开发&#xff0c;符合个性需求 代购商城源码是现代电子商务中的重要工具&#xff0c;它为代购商提供了建立在线店铺、管理产品和订单、处理支付和物流等功能。然而&#xff0c;对于不同的代购商而言&#xff0c;在源码的基础上进行个性化定制开发无疑是提升竞争力和用户体验…

高效办公必备:不同路径文件一键批量移动到同一目录的技巧

在高效办公中&#xff0c;文件的批量移动和管理是一项常见的任务。有时候&#xff0c;我们需要将文件从不同的路径移动到同一个目录中&#xff0c;以便于管理和查找。手动一个一个地移动文件不仅耗时而且容易出错。因此&#xff0c;掌握一键批量移动不同路径文件到同一目录的技…

【CSDN 每日一练 ★☆☆】【二叉树/递归】二叉树的最小深度

【CSDN 每日一练 ★☆☆】【二叉树/递归】二叉树的最小深度 二叉树 递归 题目 给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明&#xff1a;叶子节点是指没有子节点的节点。 示例 示例 1&#xff1a; 输入…

visio中没有的图标怎么找以及如何导入

1、收藏夹&#xff1a;再也不用担心找不到图标位置了 很多人也许都不知道&#xff0c;Visio自带一个收藏夹&#xff0c;类似于浏览器的书签栏&#xff0c;可以将常用的图标收藏起来&#xff08;通过拖拉的方式&#xff09;&#xff1a; 注意&#xff1a;收藏夹里面不仅可以收藏…

图数据库Neo4j——Neo4j简介、数据结构 Docker版本的部署安装 Cypher语句的入门

前言 MySQL是一种开源的关系型数据库管理系统&#xff0c;使用SQL作为其查询语言&#xff0c;常见的关系型数据库有MySQL、Oracle、SQL Server、PostgreSQL等。相关博客文章如下&#xff1a; 【合集】MySQL的入门进阶强化——从 普通人 到 超级赛亚人 的 华丽转身PostgreSQL数…

分享程序员赚钱的一些门路

引言 实现财务自由几乎是每一个人的梦想&#xff0c;程序员也不另外。都梦想着在工作之外找一个副业&#xff0c;边上着班&#xff0c;边“开启自己的事业”。 可是&#xff0c;很多人都只是停留在想想而已&#xff0c;或者总是在等待一个机会&#xff0c;如此而已。时间一天…

因存在色情内容,夸克被罚50万元

媒体经济的繁荣、自媒体、直播等各种形式的信息传播疯狂发展&#xff0c;但是各种形式的信息资源大规模生产时&#xff0c;“色情”&#xff0c;“暴力”的图像和视频不可控的滋生&#xff0c;特别是某些 APP 或浏览器。一旦打开&#xff0c;满屏都是“哥哥&#xff0c;快来啊”…

Linux学习第27天:Platform设备驱动开发(一): 专注与分散

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 专注与分散是我在题目中着重说明的一个内容。这是今天我们要学习分离与分层概念的延伸。专注是说我们要专注某层驱动的开发&#xff0c;而对于其他层则是芯片厂商…

在centos服务器中完成jdk,tomcat,MySQL的安装以及前后端分离项目中后端的部署

目录 一. jdk&#xff0c;tomcat的安装 1.将要安装的软件压缩包放入到centos服务器上 2. 解压对应的安装包 3. jdk环境变量配置 4. tomcat启动 5. 关闭防火墙 二. MySQL安装 1. 卸载mariadb&#xff0c;否则安装MySql会出现冲突(先查看后删除再查看) 2. 将MySQL安装包解…

【新品】数字化电子智能标签!支持定制服务!!

6年专业研发生产工厂 【NFC防水款】 2.9寸无源NFC电子墨水屏 采用新型无源NFC技术 无须内置电池耗电&#xff0c;没有续航烦恼 新型无源NFC无线刷图技术 采用无源NFC方案&#xff0c;无须内置电池 没有繁琐接线&#xff0c;工作稳定 【电子日历款】 7.5寸单面日历电子墨水屏…

注意力机制 - Transformer

文章目录 1. 简介2. 多头注意力3. 有掩码的多头注意力4. 基于位置的前馈网络5. 层归一化6. 信息传递7. 预测 1. 简介 基于编码器-解码器架构来处理序列对跟使用注意力的seq2seq不同&#xff0c;Transformer是纯基于注意力 2. 多头注意力 对同一key&#xff0c;value&#xff…

竞赛 深度学习手势检测与识别算法 - opencv python

文章目录 0 前言1 实现效果2 技术原理2.1 手部检测2.1.1 基于肤色空间的手势检测方法2.1.2 基于运动的手势检测方法2.1.3 基于边缘的手势检测方法2.1.4 基于模板的手势检测方法2.1.5 基于机器学习的手势检测方法 3 手部识别3.1 SSD网络3.2 数据集3.3 最终改进的网络结构 4 最后…