1、首先jmeter先进行连接mysql相关的配置,我之前已经有教程了就不赘述了,教程链接如下
jmeter连接mysql数据库以及常规用法-CSDN博客
2、当jmeter成功配置mysql数据库后,在JDBC Request组件中进行如下配置
Variable Name of Pool declared in JDBC Connection Configuration:输入连接数据库名称,上面链接教程中有介绍不赘述
Query Type:选择Select Statement
编辑框:输入查询语句,我这边就直接查询全部 select * from lr_user;
Variable names:变量名称,这里是需要定义查询结果中所需要引用的字段名称,我这边有三个结果字段,因此就需要设置三个变量yhm,mm,bz 英文逗号隔开。
注意:如果是条件查询且需要传递查询参数时,Query Type:字段信息需要选择Prepared Select Statement 。我这边没有进行条件查询就直接使用Select Statement类型了。
3、JDBC Request组件配置完成后,添加BeanShell 取样器,添加步骤上面链接教程也有,不赘述了。
out.write(vars.get("yhm_" + i)+"\t"+vars.get("mm_" + i)+"\t"+vars.get("bz_" + i)+"\r\n");
上面代码是将结果写入到文件中,因为sql语句查询的结果存储在设置的yhm、mm、bz变量中,但是在调用的时候必须通过yhm_1的方式,代表结果中第一行的yhm参数。如果直接写${yhm}是获取不到结果的
因此可以通过循环的方式进行写入文件,从第一行一直取到最后一行,有多少行值就循环多少次,可以看到我这边有七行数据,设置循环七次
代码如下:
//指定需要写入到哪个文件,格式:TXT,csv
//D:\\Program Files\\apache-jmeter-5.1.1需要存储写入文件的路径
//text.txt 指定保存的文件
FileWriter file = new FileWriter("D:\\Program Files\\apache-jmeter-5.1.1\\Mysqltext.txt",true);
//创建一个字符缓存输出流
BufferedWriter out = new BufferedWriter(file);
//写文件内容
//vars.get:获取 jmeter 中的变量值
//"\r\n" 写入文件时可以换行
//"yhm_" + i 为在正则取样器中定义的引用名称,接口截取的响应结果都存储在yhm_1参数中
//out.write(vars.get("yhm_1"));
for(int i=1;i<=7;i++){
out.write(vars.get("yhm_" + i)+"\t"+vars.get("mm_" + i)+"\t"+vars.get("bz_" + i)+"\r\n");
}
//关闭写数据流
out.close();
//关闭文件
file.close();
运行后,可以将结果写入文件中