python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解

这篇文章主要介绍了python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

JDBC Request

这个 Sampler 可以向数据库发送一个 jdbc 请求(sql 语句),并获取返回的数据库数据进行操作。它 经常需要和 JDBC Connection Configuration 配置原件(配置数据库连接的相关属性,如连接名、密码 等)一起使用。

1.本文使用的是 mysql 数据库进行测试

数据库的用户名为 root,用户名密码为 *(看个人数据库用户名和密码填写)

2、数据库中有表:test,表的数据结构如下:

image.png

表中数据如下:
select * from test (不要添加分号作为结尾。)

image.png

3、添加需要的驱动 jar 包
使用不同的数据库,我们需要引入不同的 jar 包。

方式 1:直接将 jar 包复制到 jmeter 的 lib 目录
mysql 数据库:无需引入其他数据库驱动 jar 包。

sql server 数据库:下载 sqljdbc4.jar 放到 jmeter 根目录的 lib 目录下

oracle数据库:将oracle数据的安装目录下面的\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar 放 到 jmeter 根目录下的 lib 目录下

方式 2:通过 Test Plan
假如我们不使用将 jar 复制到 jmeter 的 lib 目录的方式,我们还可以使用 Jmeter 的 Test Plan 引入 相应的 jar 包,如下面引入 oracle 数据的 jar 包。

image.png

二、配置 JDBC Connection Configuration
重要参数说明:
Variable Name:

数据库连接池的名称,我们可以有多个 jdbc connection configuration,每 个可以起个不同的名称,在 jdbc request 中可以通过这个名称选择合适的连接池进行使用。

Database URL:

数据库 url,jdbc:mysql://主机 ip 或者机器名称:mysql 监听的端口号/数据库 名称, 如:jdbc:mysql://localhost:3306/test

JDBC Driver class:JDBC 驱动

username:数据库登陆的用户名

passwrod:数据库登陆的密码

不同数据库具体的填写方式,可以参考下面的表格:

image.png

填写后大致如下:

image.png

三、配置 JDBC Request
重要的参数说明:

Variable Name:数据库连接池的名字,需要与 JDBC Connection Configuration 的 Variable Name Bound Pool 名字保持一致

Query:填写的 sql 语句未尾不要加“;”

Parameter valus:参数值

Parameter types:参数类型,可参考:Javadoc for java.sql.Types

Variable names:保存 sql 语句返回结果的变量名

Result variable name:创建一个对象变量,保存所有返回的结果

Query timeout:查询超时时间

Handle result set:定义如何处理由 callable statements 语句返回的结果

image.png

image.png

执行到这里,我们已经将数据从数据库中原样的查出来了,但具体如何之取出我们需要的数据呢,显然, 假如我们查询的 sql 返回的只是一个数据,上面的方式已经可以满足我们的需求的,如我们查询数据的记 录数,

select count(*) from test

查询出来的结果就是我们需要的内容,或者通过正则表达式的获取即可获取我们的内容。但假如像上面那样子,我们获取出来的是多行数据,我们需要如何来对数据进行遍历,只获取出我们 需要的数据呢?请看下面的分析。

四、JDBC Request 参数化
方法(一)、定义变量,在 sql query 中使用变量:

1、在 Test Plan 中定义一个变量(当然也可以使用参数化:Jmeter 参数化):

image.png

2、sql query 中使用${变量名}的方式引用:

image.png

方法(二)、在 sql query 中使用”?“作为占位符,并传递参数值和参数类型,如下图所示:

1、传递的参数值是常量,如图传递 2 个变量,多个变量使用” , “ 分隔。这里假如你有数据是 int 类 型的,也要在 Parameter types 那里标示为 varchar 类型,否则无法运行。

image.png

2、传递的参数值是变量,使用${变量名}的方式

image.png

五、Variables names 参数使用方法:
jmeter 官网给的解释是:如果给这个参数设置了值,它会保存 sql 语句返回的数据和返回数据的总行数。假如,sql 语句返回 2 行,3 列,且 variables names 设置为 A,C,那么如下变量会被设置为:

A_#=2 (总行数)
A_1=第 1 列, 第 1 行
A_2=第 1 列, 第 2 行
C_#=2 (总行数)
C_1=第 3 列, 第 1 行
C_2=第 3 列, 第 2 行

如果返回结果为 0,那么 A_#和 C_#会被设置为 0,其它变量不会设置值。如果第一次返回 6 行数据,第二次只返回 3 行数据,那么第一次那多的 3 行数据变量会被清除。 可以使用KaTeX parse error: Expected group after '_' at position 3: {A_̲#}、{A_1}…来获取相应的值

示例:我们还是用上面的数据库,把所有数据查出来,test 表有有 3 个字段,5 条记录(忘记了的可以回到 第一步那里查看)

1、添加一个jdbc request名为”参数4“,添加一个”Debug Sampler“用来查看输出的结果,设置 variables name 为 column1,column2,column3:

image.png

2、执行结果:

image.png

解析:column1 代表第一列所有的数据,column1_#可以获取到第一列的行数 column1_n:获得第一列第 n 行的数据。column2 和 column3 的功能类似, 假如我们只需要第一列和第三列的数据,可以写成 column1,column3,中间的","不可以省略。

六、Result variable name 参数使用方法:
如果给这个参数设置值,它会创建一个对象变量,保存所有返回的结果,获取具体值的方法:columnValue = vars.getObject(“resultObject”).get(0).get(“Column Name”)

image.png

执行结果:

image.png

到此这篇关于python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解的文章就介绍到这了,更多相关python Jmeter性能测试 内容请搜索:“软件测试pytest”以前的文章或继续浏览下面的相关文章希望大家以后多多支“软件测试pytest”!

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
26天前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
81 8
|
2月前
|
测试技术
软件测试的艺术:探索式测试的实践与思考
在软件开发的广阔海洋中,测试是确保航船稳健行驶的关键。本文将带你领略探索式测试的魅力,一种结合创造性思维和严格方法论的测试方式。我们将一起揭开探索式测试的神秘面纱,了解其核心概念、实施步骤和带来的效益。通过实际代码示例,你将学会如何将探索式测试融入日常的软件质量保证流程中,提升测试效率与质量。
|
1月前
|
测试技术 持续交付
探索软件测试中的自动化测试策略
随着软件开发周期的加速和市场需求的不断增长,传统的手动软件测试方法已难以满足现代软件开发的高效性和准确性要求。本文旨在探讨自动化测试在软件测试中的重要性、实施策略及其对提高软件质量的影响。通过分析自动化测试的优势与挑战,以及提供实用的自动化测试工具和框架选择指南,旨在帮助读者理解并应用自动化测试以提升软件开发效率和产品质量。
|
1月前
|
机器学习/深度学习 人工智能 监控
软件测试中的自动化测试策略与最佳实践##
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和加速产品上市的关键工具。本文将探讨自动化测试的重要性,分析不同类型的自动化测试工具和框架,并深入讨论实施自动化测试的最佳实践。通过案例研究和数据分析,我们将揭示如何有效整合自动化测试到软件开发生命周期中,以及它如何帮助团队提高测试效率和覆盖率。 ##
58 1
|
26天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
181 15
|
2月前
|
测试技术 UED 开发者
软件测试的艺术与科学:探索有效的测试策略
在软件开发的宇宙中,测试是一颗璀璨的星辰,它不仅保障着产品的质量,也指引着项目的方向。本文将带你穿梭于测试的银河系,从基础的单元测试到复杂的集成测试,再到全面的系统测试,我们将一探究竟。你会发现,每一个测试阶段都是一次对代码深度和广度的挑战,也是一次对开发者耐心和智慧的考验。准备好了吗?让我们开始这段探索之旅,看看如何通过精心设计的测试案例来确保我们的软件能够在现实世界中稳健运行。
|
1月前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
1月前
|
数据管理 测试技术 持续交付
软件测试中的自动化测试策略与最佳实践
在当今快速迭代的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市的关键手段。本文旨在探讨软件测试中的自动化测试策略,包括选择合适的自动化测试工具、构建有效的自动化测试框架以及实施持续集成和持续部署(CI/CD)。通过分析自动化测试的最佳实践,本文为软件开发团队提供了一系列实用的指南,以优化测试流程、提高测试效率并减少人为错误。
65 4
|
1月前
|
监控 测试技术 定位技术
探索软件测试中的自动化测试框架选择与实施###
本文不概述传统意义上的摘要内容,而是直接以一段对话形式引入,旨在激发读者兴趣。想象一下,你是一名勇敢的探险家,面前摆满了各式各样的自动化测试工具地图,每张地图都指向未知的宝藏——高效、精准的软件测试领域。我们将一起踏上这段旅程,探讨如何根据项目特性选择合适的自动化测试框架,并分享实施过程中的关键步骤与避坑指南。 ###
43 4
|
10天前
|
SQL Java 数据库连接
JDBC编程安装———通过代码操控数据库
本文,教你从0开始学习JBCD,包括驱动包的下载安装调试设置,以及java是如何通过JBDC实现对数据库的操作,以及代码的分析,超级详细