jmeter如何连接数据库,并且利用查询的结果 作为下一个请求的参数

本文介绍了一种接口自动化的实现方法,包括随机账号登录、订单生成、支付处理及后台订单分拣等步骤。重点讲解了如何通过数据库查询获取订单商品ID,并利用JMeter进行自动化测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:小编最近写了一个接口自动化的步骤,主要分为以下几个部分

1.随机账号登录微信商城

2.提交订单 生成订单单号

3.订单进行余额支付或者在线支付

4.后台订单分拣


对于后台订单分拣,小编发现,他只是传了一个Id就对商品进行分拣了,然后小编一脸懵逼,这我怎么知道我刚才下的订单,每个商品的这个id是多少呢?经过思考小编觉得,应该是数据库存储了这个唯一的标识的Id(也就是商品订单表中的储存id),而如何获取这个id,只有根据提交订单时接口返回的订单号,然后根据这个订单号,在数据库中的订单表进行查询到Order_id,然后根据order_id在订单商品表中在查询商品对应关系的储存id(也就是分拣打印传递的哪个id,当然这里如果一个订单下了多个商品的话,查询的结果是多个商品储存标识id的,当然这里就靠自己对list以及元组的操作能力了,因为每次你只能一个id的对后台进行提交,所以我们还需要使用到循环

分析到了这里,所以在代码中,我们必须对数据库进行查询,在将这个查询的结果作为参数,也就是jmeter中的的请求参数,从而才能让这个接口自动化流程能够跑通,下面为小编主要运用到的方法

一,首先你得连接上数据库

1.需要依赖的mysql jar包 ,需要放到 jmeter的lib下面

给你网盘下载地址链接:https://pan.baidu.com/s/1EP4R2k3zan7xiKb4vWoCTw 密码:cony

2.新建一个JDBC  Connection Configuration,具体设置如下,

关注点:database url地址格式:jdbc:mysql://host(或者Ip):3306/dbname 

关注点:哪个variable name的名称 记得要跟下面sql语句得保持一致 否则会报错

关注点:com.mysql.jdbc.Driver(依赖的class)

关注点:记得线程组哪里需要选择Jmeter/lib下选择刚才的mysql驱动包

选择下载的jar包即可(jmeter lib下面)


3.新建一个jdbc requests请求,记住这个variable name需要跟之前的保持一致

关注点:查询的结果  id_n(n代表第几行数据)   所以不需要用什么正则提取器

4.使用的时候 只需要使用${id_n}就可以调用了

二、连上了数据库 是不是觉得  需要一个循环控制器

1.新建一个foreacH控制器 输入一个变量名 然后再写输出变量名  开始设置成0  结束设置成5

也就是说 ${vid}   可以相当于这种效果(id_1 -> id_2- > id_3 -> id_4-> id_5)

vid



三、随机函数生成器

1.Jmeter选项  然后点击函数对话选项框 ,之后看下图



2.至于引用的话 就是使用生成的那一堆 直接放到请求参数即可  



### JMeter连接数据库传递参数教程 #### 1. 配置JDBC驱动程序 为了使JMeter能够连接数据库,首先需要下载对应数据库的JDBC驱动程序,将其放置在JMeter的`lib`目录下。例如,对于MySQL数据库,可以下载`mysql-connector-java-x.x.xx.jar`文件[^1]。 #### 2. 添加JDBC Connection Configuration元件 在JMeter测试计划中添加一个名为“JDBC Connection Configuration”的配置元件。在此元件中输入数据库的相关信息,包括: - 变量名称:用于标识此数据库连接。 - JDBC URL:例如 `jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC`。 - JDBC Driver class:例如 `com.mysql.cj.jdbc.Driver`。 - Username 和 Password:数据库登录凭证。 这些设置完成后,JMeter就可以成功建立与目标数据库连接。 #### 3. 使用JDBC Request进行查询 创建一个新的“Sampler”,选择“JDBC Request”。在这个采样器里定义SQL语句以及如何处理返回的数据。如果希望从查询结果中提取特定字段作为后续使用的变量,则可以在SQL语句后面加上AS关键字来命名列,之后可以通过`${column_name}`的方式访问该值。 #### 4. BeanShell脚本中的变量操作 当需要更复杂的逻辑控制或者动态修改某些属性时,可利用BeanShell PreProcessor或PostProcessor来进行编程级别的干预。通过此类脚本可以直接调用JMeter API函数完成诸如设置全局变量之类的任务[^2]。比如下面的例子展示了怎样把某个固定字符串赋给用户定义的一个新变量: ```beanshell vars.put("myVar", "theValue"); log.info("Variable 'myVar' has been set to theValue."); ``` #### 5. 批量执行及报告生成 一旦完成了上述所有准备工作,在正式运行之前记得保存整个项目结构为`.jmx`格式文件以便日后重复使用。另外还可以借助命令行工具自动化这一过程的同时自动生成HTML形式的结果概览页面[^3]: ```bash jmeter -n -t /path/to/testplan.jmx -l results.jtl -e -o /path/to/report/folder/ ``` 以上就是关于如何在JMeter环境中实现向数据库发送请求将响应解析成可用作进一步分析依据的过程概述。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值