Jmeter 批量构造测试数据

作为一名测试,构造测试数据是再正常不过的事了,把我能想到的几种列了下
1、通过界面操作:时间较长
2、直接插表:写好insert语句批量执行
3、写存储过程:对数据库的掌握要求有点高
4、借助Jmeter:适用大数据,通过并发来实现

下面就结合Jmeter操作下

一、下载驱动包

在使用之前,需要先下载与数据库对应的驱动包

这里以 mysql 为例,我使用的驱动包是 mysql-connector-java-5.1.7-bin.jar,下载后放到 jmeter 的 lib 目录下,重启 jmeter 生效。
(当然,不放到目录也是可以的,需要每次在测试计划中导包)

二、JDBC连接配置

在发送 JDBC 请求之前,需要通过 JDBC Connection Configuration 元件配置数据库的相关信息

JDBC连接配置.png

如上图所示,需要注意的有两点:

  • Variable Name for created pool:连接池的变量名, JDBC Request 中的连接池变量名一定要和这里配置的一致;

  • Database Connection Configuration:

1、url 格式:
单条SQL语句:jdbc:mysql://ip:port/dbname
多条 sql 语句:jdbc:mysql://ip:port/dbname?allowMultiQueries=true 。

2、JDBC Driver class 选择与数据库对应的驱动

3、Username:登录数据库的用户名

4:Password:登录数据库的密码

5、其它项都按默认值即可

补充:不同数据库的配置如下所示:

image

三、添加JDBC Request

在这里写 sql 语句,实现增删改查,如下图所示:

image.png

注意上图中的变量名称要跟 JDBC Connection Configuration 中的变量名称一样。

Query Type:不同语句对应不同的 Query Type

1、单条查询语句
Query Type:Select Statement

2、多条查询语句
Query Type:Callable Statement

3、增删改语句
insert 、delete 语句使用的 Query Type 与 update 语句的一样

  • 单条 sql 的 Query Type:Update Statement
  • 多条 sql 的 Query Type:Callable Statement

4、参数化 sql 语句
如何对变量进行参数化的具体操作请阅读之前的文章:https://www.jianshu.com/p/755b3c2e4dd3

查询:

select xxx from table where id=\${id};

更新:

update table set xxx=\'\${xxx}' where id=\${id};

插入:

insert into table(a,b,c) values(\${a},unix_timestamp(),'${c}');

注意点:参数化的字段为字符型时,需要加单引号,否则会提示"Unknown column"
如图所示:

image.png

5、占位符语句
select * from table where id = ? and xxx = ?;
(用英文状态下的? 代替 where 条件值;)

占位符语句.png
  • Parameter values :? 代表的是字段值,多个值用逗号分隔;
  • Parameter types :参数值的类型,不管什么类型都写成 varchar,几个参数就写几个,多个值用逗号分隔;
image.png
  • Query Type:Prepared Update Statement 或 Callable Statement

你可能感兴趣的:(Jmeter 批量构造测试数据)