背景
项目组要写订单下单的接口自动化脚本,如果这个用python写,那就非常简单了,但项目组业务测试人员都是用jmeter去写,所以只能用jmeter去写。
实现需求
要求
1.遍历所有订单类型的接口(待付款,待签收,待评价等)
2.所有订单的模拟操作(下单,取消下单,删除订单,确认收货)
覆盖jmeter技术
仅一次控制器:只执行一次,不管你循环多少次,常用场景是登录。
foreach控制器:循环遍历你的参数,有点类似数组的东西。
简单控制器:其实就是分组,分类
交替控制器:类似于多个数组取值,比如你数组有两个值,你循环一次,就只是取第一个,所以你循环两次才能取到所有的值。
注意:仅一次控制器、交替控制器对多线程不生效,它只是针对单线程的,可以设置为单线程循环多次
实现逻辑
1.遍历所有订单类型的接口(待付款,待签收,待评价等)
这是一个接口,只是使用到了不同的body传参参数。如果是新手,大部分会这么写。
使用foreach控制器就可以将几个请求合并成一个。
使用方式:
添加用户定义变量:
然后添加foreach控制器
将上面的订单列表合并到这里去,名字使用变量值。这样下来就可以达到,一个接口循环使用变量参数传参的功能。
2.所有订单的模拟操作(下单,取消下单,删除订单,确认收货)
由于订单模拟不同类型订单的操作,所以我们要使用到交替控制器。
另外由于有些操作是只需要一次操作的,比如查询收件人地址,查询商品,所以我们还得使用到仅一次控制器
分类下:
仅一次操作:查询收件人地址,查询商品,查询订单类型
多次操作:加入购物车,下单
交替操作:比如1. 下单,未付款。 2,下单立即付款
整理下来的流程是这样:
1 查询各种订单类型
2 查询商品
3 查询收件人地址
4 加入购物车
5 下单
6 不付款
7 取消订单,
8 删除订单
9 加入购物车
10 下单
11 付款
12 发货(数据库操作)
13 确认收货
实现后:
有两个交替控制器,所以循环两次:
仅一次控制器:
foreach控制器:
1 查询各种订单类型
2 查询商品
3 查询收件人地址
4 加入购物车
5 下单
交替控制器:
简单控制器1:
6 不付款
7 取消订单,
8 删除订单
简单控制器2:
11 付款
12 发货(数据库操作)
13 确认收货
效果