Jmeter(七):jmeter连接数据库/中元件的执行顺序作用域详解

news2024/11/17 10:49:54

Jmeter:jmeter连接数据库

jmeter连接mysql数据库

大致步骤如下:

  1. 下载mysql的jar包放入到jmeter的lib下,然后重启jmeter
  2. 配置JDBC Connection Configuration
  3. 配置JDBC Request
  4. 在请求中引用查询到的结果变量,可以结合计数器取每一个结果值:${__V(tname_${index})}

同时,我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取

软件测试视频教程观看处:

字节大佬教你逼自己如何在15天内掌握自动化测试(接口自动化/APP自动化/Web自动化/性能测试),内含项目实战

1、首先需要准备个Mysql jdbc驱动包

尽量保证其版本和你的数据库版本一致,至少不低于数据库版本,否则可能有问题。

mysql官网下载地址:csdn不让发

JDBC驱动在mysql的官网下载:https://dev.mysql.com/downloads/file/?id=477058,不需要注册,直接点击左下角的小字

2、在测试计划下面把JDBC驱动包导入,如下图

3、线程组下添加一个配置元件JDBC Connection Configuration。

Variable Name:自定义参数,在JDBC Request中会用到;

Database URL:jdbc:mysql:// 数据库IP地址:数据库端口/数据库名称;jdbc:mysql://localhost:3306/mysql?serverTimezone=UTC&characterEncoding=utf-8,注意:?后面的serverTimezone=UTC&characterEncoding=utf-8不能缺少,否则会报时区错误。

JDBC Driver Class:com.mysql.jdbc.Driver;

Username:数据库用户名;

Password:数据库密码;

4、在添加一个Sampler:JDBC Request

由于只需要在数据库中取一次数据,即 jdbc取样器只需要执行一次,可以使用仅一次控制器;如下图:

配置路径:逻辑控制器——仅一次控制器

5、运行之后,数据库会返回某一列下的数据

6、在http请求中引用tname变量名,如果有一列数据返回,引用变量的时候可以输入${tname_1},发送请求的参数值就是 周启元

variables names 参数使用方法:

Jmeter官网的解释是:如果给这个参数设置了值,它会保存sql语句返回的数据和返回数据的总行数。假如,sql语句返回2行,3列,且variables names设置为A,C,那么如下变量会被设置为:

A_#=2(总行数)

A_1=第1列,第一行;如上面的变量${tname_1};

A_2=第1列,第2行

C_#=2(总行数)

C_1=第3列,第1行

C_2=第3列,第2行

如果返回结果为0,那么A_#和C_#会被设置为0,其他变量不会设置值。

如果第一次返回6行数据,第二次只返回3行数据,那么第一次的6行数据变量会被清除

可以使用${A_#}、${A_1}...来获取相应的值

7、如果想循环数据库返回的值,可以使用计数器,加引用的变量${__V(tname_${index})};如下图

根据上方数据库返回的tname列下有9行数据,在计数器中最大值填入9,在输入一个变量名index;

在http请求中引用数据量返回的变量+计数器的变量:${__V(tname_${index})};

8、运行结果

Jmeter:jmeter中元件的执行顺序&作用域


元件的执行顺序:

配置元件-->前置处理程序-->定时器-->取样器-->后置处理程序(除非Sampler 得 到的返回结果为空)-->断言(除非Sampler 得到的返回结果为空)-->监听器 (除非Sampler 得到的返回结果为空)

关于执行顺序,有两点需要注意:

  • 前置处理器、后置处理器和断言等元件公能对 取样器作用,因此,如果在它们 的作用域内没有任何取样器,则不会被执行。
  • 如果在同一作用域范围内有多个同一类型的元件,则这些元件按照它们在测试计 划中的上下顺序一次执行

元件的作用域:类似于python中的全局变量和局部变量的概念

配置元件(config elements ) :元件会影响其作用范围内的所有元件。

前置处理程序(Per-processors):元件在其作用范围内的每一个sampler元件之 前执行。

定时器(timers ):元件对其作用范围内的每一个sampler 有效

后置处理程序(Post-processors):元件在其作用范围内的每一个sampler元件之 后执行。

断言(Assertions):元件对其作用范围内的每一个sampler 元件执行后的结果执 行校验。

监听器(Listeners):元件收集其作用范围的每一个sampler元件的信息并呈现。 总结:从各个元件的层次结构判断每个元件的作用域

写在最后

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。如需要软件测试学习资料,关注公众号(互联网杂货铺),后台回复1,整理不易,给个关注点个赞吧,谢谢各位大佬!

☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

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

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

相关文章

怎么恢复移走的u盘数据?可以尝试这三种方法

当意外移走U盘上的数据时,我们常常会感到焦虑和失望,特别是当这些数据对我们仍然重要时。不过,您不必完全放弃,因为本文将介绍一些方法,以帮助您恢复U盘上的重要数据。 图片来源于网络,如有侵权请告知 移走…

绘制核密度估计图

简介 核密度估计图(Kernel Density Estimation,KDE)是一种用于估计数据分布的非参数方法,通常用于可视化和理解数据的分布情况。它通过平滑地估计数据的概率密度函数(PDF)来显示数据的分布特征&#xff0c…

【广州华锐互动】全屋智能家电VR虚拟仿真演示系统

在过去的几年中,智能家居的概念已经逐渐进入人们的生活。然而,它的真正潜力和最终形态可能还未被完全发掘。一种新兴的技术,虚拟现实(VR),为我们提供了一种全新的方式来理解和体验智能家居。VR公司广州华锐…

C语言——二周目——程序的翻译与执行环境

一、程序环境 对于一个C语言程序的实现,整个过程一般存在两个不同的环境,分别是翻译环境与执行环境。在翻译环境中,我们所写的源代码经过一系列处理被转换成为可执行的机器指令;在执行环境中,会实际执行代码。 整个程序…

基于YOLOv8模型和WiderPerson数据集的行人目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要:基于YOLOv8模型和WiderPerson数据集的行人目标检测系统可用于日常生活中检测与定位行人目标,利用深度学习算法可实现图片、视频、摄像头等方式的目标检测,另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标…

该方法仅能传入 lambda 表达式产生的合成类

说明:使用Mybatis-plus查询记录时,出现下面的错误; org.apache.ibatis.builder.BuilderException: Error evaluating expression ew.sqlSegment ! null and ew.sqlSegment ! and ew.nonEmptyOfWhere. Cause: org.apache.ibatis.ognl.OgnlEx…

2016-2023全国MBA国家A类线趋势图:浙大MBA要高多少?

距离2024年MBA联考还有两个月左右的时间,冲刺阶段需要为目标做最后的努力。关于分数的目标,目前国外的大多数MBA项目的录取门槛都是国家A类线,而后续常规批复试后的调剂门槛多数也是国家A类线,所以国家线应该是多数考生的第一目标…

【VS2017】MIDL : CreateFile() error : 2

记录一下这个奇葩的问题,应该不会有人遇到 错误描述 项目用到了windows的rpc,并且是 141_xp 编译的。安装相关组件后,编译报错如标题所示: 解决办法 暂时看到的头绪就是到midl的目录下,修改 midl.exe 的兼容性 C:\P…

java与c++中的交换方法

最近在写算法的时候,遇到一个问题。 java中编写swap(交换)方法还需要传入一个数组,但是在c中则不需要。 可以看到,在没有传入数组进行交换数组元素的时候,交换前与交换后的值是一样的。 而在c中&#xff…

【JavaScript】Map

Map Map 构造器,构造 map 对象。 const map new Map() console.log(map)Entries:存放属性 size:属性的数量get():获取值 has():是否有某个键名(属性) keys():获取所有的键名 set(…

【广州华锐互动】VR营销心理学情景模拟培训系统介绍

在高度竞争的汽车市场中,销售人员需要具备强大的专业知识、引人入胜的销售技巧,以及敏锐的市场洞察力。然而,传统的培训方式往往无法满足这些需求,因为它们往往忽略了实践的重要性。 为了解决这个问题,许多公司开始采用…

python安装第三方包

1 命令行下载 pip install 包名称 进入命令行输入该命令 由于pip是连接的国外的网站进行包的下载,所以有的时候会速度很慢。 我们可以通过如下命令,让其连接国内的网站进行包的安装: pip install -i https://pypi.tuna.tsinghua.edu.cn/s…

STM32F4X之中断二

一、外部中断 外部中断:外部中断的中断是相对于外部中断控制器(EXTI)来说,如下图所示: EXTI掌管着23根中断线,具体分布图下: 16根连接GPIO口,如下图: 所有的0口连接到中…

SDK 窗口程序创建

目录 Windows 窗口 窗口的基本概念 创建一个窗口的流程 句柄 创建窗口 设计注册窗口类 创建窗口 显示和更新窗口 创建消息循环 消息循环 建立消息循环 窗口过程函数 窗口程序模板(多字节) 窗口程序模板(Unicode) Wi…

springBoot--web--http缓存机制测试

springBoot--web--http缓存机制测试 前言1、多端内容适配基于请求头内容协商(默认开启)基于请求参数内容协商(需要开启) 2、默认返回json数据3、设置返回xml数据导入jackson-dataformat-xml包在类文件中添加注解 JacksonXmlRootEl…

Leetcode 1 两数之和 (暴力循环 HashMap* ) 含set、数组、map作哈希表的特性分析*

Leetcode 1 两数之和 (暴力循环 哈希表) 解法1 : 暴力循环解法2 : 哈希表HashMap法:red_circle:为什么想到用哈希表呢?:red_circle:为什么想到用map呢?:red_circle:归纳使用数组、set、map做哈希法: 题目链…

LeetCode 2316. 统计无向图中无法互相到达点对数::广度优先搜索(BFS)

【LetMeFly】2316.统计无向图中无法互相到达点对数:广度优先搜索(BFS) 力扣题目链接:https://leetcode.cn/problems/count-unreachable-pairs-of-nodes-in-an-undirected-graph/ 给你一个整数 n ,表示一张 无向图 中…

WP Ultimate CSV Importer远程代码执行分析-CVE-2023-4142

1.前言 WordPress的WP Ultimate CSV Importer插件易受远程代码执行的攻击 2.影响版本 <=7.9.8(所有用户) 其他版本(管理员 3.漏洞信息 此漏洞发生在ImportHelpers.php中的get_header_values函数。 trim_content数组为漏洞触发位置 $header_trim 的作用是用来存储 $m…

数字医疗解决方案:互联网医院平台的创新应用

互联网医院平台代表了医疗行业的一项巨大创新&#xff0c;它利用数字技术为患者提供了更加便捷和高效的医疗服务。本文将探讨如何创新应用互联网医院平台&#xff0c;使用Python编程语言构建一个简单的远程医疗应用示例。 构建远程医疗应用 在本文中&#xff0c;我们将使用P…

@Cleanup() 使用注意事项

前端时间用lombok 的Cleanup() 想实现线程池的自动关闭&#xff0c;因为使用不当&#xff0c;查bug查了好久&#xff0c;因此写篇博客纪念下&#xff0c;同时也希望读者可以跳过这个坑。 Cleanup修饰的对象&#xff0c;可以在对象资源使用结束后&#xff0c;自动关闭。 1、错…