Jmeter操作数据库详解
https://www.bilibili.com/video/BV1st411Y7QW?p=91&spm_id_from=pageDriver
进一步详细信息参考:
软件测试工程师必备之Jmeter操作Mysql数据库
1、Jmeter mysql连接
参考信息:Jmeter----连接mysql数据库及常见问题处理
1、首先安装MySql并建立一个数据库,填充部分数据,
2、在测试计划面板点击“浏览…”按钮,将JDBC驱动添加进来。
驱动下载地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java
mysql-connector-java-5.1.39-bin.jar
3、
添加线程组(mysql数据库查询)——右击线程组——添加——配置元件——JDBC Connection Configuration,根据数据库信息配置相关参数
数据信息
配置信息(注意空格,当变量有空格的时候也作为变量的一部分)
- Variable Name Bound to Pool :数据库链接池名称, 我们可以链接多个Jdbc connection configuration(可以链接多个数据库), 每个可以起不同的名称,在Jdbc request中可以通过这个名称选择合适的链接池进行使用(可以单纯的理解为所有数据库的链接信息都可以通过这个变量名获取)正规操作变量名用字母,不会用数字母 符号和中文
- Max Number of Connection: 数据库最大连接数;
- Max wait(ms):连接等待时长
- Time Between Eviction Runs:连接时长
- Auto Commit : 自动提交。有三个选项, true、false、编辑(自己通过Jmeter提供的函数设置)
- Transaction Isolaltion:事务间隔级别设置,主要有一下几个选项:
Transsaction_node 事务节点
Transaction_read_uncommitted 事务为提交读
Transaction_read_committed 事务已提交读
Transaction_Serializable 事务序列化
Default 默认
Transaction_repeatable_read 事务重读 - Variable Name for created pool: 变量名称可以自定义(mysql_connection)
- Database URL: 连接数据库的URL(jdbc:mysql://localhost:3306/performance_test?allowMultiQueries=true&serverTimezone=UTC&characterEncoding=utf-8),其中localhost:3306连接数据库的IP地址及端口号,performance_test数据库名称,allowMultiQueries=true允许多行查询
- JDBC Driver class: org.git.mm.mysql.Driver, 此属性值固定,指时明数据库类型的驱动
- username:
- password:
4、添加数据库连接请求
右击线程组——添加——取样器——JDBCRequest
2、Jdbc Reques介绍
Variable Name of Poll declared in Jdbc Connection Configuration: 在数据库链接皮遏制中声明的链接池变量名。
Qurry type: 必填,请求类型:增删改——update 查——select
Select statement 这个是查询语句类型:如果只有一条查询语句,则选择这种类型。(即使有多条查询语句,也只会执行第一条查询语句)
Update statement: 这是一个更新语句类型(包含insert和update)如果只有一条更新语句,则选择这种类型(即使有多条update语句,依然执行第一条)
Callable statement 这个是一个可调用语句类型,为所有DBMS(数据库管理系统)提供给一个以标准形式调用以存储过程的方法。如果调用存储过程就选择这个类型。测试很少用。
prepared select statement 是预编译的,对于批量处理可以大大提高效率,也叫JDBC存储过程。所以对于多条查询语句执行选择这个是最好的
prepared update statement 针对的多条设计更新sql的语句。
commit 将为存储的sql语句结果写入数据库表;而Jmeter的jdbc请求中同样可以根据具体使用情况,选择种类型(如无特殊情况,不推荐使用)
Rollback撤销指定sql语句过程,在Jmeter的JDBC请求中,同样可以根据需要使用这种类型(如无特殊情况,不推荐使用)
最新版本中已经具备语句查询直接使用${}引用jmeter变量,所以最后一项也可以不做了解
3 向数据库中插入数据
3.1 单挑插入
3.2多条语句的插入
3.3 插入参数化
利用函数助手进行参数化,或利用CSV这个元件进行参数化
4、解决insert和updata乱码问题
查看数据库编码方式,选择一张表,右击选择设计表,选项中查看
linux mysql查看数据库编码_MySQL查看和修改字符编码的实现方法
5 select多条语句查询
多条语句查询使用prepared select statement 此时结果树种只能查看到一条数据
如果想查看到每一条sql查询结果可以使用 Callable statement
6、Jdbc Request Select 操作参数化
使用站位符
注意:
- Query Type:要选择prepared Select statement
- Parameter values对应sql语句里面的?,有几个问号,就要传递几个参数,但是参数要用都好隔开
- Parmeter Types 参数类型,建议参考数据库表的字段设置(查看数据库中响应字段的类型),也要根参数个数匹配,用逗号隔开。具体用什么类型,可以参考:https://docs.oracle.com/en/java/javase/17/docs/api/java.sql/java/sql/Types.html
直接使用Jmerer变量
6、Jdbc Request Select查询结果处理()
保留字段
注意事项
- Variable names 存储的是查询的字段,一般有几个字段,就用级别变量进行接收,不同的变量之间用逗号隔开
- 可以添加debug sampler来查看参数是否获取到了
查询结果解释:
假设sql语句返回2行,3列,且variables names设置为A,C 那么如下变量会被设置为:
- A_# =2 (总行数);
- A_1=第一列,第一行
- A_2=第一列,第二行
- C_#=2(总行数)
- C_1=第3列,第一行
- C_2=第三列,第二行
- 如果返回结果为0,那么A_# 和C_#会被置为0,其他变量不会设置置
- 如果第一次返回6行数据,第二次只返回3行数据,那么第一次多的3行数据变量会被清除
- 可以使用${A_#}、…${A_1}来获取相应的值
保留结果集
使用Beanshell提取结果集
// vars.getObject()
// vars.getObject()
//log.info("================vars.getObject()========================");
//Object Value = vars.getObject("codeObject");
Value = vars.getObject("codeObject"); //与上一行注释代码相同作用,此处未声明变量类型
log.info(Value.toString()); //输出对象
log.info(Value.get(1).toString()); //获取第一个元素
log.info(Value.size().toString()); //获取对象大小
log.info(Value.get(1).size().toString()); //获取第一个元素大小
log.info(Value.get(1).get("FirstCode"));// vars.get()
log.info("================vars.get()========================");
log.info(vars.get("levelcode_#"));
log.info(vars.get("levelcode_1"));
log.info(vars.get("levelcode_2"));
JMeter操作MongoDB
JMeter测试MongoDB
Jmeter操作数据库详解相关推荐
- php phonegap,phonegap操作数据库详解
这次给大家带来phonegap操作数据库详解,phonegap操作数据库的注意事项有哪些,下面就是实战案例,一起来看一下. 实例如下: Database Example document.addEve ...
- 【云开发】小程序端操作数据库详解
文章目录 云数据库 云数据库简介 手动操作数据库 小程序端操作数据库
- Django 使用 ORM 操作数据库详解
ORM 是个啥? 在python中的一个默认的编写规范是一切皆对象,这样做使得代码简洁,结构清晰,便于维护和重用代码,同时极大的提升开发效率. 同样在操作数据库时,一般我们用SQL语句来实现操作,但是 ...
- Java操作数据库详解
目录 JDBC简介 JDBC的使用 数据库连接方式 案例程序 Statement和PreparedStatement的区别 JDBC简介 JDBC(Java Data Base Connectivit ...
- [Python从零到壹] 八.数据库之MySQL和Sqlite基础知识及操作万字详解
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- pandas读写MySQL数据库详解及实战
pandas读写MySQL数据库详解及实战 SQLAlchemy是Python中最有名的ORM工具. 关于ORM: 全称Object Relational Mapping(对象关系映射). 特点是操纵 ...
- h2 不能访问localhost_SpringBoot2.x系列教程44--H2数据库详解及搭建Web控制台
SpringBoot2.x系列教程44--H2数据库详解及搭建Web控制台 作者:一一哥 我在上一章节中讲解了Spring Boot中整合Mybatis,接下来我给大家介绍一款内存数据库--H2. H ...
- vsftp建立虚拟用户不同目录分配不同权限操作步骤详解
这篇文章主要介绍了vsftp建立虚拟用户不同目录分配不同权限操作步骤详解,大家参考设置自己的FTP服务器吧vsftpd服务器同时支持匿名用户.本地用户和虚拟用户三类用户账号,使用虚拟用户账号可以提供集 ...
- mysql通过集合查询_MySQL使用集合函数进行查询操作实例详解
本文实例讲述了MySQL使用集合函数进行查询操作.分享给大家供大家参考,具体如下: COUNT函数 SELECT COUNT(*) AS cust_num from customers; SELECT ...
最新文章
- 基于嵌入式linux 的车载定位系统设计,基于嵌入式Linux的GPS车载定位导航系统设计...
- Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 1)
- 计算机学校都有哪些怎么联系方式,计算机应用专业学校联系方式推荐
- 2021年度【CSDN】硕果累累、满怀期待、新年憧憬
- 第五章:Java_面向对象编程(三)
- vitual dom实现(转)
- python画简便的图-python的pyecharts绘制各种图表详细(附代码)
- Java游戏程序设计教程 4.5打砖块游戏
- 字体角度css代码,CSS中font-style定义字体倾斜体样式的代码示例
- Java用while求100以内奇数和
- SPSS Modeler 聚类分析(第十六章)
- CAS (5) —— Nginx代理模式下浏览器访问CAS服务器配置详解
- 怎么从转移特性曲线上看dibl_MOS管工作原理详解:各种mos管的转移特性曲线分析...
- 项目配置文件----.eslintignore,eslint在做风格检查的时候忽略 dist 和 vender(第三方库) 不去检查。
- java 导出复杂格式的 Excel 留着自己备用
- IBM将裁员1700人,科技公司最好的时代过去了吗?
- A类 B类 AB类 D类 K类功放简单对比
- alter table column 列属性
- rabbitmq连接异常:An unexpected connection driver error occured处理
- 解决typora图片丢失问题
热门文章
- 条码打印软件之Code32条形码
- 物联网大学生创新创业项目
- 为什么现在的大学生喜欢去报名软件培训班
- 网络基础3----->广域网传输流程
- 【Axure视频教程】JS地图
- 【E2E】E2E通信保护协议学习3 E2E Profile 1
- 汇编语言里 eax, ebx, ecx, edx, esi, edi, ebp, esp这些都是什么意思啊? [
- ECU扫盲篇——什么是ECU?
- 163-C++学习第十三弹(纯虚函数,模板,唯一性智能指针)
- 小学计算机社团活动教案,小学信息技术兴趣小组(电子小报)教学计划