川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > 常见问题

接口性能测试—JMeter测试关系数据库

作者:川石学院 日期:2021-08-04 14:50:37 点击数:

  本章节主要讲解“接口性能测试—JMeter测试关系数据库”的内容,JDBC(Java DataBase Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

  一、JDBC驱动类型及原理

  接口性能测试—JMeter测试关系数据库(图1)

  接口性能测试—JMeter测试关系数据库(图2)

  二、使用JDBC连接操作数据库步骤

  •   总共有7个步骤:

  1、加载JDBC驱动程序

  在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机)。

  通过java.lang.Class类的静态方法forName(String className)实现。

  2、配置JDBC URL

  •   格式为:

  1.   协议:子协议:数据源标识

  2.   协议: 在JDBC中始终为jdbc

  3.   子协议: 桥连接的驱动程序或是数据库管理系统名称,比如mysql

  4.   数据源标识: 数据服务器主机名,端口以及数据库名,还可以附带连接参数比如,jdbc:mysql://192.168.126.128:3306/ecshop?useUnicode=true&characterEncoding=gbk

  3、创建数据库连接

  •   要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。

  •   使用DriverManager的getConnection(String url,Stringusername,String password)方法传入指定的欲连接的数据库的路径,数据库的用户名和密码来获得。

  4、创建Statement

  要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3种类型:

  •   a.执行静态SQL语句。通常通过Statement实例实现。

  •   b.执行动态SQL语句。通常通过PreparedStatement实例实现。

  •   c.执行数据库存储过程。通常通过CallableStatement实例实现。

  5、执行SQL

  Statement接口提供了三种执行SQL语句的方法:

  •   a.ResultSet executeQuery(String sqlString),执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象

  •   b.int executeUpdate(String sqlString),用于执行DML,DDL语句

  •   c.boolean execute(String sqlString),用于执行返回多个结果集,多个更新计数或二者组合的语句。

  6、处理结果

  两种情况:

  •   a.执行更新返回的是本次操作影响到的记录数

  •   b.执行查询返回的结果是一个ResultSet对象

  ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问

  7、关闭JDBC对象

  操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:

  •   a、关闭记录集

  •   b、关闭声明

  •   c、关闭连接对象

  JDBC Connection Configuration配置

  接口性能测试—JMeter测试关系数据库(图3)

  •   Variable Name Bound to Pool:

  •   Variable Name for created pool:

  连接绑定的变量名,JMeter可以使用多个连接,每个连接绑定到不同的变量;通过引用不同的绑定变量使用不同的数据库连接。

  绑定变量名应与JDBC Request的引用连接的变量名保持一致。

  •   Connection Pool Configuration:

  1、Max Number of Connections:

  该数据库连接池的最大连接数,一般可设置为0,意思是每个线程都使用单独的数据库连接,线程之间数据库连接不共享

  2、Max Wait(ms):

       超时时间。连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。如果在尝试检索连接池中连接的过程中超过时限,则连接池会抛出错误。

  3、Time Between Eviction Runs(ms):

  空闲连接回收的时间间隔。如果当前连接池中某个连接的空闲时间大于设置的时间(默认为6000ms)后仍然没有使用,则该连接会被回收关闭。

  4、Auto Commit:

  连接是否自动提交SQL语句。True自动提交;False手动提交。

  5、Transaction isolation:

  设置事务的隔离级别。JDBC定义了五种事务隔离级别:

  •   1)、TRANSACTION_NONE 不支持事务

  •   2)、TRANSACTION_READ_UNCOMMITTED 读未提交。允许脏读,不可重复读和幻读

  •   3)、TRANSACTION_READ_COMMITTED 读已提交。禁止脏读,但允许不可重复读和幻读

  •   4)、TRANSACTION_REPEATABLE_READ 重复读。禁止脏读和不可重复读,允许幻读

  •   5)、TRANSACTION_SERIALIZABLE 串行化。禁止脏读,不可重复读和幻读

  •   6)、DEFAULT 使用数据库默认的隔离方式

  脏读(dirty read):一个事务读取了另一个事务尚未提交的数据不可重复读(Non-Repeatable Reads):一个事务的操作导致另一个事务前后两次读取到不同的数据幻读(Phantom Reads):一个事务的操作导致另一个事务前后两次查询的结果数据量不同

  •   Connection Validation by Pool :

  这是JMeter用来检验数据库连接是否有效的一种机制,若超过5秒未使用,则会用Validation Query去测试这个连接是否有效。

  1、Test While Idle:

  当连接空闲时,是否使用Validation Query去测试连接

  2、Soft Min Evictable Idle Time(ms):

  连接在连接池中闲置的最小时间,超出此闲置时间连接才会被回收。默认值为5000ms。

  3、Validation Query:

  用于确定数据库是否仍在响应的简单查询语句。

  •   hsqldb选择:select 1 from

  •   INFORMATION_SCHEMA.SYSTEM_USERS

  •   Oracle选择:select 1 from dual

  •   DB2选择:select 1 from sysibm.sysdummy1

  •   MySQL/SQL Server/PostgreSQL/Ingres/Derby/H2选择:select 1

  •   Firebird选择: select 1 from rdb$database

  •   Database Connection Configuration:

  1、Database URL:

  JDBC数据库的连接字符串

  比如:

  jdbc:mysql://localhost:3306/dbname

  2、JDBC Driver class:

  数据库JDBC驱动类名

  •   MySQL选择:com.mysql.jdbc.Driver

  •   HSQLDB选择:org.hsqldb.jdbc.JDBCDriver

  •   Oracle选择:oracle.jdbc.OracleDriver

  •   DB2选择:com.ibm.db2.jcc.DB2Driver...

  3、Username:

  数据库用户名

  4、password:

  数据库密码

  5、Connection Properties

  数据库连接属性,多个连接属性之间用“&”连接,在JMeter5.2.1版本才开始新增的配置项。

  比如:

  useUnicode=true&characterEncoding=utf8&allowMultiQueries=true

       本章节关于“接口性能测试—JMeter测试关系数据库”的内容就学习到这里,大家觉得文章有用的话记得每天来这里和小编一起学习涨薪技能哦。


相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2021-08-04 14:50:37
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2021-08-04 14:50:37
  • 国外的月亮也不一定比国内测试猿的年薪美~2021-08-04 14:50:37
  • 建筑工程专业朱同学成功转行为软件测试人!2021-08-04 14:50:37
  • 财务管理专业转行软件测试月薪甩会计几条街!2021-08-04 14:50:37
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2021-08-04 14:50:37
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2021-08-04 14:50:37
  • 文科生转行软件测试照样拿下高薪15K!2021-08-04 14:50:37
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2021-08-04 14:50:37
  • 毕业1年,迷茫的他最终选择转行软件测试2021-08-04 14:50:37