jmeter--连接mysql数据库

发布时间 2023-05-31 23:09:46作者: 娜娜99

本文讲解一下,如果用jmeter 连接数据库。一般平常工作中使用jmeter 连接数据库的作用主要包括:

  1. 本身对数据库进行测试(功能、性能测试)时会需要使用jmeter连接数据库
  2. 功能测试时,测试出来的结果需要和数据库中的数据进行对比是否正确一致。这时候可以通过jmeter连接数据查询出来数据,然后测试时的结果进行比较。(不过这种情况,也可以通过其他的数据库连接工具,例如dbeaver之类的)
  3. 项目使用jmeter做自动化测试时,部分自动化用例中接口传递的参数进行了参数化设计,而参数值保存在数据库中,这样的话,可以从数据库中读取出来数据,然后将读取的数据赋值给接口中的变量来跑自动化用例。

本文介绍的是通过jmeter连接mysql数据库(也可以连接pg、oracle等数据库,这边只介绍mysql),连接mysql用到了三个东西:驱动、jmeter中的数据库连接池配置组件、jmeter中的jdbc request 组件。以下将具体介绍:

1、数据库驱动

连接不同的数据库,就需要不同数据库的驱动,mysql驱动的下载地址:

https://dev.mysql.com/downloads/file/?id=518709

直接下载即可,下载后对压缩包解压,需要将解压包中的mysql-connector-j-8.0.33.jar导入到jmeter,如下图所示,在Test Plan的Library 中导入mysql-connector-j-8.0.33.jar 这个jar包即可

2、在Test Plan下添加数据库连接池配置组件(jdbc connection configuration)并进行参数配置,参数配置如下图所示,关于数据库连接池配置组件中具体的每个参数的介绍在下文中的xmind中详细进行了讲解。

3、添加线程组,并在线程组下添加 jdbc request组件。如下图所示,参数配置如下。Jdbc request 中每个参数的具体介绍在下文中xmind中有讲解。

执行结果如下

3.1、如果你想一次提交多个sql语句时,需要设置如下:

如下图,为执行结果

3.2、如果你想对jdbc resquest中的sql语句进行参数化,则需要将query type设置为prepare select statement 或prepare update statement;并在sql语句中使用 ? 做占位符(一个sql语句中可以有多个占位符,但占位符的格式需要和parameter values 、parameter types中设置的值的个数保持一致),最后在parameter values 和 parameter types 中填写参数值和参数值的数据类型(填写多个值的时候,用分号分割)。配置如下图所示:

3.3、如果想把查询出来的结果值赋给一个变量,然后帮助后续的接口调用变量值进行请求。需要对 Variable names 或 Result variable 进行配置。

例如,查询表中的数据,并返回name、age 字段的值, 希望把name 和 age 字段的值赋给a ,b 帮助后续调用变量的值,设置如下

3.4 Limit ResultSet 可以设置返回的数据的数量,和sql语句中limit作用差不多。可以同时在sql中加limit 和 设置Limit ResultSet, 如果limit为10, 设置的Limit ResultSet为5,最后返回的是5条,如果limit为5, 设置的Limit ResultSet为10,最后返回的是依然是5条

下面的xmind 是连接数据库时用到的两个组件的参数介绍