排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
Jmeter实战如何利用JDBCrequest获取数据库中的值并提取作为下文中的入参
Jmeter实战如何利用JDBCrequest获取数据库中的值并提取作为下文中的入参
老李学习笔记
2021-04-27
4496
今天进行接口自动化测试时,在上下接口关联中需要查询数据库存储的验证码,于是就想到何不直接用JDBC request直接读取呢,方便简洁,还不用写接口了。
JDBC request是Jmeter中的一个取样器,可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作。需要和JDBC Connection Configuration配置元件(配置数据库连接的相关属性,如连接名、密码等)一起使用。
JDBC Connection Configuration的配置
1、下载数据库驱动
(mysql-connector-java-X.xx.jar)放到Jmeter的lib路径下。
不同的数据库有不同的驱动,可根据下表对照自己使用的数据库进行下载。
2、在线程组下添加配置元件JDBC Connection Configuration并配置相关参数
VariableName:数据库连接池的名称,我们可以有多个jdbc connection configuration,每个可以起个不同的名称,在jdbcrequest中可以通过这个名称选择合适的连接池进行使用。
Max Numberof Connection:数据库最大链接数
MaxWait(ms):最大等待时间
timebetween eviction runs:运行时间间隔
Auto Commit:自动提交。有三个选项,true、false、编辑(自己通过jmeter提供的函数设置)
TransactionIsolation
:事务间隔级别设置,
设置默认即可
Test WhileIdle :当空闲的时候测试连接是否断开
Soft MinEvictable Idle Time(ms) :最少的时间连接可能在池中闲置,然后才有资格被闲置的对象驱逐出去,额外的条件是至少在池中保持连接。默认值为5000(5秒)
validationQuery:配置数据库时,属性validationQuery默认值为“select 1”,对于oracle值应为“select 1 from dual”。用来验证数据库连接的语句,这个语句至少是返回一条数据的查询语句。每种数据库都有自己的验证语句。大部分数据库都是select 1。
DatabaseURL: jdbc:mysql://服务器地址:3306/数据库名,不同的数据库DatabaseURL不一致,可根据自己使用的数据库自行选择,如上图。
JDBC Driverclass:数据库JDBC驱动类名:com.mysql.jdbc.Driver
Username:数据库连接用户名
password:数据库连接密码
配置完JDBC Connection Configuration后,就可以在需要的位置添加JDBCrequest获取值来配合自动化测试。如下图,在调用获取验证码接口之后,需将验证码作为校验验证码接口的参数传给后端,为了能让接口自动关联,需要我们在获取验证码之后添加一个JDBC request请求数据库取出验证码并返回,然后使用正则表达式提取返回数据中的验证码传入校验接口。
配置JDBC request
Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable NameBound Pool中的Variable Name名字保持一致
Query Type:此处支持方式多样,可以用于添加或者筛选数据,根据需要和Query配合使用;
Query:填写的sql语句,之前有文章说这里不要加”;”,老李也亲自进行了测试,加不加”;”都可以请求成功,并返回信息。(我用的Jmeter版本为3.2)
Parameter valus:数据的参数值
Parameter types:数据的参数类型
Variable names:保存sql语句返回结果的变量名,用于作为参数供调用
Result variable name:创建一个对象变量,保存所有返回的结果,供调用;
Query timeout:查询超时时间
Handle result set:定义如何处理由callable statements语句返回的结果。
在JDBC request请求下,添加正则表达式
。
截止到上一步就可以从数据库中取出需要的值,就算结束了,但是为什么我还要加上正则表达式的提取呢,因为这里着实让老李费了一把功夫,所以有必要说一说,首先我们看一下JDBC request的返回数据的显示方式。
他不像传统的Json格式返回那么规范,他其实是字段换行后显示的值,所以经过一番尝试在添加了“\n”换行符后才能成功。所以老李的正则是identifyingBuffer\n(\d{6})。如下图,可以正常取出验证码并作为下一接口的参数请求了。
数据库
文章转载自
老李学习笔记
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨