Jmeter高阶系列 —— 使用JDBC协议获取数据

jmeter支持多种服务协议,包括:HTTP/HTTPS,SOAP,Java,TCP,JDBC,JMS等,虽然我们使用最多的是http/https协议,但其实JDBC协议在苍穹用处很大。

使用JDBC协议可以实时从数据库获取数据,对数据进行不同的参数化处理后,脚本在运行时可以根据需要引用参数名作为输入,实现不同场景的使用。

通过JDBC协议获取的数据属于动态数据,不同于静态数据参数化,动态数据参数化可提高脚本可移植性,增加脚本的寿命,减少维护周期和维护成本。

那如何通过JDBC协议获取数据呢?

请听小编继续分解。

01、添加数据库驱动

添加驱动的方式有两种,可在测试计划中添加驱动jar包的路径,还可以将驱动jar包放入至Jmeter安装路径的\lib\ext文件夹下。

驱动版本需根据数据库及其版本进行匹配。

下图是添加mysql驱动:mysql-connector-Java-8.0.20.jar。

02、添加JDBC Connection Configuration

在添加好数据库驱动后,接下来添加JDBC Connection Configuration,具体操作如下:

03、填写配置信息

重点关注名称(需保持与后续的JDBCRequst的名称一致),Database URL,JDBC Driver class(驱动),用户名和密码。

04、发送JDBC Request请求

发送JDBC Request请求,执行sql语句获取数据库的数据。

得到的数据自动成为Jmeter变量,可供Jmeter调用和操作。

05、查看JDBC请求结果

通过组件“查看结果树”,查看JDBC请求的响应。

如下图,JDBC请求返回结果列出了从数据库表得到的1999个fid值

06、Debug Sampler

在上一步中,JDBC请求后,可在查看结果树中查看请求结果,通过sql语句从数据库得到fid值,这些值可作为请求和计算的数据来源。

在JDBC请求中填写过一个输出变量-- materialFidQ1(本文第四步),但在Jmeter中不能直接引用materialFidQ1,那该如何解决呢?

Jmeter有它特殊的调试工具--DebugSampler。DebugSampler能打印出Jmeter变量,引用的参数名及参数值。DebugSampler是Jmeter调试利器,推荐大家使用。

如图所示,返回的Jmeter变量中列出了从数据库得到的1999个变量值。请注意变量值的前缀为JDBC请求中填写的materialFidQ1,通过数字下标标识不同的值,比如materialFidQ1_1,为第一个值’1028198142056595456’, materialFidQ1_1000为第1000值’1028209821440018432’等。

几个名词

1.数据池也即数组。

2.前缀:materialFidQ1。

3.下标:materialFidQ1_1的下标为1,materialFidQ1_100的下标为100。

4.数据池的长度也即数组的长度等于materialFidQ1_#的值,在这里为1999。

07、一个简单的使用

在DebugSampler中看到了参数名和参数值,一个简单的引用方式,直接通过${ materialFidQ1_1} 可得1028198142056595456这个值。具体如下图所示:

在Jmeter请求中通过引用参数” materialFidQ1_1”获取参数值” 1028198142056595456”。

在查看结果树中,我们可以看到引用${ materialFidQ1_1}成功获取到对应的值。我们可以更改下标来引用不同的值,比如${ materialFidQ1_99}引用第99个值。


行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值