Jmeter常用组件的使用场景

一.在一段时间内持续发送请求


        此场景可以用于稳定性测试,在稳定性测试中,通常需要持续压测几个小时甚至几天时间,查看接口是否有报错,或者cpu、内存会上涨,此时就需要通过控制持续时间来达到此目的。

1.创建线程组,循环次数勾选永远

2.勾选调度器,持续时间输入120,即可在120秒内持续调用接口

二.每秒钟固定调用次数


如果想控制每秒发送请求数量,仅仅通过线程数与循环次数是不够的,因为这只能控制发送总数,而要控制每秒发送数量,需要线程数与常数吞吐量控制器的搭配使用,这种场景在性能测试中使用不多。

例如每秒钟调用30次接口,那么把线程数设置为30,将常数吞吐量控制器的每分钟样本量设置为60,即每个线程每秒钟调用一次,通过此设置可以控制每秒钟的调用次数。

三.数据库操作


Jmeter不仅可以作为性能测试工具和接口自动化工具,也可以作为日常数据库操作的工具。如果想循环多次操作数据库,例如插入多条数据,不需要写java或者python代码,仅仅通过Jmeter添加几个插件就可以实现了。

1.先在测试计划中配置数据库连接中间件,以mysql5.7为例,下载mysql-connector,如果是mysql8+,还请网上自行下载对应connector。

然后配置到Jmeter的测试计划中。

2.创建线程组和JDBC Connection Configuration,然后配置变量名称

3.在下面的Database Connection Configuration中配置数据库url、driver、name、password

4.创建JDBC Request,变量名称与上一步的变量名称一致,下方输入sql语句,执行即可

5.如果数据的某个字段需要随机生成,可以配合工具->函数助手来完成

四.将响应结果提取并写入csv


有时在进行性能测试时,需要将上一个接口的响应结果进行持久化保存,从而作为下一个接口的参数进行性能压测。创建线程组和HTTP请求,请求的响应结果中包含currentUserId这个字段,假定要提取这个字段

1.配置正则表达式提取器,每个字段的含义可查看此文章:https://zhuanlan.zhihu.com/p/27999878

2.配置BeanShell PostProcessor,参数与正则表达式中的引用名称一致,用${}进行引用,脚本如下:

FileWriter fw = new FileWriter("D:\\account1.csv",true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(vars.get("param"));
bw.newLine();
bw.close();

五.线程组内参数传递


实现参数传递是做接口自动化的前提之一,而Jmeter可以实现参数提取与参数传递,例子中创建了两个HTTP请求,新闻列表请求会返回新闻列表uniquekey

而新闻详情请求的参数需要通过uniquekey,来返回详情内容。

1.在新闻列表的请求中增加JSON提取器,JSON Path expressions输入JsonPath表达式,定位到要提取的字段,然后赋值给变量“name”。

2.在新闻详情的请求中通过${}的形式,提取上一个接口的变量,注意此处变量用的是“name”

六.跨线程组参数传递


性能测试中,两个相关联的接口不一定都在同一个线程组,遇见这种情况时,我们要进行跨线程组传参,与上一个示例基本相同,只不过在第一个线程组中使用了BeanShell后置处理器,将参数保存到了全局变量。此处还是用新闻列表和新闻详情两个请求举例,只不过这次将两个请求分别放入不同的线程组。

1.新闻列表请求中配置BeanShell后置处理器,将“name”变量保存到全局变量中,并重新叫做“NAME”

${__setProperty(NAME,${name},)}


2.新闻详情请求中使用下面这种方式提取全局变量

${__property(NAME,,)}


3.如果失败,记得查看测试计划里是否勾选独立运行每个线程组,勾选后才生效

七.吞吐量控制器


在进行混合负载测试时,需要按照线上实际的流量,添加多个接口进行测试,此时就需要使用吞吐量控制器来进行流量的分配。例如将三个接口按照30%、50%、20%的比例进行分配,持续调用一段时间后,最终调用三个接口调用的样本数为:3:5:2

1.在每个接口上增加吞吐量控制器,注意吞吐量不要加百分号

2.持续调用20秒,查看聚合报告,样本数量基本保持3:5:2

八.id自增控制器


使用jmeter调用接口或者往数据库插入数据时,经常遇见id不能重复的情况,此时可以通过计数器来完成。

1.添加计数器控制元件,输入起始值、步长和引用名称

2.接口调用时使用${}引用计数器的引用名称即可实现变化

参考链接:https://blog.csdn.net/shuijiaxiaowei/article/details/127867973

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

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

相关文章

基于SSM的校园疫情管理系统的设计与实现(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的校园疫情管理系统的设计与实现(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,…

【网络层】IP多播技术的相关基本概念(湖科大慕课自学笔记)

IP多播 1:IP多播技术的相关基本概念 我们简单举例,如下图所示: 一共有60个主机要接受来自视频服务器的同一个节目,如果采用单播方式,则视频服务器要发送60份,这些视频节目通过路由器的转发,最…

CentOS7 利用remi yum源安装php8.1

目录 前言remi yum源remi yum源 支持的操作系统remi yum源 支持的php版本 安装epel源安装remi源安装 php8.1查看php版本查看php-fpm服务启动php-fpm服务查看php-fpm服务运行状态查看php-fpm服务占用的端口查看 php8.1 相关的应用 前言 CentOS Linux release 7.9.2009 (Core) …

[Angular 基础] - Observable

[Angular 基础] - Observable 之前的笔记: [Angular 基础] - service 服务[Angular 基础] - routing 路由(上)[Angular 基础] - routing 路由(下) 我以前对 Observable 的理解是 Promise 的一个超集,重新了解了一下,感觉这个说法不太对。更…

2024最新版CleanMyMac X 4.15.1 Crack+激活码下载

CleanMyMac X 为您喜爱的事物腾出空间。 CleanMyMac 具有一系列巧妙的新功能,可让您安全、智能地扫描和清理整个系统、删除大型未使用的文件、减小 iPhoto 图库的大小、卸载不需要的应用程序或修复开始工作不正常的应用程序、管理所有应用程序您可以从一个地方进行扩…

【牛客】HJ87 密码强度等级 CM62 井字棋

题目一:密码强度等级 题目链接:密码强度等级_牛客题霸_牛客网 (nowcoder.com) 本题主要考察C语言中逻辑分支语句,基本语句以及对各种特殊字符 ,ASCII值以及条件表达中的逻辑运算符关系运算符各自功能的理解,以及基本使用&#x…

MySQL安装使用(mac)

目录 一、下载MySQL 二、环境变量 三、启动 MySql 四、初始化密码设置 一、下载MySQL 打开 MySql 官方下载页面 我是macOS12,所以选择了8.0.30 下载完成之后,打开安装,一直下一步安装完成,在最后安装完成时,会弹出…

项目验收总结

目录 一. 前置工作 二. 验收会现场 2.1 会议签到 2.2 项目验收PPT讲解 2.3 系统演示 2.4 意见 三. 项目总结报告 3.1 项目总结概述 3.2 项目完成度 3.3 项目管理 四. 验收材料清单 4.1 验收合格确认书(验收单) 4.2 项目验收总结报告 4.3 一些主要内容 五. 思维导图 一. …

Stable Diffusion WebUI 中英文双语插件(sd-webui-bilingual-localization)并解决了不生效的情况

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 大家好,我是水滴~~ 本文介绍一款中英文对照插件 sd-webui-bilingual-localization,该插件可以让你的 Stable Diffusion WebUI 界面同时显示中文和英文,让我…

【内推】新风口-大模型独角兽公司minimax

先上内推链接: MiniMax社招内推码: AK3XEJ6 投递链接: https://vrfi1sk8a0.jobs.feishu.cn/s/iFY5WFgE 岗位:前端、后端、算法,基础架构都有,大量hc 公司介绍: 国内同时拥有文本、语音、视觉三种基础大模型能力的创业…

政安晨:【深度学习处理实践】(三)—— 处理时间序列的数据准备

在深度学习中,对时间序列的处理主要涉及到以下几个方面: 序列建模:深度学习可以用于对时间序列进行建模。常用的模型包括循环神经网络(Recurrent Neural Networks, RNN)和长短期记忆网络(Long Short-Term M…

打造经典游戏:HTML5与CSS3实现俄罗斯方块

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

[Electron]中IPC进程间通信

Electron中IPC 进程间通信 (IPC) 是在 Electron 中构建功能丰富的桌面应用程序的关键部分之一。在 Electron 中,进程使用 ipcMain 和 ipcRenderer 模块,通过开发人员定义的“通道”传递消息来进行通信。 本文介绍以下几个方面: 1-渲染进程到…

几大开源免费的 JavaScript 富文本编辑器测评

MarkDown 编辑器用的时间长了,发现发现富文本编辑器用起来是真的舒服。 一直以来写博客都是用的 MarkDown 编辑器,MarkDown 文档简单方便,使用几个简单的符号就可以定义出样式统一的富文本内容。写博客的时间长了,小玖就越来越排…

Win11 没有网络bug

1.问题描述 没有网络,dns一直是固定的,但是dns已经是自动获取了(MAC地址随机) 2.解决办法 1.首先,删除所有网络的手动dns配置,控制中心那个dns管理没有用,在设置中删除网络,不然问题还会出现 - 2.然后,进入注册表\HKEY_LOCAL_MACH…

PHP在线图像处理程序:基于Photoshop的网页版图片处理源码

PHP在线PS修图网页版源码:实现照片图片处理的便捷工具 众所周知,许多朋友都喜欢使用PS进行图像编辑。然而,PS需要下载软件并对电脑配置要求较高。今天我们为大家带来一款基于浏览器的在线PS网页版源码,让您轻松实现在线P图和作图…

JMeter VS RunnerGo :两大主流性能测试工具对比

说起JMeter,估计很多测试人员都耳熟能详。它小巧、开源,还能支持多种协议的接口和性能测试,所以在测试圈儿里很受欢迎,也是测试人员常用的工具,不少企业也基于JMeter建立起自己的自动化测试能力,提升工作效…

【重要公告】BSV区块链协会开始对Teranode节点软件进行技术测试

​​发表时间:2024年2月22日 Teranode节点软件将使BSV区块链网络的交易处理速度提升至每秒110万笔,从而拓宽企业和政府客户的区块链应用范围。 2024年2月22日,瑞士楚格 - BSV区块链协会宣布已经开始对Teranode节点软件进行技术测试&#xff…

BUUCTF-Misc4

镜子里面的世界1 1.打开附件 解压,是一张图片 2. zsteg工具 用zsteg分析图片 3.得到flag ningen1 1.打开附件 是一张图片 2.binwalk 用binwalk -e 分离文件 3.ARCHPR工具 打开分离后的文件夹,有一个加密的压缩包,用ARCHPR解密 4.解密 将…

superset连接Apache Spark SQL(hive)过程中的各种报错解决

superset连接数据库官方文档:Installing Database Drivers | Superset 我们用的是Apache Spark SQL,所以首先需要安装下pyhive #命令既下载了pyhive也下载了它所依赖的其他安装包 pip install pyhive#多个命令也可下载 pip install sasl pip install th…