jMeter之连接数据库MySQL
一、连接数据库
1.准备环境
下载mysql-connector的jar包放到jMeter的lib文件夹下。
创建好我的测试数库students,table students,ID自增
2.添加测试计划-线程组–config element-jdbc connection Configuration
connection pool configiont
database URL:jdbc:mysql://域名:端口/数据库?参数
max number of connection:数据库最大连接数
max wait(ms):连接等待时长
Time between evction runs(ms):连接时长
auto commit:自动提交
Transaction Isolation:事务间隔级别设置
connection validation by pooltest while Idle:连接空闲时是否从连接池中去除
soft min Evictable idle time:校验时间间隔
validation query:验证查询,检验连接是否有效,不同数据类型不同。
3.添加JDBC Rquest
parameter values:参数化数据变量名或者值(多个变量如何引用?)
parameter types:参数化数据类型(要和数据库对齐)
variable names:存放select结果
result variable names:存放select结果集
query timeout(s):查询超时时间
limit ReultSet:
handle Resultset:定义如何处理callable statement语句返回的结果。
Cannot create PoolableConnectionFactory (The server time zone value…错误,由于数据库没有设置时区引起的,在请求url后面加?serverTimezone=UTC解决啦!
二、insert之单行插入和多行插入
1.插入单行
a.添加JDBC connector configuration
b.sampler-jdbc request,注意query type选择update statement
2.插入多行
添加JDBC connector configuration,注意数据库URL后要加allowMultiQueries=True
sampler-jdbc request,注意query type选择prepared update statement
3.参数化
参数化可以使用csv数据导入、函数或者jdbc request中参数值的方式,这里我先试用csv函数助手,name和sex使用csv数据导入,tel用randomstring
a.创建一个线程组,循环次数4
b.添加jdbc connector conf和JDBC request。这里同插入单行语句,不再赘述
c.给request添加一个csv data set config
d.手机号码前3位固定为150,后八位用函数助手-randomstring随机生成
e.引用上述变量
f.运行后,table数据如下
三、数据操作之delete
创建测试计划等如上,不再赘述。批量删除可以借助参数化或者多条语句。
jdbc request实现参数化
a.query type-prepared update statement
b.sql语句中,参数的位置用[?]代替
c.parameter values:值或者变量名,这里使用值
parameter types:参数类型,与我的数据库对齐,char型
d.执行成功,数据库这条数据被成功删除啦~
四、数据操作之update
a.创建测试计划等如上,不再赘述。如遇到乱码问题,可以在JDBC Connection Conf的请求URL后加上charactorEncoding=数据库编码格式
五、数据库操作之select
1.单行查询、多行查询类似前面的单行和多行更新数据,注意的是,多行查询的时候,query type-prepared select statement在结果树中只能查看到一条结果,如果需要查看所有,需要选择callable statement.
2.保留查询结果
1.创建测试计划、添加sampler、listener,variable name用于存放查询的结果变量名,如果有多个变量,用逗号隔开。注意query type,我这里其实选错了,运行时报错。应该是select statement
可以看到运行结果 variable_#=2,指的是返回的总行数
3.保留结果集
设置results variable name,此时返回的是列表,元素的字典。
结果集只有一个,存放查询的所有结果。如果设置results variable name有多个,运行不会报错,但是两个变量的值的一样的。
完点赞 ~养成好习惯,以上内容希望对你有帮助,如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以加入我们。642830685,免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。