ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

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

2021-12-15 14:05:20  阅读:135  来源: 互联网

标签:JDBC Request 改查 勾选 线程 SQL 增删 Jmeter id


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”两种方式皆可运行成功。

标签:JDBC,Request,改查,勾选,线程,SQL,增删,Jmeter,id
来源: https://www.cnblogs.com/xksy/p/15691122.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有