关键词:
1、为什么要使用JMeter连接数据库
我们测试的软件项目中,所有的数据都是存储在数据库。我们可以直接使用JMeter链接数据库,把需要的数据取出来,和通过接口方式取出来的返回数据进行比对,如果数据一致,说明后台程序开发的没有问题。
2、JMeter连接数据库的前提
由于JMeter本身没有提供链接数据库的功能,所以我们需要借助三方的工具包来实现。
也就是下载JMeter链接MySQL数据库的JAR包:mysql-connector-java.jar
。
需要根据自己MySQL的版本下载对应驱动,尽量保证其版本和你数据库的版本一致,至少不低于数据库版本,否则可能有问题。
MySQL各版本驱动JAR包下载地址:https://repo1.maven.org/maven2/mysql/mysql-connector-java/
最后将下载好的MySQL驱动,放在JMeter的bin
目录下。(因为方便找到,也可以放在lib
目录下,或者公司规范的目录中。)
提示:
(1)驱动放哪?
- 随便放:需要在测试计划界面中进行引入。
- 认真放:放到JMeter的安装路径的
lib
目录下,就不需要再次引入了,需要重启一次JMeter。
(2)mysql-connector-java
与MySQL对应版本:
官方推荐mysql-connector-java.jar
的8.0
版本,与MySQL Server
的8.0
、5.7
和5.6
版本一起使用。
(我的Mysql版本为5.7.30
,用mysql-connector-java
的5.1
和在8.0
版本都可以,亲测。)
(3)mysql-connector-java
与Java对应版本:
官方提示:JRE 1.7
需要使用mysql-connector-java
的5.1.21
及更高版本。
3、JDBC连接配置组件界面介绍
添加JDBC连接配置组件的操作:选中“线程组”右键 —> 添加 —> 配置元件 —> JDBC Connection Configuration
。
JDBC连接配置界面,如下图所示:
界面详细说明:
- 名称:
JDBC Connection Configuration
组件的自定义名称,见名知意最好。 - 注释:即添加一些备注信息,对该JDBC连接配置组件的简短说明,以便后期回顾时查看。
1)Variable Name Bound to Pool
:绑定一个数据库的链接。
Variable Name for created pool
:定义数据库连接池的名称。(自定义填写,一般与数据库同名)
2)Connection pool Configuration
:数据库连接池配置,一般都保持默认,可根据特定需要进行修改。
Max Number of Connections
:对该数据库的最大连接数。通常该值设置为0,意思是每个线程都使用单独的数据库连接,例如,配置在两个线程间不共享。如果你确实想共享连接池,那么最大连接数应当和线程数一样,以便线程不用互相等待,做性能测试时用。Max Wait(ms)
:在连接池中取回连接最大等待时间,单位毫秒。如果超过改时间,将抛出一个错误。Time Between Eviction Runs(ms)
:数据库空闲连接的回收时间间隔,单位毫秒。超过设置的空间时间后,该链接任然没有使用,则会将该空闲链接物理性的关闭掉。次选项若为非正数,则空闲连接回收器不停运行。Auto Commit
: 自动提交SQL语句。此处有三个选项true、false、编辑
,如:选择True后, 每条SQL语句就是一个事务,执行结束后会自动提交到数据库。否则不会提交,需要自己手动提交。Transaction isolation
:数据库的事务隔离级别设置,JDBC定义了五种事务隔离级别:TRANSACTION NONE
:不支持事务。TRANSACTION READ UNCOMMITTED
:事务读取未提交内容,允许脏读,不可重复读和幻读。TRANSACTION READ COMMITTED
:事务读取已提交读内容,禁止脏读,但允许不可重复读和幻读。TRANSACTION SERIALIZABLE
:事务序列化。一个事务读时,其他事务只能读,不能写。禁止脏读、不可重复读和幻读。TRANSACTION REPEATABLE READ
:事务重复读。两个事务同时进行时,其中一个事务修改数据对另一个事务不会造成影响,即使修改的事务已经提交也不会对另一个事务造成影响。禁止脏读,不可重复读,但允许幻读。DEFAULT
:使用相应数据库对应的默认事务隔离级别,例如大多数的数据库系统中,默认事务隔离级别都是Read committed
,而MySQL的默认事务隔离级别是Repeatable Read
。
拓展一点:
- 脏读(
dirty read
):一个事务读取了另一个事务尚未提交的数据。- 不可重复读(
Non-Repeatable Reads
):一个事务的操作导致另一个事务前后两次读取到不同的数据。- 幻读(
Phantom Reads
):一个事务的操作导致另一个事务前后两次查询的结果数据量不同。
3)Connection Validation by Pool
:连接池有效性验证配置,这是JMeter用来检验数据库连接是否有效的一种机制。
Test While Idle
:是否对空闲连接进行有效性验证(当连接空闲时是否断开)。当连接空闲时,是否使用Validation Query
去测试连接。Soft Min Evictable Idle Time(ms)
:连接在连接池中闲置的最小时间,超出此闲置时间连接才会被回收,默认值为5000ms。额外的条件是,在连接池中至要保留有minIdle个连接。Validation Query
:用于验证数据库是否仍在响应的简单查询语句。默认是JDBC驱动的isValid()
方法,它适合于很多数据库。可以通过jmeter.properties
中jdbc.config.check.query
属性设置默认的验证SQL语句。
说明:默认配置的意思:表示每隔5000ms执行一次
Validation Query
选中的SQL,来验证连接是否有效。默认Validation Query
中填写任何内容,就表示不进行验证。
4)Database Connection Configuration
:数据库连接配置。
Database URL
:数据库连接 URL 。例如:jdbc:mysql://127.0.0.1:3306/ecshop
,表示本地数据库,3306端口,数据库名称为ecshop。(后边还可以加上?
来链接一些参数配置)JDBC Driver class
:数据库驱动程序的完全名称,有下拉菜单可选。Username
:数据库登录的用户名。Password
:数据库登录的密码。
4、JMeter连接数据库演示
以JMeter连接MySQL数据库为例。
(1)测试计划内包含的元件
添加元件操作步骤:
- 创建测试计划。
- 创建线程组:
选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组
。 - 在线程组中,添加配置元件
JDBC Connection Configuration
(JDBC连接配置)组件:选中“线程组”右键 —> 添加 —> 配置元件 —> JDBC Connection Configuration
。 - 在线程组中,添加取样器
JDBC Request
(JDBC请求)组件:选中“线程组”右键 —> 添加 —> 取样器 —> JDBC Request
。 - 在线程组中,添加监听器“察看结果树”组件:
选中“线程组”右键 —> 添加 —> 监听器 —> 察看结果树
。
最终测试计划中的元件如下:
点击运行按钮,会提示你先保存该脚本,脚本保存完成后会直接自动运行该脚本。
(2)测试计划中添加链接数据库所依赖的JAR包
在测试计划中,点击添加目录或jar包到ClassPath
后的”浏览“按钮,选择mysql-connector-java.jar
文件。
(如果放在JMeter的bin
目录下,直接就能够看到,非常方便。放在lib\\ext
目录下,每次自动加载也可以。)
如下图所示:
(3)jdbc connection configuration
组件内容
JDBC Connection Configuration
(JDBC连接配置)组件,就相当于对一个数据库链接配置。
一个测试计划可以有多个JDBC连接配置组件,只要名称不重复就行,即Variable Name for created pool
命名不重复。
编辑后的jdbc connection configuration
组件界面,如下图所示:
我们把该数据库链接命名为ecshop4
,输入数据库地址Database URL
,选择数据库链接所需要的驱动,填写数据库的用户名密码即可。(也就是填写第一部分和第四部分的内容,其他内容默认即可)
(4)JDBC Request
组件界面内容
在线程组下添加一个专门用于向数据库发送SQL语句的取样器JDBC Request
组件。
操作方式:选中“线程组”右键 —> 添加 —> 取样器 —> JDBC Request
。
编辑界面中的内容:
- 编辑
Variable Name of Pool declared in JDBC Connection Configuration
的内容:填写数据库连接池的名称,也就是填写一个定义好的JDBC Connection Configuration
组件中的Variable Name
名称。例如我们上边定义的ecshop4
。 Query Type
:选择查询类型,我们只进行一条查询语句,所以选择Select Statement
即可。- 在
Query:
的输入框中编写要发送的SQL语句。
其他默认即可,这样我们就发送出一个最基础的JDBC请求了。
如下图所示:
提示:我们在这里不详解的介绍
JDBC Request
组件的说明和使用,在后面文章中,会详细进行说明。
(5)查看结果
运行该JMeter脚本后,会自动去目标数据库中进行查询操作,之后会把查询的结果返回到JMeter中。
如下图所示:
以上就是使用JMeter连接数据库的操作,我们以MySQL为例进行的演示,其他数据库同理,学会举一反三。
本篇文章主要说明的是:
- JDBC连接配置(
JDBC Connection Configuration
)组件的详细说明。- 还有一个是使用JMeter连接数据库的过程。
- 关于
JDBC Request
组件详细说明,和各种用法,在后面的文章会详细介绍。
还有python和jmeter接口怎么连数据库
...onnector-java-5.1.41-bin.jar,并将该驱动放到路径:D:\apache-jmeter-3.0\lib\2.打开Jmeter工具,添加线程组.3.在Jmeter工具中,添加JDBCConnectionConfiguration,4.添加JDBCRequest,5.添加查看结果树,6.配置JDBCConnectionConfiguration,7.配置JDBCReques... 查看详情
jmeter的基础使用一
一、下载Jmeter,配置环境变量下载完解压即可,环境变量配置:-------在环境变量中添加新变量JMETER_HOME:D:\jmeter\apache-jmeter-4.0-------在将JMETER_HOME,配置到CLASSPATH中 ------Jmeter的启动文件jmeter.bat------启动之后,如图下所示&nbs... 查看详情
测试基础jmeter工具介绍及使用方法(代码片段)
目录一、Jmeter介绍二、Jmeter文件目录介绍1.1bin目录1.2docs目录1.3printable_docs目录1.4lib目录三、Jmeter的基础配置汉化设置主题修改四、Jmeter的基本操作基本元件作用域元件的执行顺序Jemter重要的三个组件五、Jmeter参数化常用方式用户... 查看详情
jmeter基础使用
http默认端口80https默认端口443 固定定时器:单个用户每次请求的间隔时间(毫秒) 查看详情
测试基础jmeter基础使用
前言安装完成Jmeter后,就可以使用Jmeter进行性能测试。一、线程组(1)、线程组分类Jmeter线程组主要分为3类分别为线程组、setUp线程组、tearDown线程组①线程组这个就是我们通常添加运行的线程。通俗的讲一个线程组... 查看详情
jmeter使用实践-基础介绍
Jmeter使用实践-基础介绍 随着市场上推出越来越多的测试工具,大家使用起来也比较盲目,就我个人而言,使用过LoadRunner和Jmeter很多人倾向于LoadRunner,因为LR的功能更强大,其实工具的选择,不在于工具本身有多强大,... 查看详情
jmeter基础—jmeter聚合报告详解
...告组件内容,不做示例演示。1、聚合报告介绍在使用JMeter进行性能测试时,聚合报告(AggregateReport)可以说是必用的监听器。(1)聚合报告的生成方式聚合报告有2中生成方式:在已有.jtl文件的情况下 查看详情
jmete基础使用
1,jmeter下载与安装Jmeter的运行需要JDK支持,所以需要先安装好jdk,并配置好环境变量;下载地址:http://jmeter.apache.org/download_jmeter.cgi下载解压后,进入bin目录下,windows下直接点击jmeter.bat文件,即可运行,linux下运行jmete... 查看详情
jmeter基础—使用非gui模式运行jmeter(命令行模式)(代码片段)
1、JMeter的非GUI模式说明之前,我们在启动JMeter时,一直会有一个黑色命令行窗口,窗口中提示了如下的信息:propertiesJun05,202110:21:22AMjava.util.prefs.WindowsPreferences<init>WARNING:Couldnotopen/createprefsrootn 查看详情
jmeter基础—jmeter集合点功能的使用
1、集合点介绍“性能测试”一般思路是“多用户并发测试”,但真正的并发其实是不存在的,为了更真实、更接近的实现并发,在需要压力的地方设置集合点,等所有用户都到位的时候,然后一起访问,... 查看详情
Jmeter 文件上传场景 - 使用正文发出 PUT
】Jmeter文件上传场景-使用正文发出PUT【英文标题】:JmeterFileuploadScenario-IssuePUTwithbody【发布时间】:2022-01-2202:41:41【问题描述】:我有一个jmeter场景,我需要上传一个不同大小的txt文件。要在jmeter中上传文件,我们启用multipart并... 查看详情
连接到 jmeter 从属 docker 容器时连接被拒绝错误
】连接到jmeter从属docker容器时连接被拒绝错误【英文标题】:Connectionrefusederrorwhileconnectingtojmeterslavedockercontainer【发布时间】:2021-12-3105:47:34【问题描述】:我正在尝试使用Docker实现Jmeter分布式框架。主从运行在ec2的不同主机上... 查看详情
jmeter基础之常用概念
JMeter是一个非常流行的性能测试工具,它的优点如下:开源,它是一款开源的免费软件,使用它不需要您支付任何费用。小巧,相比LoadRunner的庞大(最新LR11将近4GB),它非常小巧,不需要安装,但需要JDK环境,因为它是使用java... 查看详情
jmeter基础
作者:授客原文链接:Jmeter创建一个web测试计划1、下载Jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi下载后解压到你想“安装”的路径下,比如:D:\ProgramFiles\apache-jmeter-3.12、配置环境变量新建JMETER_HOME系统环境变量,值设置... 查看详情
jmeter基础方式
1.创建测试计划jmeter基本流程图 2.创建线程1.setup线程组----执行前操作2.teardown线程组---执行完主线程后,清理数据以便下一次执行使用3.线程组----主要业务运行/压力测试配置项4.添加线程组:选中... 查看详情
使用 Jmeter 录制 Gmail
】使用Jmeter录制Gmail【英文标题】:GmailrecordingwithJmeter【发布时间】:2015-08-1906:55:03【问题描述】:我想用jmeter捕获gmail。所以我正在尝试录制脚本。但是一旦我启动了jmeter脚本并在浏览器中打开了gmail。我在浏览器中遇到异常。... 查看详情
jmeter基础学习笔记
一.jmeter包目录介绍1.bin目录是可执行文件,jmeter.bat启动,里面可设置jvm参数根据经验,heap最多设置为物理内存的一半,默认设置为512M。如果heap超过物理内存的一半,可能运行jmeter会慢,甚至出现内存溢出。2.jmeter的log在jmeter.lo... 查看详情
zhuan:jmeter基础之---jmeter基础概念
JMeter 介绍: 一个非常优秀的开源的性能测试工具。 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来。 从性能工具的原理划分:Jmeter工具和其他性能工具在原理上完全一致,工具包含4个部分... 查看详情