Jmeter连接数据库进行增删改查

2021/12/16 2:48:31

本文主要是介绍Jmeter连接数据库进行增删改查,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1 【JDBC Connection Configuration】

1.1 先添加【配置元件】——【JDBC Connection Configuration】

1.2【JDBC Connection Configuration】配置

Variable Name for created pool:变量名称,之后【JDBC Request】中会用到

Max Number of Connections:最大连接数,比如10

DatabaseURL:连接地址,jdbc:mysql://localhost:3306/student_info?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC

JDBC Driver class:驱动,选择mysql

Username:数据库用户名,root

Password:数据库密码,123456

其他值默认即可

2 【JDBC Request】

2.1 添加【取样器】——【JDBC Request】

2.2 【JDBC Request】配置——查询学生信息

Select Statement:

作者:麦芒
链接:https://www.imooc.com/article/21205
来源:慕课网

SQL语句:Select * from `student`;

运行结果:

2.3 运行驱动报错解决办法

 将【mysql-connector-java-8.0.11.jar】放到Jmeter/lib/ext目录下即可,

mysql-connector-java-8.0.11.jar下载地址:

链接:https://pan.baidu.com/s/1RN2Qd6Lv5kiMx9tAtniqBw
提取码:idas

2.4 【JDBC Request】配置——修改学生信息

例:将“江小白”的邮箱修改为jiangxiaobai@qq.com

SQL语句:UPDATE `student` SET email = 'jiangxiaobai@qq.com' WHERE name = '江小白';

运行结果:

 查看数据库中江小白的邮箱已修改:

2.5 【JDBC Request】配置——添加学生信息

SQL语句:INSERT INTO `student`(`id`, `class_name`, `course_name`, `email`, `name`, `score`, `sex`, `student_id`) VALUES (12, '八年一班', '数学', 'lisi@163.com', '李四', 95, 'girl', '010');

运行结果:

查看数据库已增加此条数据:

2.6 【JDBC Request】配置——删除学生信息

删除数据库中id为12的学生信息:

运行结果:

查看数据库中id为12的学生已被删除:

2.7 结合参数化批量添加学生

2.7.1 使用【计数器】实现id自增

Maximum Value:计数器使用long存储的值,缺省时为2^63-1,长时间压测时一般不需要填

数字格式:可选格式,比如000,格式化为001,002;默认格式为Long.toString(),但是默认格式下,还是可以当作数字使用

引用名称:用于在其它元素中引用该值

与每用户独立的跟踪计数器(Track Counter Independently for each User):

(1)不勾选,则多线程测试时,线程2不会重置为从设置的起始值开始,会延续线程1的计数

(2)勾选,但不勾选“在每个线程组迭代上重置计数器”,则多线程测试时,线程2会重置为从设置的起始值开始,不会延续线程1的计数

(3)勾选,且勾选“在每个线程组迭代上重置计数器”,则单个线程每次循环时也会重置为设置的起始值

2.7.2 修改【JDBC Request—添加学生信息】中的SQL

将修改【JDBC Request—添加学生信息】中的SQL`id`字段对应的值改为${userid},即引用计数器中设置的变量名

SQL改为:INSERT INTO `student`(`id`, `class_name`, `course_name`, `email`, `name`, `score`, `sex`, `student_id`) VALUES (${userid}, '八年一班', '数学', 'lisi@163.com', '李四', 95, 'girl', '010');

2.7.3 设置线程数和循环次数

如,线程数:2,循环次数:3

2.7.4 运行结果对比

与每用户独立的跟踪计数器(Track Counter Independently for each User):

(1)不勾选

 如下图所示,6个请求全部执行成功,且id从20到25

 

查看数据库中6个用户全部新增成功:

(2)勾选,但不勾选“在每个线程组迭代上重置计数器”

如下图所示,只有线程1的请求全部执行成功,线程2的请求全部执行失败,线程1的id值为从20-22,线程2的id值也为从20-22 

查看数据库中只新增了3个用户:

(3)勾选,且勾选“在每个线程组迭代上重置计数器”

如下图所示,只有线程1的第1个请求执行成功,其他5个请求执行失败,每次请求的id值都为20

查看数据库中,只成功新增了id为20的一条数据:

2.8 Query Type带Prepared与不带的区别

Query Type选择“Update Statement”和“Prepared Update Statement”的区别:带Prepared,SQL语句中可以带参数,与下面的“Parameter values”和“Parameter types”连用。

比如上面批量插入的例子,可以用另一种方式:

    SQL语句中参数用?号代替,然后在下面的“Parameter values”中传入值,在“Parameter types”中传入类型,多个变量以逗号分隔即可。实际效果与SQL中直接传入${userid}一样,但这种方式必须选择为Prepared Update Statement才能运行成功,选择Update Statement运行会报错。如果在SQL中直接传入${userid},则选择“Update Statement”和“Prepared Update Statement”两种方式皆可运行成功。



这篇关于Jmeter连接数据库进行增删改查的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程