文章目录
【1】提出问题
【2】PO设计模式
【3】PO设计模式优势
【1】提出问题
当有上百个用例,几十个页面的时候,我们会在测试用例中重复的使用到页面当中的元素和操作。当其中的页面发生变化时,我们需要在多个用例中去修改。这种情况下,代码多且乱,维护成本也不低。
【2】PO设计模式
在做web 测试时,无论是什么业务,都是在页面上去操作,即所有的测试用例都是在页面中操作的。比如一个用例是由5个页面的功能串行组成的。
假设一个产品有30个页面,有500个功能测试用例。那么这500个功能测试用例就是有30个页面的功能组成。
如此,如果能够把30个页面的功能封装起来,500个用例按照业务场景从30个页面当中调用需要的页面即可。
这种方式叫做PO模式,全称 Page object ,页面对象模型。
将页面的元素定位和元素行为封装成一个 Page 类。
实现页面对象和测试用例分离。
在测试用例中,调用所需页面对象中的行为,组成测试用例。
【3】PO设计模式优势
1、当某个页面的元素发生变化,只需要修改该页面对象中的代码即可,测试用例不需要修改。
2、提高代码重用率。结构清晰,维护代码更容易。
3、测试用例发生变化时,不需要或者只需要修改少数页面对象代码。
面向对象的特性:封装、继承、多态。在自动化中一样适用,自动化测试中有一个名字常常被提及PageObject,通过PO模式可以大大提高测试用例的维护效率。
1.对比
传统测试脚本的弊端:
测试脚本分离,维护成本高
可扩展性差
复用性低等
2.图解
PageObject设计模式
图片
3.PO核心
PO的核心要素:
在PO模式中抽象封装成一个BasePage类,该基类应该拥有一个只实现webdriver实例的属性。
每个一个Page都继承BasePage,通过driver来管理本Page中元素,将Page中的操作封装成一个个的方法。
TestCase继承unittest.Testcase类,并且依赖Page类,从而实现相应的测试步骤。