背景:小编最近写了一个接口自动化的步骤,主要分为以下几个部分
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.至于引用的话 就是使用生成的那一堆 直接放到请求参数即可