概念:
PO模型是Page Object Model的简写, 页面对象模型。
PO模型又叫PO设计模式,是selenium自动化测试中最佳的设计模式之一,主要体现在对界面交互细节的封装,将页面定位和业务操作分开,也就是把对象的定位和测试脚本分开,在实际测试中只需要关注业务流程,从而提高可维护性。
PO模型简单来说:就是通过面向对象的方式,封装页面定位和页面动作操作。与测试的逻辑分开。
通俗解释一下就是每个页面当成一个对象,给这些页面写一个类,每一个page class维护着该web页的标签元素集和操作这些元素的方法;至于测试脚本则单独写,需要什么就去这些页面类去调用即可。这样的好处就是如果页面元素发生变化,你去维护页面类即可,测试类你基本不用管。
po 是一种设计思想,不同的人根据这个思想写出来的代码是不一样的。
总结:PO模型实现过程是:通过面向对象的方式,对页面定位和页面操作进行分离封装(解耦合,方便后续维护)。
优点:
提高代码的可读性
减少了代码的重复
提高代码的可维护性, 特别是针对UI界面频繁变动的项目.
缺点:
造成项目结构比较复杂(因为是根据流程进行了模块化处理)
如何实现 PO 模型
PO模型一般首先抽象封装一个BasePage类,这个基类拥有一些指向Webdriver实例的属性,然后每一个Page继承基类BasePage,可以通过driver管理每一个Page中的元素,而且在Page中将这些操作封装为一个一个的方法。在测试用例中使用这些page类,进行组织测试步骤的工作。
这样做的好处,就是有元素变化,只需要维护每一个Page就行了,测试步骤变化,只需要维护TestCase即可。