接口测试常用技能:Jmeter操作数据库

news2024/9/24 19:22:10

01、配置JDBC Request

1、添加需要的驱动jar包

使用不同的数据库,我们需要引入不同的jar包。

方式1:直接将jar包复制到jmeter的lib目录

mysql数据库:

下载mysql-connector-java-5.1.28.jar放到 jmeter根目录的lib目录下

sql server 数据库:

下载sqljdbc4.jar 放到 jmeter根目录的lib目录下

oracle数据库:

将oracle数据的安装目录下面的\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar 放到jmeter根目录下的lib目录下

方式2 :通过Test Plan

假如我们不使用将jar复制到jmeter的lib目录的方式,我们还可以使用Jmeter的Test Plan引入相应的jar包,如下面引入oracle数据的jar包
在这里插入图片描述

2、重要参数说明

Variable Name:

数据库连接池的名称,我们可以有多个jdbc connection configuration,每个可以起个不同的名称,在jdbc request中可以通过这个名称选择合适的连接池进行使用。

Database URL:

数据库url,jdbc:mysql://主机ip或者机器名称:mysql监听的端口号/数据库名称, 如:jdbc:mysql://localhost:3306/test

JDBC Driver class:

JDBC驱动

username:

数据库登陆的用户名

passwrod:

数据库登陆的密码

不同数据库具体的填写方式,可以参考下面的表格:
在这里插入图片描述
填写后大致如下:
在这里插入图片描述

重要的参数说明:

Variable Name:

数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致

Query:

填写的sql语句未尾不要加“;”

Parameter valus:

参数值

Parameter types:

参数类型,可参考:Javadoc for java.sql.Types

Variable names:

保存sql语句返回结果的变量名

Result variable name:

创建一个对象变量,保存所有返回的结果

Query timeout:

查询超时时间

Handle result set:

定义如何处理由callable statements语句返回的结果
在这里插入图片描述
3、执行结果:
在这里插入图片描述

02、JDBC Request 参数化

方法(一)

定义变量,在sql query中使用变量:

1、在Test Plan 中定义一个变量

(当然也可以使用参数化:Jmeter参数化):
在这里插入图片描述
2、sql query 中使用${变量名}的方式引用:

select * from test where name='${name}'

在这里插入图片描述
方法(二)

在sql query中使用”?“作为占位符,并传递参数值和参数类型,如下图所示:

1、传递的参数值是常量,如图传递2个变量,多个变量使用” , “ 分隔。这里假如你有数据是int类型的,也要在Parameter types 那里标示为varchar类型,否则无法运行。
在这里插入图片描述
2、传递的参数值是变量,使用${变量名}的方式
在这里插入图片描述 

03、Variables names参数

1、使用方法:

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

那么如下变量会被设置为:

A_#=2 (总行数)

A_1=第1列, 第1行

A_2=第1列, 第2行

C_#=2 (总行数)

C_1=第3列, 第1行

C_2=第3列, 第2行

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

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

可以使用KaTeX parse error: Expected group after '_' at position 3: {A_̲#}、{A_1}…来获取相应的值

示例:

我们还是用上面的数据库,把所有数据查出来,test表有有3个字段,5条记录(忘记了的可以回到第一步那里查看)

1、添加一个jdbc request名为”参数4“,添加一个”Debug Sampler“用来查看输出的结果,设置 variables name为column1,column2,column3:
在这里插入图片描述
2、执行结果:
在这里插入图片描述

解析:

column1代表第一列所有的数据,column1_#可以获取到第一列的行数

column1_n:获得第一列第n行的数据。

column2和column3的功能类似, 假如我们只需要第一列和第三列的数据,可以写成column1,column3,中间的","不可以省略。

04、Result variable name参数

1、使用方法:

如果给这个参数设置值,它会创建一个对象变量,保存所有返回的结果,获取具体值的方法:

columnValue = vars.getObject("resultObject").get(0).get("Column Name")

在这里插入图片描述

2、执行结果:
在这里插入图片描述


              【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通

二、接口自动化项目实战 

三、Web自动化项目实战


四、App自动化项目实战 

五、一线大厂简历


六、测试开发DevOps体系 

七、常用自动化测试工具

八、JMeter性能测试 

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到! 

                                    

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

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

相关文章

从零开始学极狐GitLab|02 基本功能使用

目录 0. 如何查看当前版本? 1. 群组创建与删除 1.1 新建群组 1.2 删除群组 2. 项目创建与删除 2.1 新建项目 2.2 删除项目 3. 用户管理 3.1 新建用户 3.2 权限管理 3.3 关闭用户注册 4. 项目管理 4.1 修改 Git 地址 4.2 分支 ➤ 新建分支 ➤ 分支保…

【eNSP】静态路由

【eNSP】静态路由 原理网关路由表 实验根据图片连接模块配置路由器设备R1R2R3R4 配置PC的IP地址、掩码、网关PC1PC2PC3 配置静态路由查看路由表R1R2R3R4测试能否通信 原理 网关 网关与路由器地址相同,一般路由地址为.1或.254。 网关是当电脑发送的数据的目标IP不在…

2023ChinaJoy,撕歌APP实力突围多元化娱乐市场

ChinaJoy作为中国最大的数字娱乐展览会之一,以及亚洲最具影响力的数字娱乐盛会之一,自2003首次举办以来,ChinaJoy不断拓展创新,早已经成为了数字娱乐行业的风向标和重要交流平台,吸引了国内外众多知名企业和品牌参与。…

基于Java的校园二手交易平台设计与实现

基于Java的JSP校园二手交易平台,不仅减少了学生资源的浪费,还能达到资金“回血”的目的。简洁方便、易用。 页面展示 1 登录页面 2 注册页面 3 主页页面 4 商品页面 5 卖家一览页面 6 求购信息页面 7 商城介绍页面 8 商城资讯页面 9 留言信息页面 10…

AcWing244. 谜一样的牛(树状数组)

输入样例&#xff1a; 5 1 2 1 0输出样例&#xff1a; 2 4 5 3 1 解析&#xff1a; 从后往前遍历&#xff0c;每次需要在剩余的数中&#xff0c;找到第 h[ i ]1 大的数即为当前牛的身高。 每次二分&#xff0c;然后求前缀和。 #include<bits/stdc.h> using namespace …

Scratch 之 “2000年至今的天数”积木 的用法

2000年至今的天数 看起来&#xff0c;这块积木好像没有什么用&#xff0c;2000年还是固定的一个值&#xff0c;不能输入。点一下它&#xff0c;可以看到返回了一个小数位数特别多的数。 但实际上&#xff0c;这块积木有着非常多的作用。在很多自制积木包中都用到了这块积木。…

穷举深搜暴搜回溯剪枝(3)

一)字母大小写全排列 784. 字母大小写全排列 - 力扣&#xff08;LeetCode&#xff09; 1)从每一个字符开始进行枚举&#xff0c;如果枚举的是一个数字字符&#xff0c;直接忽视 如果是字母的话&#xff0c;进行选择是变还是不变 2)当进行遍历到叶子结点的时候&#xff0c;直接将…

【Android】在AndroidStudio开发工具运行Java程序

在Android Studio开发工具中&#xff0c;Android系统开始就是用java语言开发的&#xff0c;还可以java代码来写程序&#xff0c;控制台&#xff0c;桌面应用&#xff0c;还可以写可调用的模块&#xff0c;这里讲一下创建Java程序步骤&#xff0c;方便入门java语言开发。 新建一…

数字化采购:提升效率、优化供应链的新趋势

随着信息技术的快速发展&#xff0c;数字化采购正成为企业追求效率和优化供应链的新趋势。数字化采购是利用数字技术和互联网平台&#xff0c;实现采购流程的自动化和在线化。本文将围绕数字化采购的应用场景&#xff0c;探讨其在采购环节中带来的效益与优势。 一、在线供应商…

家居行业解决方案 | 君子签电子签约助力家居企业减负增效

过去&#xff0c;家居行业因供需两端碎片化、服务链条较长等因素&#xff0c;导致线上发展较为缓慢&#xff0c;近年来&#xff0c;互联网的发展推动直播电商、兴趣电商兴起&#xff0c;促使家居行业数字化建设需求越来越为迫切。 合同管理作为家居行业企业经营的一项重要管理…

wordpress发表文章时报错: rest_cannot_create,抱歉,您不能为此用户创建文章(已解决)

使用wordpress 的rest api发布文章&#xff0c;首先使用wp-json/jwt-auth/v1/token接口获取token&#xff0c;然后再使用/wp-json/wp/v2/posts 接口发表文章&#xff0c;但是使用axios请求时&#xff0c;却报错&#xff1a; 但是&#xff0c;我在postman上却是可以的&#xff0…

RunnerGo五种压测模式你会配置吗?

我们在做性能测试时需要根据性能需求配置不同的压测模式如&#xff1a;阶梯模式。使用jmeter时我们需要安装插件来配置测试模式&#xff0c;为了方便用户使用&#xff0c;RunnerGo内嵌了压测模式这一选项&#xff0c;今天给大家介绍一下RunnerGo的几种压测模式和怎么根据性能需…

【原创科普教程】如何更改bangumi一键跳转脚本视频教程

【原创科普教程】如何更改bangumi一键跳转脚本视频教程 【原创科普教程】如何更改bangumi一键跳转脚本视频教程 - AcFun弹幕视频网 - 认真你就输啦 (?ω?)ノ- ( ゜- ゜)つロ【原创科普教程】如何更改bangumi一键跳转脚本视频教程,bangumi,bgm,,脚本安装地址: https://greasy…

浅谈新电改背景下电网企业综合能源服务商业模式研究及发展方向

安科瑞 华楠 摘要: 新电改方案实施后&#xff0c;由于输配电价的改革和售电侧的放开&#xff0c;电网企业的盈利模式也随之发生了变化。这就要求电网企业转变服务理念与经营方式&#xff0c;来寻求竞争优势。基于“魏朱六要素商业模式”模型&#xff0c;对电网企业综合能源服务…

《皮囊》阅读笔记

《皮囊》阅读笔记 2023年8月2号在杭州小屋读完&#xff0c;该书共收录14篇散文&#xff0c;内容大致分为两部分&#xff1a;前半部分讲述作者的阿太&#xff08;外婆的母亲&#xff09;、母亲、父亲关于生活哲学、房子、疾病与信仰的故事&#xff0c;后半部分讲述生活在小镇的张…

国标GB28181安防视频平台EasyGBS大批量通道接入后,创建角色接口未响应的排查

国标GB28181协议视频平台EasyGBS是基于国标GB28181协议的视频云服务平台&#xff0c;支持多路设备同时接入&#xff0c;并对多平台、多终端分发出RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。平台可提供视频监控直播、云端录像、云存储、检索回放、智能告警、语音对讲、平台级…

JavaSE【继承和多态】(2)(向上转型、向下转型、重写、动态绑定、静态绑定、多态的运用)

一、多态 1.多态的概念 多态的概念&#xff1a;通俗来说&#xff0c;就是多种形态&#xff0c; 具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会产生出不同 的状 态。 简单说就是&#xff0c;同一件事情&#xff0c;发生在不同对象身上&#xff0c;就会产生不同…

获取淘宝商品详情数据的几种方法(商品标题、商品价格、商品销量、详情图片、商品主图

淘宝作为中国最大的电商平台之一&#xff0c;拥有海量的商品信息和用户数据。对于电商从业人员和数据分析师来说&#xff0c;了解淘宝商品详情数据是非常重要的。本文将介绍几种获取淘宝商品详情数据的高效方法&#xff0c;并详细探讨每种方法的优缺点。 一、淘宝 API 淘宝开放…

SpringBoot整合邮件服务

SpringBoot整合邮件服务 发送邮件应该是网站的必备功能之一&#xff0c;什么注册验证&#xff0c;忘记密码或者是给用户发送营销信息。最早期的时候我们会 使用 JavaMail 相关 api 来写发送邮件的相关代码&#xff0c;后来 Spring 推出了 JavaMailSender 更加简化了邮件发送的…

无限遍历,Python实现在多维嵌套字典、列表、元组的JSON中获取数据

目录 背景 思路 新建两个函数A和B&#xff0c;函数 A处理字典数据&#xff0c;被调用后&#xff0c;判断传递的参数&#xff0c;如果参数为字典&#xff0c;则调用自身&#xff1b; 如果是列表或者元组&#xff0c;则调用列表处理函数B&#xff1b; 函数 B处理列表&#x…