if控制器使用场景
测试场景中要实现3/2的的业务场景,例如:两种支付场景:线上微信,线下银联刷卡。按目前订单交易来源,微信:银联刷卡: == 3/2,所以在测试过程也是需要按业务比例来设计场景。也就是说10笔订单,微信支付6单,银联刷卡支付4单。
使用if控制器可以实现,在条件中添加判断语句,判断语句是针对if控制下的每一个测试元件,单独评估的,要求所有的请求都要发到该控制器下,判断语句才能生效,如果是同级的元件,则没有作用。
if控制器有两种方式:
1、不勾选“interpret condition as variable expression”
直接输入我们需要判断的表达式即可,判断表达式为真时,执行if控制器下的请求,例如“1!=2”,则一定会执行下面的http请求。
2、勾选“interpret condition as variable expression”
Expression中不能直接填写条件表达式,需要借助函数将条件表达式计算为true/false,可以借助的函数有__jexl3和__groovy函数。
3/2业务比例
1、使用__counter该函数可以统计执行的次数。例:在测试过程中,假设:1Vu执行1秒钟,请求成功100笔订单。结合上述3/2业务场景,要求有60%交易订单数据是微信,40%交易订单数据银联刷卡。
2、其他元件现实3/2业务比例场景方式:吞吐率控制器,方法简单更粗暴。
// 3的比例 ${__counter(true,)}%2==1||${__counter(true,)}%10==0 // 2的比例 ${__counter(true,)}%2==0&&${__counter(true,)}%10!==0
3/2业务比例测试结果