广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >JMeter对数据库的查询操作步骤详解
  • 189
分享到

JMeter对数据库的查询操作步骤详解

2024-04-02 19:04:59 189人浏览 八月长安
摘要

提示: 关于jmeter如何连接Mysql数据库,前面文章已经详解的讲解过了。因为配置数据库连接是比较固定的步骤,这里就不重复讲解了。 本篇文章主要详细说明,使用JDBC Reque

提示:

关于jmeter如何连接Mysql数据库,前面文章已经详解的讲解过了。因为配置数据库连接是比较固定的步骤,这里就不重复讲解了。

本篇文章主要详细说明,使用JDBC Request组件,如何对数据库进行查询的各种操作。

JMeter中查询语句的操作步骤:

  • 添加测试计划。
  • 添加线程组,设置线程组的次数。
  • 添加JDBC Connection Configuration组件,配置数据库连接。
  • 添加JDBC Request请求,编写sql语句,使用参数化。运行脚本,发送SQL请求。
  • 添加察看结果树,查看结果。

1、使用“用户自定义变量”实现参数化

即:在SQL Query使用参数化变量。

在JMeter中,有两个地方可以设置“用户自定义变量”。

一种是“测试计划”界面中设置“用户自定义变量”。

一种是添加配置元件中的“用户自定义变量”。

我们以“测试计划”为例。如下图:

(1)在“测试计划”界面中设置“用户自定义变量”。

我们添加了一个自定义变量用户ID,如下图:

(2)在JDBC Request界面的SQL Query中,使用${变量名}的方式进行引用。

  1. 我们在Varíable Name填写对应的数据库配置名称,与JDBC Connection Configuration组件中的Varíable Name对应。
  2. Query Type:选择Select Statement,因为我们只进行一条查询的SQL语句。
  3. 编写SQL语句,并使用${变量名}方式引用参数化变量。

如下图所示:

2、 在SQL Query中使用占位符传递参数

传递的参数值有常量和变量之分。

(1)传递的参数值是常量

传递2个常量:用户ID=3,用户名=孙悟空。

需要注意:

  1. 如果我们需要发送带有占位符的SQL语句,Query Type:需要选择Prepared Select Statement
  2. Parameter values参数值和Parameter types参数类型,都必须要填写(参数类型与表设计结构中的类型一致即可)。如果有多个占位符,就需要有多组数据,之间用逗号分隔。
  3. 发送SQL请求时,第一个参数会自动赋值给第一个占位符,以此类推,注意参数的编写顺序。

如下图所示:

(2)传递的参数值是变量

也就是占位符所接收的参数是一个参数化变量。我们把对应常量的位置,变成参数化变量即可,其他同上。

如下图所示:

各种形式的参数化可以这样使用。关于参数化相关知识,前面文章有详细说明。

3、Variables names参数的使用方法

Variables names参数的作用是,把SQL语句查询出来的数据保存到变量中。一般查询返回几个字段,就用几个变量来进行接收,不同的变量之间用逗号隔开。

JMeter官网给的解释是:如果给这个参数设置了值,它会保存SQL语句返回的数据和返回数据的总行数。

假如,SQL语句返回2行,3列的数据,且Variables names中设置为A,B,C,那么如下变量会被设置为:

A_#=2     # A列的总行数
A_1=3     # A列的第一个数据,也就是第1列, 第1行的数据
A_2=4     # A列的第二个数据,也就是第1列, 第2行的数据
B_#=2     # B列的总行数
B_1=sunwukong@1268.com    # B列的第一个数据,也就是第2列, 第1行的数据
B_2=zhubajie@1268.com     # B列的第二个数据,也就是第2列, 第2行的数据
C_#=2     # C列的总行数
C_1=孙悟空    # C列的第一个数据,也就是第3列, 第1行的数据
C_2=猪八戒    # C列的第二个数据,也就是第3列, 第2行的数据

说明:

如果返回结果为0,那么A_#C_#会被设置为0,其它变量不会设置值。

如果第一次请求返回6行数据,第二次请求只返回3行数据,那么第一次那多的3行数据,在线程变量中会被清除。

可以使用${A_#}${A_1}来获取相应的值,作为参数化数据进行传递。

可以添加Debug Sampler组件,来查看参数是否获取到了。

示例:

(1)JDBC Request组件界面内容

Variable names中定义接收数据的变量名,多个变量名之间用逗号分隔。

如下图所示:

(2)查看结果

添加一个取样器Debug Sampler用来查看输出的结果。(Debug Sampler组件可以查看到JMeter脚本运行中所有的变量)

JDBC Request请求结果,如下图所示:

查看Debug Sampler中的输出结果,如下图所示:

我们从上图中可以看到,JMeter把从数据库中查询出来的数据,存储在线程变量中了。

提示:

A代表第一列所有的数据,A_#可以获取到第一列的行数。A_n可以获得第一列第n行的数据。BC的功能类似, 假如我们只需要第一列和第三列的数据,可以写成A,,C,中间的,不可以省略。

4、Result variable name参数使用方法

如果给这个参数设置值,它会创建一个对象变量,保存所有返回的结果。

示例:

(1)JDBC Request组件界面内容

Result variable name中定义接收数据的变量名。

如下图所示:

(2)查看结果

添加一个取样器Debug Sampler用来查看输出的结果。(Debug Sampler组件可以查看到JMeter脚本运行中所有的变量)

JDBC Request请求结果,如下图所示:

查看Debug Sampler中的输出结果,如下图所示:

(3)数据处理

上面查看到的结果集,我们如何应用里面的数据呢?

我们可以创建一个Beanshell取样器,也可以在JDBC Request取样器下一级添加后置处理器BeanShell PostProcessor组件。

在里边编写如下代码,来获取需要的指定数据,提供给后面的接口请求使用。

对象中具体数据的获取方法:columnValue = vars.getObject("resultObject").get(0).get("Column Name")

5、总结

以上我们就把Parameter valuesParameter typesVariable namesResult variable name的使用方式进行了说明。

在日常工作中,可以举一反三,灵活使用。

6、注意事项:

(1)The server time zone value服务器时区异常

如果报错,如下:

Cannot create PoolableConnectionFactory (The server time zone value '???��������??��??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.)

解决方法:数据库连接URL后面加 serverTimezone=GMTserverTimezone=GMT%2B8,即可解决。

(2)执行多条SQL语句

执行多条SQL语句时,查询语句selectupdateinsert语句不能在同一个JDBC Request组件中执行。

当执行多条SQL 语句时,每条语句后面加;

并且在 Database URL 后增加一个参数allowMultiQueries=true,否则将不能够执行多条语句,报错。

(3)更新操作中文乱码

需要在 Database URL 后增加一个参数characterEncoding=utf-8,这样就可以解决更新操作时候的中文乱码了。

提示:一定要设置为UTF-8编码吗?不一定,要跟你的数据库的编码保持一致,就不会中文乱码了。

(4)Datebase URL添加参数规则

Datebase URL后增加参数,在dbname后加?,如有多个参数,每个参数用&隔开,如:

jdbc:mysql://127.0.0.1:3306/guest?serverTimezone=GMT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true

参考:https://www.cnblogs.com/linbo3168/p/6039489.html

以上就是JMeter对数据库的查询操作 的详细内容,更多关于JMeter数据库操作 的资料请关注编程网其它相关文章!

--结束END--

本文标题: JMeter对数据库的查询操作步骤详解

本文链接: https://www.lsjlt.com/news/128285.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JMeter对数据库的查询操作步骤详解
    提示: 关于JMeter如何连接MySQL数据库,前面文章已经详解的讲解过了。因为配置数据库连接是比较固定的步骤,这里就不重复讲解了。 本篇文章主要详细说明,使用JDBC Reque...
    99+
    2022-11-12
  • MySQL数据库学习之查询操作详解
    目录1.示例表内容2.简单查询3.给列起别名4.列运算5.条件查询1.示例表内容 dept表: +--------+------------+----------+ | DEPTNO | DNAME | LOC...
    99+
    2022-07-24
    MySQL数据库查询 MySQL查询
  • 阿里云查询数据库密码的详细步骤
    在使用阿里云的数据库服务时,有时需要查询数据库密码。这篇文章将详细说明如何在阿里云上查询数据库密码。 在阿里云上查询数据库密码的步骤如下:登录阿里云控制台 首先,你需要登录你的阿里云账号。在控制台首页,输入你的账号和密码,然后点击登录。找...
    99+
    2023-12-11
    阿里 步骤 密码
  • 阿里云RDS数据库查询日期的详细步骤
    在日常数据处理中,查询日期是一项重要的任务。本文将详细介绍如何在阿里云RDS数据库中查询日期。 在阿里云RDS数据库中查询日期,首先需要确保数据库已经正确设置日期格式。在MySQL中,日期格式可以通过修改my.cnf文件中的[mysqld]...
    99+
    2023-12-14
    阿里 数据库查询 步骤
  • MyBatis操作数据库的详细步骤介绍
    这篇文章主要介绍“MyBatis操作数据库的详细步骤介绍”,在日常操作中,相信很多人在MyBatis操作数据库的详细步骤介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”My...
    99+
    2022-10-18
  • JMeter对MySQL数据库进行压力测试的实现步骤
    目录一、安装并配置 JMeter下载配置环境变量导入 MySQL 驱动二、启动 JMeter三、开始进行压力测试配置观察结果总结一、安装并配置 JMeter 下载 官网下载,下载二进...
    99+
    2022-11-13
  • 如何通过pycharm实现对数据库的查询等操作(非多步操作)
    目录pycharm对数据库的查询等操作(非多步操作)Pycharm操作数据库步骤服务端配置客户端配置pycharm对数据库的查询等操作(非多步操作) import pymysql i...
    99+
    2022-11-11
  • MySQL数据库的查询操作
    目录 一、数据查询语句的基本格式 二、单表查询 查询表中的若干列 查询指定列 查询经过计算的值 选择表中的若干元组 去重 条件查询 order by 子句 聚集函数 group by 子句 三、连接查询 等值与非等值连接查询 外连接 多表连...
    99+
    2023-09-06
    数据库 sql mysql
  • 阿里云服务器查询数据库内存的详细步骤
    随着云计算的发展,越来越多的企业和个人开始使用阿里云服务器进行数据库的运行和管理。然而,有时候我们可能会遇到数据库内存不足的情况,需要查询阿里云服务器的数据库内存使用情况。本文将详细介绍如何查询阿里云服务器的数据库内存使用情况。 步骤一:登...
    99+
    2023-11-08
    阿里 步骤 内存
  • Python中对数据库的操作详解
    目录一、数据库介绍1、为什么要学习数据库2、数据库的介绍二、MySQL介绍安装MySQL使用数据库1、语法格式2、简单示例三、查看数据库查看MySQL中存在的数据库四、简单示例一、数...
    99+
    2023-02-20
    Python数据库 Python操作数据库
  • 数据库的单表查询操作
    数据库的单表查询操作?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。单表查询指的是在一张表中进行数据的查询,它的执行顺序是“fr...
    99+
    2022-10-18
  • Mysql 查询数据库容量大小的方法步骤
    查询所有数据库的总大小 方法如下: mysql> use information_schema; mysql> select concat(round(sum(DATA_LEN...
    99+
    2022-05-20
    Mysql 查询数据库容量大小 Mysql 查询数据库容量
  • PostgreSQL数据库的基本查询操作
    目录查询列去除重复数据DISTINCTWHERE子句注释算术运算符比较运算符逻辑运算符查询列 SELECT语句,用于从表中选取数据。格式: SELECT <列名...
    99+
    2022-11-13
  • navicat中新建数据库的操作步骤
    小编给大家分享一下navicat中新建数据库的操作步骤,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!打开navicat工具,连接上您自己的mysql服务器,然后在如图所示的连接上右击,选择...
    99+
    2022-10-18
  • Android集成GreenDao数据库的操作步骤
    数据持久化就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失。保存在内存中的数据是处于瞬时状态的,而保存在存储设备中的数据是处于持久...
    99+
    2022-11-13
    Android GreenDao数据库 Android集成GreenDao数据库
  • Python操作SQLite数据库的基本步骤
    本篇内容介绍了“Python操作SQLite数据库的基本步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.什么是SQLite数据库SQL...
    99+
    2023-06-02
  • 阿里云第一次建数据库的详细操作步骤
    本文主要介绍了如何在阿里云上第一次建立数据库,包括如何创建数据库实例、选择数据库类型、设置数据库参数、配置数据库安全等步骤。适合初学者参考。 阿里云是中国最大的云计算服务提供商之一,提供了丰富的云服务,包括数据库服务。如果你想在阿里云上第一...
    99+
    2023-11-08
    阿里 操作步骤 数据库
  • 阿里云数据库db修改恢复正常操作步骤详解
    阿里云数据库是阿里云推出的一种高性能数据库服务,提供了多种数据库引擎,如MySQL、PostgreSQL、SQLServer等。然而,在使用过程中,可能会遇到数据库db修改异常的问题。本文将详细介绍如何通过以下步骤恢复正常: 一、首先,检...
    99+
    2023-10-30
    阿里 恢复正常 详解
  • python执行数据库的查询操作实例讲解
    1、fetchone该方法获取下一个查询结果集。结果集是一个对象。 2、fetchall接收全部的返回结果行。 3、rowcount这是一个只读属性,并返回执行execute方法后影...
    99+
    2022-11-12
  • php怎么操作数据库查询相同的数据
    在开发Web应用程序时,通常需要从数据库检索数据。而在检索过程中,有时会发现需要查询相同数据的请求量大,这时候如何优化查询就变得非常重要。本文将介绍在PHP中如何操作数据库查询相同的数据。使用GROUP BY语句在MySQL中使用GROUP...
    99+
    2023-05-14
    php 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作