Jmeter中JDBC Request的使用

最近时间比较充足,学习了一些jmeter的使用,中间遇到了各种问题,也是各种百度搜索,最终才解决好,所以总结一下分享给大家。

前提:下载并配置了mysql的jdbc驱动包,有两种方法:

方法一:下载mysql的jdbc驱动后,直接复制到jmeter的lib目录下,重启jmeter

方法二:下载mysql的jdbc驱动后,添加jar包到ClassPath中。操作:打开jmeter—>新建测试计划—>浏览—>选择对应的jar包即可

 接下来就开始连接数据库:

一. 添加JDBC Connection Configuration配置

线程组—》右键添加—》配置元件—》JDBC Connection Configuration

 JDBC Connection Configuration中配置的内容如下:

Variable Name for Created pool:连接池的变量名,随便起,但是后面会用到

DataBase URL:格式jdbc:mysql://主机地址:端口/数据库名,若是有问题可以后面拼接上?serverTimezone=UTC&characterEncoding=utf-8;

  allowMultiQueries=true表示可同时执行多条sql语句,若需要也可拼接上

JDBC Driver Class:数据库驱动类型(mysql为com.mysql.jdbc.Driver)

Username:数据库登录的用户名

Password:数据库登录的用户名对应的密码

二:添加jdbc Request取样器

点击线程组—》右键添加—》取样器—》JDBC Request

JDBC Request中的配置如下:

 

注意QueryType=Select Statement 执行的是第一条sql语句,如果第一行是注释的也不行,会请求失败,提示如下

 

正确如下:

到这,基础的使用jdbc Request取样器连接数据库就成功了,接下来我们进行一些稍微复杂点的操作:

1.jdbc request请求参数化:

现在又一批二十多条的人员名单,我需要获取到他们的id,name,就需要使用参数化,就使用正常的CSV参数化的方法:

步骤:添加CSV 数据文件设置—>设置csv数据文件—>修改JDBC Request中的sql语句

 

 2.想要把这些数据保存为本地文件:选择jdbc Request取样器—》右键添加—》后置处理器—》BeallShell后置程序,编写一下脚本:

首先把这两个字段值打印到日志看下:name可以成功打印出来,但是id没有定义所以一直获取不到

解决办法:在jdbc Request中设置Variable names:将查询结果设置为变量名,供后续请求调用

调用语句是:变量名_index 打印到日志中在看下:

log.info(vars.get("columen1_"+1));这里的1就是index,相当于索引

完整的脚本:

FileWriter fstream = new FileWriter("D:\\test.csv",true);       
BufferedWriter out = new BufferedWriter(fstream);
out.write(vars.get("columen1_"+1));
out.write(",");//换列
out.write(vars.get("name"));
out.write(System.getProperty("line.separator"));//换行
out.close();
fstream.close();

3.现在想通过获取用户的手机号,并把这个手机号传递给登录接口使用,

可以参考:

Jmeter中如何读取MYSQL数据作为请求参数

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值