性能工具之 JMeter 常用组件介绍(五)

文章目录

  • 一、Jmeter中参数取值
    • 1、Test Plan中添加变量
    • 2、User Defined Variables
  • 二、Jmeter中CSV Data Set Config
  • 三、Timer:定时器
    • 4、Gaussian Random Timer 高斯随机定时器
    • 5、JSR223 Timer JSR223定时器
    • 6、Poisson Random Timer 泊松随机定时器
    • 7、Synchronizing Timer 同步定时器
    • 8、BeanShell Timer BeanShell脚本编写定时器
    • 9、Precise Throughput Timer 精准吞吐量定时器

一、Jmeter中参数取值

1、Test Plan中添加变量

Test Plan中设置好变量名,变量名可以在任意的位置引用,比如说在线程组中直接用${变量名}方式引用变量,步骤如下:
在这里插入图片描述
1、添加线程组
在这里插入图片描述

2、添加请求
在这里插入图片描述
3、添加结果查看树
在这里插入图片描述

2、User Defined Variables

在这里插入图片描述
注意:User Defined Variables定义的变量和Test Plan中定义的变量一样,不管这个组件在任何位置,在整个test plan中都可以引用这些变量。

1、添加线程组
在这里插入图片描述
2、添加请求User Defined Variables
在这里插入图片描述
3、添加请求
在这里插入图片描述
4、添加结果查看树
在这里插入图片描述
在这里插入图片描述

二、Jmeter中CSV Data Set Config

在做性能测试或者接口测试中,文件参数化最常用的工具摸过如此,咱们这次聊一聊这个工具怎么使用

在这里插入图片描述

  • 作用:从文件中逐行读取数据,按指定的分隔符分割,赋给指定的变量。适合处理大量数据的情况

  • 参数说明:

    • Filename:文件路径。可以是相对路径也可以是绝对路径。可以是.txt文件也可以是.csv文件
    • File encoding:文件编码,默认问ANSI,其它编码根据实际情况配置
    • Variables Names(comma-delimited):变量名,表示将每一列赋值给一个变量,有多个列时同逗号分隔,后续通过${}引用
    • Ignore first line:忽略首行
    • Delimiter(use "\t" for tab):分隔符,默认为逗号
    • Allow quoted data?:数据是否带引号,默认为false,如果数据中有引号(双引号)的话就会把数据连同引号一起赋值给变量,也就是原封不动的取值;如果为true的话就会把引号去掉,将引号中的值赋给标量。
    • Recycle on EOF?:遇到文件结束符是否再次循环,默认为True,也就是继续从文件开头取值
    • Stop thread on EOF?:遇到文件结束符是否结束线程,默认为False也就是不停止。注意:当【Recycle on EOF?】设置为True时,此项设置无效;当【Recycle on EOF?】设置为False,此项也设置为False,那么到达文件最后在引用变量就会变为
    • Sharing mode:共享模式。默认为all threads,还支持current thread group / current thread /edit

共享模式总结:

  • all treatds:csv文件中的数据是共享的,不管是线程数还是循环次数,都会触发接口请求参数来使用csv文件中不同行的变量数据
  • current thread group:在线程组内,线程数和循环次数都会触发接口请求参数变化
  • current thread:循环了数据就会变化,线程数不能决定更新csv文件中的数据,循环次数才可以;

以下简单的演示:
1、添加线程组
在这里插入图片描述
2、添加请求CSV Data Set Config
在这里插入图片描述
附件内容:
在这里插入图片描述
3、添加http request请求
在这里插入图片描述
4、添加结果查看树
在这里插入图片描述

三、Timer:定时器

  • Constant Timer 固定定时器
  • Uniform Random Timer 均匀随机定时器
  • Constant Throughput Timer 固定吞吐量定时器
  • Gaussian Random Timer 高斯随机定时器
  • JSR223 Timer JSR223定时器
  • Poisson Random Timer 泊松随机定时器
  • Synchronizing Timer 同步定时器
  • BeanShell Timer BeanShell脚本编写定时器
  • Precise Throughput Timer 精准吞吐量定时器

1、Constant Timer 固定定时器
在这里插入图片描述
作用:通过ThreadDelay设定每个线程请求之前的等待时间(单位为毫秒)。

2、Uniform Random Timer 均匀随机定时器
在这里插入图片描述
作用:它产生的延迟时间是个随机值,而各随机值出现的概率均等。总的延迟时间等于一个随机延迟时间加上一个固定延迟时间,用户可以设置随机延迟时间和固定延迟时间。

总延迟时间 = 指定范围内的随机时间 + 固定延迟时间 总延迟时间=指定范围内的随机时间+固定延迟时间 总延迟时间=指定范围内的随机时间+固定延迟时间

3、Constant Throughput Timer 固定吞吐量定时器
在这里插入图片描述

作用: 按指定的吞吐量执行,以每分钟为单位。计算吞吐量依据是最后一次线程的执行时延。

Target throughput(in samples per minute):目标吞吐量。注意这里是每分钟发送的请求数,可以选择作用的线程:当前线程、当前线程组、所有线程组等,具体含义如下:

  • this thread only: 设置每个线程的吞吐量。 总的吞吐量 = 线程数 ∗ 该值 总的吞吐量=线程数*该值 总的吞吐量=线程数该值
  • all active threads in current thread group:吞吐量被分摊到当前线程组所有的活动线程上。每个线程将根据上次运行时间延迟。
  • all active threads:吞吐量被分配到所有线程组的所有活动线程的总吞吐量。每个线程将根据上次运行时间延迟。在这种情况下,每个线程组需要一个具有相同设置的固定吞吐量定时器。(不常用)
  • all active threads in current thread group (shared):同上,但是每个线程是根据组中的线程的上一次运行时间来延迟。相当于线程组组内排队。(不常用)
  • all active threads (shared):同上,但每个线程是根据线程的上次运行时间来延迟。相当于让所有线程组整体排队。(不常用)

4、Gaussian Random Timer 高斯随机定时器

在这里插入图片描述

作用:每个线程的延迟时间是符合标准正态分布的随机时间停顿,那么使用这个定时器:

总延迟 = 高斯分布值(平均 0.0 和标准偏差 1.0 ) ∗ 指定的偏差值 + 固定延迟偏移 ( M a t h . a b s ( ( t h i s . r a n d o m . n e x t G a u s s i a n ( ) ∗ 偏差值 ) + 固定延迟偏移 ) ) 总延迟 = 高斯分布值(平均0.0和标准偏差1.0)* 指定的偏差值+固定延迟偏移(Math.abs((this.random.nextGaussian() * 偏差值) + 固定延迟偏移)) 总延迟=高斯分布值(平均0.0和标准偏差1.0指定的偏差值+固定延迟偏移(Math.abs((this.random.nextGaussian()偏差值)+固定延迟偏移))

5、JSR223 Timer JSR223定时器

在这里插入图片描述

JSR223计时器可以使用JSR223脚本语言生成延迟;

参考帮助文档:
https://jmeter.apache.org/usermanual/component_reference.html#JSR223_Timer

6、Poisson Random Timer 泊松随机定时器

在这里插入图片描述
这个定时器在每个线程请求之前按随机的时间停顿,总的延迟就是泊松分布值和偏移值之和。
上面表示暂停时间会分布在100到400毫秒之间:

  • (1)Lambda(in milliseconds):兰布达值
  • (2)Constant Delay Offset(in milliseconds):暂停的毫秒数减去随机延迟的毫秒数

7、Synchronizing Timer 同步定时器

在这里插入图片描述
作用:用来设置集合点,其作用是:阻塞线程,直到指定的线程数量到达后,再一起释放,可以瞬间产生很大的压力

  • (1)Number of Simulated Users to Group by:模拟用户的数量,即指定同时释放的线程数数量,若设置为0,等于设置为线程组中的线程数量;
  • (2)Timeout in milliseconds:超时时间,即超时多少毫秒后同时释放指定的线程数;如果设置为0,该定时器将会等待线程数达到了设置的线程数才释放,若没有达到设置的线程数会一直死等。如果大于0,那么如果超过Timeout inmilliseconds中设置的最大等待时间后还没达到设置的线程数,Timer将不再等待,释放已到达的线程。默认为0
    同步定时器(Synchronizing Timer)的超时时间设置要求:
    超时时间 > 请求集合数量 ∗ 1000 / ( 线程数 / 线程加载时间 ) 超时时间 > 请求集合数量 * 1000 / (线程数 / 线程加载时间) 超时时间>请求集合数量1000/(线程数/线程加载时间)

8、BeanShell Timer BeanShell脚本编写定时器

在这里插入图片描述
参数说明:

  • Reset Interpreter :每次迭代是否重置解析器,默认为false;在长时间运行的脚本中建议设置为true
  • Parameters:BeanShell脚本的入参。入参可以是单个变量;也可以是数组,若是字符串数组,两个元素之间用空格隔开;也可以是常量。
  • File Name:BeanShell脚本可以从脚本文件中读取。
  • Script:在Script区直接写BeanShell脚本。

简单写一demo增加一个sleep等待一分钟:
在这里插入图片描述

 try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

增加一个Java Request请求,并且增加时间验证是否按照自己设定的定时运行脚本:
Java Request ${__time(yyyy-MM-dd HH:mm:ss:SSS,)}
在这里插入图片描述

增加结果查看树:
在这里插入图片描述
结果显示按之前设置的每个1秒钟运行

9、Precise Throughput Timer 精准吞吐量定时器

在这里插入图片描述

  • Target Throught:目标吞吐量
  • Throught Period:表示在多长时间内发送Target Throught指定的请求数(以秒为单位)
  • Test Druation:指定测试运行时间(以秒为单位)
  • Number of threads in the bath:用来设置集合点,等到指定个数的请求后并发执行其它参数默认即可。

相关系列:

  • 性能工具之 JMeter 快速入门
  • 性能工具之 JMeter 常用组件介绍(一)
  • 性能工具之 JMeter 常用组件介绍(二)
  • 性能工具之 JMeter 常用组件介绍(三)
  • 性能工具之 JMeter 常用组件介绍(四)
  • 性能工具之 JMeter 常用组件介绍(五)
  • 性能工具之 JMeter 常用组件介绍(六)
  • 性能工具之 JMeter 常用组件介绍(七)
  • 性能工具之 JMeter 常用组件介绍(八)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

复分析——第4章——Fourier变换(E.M. Stein R. Shakarchi)

第4章 Fouier变换 Raymond Edward Alan Christopher Paley, Fellow of Trinity College, Cambridge, and International Research Fellow at the Massachusetts Institute of Technology and at Harvard University, was killed by an avalanche on April 7, 1933, whi…

记某模版菠菜管理后台登录思路

1.前言 由于小程序的便捷性,越来越多的应用迁移到了了小程序上,由此伴随着小程序上线前的日常渗透测试工作也开始增加。但小程序的测试中经常会遇到数据包被加密了,导致无法进行改包测试。和测试网页数据包加密一样,就需要找到小…

Stable Diffusion 3 文本生成图像 在线体验 原理分析

前言 本文分享使用Stable Diffusion 3实现文本生成图像,可以通过在线网页中免费使用的,也有API等方式访问。 同时结合论文和开源代码进行分析,理解其原理。 Stable Diffusion 3是Stability AI开发的最新、最先进的文本生成图像模型&#x…

Linux中部署MySQL环境方法(仓库安装)

1.进入MySQL官网 2.进入MySQL社区版下载 3.使用yum方式下载MySQL 4.使找到对应系统的对应包的链接 复制 5.linux命令行中使用命令通过对应链接下载该软件包 rpm -i https://repo.mysql.com//mysql80-community-release-el9-1.noarch.rpm 警告:/var/tmp/rpm-tmp.so…

45、基于深度学习的螃蟹性别分类(matlab)

1、基于深度学习的螃蟹性别分类原理及流程 基于深度学习的螃蟹性别分类原理是利用深度学习模型对螃蟹的图像进行训练和识别,从而实现对螃蟹性别的自动分类。整个流程可以分为数据准备、模型构建、模型训练和性别分类四个步骤。 数据准备: 首先需要收集包…

分享一个 Fail2ban 过滤规则

今天明月给大家分享个 Fail2ban 的过滤(Filter)规则,有关 Fail2ban 的文章大家可以参考【服务器全面使用 Fail2Ban 初见成效】和【使用 Fail2ban 禁止垃圾采集爬虫,保护 Nginx 服务器】等文了解,总之 Fail2ban 是 Linu…

如何跳出认知偏差,个人认知能力升级

一、教程描述 什么是认知力?认知力(cognitive ability),实际上就是指一个人的认知能力,是指人的大脑加工、储存和提取信息的能力,或者主观对非主观的事物的反映能力,如果变成大白话&#xff0c…

力扣SQL 即时食物配送 II min函数 嵌套查询

Problem: 1174. 即时食物配送 II 👨‍🏫 参考题解 Code -- 计算立即配送的订单百分比 select round (-- 计算订单日期与客户偏好配送日期相同的订单数量sum(case when order_date customer_pref_delivery_date then 1 else 0 end) * 100 /-- 计算总订…

媒体邀约中媒体采访应该如何做?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体宣传加速季,100万补贴享不停,一手媒体资源,全国100城线下落地执行。详情请联系胡老师。 在媒体邀约中,媒体采访应该遵循以下几个步骤和…

[C#]使用深度学习算法opencvsharp部署RecRecNet广角图像畸变矫正校正摄像广角镜头畸变图像

【论文地址】 https://arxiv.org/abs/2301.01661 【训练源码】 https://github.com/KangLiao929/RecRecNet 【参考源码】 https://github.com/hpc203/recrecnet-opencv-dnn 【算法介绍】 广角镜头在VR技术中显示出诱人的应用,但它会在捕获的图像中引入严重的径…

如何下载和安装SQLynx数据库管理工具? (MySQL作为测试数据库)

目录 1. 官网下载 2. 安装软件 3. 启动SQLynx软件 4. 开始使用 5. 执行第一条SQL语句 6. 总结 SQLynx是一款先进的Web SQL集成开发环境(IDE),专为数据库管理、查询和数据分析设计。作为一个基于浏览器的工具(同时也支持桌面…

《计算机英语》Unit2 Operating System and Computer Architecture 操作系统和计算机构造

SectionA Operating System操作系统 不同操作系统 批处理操作系统(Batch Processing Operating System) 分时操作系统(Time Sharing Operating System) 实时操作系统(Real Time Operating System) 个人操作系统(Personal Operating System) 网络操作系统(NOS, Network Operati…

Android设计模式系列--模板方法模式

认识到模板方法的这种思想,父类可以让未知的子类去做它本身可能完成的不好或者根本完成不了的事情,对框架学习大有帮助。 本文以View中的draw方法为例,展开分析。 模板方法,TemplateMethod,光是学习这个模式&#xf…

SwiftUI 6.0(iOS 18)ScrollView 全新的滚动位置(ScrollPosition)揭秘

概览 在只有方寸之间大小的手持设备上要想体面的向用户展示海量信息,滚动视图(ScrollView)无疑是绝佳的“东牀之选”。 在 SwiftUI 历史的长河中,总觉得苹果对于 ScrollView 视图功能的升级是在“挤牙膏”。这不,在本…

“一站式企业服务平台”的功能架构

为提升区域营商环境,为促进区域经济发展,实现资源高效配置,全国各区域政府及产业园区都越来越重视如何创新企业服务机制、提升企业服务水平,来保障区域内的企业稳定及帮扶企业高质量的发展。随着近年来大数据、人工智能等新一代信…

多线程环境下 System.out.println 导致死锁问题分析

背景 一个文件采集系统,使用了多线程递归采集指定目录下的文件,并为每个目录创建一个线程去采集。 这个应用每隔几天就出现罢工情况,查看进程还在,堆内存空间还很充足,就是导出堆栈时,发现几乎所有的采集…

Docker:安装RediSearch全文搜索

1、简述 在本文中,我们将介绍如何使用Docker快速、简便地安装RediSearch,Redis的全文搜索模块。RediSearch提供了高效的全文搜索功能,通过Docker安装,可以轻松地在任何环境中部署和管理RediSearch。 官网地址:https:/…

欧洲杯数据控@20240621

点击标题下「蓝色微信名」可快速关注 西班牙成为第二支晋级淘汰赛的球队。 今日积分榜, 今日射手榜, 今日助攻榜, 本届欧洲杯相关文章, 《欧洲杯赛况20240621》 《欧洲杯数据控20240620》 《欧洲杯赛况20240620》 《欧洲杯数据控2…

中霖教育怎么样?中级会计考试大纲哪里能看?

中霖教育怎么样?中级会计考试大纲哪里能看? 在准备中级会计职业资格考试时,考试大纲是至关重要的参考资料。考试大纲能够为考生提供考试覆盖范围和核心考点,从而有助于进行针对性的复习和学习,提高学习的效率。 中级会计考试大纲哪里能看…

大模型项目落地时,该如何估算模型所需GPU算力资源

近期公司有大模型项目落地。在前期沟通时,对于算力估算和采购方案许多小伙伴不太了解,在此对相关的算力估算和选择进行一些总结。 不喜欢过程的可以直接 跳到HF上提供的模型计算器 要估算大模型的所需的显卡算力,首先要了解大模型的参数基础知识。 大模型的规模、参数的理解…