前言
对于做过UI自动化测试的小伙伴想必对PageObject模式并不陌生,它是我们编写自动化脚本时经常用到的一种思想,简单来说就是通过分层的方式将对象、操作、业务分开处理。
模式介绍
PageObject模式可以通常分为三层,即:
基础层
逻辑层
业务层
基础层是把一些基础的公共用法进行封装,例如页面的登陆方式,我们可以把它封装成一个基础层,这样有需要用到的时候直接调用,逻辑层是一些封装好的功能用例模块,业务层是真正写测试用例的地方。
在这里举个例子解释下吧,比如有这个需求,从1-9个整数和“加减乘除”运算规则实现一个等于10的算法。那实现这样的需求有很多,我可以1+9=10(暂且称为test1),2*5=10(暂且称为test2),等等,换成PageObject思想的话,“加法、乘法”及时基础层,test1、test2就为逻辑实现层,使用test1、test2来实现需求就是业务层。
这种模式的好处具体有以下几点:
1、减少代码冗余
2、业务和实现分离
3、降低维护成本
虽然该实现方法看上去复杂多了,但其中的设计好处是不同层关心不同的问题。页面对象只关心元素的定位,测试用例只关心测试数据。如果再有定位元素变化,只需在逻辑层进行维护即可,显然方便了很多。