下载mysql的jar,添加至jmeter中,编写jdbc协议脚本1106
下载jar包:
步骤1:进入maven仓库官网https://mvnrepository.com/
步骤2:搜索实际的数据库
步骤3:点击 Mysql connnector/J
步骤5、查看数据库的版本号,选择具体版本,我的是mysql 8.0.16,下图,点击对应版本号进入下载
步骤6:点击如图jar位置,下载
步骤7:jar下载至本地,将mysql-connector-j-8.0.31.jar 拷贝至:Jmeter的这个目录:E:\apache-jmeter-5.4.1\lib
现在就可以写jdbc请求。、
步骤8:启动jmeter.bat,测试计划-线程组-添加取样器-jdbc request
步骤9:编写jdbc协议脚本
(1)线程组-添加-配置元件-JDBC Request
配置信息:
Database URL:jdbc:mysql://主机Ip:端口号/数据库名 jdbc:mysql://1198.0201:3306/testdb
# JDBC Driver Class
根据数据库版本配置 mysql 8.0版本,进行编辑,添加com.mysql.cj.jdbc.Driver
根据数据库版本 mysql 5.0版本,下拉框选择:om.mysql.jdbc.Driver
Username | 数据库用户名 |
Password | 数据库密码 |
Variable Name for created pool | 自定义连接池名称,字母下划线,这里取名后,请求中要使用 |
(2)线程组-添加-取样器-JDBC Request
(3)编写jdbc协议脚本, 填写 Sql语句和 JDBC Conection Configuration名称,与步骤1配置元件的Variable Name for created pool连接池名称一致
步骤10:实现翻页功能:
(1)
(2)
(3)sql:SELECT * from book_comment limit 10 offset ${d}
第二页就是5为显示数据条数: offset 5 1*5 就是第二页 2*5 就是第三页 0ffset 10
SELECT * from book_comment limit 10 offset 5 #查询出第二页数据
查询10条数据,翻页功能,这里的计数器应该为递增10
注意:在JDBC Request不要写多个sql语句,默认也不支持多个sql
步骤11:sql中带参数变量
JDBC Request,
sql中带参数的写法:
1、直接sql中,进行变量引用,不推荐,容易SQL注入,有安全漏洞,并有可能报错
sql:SELECT * from book_comment limit 10 offset ${d}
2、Qury Type 选择prepared select statement,这种是在脚本中,可以带有参数 使用
变量占位符 ,推荐
单个参数的写法:
多个参数的写法:多个变量时,参数value和type使用,逗号隔开,一一对应
SELECT * from book_comment WHERE book_id=? and testconnte=? #sql
步骤12:使用 Variable names 接收数据库返回值:获取数据库数据
方式1:
使用场景登录:使用不同的用户名
s
(1)线程组-添加-取样器-JDBC Request ,填写连接池、sql语句
(2)Variable names:ids,comment_content 接收数据库查询返回回来的Id,内容,多个变量使用逗号隔开:
数据返回的规律:变量名后加_1 如图 ids_1=11,ids_2=12
(2)使用foreach控制器,循环的使用数据库返回的需要值,进行使用变量
方式:线程组-添加-逻辑控制器-ForEach控制器
输入变量前缀:contents ,为jdbc request的Variable names取的名称
输出变量名称:自定义 content
(3)调用:可以在请求中消息体中参数调用,${content}
方式2:使用循环控制器,拼接函数拼接,缺点就是需要记录循环次数,优点就是可以同时取到数据库的两个值
(1)添加循环控制器
(2)添加计数器:
(3)使用拼接函数使用:
${__V(ids_${number},)}
${__V(contents_${number},)}
(4)调试取样器,ID:${__V(ids_${number})} 内容:${__V(contents_${number},)}
http请求消息体使用:
{id="${__V(ids_${number})}",comment_content="${__V(contents_${number},)}"
步骤13:使用Result variable name 接收数据库返回值
(1)jdbc请求:
Result variable name:varidsList,来接收从数据库查询返回回来2个id
(2)添加正则表达式
添加-后置处理器-正则表达式提取器,注意apply to 勾选 添加变量值
id=(.*?)}
正则表达式如果是数字:
id=(\d+)}
(3):ForEach控制器
4、引用值: