在传统自动化测试中,有个常见的实现模式是数据驱动测试,当MBT遇到了数据驱动的自动化场景,两者该怎么结合呢?本文就项目中的实际场景及解决方案作一个简单的介绍。
先看一个例子:一个信息查询功能
根据之前建模策略的描述,该组合条件查询操作可以进行抽象而聚合成状态图上的一个操作,设计的部分状态图如下:
基于上面的这个状态图目前有两种方案可以在MBT中实现数据驱动测试:
1)在e_Dquery_midInfo中同时进程操作和结果校验,这样外围套一个循环逻辑逐个读 取数据而后进行业务操作和校验就可以了;
但是这样的话后面的顶点(结果校验v_midInfo_queryed)就要被置成一个虚节点,这样的话也可能会影响周边的状态图元素的实现,所以这个方案实现起来简单,但是可能会破坏状态图的正常逻辑,所以不是首选。
2)方案二在不改变状态图逻辑的情况下,基于状态图中的节点属性和测试代码之间的变量传递实现数据驱动测试支持,实现上主要有两点:
1、设置一个变量记录动作执行的次数,测试代码逻辑里用这个变量控制数据集合的读取
2、设置一个变量控制状态流转,数据遍历后放行流转。
具体实现:
状态图上的变量设置:
测试代码逻辑里面设置:
这样就即实现了数据驱动测试,又保持了状态图遍历的正常逻辑,所以方案二是首选的实现方案,目前项目采用的也是这种方案。
领取专属 10元无门槛券
私享最新 技术干货