(POM设计模式) ##POM: Selenium官方解释
PO(page object)设计模式是在自动化中已经流行起来的一种易于维护和减少代码的设计模式. 在自动化测试中, PO对象作为一个与页面交互的接口. 测试中需要与页面的UI进行交互时, 便调用PO的方法. 这样做的好处是, 如果页面的UI发生了更改,那么测试用例本身不需要更改, 只需更改PO中的代码即可.
- 全称叫做PageObject Module,页面对象模型,是目前业内公认的ui自动化测试领域下的最佳设计模式
- 本身是基于关键字驱动来做的二次升级。在执行测试的思维逻辑上发生了比较大的改变。
- 例如: 关键字驱动下,修改一个信息的流程是什么? 访问url,点击关键元素,再通过各类元素操作行为,最终拼接成一整个测试流程。
- POM形态下,修改一个信息的流程:
- 访问登录页,实现登录操作
- 访问用户信息页,实现信息修改操作
- 在POM的形态下,核心关注点在于页面对象的操作。实现一个系统的业务流程,其实本质意义上而言就是多个页面的访问,以及各个页面的小流程进行拼接,最终形成完整流程。
POM的结构:
- 基类:封装的常用关键字,但是有别于关键字驱动的关键字类,可封装业务操作。
- 页面对象类:封装系统中的各个页面,以及页面的相关内容。是POM的核心层级,分为:页面元素类、页面业务类
- 测试用例类:测试代码的管理 POM是针对于单个系统来进行测试的设计模式,所有的代码都是为了单独的这个系统来进行服务的,可以理解为是为指定的系统量身打造的测试框架。
- 测试数据类:管理测试数据
POM的优点:
PO设计模式具有以下优点:
- 测试代码与页面的定位代码(如定位器或者其他的映射)相分离.
- 该页面提供的方法或元素在一个独立的类中, 而不是将这些方法或元素分散在整个测试中.
总结:
- PO就是,以每个网页或者网页中的组件为单位,进行自动化代码的维护,可以和关键字驱动结合起来,进一步提高代码的可维护性和复用性。
- 某种意义上来说测试框架会比测试平台更适用于公司,因为框架更适合定制化。任何一种测试框架的设计模式,都是要结合实际的企业需求来决定的。实用的东西才是最好的;
- 因为我们要解决的是企业里面的业务测试需求,企业的自动化任务需求,结合团队的自动化测试能力,自动化是怎么去执行的,基于等等等的条件之下,我们选型去设计出最适合的自动化测试框架。