Jmeter 连接Mysql 数据库
一、下载mysql数据库驱动包并添加到测试计划中
先查看服务器中安装的数据库版本,下载一个高于数据库版本的数据库驱动包,如:服务器mysql版本为5.6.17,我下载的是mysql-connector-java-8.0.17.jar
把jar 包添加到测试计划中,如图
二、在线程组中添加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:数据库密码
三、添加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:保存查询结果,供其他元件调用,这里需要是result需要作为变量保存结果;当查询结果是多个字段时,变量用逗号隔开,如dept_id,dept_name。
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语句中通过${} 引用参数
四、实际的测试过程中通常我们只需要查询一次,查询结果供其他请求使用,可以通过仅一次控制器实现
4.1 线程组->添加->逻辑控制器->仅一次控制器,将JDBC request移动到仅一次控制器内部,如下图所示