Jmeter系列(31)- 获取并使用 JDBC Request 返回的数据

简介: Jmeter系列(31)- 获取并使用 JDBC Request 返回的数据

如果你想从头学习Jmeter,可以看看这个系列的文章哦

https://www.cnblogs.com/poloyy/category/1746599.html

 

前言


  • Jmeter 使用 JDBC Request 获取数据库中数据,很多人都会用,因为测试中,有时候需要大量的用户进行登录,然后获取数据库中真实的数据用于测试
  • 前面也详细讲到 JDBC Request 的具体使用,一般是通过 Variable names 和 Result variable name 来获取返回的数据
  • 这篇文章主要讲的就是把 Variable names 和 Result variable name 获取到的数据提取出来,给到 HTTP 请求使用

 

Variable names + Foreach控制器


线程组结构树

image.png


image.png

image.png


Variable names + 循环控制器


和上面的栗子只是换了个控制器而已,没太大变化

线程组结构树

image.png

从 1 开始,递增加到 100为止,每次递增 1

  • 初始值=1
  • 每次增加 1
  • 最大的值=100(包含)
  • 新变量 num

 

循环控制器内的 Debug Sampler

image.png

${__V()} 是关联函数,后面讲到

 

循环运行的结果( mobile:${mobile} )

image.png


Result variable name + Foreach控制器


线程组结构树

image.png

正则提取器

image.png

重点

Applu to 选中 Jmeter Variable Name to use,因为要从 Jmeter Variables 中拿到 result_mobile 变量进行提取

 

调试取样器运行结果

image.png

正则提取后的值是不是跟上面 Variable names 获取的值列表很像,是的!然后再结合 ForEach控制器就好啦

 

ForEach控制器

image.png


Result variable name + 循环控制器


和上面的栗子只是换了个控制器而已,没太大变化

线程组结构树

image.png

image.png

重点一

  • ${__BeanShell(vars.getObject("result_mobile").get(${num}).get("mobile"))}
  • ${__BeanShell()} :执行BeanShell脚本,一般比较短的脚本可以用此方法来写,后面会再详细讲解这个函数

重点二

  • vars.getObject("result_mobile").get(${num}).get("mobile")
  • result_mobile:是一个数组,即 JDBC Request 里的 Result variable name,每个元素的格式都是 {mobile=158000480001}
  • ${num}:上面计数器的值,每次递增 1,这里是数组下标的意思
  • 总结:获取 result_mobile 数组,每次取数组中第 num 个元素,从元素中取 mobile 键的值【这是固定写法,只改Object 名、键名就行了】

 

循环运行的结果( mobile:${user_mobile} )

image.png


相关文章
|
7月前
|
安全 Java 数据库连接
jdbc解析excel文件,批量插入数据至库中
jdbc解析excel文件,批量插入数据至库中
|
7月前
|
Java 数据库连接 数据库
使用原生JDBC动态解析并获取表格列名和数据
使用原生JDBC动态解析并获取表格列名和数据
|
6月前
|
JSON JavaScript 测试技术
掌握JMeter:深入解析如何提取和利用JSON数据
Apache JMeter教程展示了如何提取和使用JSON数据。创建测试计划,包括HTTP请求和JSON Extractor,设置变量前缀和JSON路径表达式来提取数据。通过Debug Sampler和View Results Tree监听器验证提取结果,然后在后续请求和断言中使用这些数据。此方法适用于复杂测试场景,提升性能和自动化测试效率。
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
96 0
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
43 0
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
56 0
|
7月前
|
Java 关系型数据库 MySQL
JDBC实现往MySQL插入百万级数据
JDBC实现往MySQL插入百万级数据
|
7月前
|
Java 数据库连接 数据库
实时计算 Flink版操作报错合集之flink jdbc写入数据时,长时间没写入后报错,是什么原因导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
204 9
|
7月前
|
监控 数据可视化 Java
性能工具之Jmeter 后置监听器可视化数据逻辑
【2月更文挑战第29天】性能工具之Jmeter 后置监听器可视化数据逻辑
89 2
性能工具之Jmeter 后置监听器可视化数据逻辑
|
7月前
|
SQL Java 关系型数据库
性能工具之JMeter JDBC Request 基础
JDBC 本质其实是官方(sun 公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动 jar 包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动 jar 包中的实现类。
337 0
性能工具之JMeter JDBC Request 基础