jmeter连接mysql数据库

背景:做接口压力测试时可能需要从数据库中读取数据作为参数进行传递,jmeter提供JDBC连接的相关元件,本文记录jmeter连接mysql数据库进行参数传递的关键步骤和方法

1、下载mysql数据库驱动包并添加到测试计划中

1.1 先查看服务器中安装的数据库版本,下载一个高于数据库版本的数据库驱动包,如:服务器mysql版本为5.6.0,我下载的是mysql-connector-java-8.0.11.jar

1.2 在jmeter的测试计划中添加下载的jar文件

2、在线程组中添加JDBC Connection Configuration并配置数据库连接参数

2.1 右键线程组->添加->配置元件->JDBC Connection Configuration

2.2 填写配置信息,如下图所示

参数说明:

Varibale Name:注意变量名,后面添加jdbc请求时需要与该名字一致

Database URL:数据库连接地址,jdbc://mysql/地址:port/db_name,加上“?useUnicode=true&characterEncoding=utf8”为了避免后续相关测试的时候中文显示乱码

JDBC Driver class:com.mysql.jdbc.Driver 

Username:数据库用户名

Password:数据库密码

3、添加JDBC Request

3.1 线程组->添加->Sample->JDBC Request

 

3.2 添加需要查询的语句【不带变量】

参数说明:

Variable Name:之前配置的JDBC Connection Configuration的Variable Name名称保持一致

Query Type:含变量的sql查询,选择Prepared Select Statement,不含变量的sql查询,选择Select Statement,同理update的选项

Query:输入sql语句,注意不要加分号

Parameter values:引用用户定义的其他变量

Parameter types:变量的类型

Variable names:保存查询结果,供其他元件调用,这里需要是order_no需要作为变量保存结果;当查询结果是多个字段时,变量用逗号隔开,如new_order_no,new_id。

Result variable name:上面Variable names中的变量是个数与列对应的,Result variable name是把整个结果存在一个数组中,返回结果有点类似json字符串

3.3 运行下脚本,检查是否可以正常从数据库查询数据【不带变量】

 

 3.5 添加需要查询的语句【带变量】,选择Query Type为prepared select statement

 3.5.1 方法一:SQL中带变量可以通过?占位符填充变量,如下图所示

3.5.2  方法二:直接在SQL语句中通过${} 引用参数

 3.5.3 检查带变量输出的结果以及将结果保存为数组输出的结果

 

4、实际的测试过程中通常我们只需要查询一次,查询结果供其他请求使用,可以通过仅一次控制器实现

4.1 线程组->添加->逻辑控制器->仅一次控制器,将JDBC request移动到仅一次控制器内部,如下图所示

 

 关于其他请求调用JDBC Request变量的方法请关注后续笔记

posted @ 2019-07-16 17:58  simplesally  阅读(2030)  评论(0编辑  收藏  举报