配置步骤

1、下载驱动包(jdbc)

文件名:mysql-connector-java-6.0.2.jar
链接:https://pan.baidu.com/s/1SEdVYpWeGIhWGrGI5GdxFg 
提取码:1234

2、把jar包放入jmeter的lib文件夹下,重启jmeter才能生效。

其它方式:在测试计划中,添加此jar包即可(无需重启) 如图

3、链接数据库(JDBC Connection Configuration)

添加JDBC Connection Configuration,路径如下

线程组》添加》配置元件》JDBC Connection Configuration,

(数据库的连接信息都存储在这个配置元件里面,所以如果我们要通过Jmeter对数据库进行操作,就要先新增此配置元件来配置数据)

如图

连接池配置如下图

Variable Name for created pool(定义池变量名称)自定义参数,在JDBC Request中会用到;
 

连接池其它参数配置,基本保持默认就行了,可根据需要进行修改 

字段含义
Max Number of Connections
  • 最大连接数;做性能测试时,建议填 0
  • 如果填了10,则最大连接10个线程
Max Wait(ms)在连接池中取回连接最大等待时间,单位毫秒
Time Between Eviction Runs(ms)
  • 线程可空闲时间,单位毫秒
  • 如果当前连接池中某个连接在空闲了 time Between Eviction Runs Millis 时间后任然没有使用,则被物理性的关闭掉
Auto Commit自动提交sql语句,如:修改数据库时,自动 commit
Transaction isolation事务隔离级别
Preinit Pool
  • 立即初始化连接池
  • 如果为 False,则第一个 JDBC 请求的响应时间会较长,因为包含了连接池建立的时间

最下面,设置数据库连接配置,如下图

数据库连接配置

字段含义
Database URL数据库连接 URL
JDBC Driver class数据库驱动
Username数据库登录用户名
Password数据库登录密码
Connection Properties

建立连接时要设置的连接属性

Database URL:jdbc:mysql:// 数据库IP地址:数据库端口/数据库名称;(如果要执行多条SQL语句,后面还要添加“?allowMultiQueries=true”)

如图配置:jdbc:mysql://localhost:3306/apitool?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC

JDBC Driver Class:com.mysql.jdbc.Driver;

4、添加JDBC Request

路径:线程组》添加》取样器》JDBC Request

如图1

如图2,JDBC Request配置如下

字段含义

字段含义

Variable Name Bound to Pool

数据库连接池配置的名称

Query Type

sql 语句的类型

SQL Query

  • sql 语句
  • 语句结尾不需要添加 ; 
  • 变量用 ? 占位

Parameter values

需要传递的变量值,多个变量用 , 分隔

Parameter types

变量类型

Variable Names

  • 保存sql语句返回的数据和返回数据的总行数
  • 用 , 分隔
  • 跳过列用空

Result Variable Name

一个 Object 变量存储所有返回值

Query timeout(s)

超时时间;默认0,代表无限时间

Limit ResultSet

和 limit 类似作用,限制 sql 语句返回结果集的行数

Handle ResultSet

如何定义 callable statements 返回的结果集;默认是存储为字符串

后续通过各种栗子来深入理解常用字段的含义

user表

JDBC Request-只有 sql 语句的栗子

执行结果: 

JDBC Request 参数化的栗子

知识点

  • 有几个问号,Parameter value、Parameter type 填写值的数量要保持一致,用,分隔(数值integer)
  • 问号其实是占位符,如果学过编程的童鞋应该也知道这种写法,可以避免 SQL 注入的问题
  • sql 中使用占位符时,Query Type 必须选择 Prepared Select Statement 或者 Prepared Update Statement 
  • 我们可以用 Jmeter 变量去赋值,看下面栗子

JDBC Request-参数化+变量的栗子

用户自定义变量id=1

sql语句中使用变量${id},如下

select * from user where username= ? and id = ${id};

参考文档: https://www.cnblogs.com/poloyy/p/13184602.html

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐