Jmeter对数据库批量增删改查
本文主要的内容是使用Jmeter对数据库进行数据的操作,包括单条语句的增删改查,多条语句的增删改查,本文主要介绍操作流程,关于流程的运作原理,对原理感兴趣的同学可自行查阅资料。
首先需要准备一个数据库驱动Jar包【mysql-connector-java-bin.jar】可以直接百度下载,版本不建议特别低,jar包需要Jmeter引用才能使用,jar包引用如下:
将jar放入Jmeter安装/解压文件路径:eg:D:\apache-jmeter-5.0\apache-jmeter-5.0\lib下,需要重启Jmeter才能生效
驱动包的作用:没有数据库驱动,就不能连接数据库,Jmeter在没有驱动的情况下链接数据库会报:no suitable jdbc driver 错误。
以下是常见的数据库驱动:
图一
汉化Jmeter:打开JMeter解压/安装路径下的文件JMeter.properties,在#language=en下面添加:language=zh_CN保存文件,并重启JMeter。
一:主要配置元件介绍(以下为增删改查操作的共有元件)
如图主要元件如下:
1、 添加测试计划:各个值直接默认就好,为空的地方也不用填
2、添加线程组:各个值默认,为空的地方也不用填
3、添加JDBC配置文件(JDBC Connection Configuration):
重要字段介绍
名称:设置的是该元件的名称,设置名称后【测试计划】树配置元件也会对应更改
Variable Name Bound to Pool:数据库连接池的名称。可以有多个jdbc connection configuration ,每个可以起不同的名称,在Jmeter其他元件中只要需要用到数据库的连接信息,直接引用该变量的变量名即可。可以理解为如果Jmeter其他的元件要获取数据库的连接信息,可以通过这个名称进行获取。
注意:变量的命名规范:命名要清晰,建议使用英文,便于引用。
Connection Pool Configuration 、 Connection Validation by Pool 这两部分内容不需要更改,使用默认值即可
Database Connection Configuration(以MySQL数据库为例):
Database URL: jdbc:mysql://host[:port]/dbname ——>【数据库地址:jdbc:mysql://数据库主机名或IP地址:端口号/需要使用的库名】
JDBC Driver class:com.mysql.jdbc.Driver【其他数据库跟进图一展示进行选择】
Username:数据库名称,即用户名
Password:数据库链接密码
4、添加配JDBC Request 数据库请求
重要字段解释:
名称:同JDBC配置文件
Variable Name Bound to Pool :引用JDBC Connection Configuration元件里面的参数值【test】写法两边保持一致即可,不需要使用${}进行引用。错误的不存在的参数不能被引用。
Query type:必填,指SQL请求类型
Select statement:查询语句类型(select),只支持一条查询语句,多条查询语句只执行第一条
Update statement:更新语句类(insert,update,delete),只支持一条更新语句,多条更新语句只执行第一条
Prepared Select statement:支持多条查询(select)语句,查询响应数据只展示第一条SQL的查询结果
Prepared Update statement:支持多条更新(insert,update,delete)语句,响应数据展示多条更新提示
Callable Statement:支持多条查询、更新(insert,update,delete,select)语句,响应数据展示展示多条数据更新结果。如果是多条select语句同时查询,建议使用Callable Statement,响应数据可以展示多条查询结果值
Parameter values:填写参数的具体的值,或者参数的名称。可以利用此字段对SQL语句进行参数化
Parameter types:指Parameter Values参数的数据类型,例如:integer,String,double类型
Parameter values 和Parameter types:必须成对出现,且SQL语句中有多个参数,就必须有多少个parameter values 和Parameter types。
Variable names:自己设置的变量名称,用于存放select操作返回的查询结果。有多个字段返回时,需用逗号隔开
Result variable name:用于存放select操作返回的查询结果集
Query timeout:查询超时时间
Handle result set:定义如何处理由callable statements 语句返回的结果
5、添加察看结果树
在响应数据——Response Body :查看对数据库进行增删改查后的返回消息
6、测试表名city,表结构如下:
CREATE TABLE `city` (
`id` bigint(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`code` varchar(255) NOT NULL,
`province_code` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=405 DEFAULT CHARSET=utf8;
二:共有元件数据配置如下
1、 添加测试计划:页面数据显示默认数值即可无需更改
2、 添加线程组:页面数据显示默认数值即可无需更改
3、添加配置元件——JDBC Connection Configuration数据库连接配置元件
Variable Name Bound to Pool:test
Connection Pool Configuration 、 Connection Validation by Pool:默认值
Database Connection Configuration(以MySQL数据库为例):
Database URL: jdbc:mysql://ip:3306/库名?characterEncoding=UTF-8&allowMultiQueries=true
JDBC Driver class:com.mysql.jdbc.Driver
Username:hjphXXX
Password:XXXXX
注意:
A.【allowMultiQueries设置为true,就可执行多条sql语句,参数与参数之间连接需要使用“&”符号。使用场景:如果执行多条SQL语句就必须要加这个字段,否则会报错;执行一条SQL语句可以不用加这个字段】
B.【characterEncoding=UTF-8:链接的数据库的编码格式,没有设置该字段,将不会转译中文字符】
4、 添加取样器——JDBC Request
Variable Name Bound to Pool :test
Query type:根据不同的SQL类型进行设置
其他字段根据实际情况进行填写
5、 添加察看结果树
请求为绿色表示执行成功,响应数据显示1 updates 即为一条更新数据执行成功
请求为红色表示执行失败,根据提示修改自己配置的数据,SQL直到成功
三:执行增删改查操作
1、 单个insert语句操作
共有元件及字段不变
变更:JDBC Request—Query Type配置:Update Statement
SQL:insert into city (name,code,province_code) values ("北京市","500000","520000");
执行结果:
2、多个inset语句操作
共有元件及字段不变
变更:JDBC Request—Query Type配置:Prepared Update Statement
SQL:
insert into city (name,code,province_code) values ("城市1","510000","512023");
insert into city (name,code,province_code) values ("城市2","510000","512023");
insert into city (name,code,province_code) values ("城市3","510000","512023");
查看执行结果:三条数据更新成功
3、单个Delete语句操作
共有元件及字段不变
变更:JDBC Request—Query Type配置:Update Statement
SQL1:delete from city where id=394;
执行结果:
4、 多个delete语句操作
共有元件及字段不变
变更:JDBC Request—Query Type配置:Prepared Update Statement
方法一:利用where语句
SQL1:delete from city where id in (388,399,320); 可以实现批量删除
SQL2:delete from city where id > 381; 可以实现批量删除
方法二:利用like 语句
SQL:delete from city where name like "%五家%";
方法三:利用 between and 语句
SQL:delete from city where id between 385 and 390;
方法四:执行多条SQL语句
delete from city where id =358;
delete from city where id =342;
delete from city where id =210;
delete from city where id =350;
执行即可
5、 Update 操作
Update 的操作和Delete的操作是一样,所有的配置以及配置的值都与Delete相同,只是SQL不同
SQL1:update city set name ="测试city" where ID = 381;
执行即可
6、 单个select 操作
共有元件及字段不变
变更:JDBC Request—Query Type配置:Select Statement
SQL1:select * from city where id >358;
SQL2:select * from city where id = 342;
7、多条SQL语句同时查询
共有元件及字段不变
变更:JDBC Request—Query Type配置:Callable Statement
方法一:SQL:
select * from city where id = 358;
select * from city where id = 342;
执行结果:在此场景下Callable Statemen会显示多条查询结果如下图,而Prepared Select Statement值显示一条查询结果
方法二:Select查询简单参数化
JDBC Request配置:
Query Type:Callable Statement
Parameter value:410,411
Parameter types:integer,integer
select * from city where id = ?;
select * from city where id = ?;
第一个问号代表:第一个参数值
第二个问号代表:第二个参数值
执行结果:
方法三:CSV进行多条select语句查询
使用场景:同一类型的数据,需要查询多条
SQL1:select * from city where id = ? ;
配置文件数据展示如下:
每一个配置文件设置如下:
线程组:
JDBC Connection Configuration:
循环控制器:
CSV 数据文件设置:
引用的CSV文件:
JDBC Request:
执行结果:
以上部分就是关于Jmeter对数据库增删改查操作的具体方法,Jmeter对数据库的操作灵活多变,方法较多,并没有统一的方法,达到最终的目的即可。
Jmeter对数据库批量增删改查的更多相关文章
- shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)
shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...
- ThinkPHP实现对数据库的增删改查
好久都没有更新博客了,之前老师布置的任务总算是现在可以说告一段落了,今天趁老师还没提出其他要求来更新一篇博客. 今天我想记录的是我之前做项目,自己所理解的ThinkPHP对数据库的增删改查. 首先要说 ...
- Android学习---数据库的增删改查(sqlite CRUD)
上一篇文章介绍了sqlite数据库的创建,以及数据的访问,本文将主要介绍数据库的增删改查. 下面直接看代码: MyDBHelper.java(创建数据库,添加一列phone) package com. ...
- Android 系统API实现数据库的增删改查和SQLite3工具的使用
在<Android SQL语句实现数据库的增删改查>中介绍了使用sql语句来实现数据库的增删改查操作,本文介绍Android 系统API实现数据库的增删改查和SQLite3工具的使用. 系 ...
- Android SQL语句实现数据库的增删改查
本文介绍android中的数据库的增删改查 复习sql语法: * 增 insert into info (name,phone) values ('wuyudong','111') * 删 delet ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- 【转载】通过JDBC对MySQL数据库的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- 利用API方式进行数据库的增删改查
/* 将数据库的增删改查单独放进一个包 */ package com.itheima28.sqlitedemo.dao; import java.util.ArrayList; import java ...
- MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
随机推荐
- JavaScript高级:JavaScript面向对象,JavaScript内置对象,JavaScript BOM,JavaScript封装
知识点梳理 课堂讲义 1.JavaScript面向对象 1.1.面向对象介绍 在 Java 中我们学习过面向对象,核心思想是万物皆对象. 在 JavaScript 中同样也有面向对象.思想类似. 1. ...
- React Context 理解和使用
写在前面 鉴于笔者学习此内容章节 React官方文档 时感到阅读理解抽象困难,所以决定根据文档理解写一篇自己对Context的理解,文章附带示例,以为更易于理解学习.更多内容请参考 React官方 ...
- HTTP常用请求头大揭秘
本文为<三万长文50+趣图带你领悟web编程的内功心法>第四个章节. 4.HTTP常用请求头大揭秘 上面列出了报文的各种请求头.响应头.状态码,是不是感到特别晕呢.这节我们就专门挑一些最常 ...
- 用量子计算模拟器ProjectQ生成随机数,并用pytest进行单元测试与覆盖率测试
技术背景 本文中主要包含有三个领域的知识点:随机数的应用.量子计算模拟产生随机数与基于pytest框架的单元测试与覆盖率测试,这里先简单分别介绍一下背景知识. 随机数的应用 在上一篇介绍量子态模拟采样 ...
- Git:本地仓库管理
git log:查看 commit 提交历史 git log --pretty=oneline:简化log输出内容 git reflog:查看每一次命令的历史记录 版本回退 git reset HEA ...
- 【图像处理】使用OpenCV+Python进行图像处理入门教程(三)色彩空间
这篇随笔介绍使用OpenCV进行图像处理的第三章 色彩空间. 3 色彩空间 之前的介绍,大多是基于BGR色彩空间进行的,但针对不同的实际情况,研究人员提出了许多色彩空间,它们都有各自擅长处理的领域. ...
- git的工作管理和基础操作
git的工作管理和基础操作 在本地创建git仓库管理我们的代码 初次使用git,先在本地配置一些基础信息 $ git config -l $ git config --global user.name ...
- 【MaixPy3文档】写好 Python 代码!
本文是给有一点 Python 基础但还想进一步深入的同学,有经验的开发者建议跳过. 前言 上文讲述了如何认识开源项目和一些编程方法的介绍,这节主要来说说 Python 代码怎么写的一些演化过程和可以如 ...
- SEO 在 SPA 站点中的实践
背景 观察基于 create-react-doc 搭建的文档站点, 发现网页代码光秃秃的一片(见下图).这显然是单页应用 (SPA) 站点的通病 -- 不利于文档被搜索引擎搜索 (SEO). 难道 S ...
- python 集合详解
字符串 一个个字符组成的有序的序列,时字符的集合 使用单引,双引,三引 引住的字符序列 字符时不可变的对象 bytes定义 bytes不可变字节序列 使用b前缀定义 只允许基本ASCII使用字符形式 ...