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

时间:2024-04-09 21:18:44

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

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

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

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

4.后台订单分拣

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

对于后台订单分拣,小编发现,他只是传了一个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驱动包

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

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

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

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

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

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

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

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

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

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

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

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


三、随机函数生成器

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

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


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