PO设计模式 & 原则


PO设计模式总结

  简介

    为UI页面写测试用例时(比如web页面,移动端页面),测试用例会存在大量元素和操作细节。

    当UI发生变化时,测试用例也会跟着变化,PageObject很好的解决了这个问题!

    使用UI自动化测试工具时(包括selenium,appium等),如果无统一模式进行规范,随着用例的增加会变得越来越难以维护

    而PageObject让自动化脚本井井有序,将page大度维护并封装细节,可以使testcase更文件,不需要大量的改动

  使用

    具体做法:把元素信息和操作细节封装到Page类中,在测试用例上调用Page对象

    比如存在一个功能"选取相册标题",需要为之简历函数selectAblumWithTitle(),函数内部是操作细节findElementsWithClass('album')等;

  PageObject的主要原则是提供一个简单的接口(或者函数),让调用者在页面上可以做任何的操作,点击页面元素,在输入框输入内容等待。

  因此,如果要访问一个文本字段,page object应该有获取和返回字符串的方法。page object应该封装对数据的操作细节,比如查找元素和点击元素。

  当页面改动时,应该只改变page类中的内容,不需改变调用它的地方。不需要为每隔UI页面都创建page类,应该只为页面中重要的元素创建page类

  page object的目的是通过给页面建模,congress对应用程序的使用者变得更有意义。

PageObject原则

  简介

    PageObject的核心思想是六大原则,掌握六大原则才可以进行pageobject实战,这是精髓所在!

    Selenium官方凝聚出六大原则,而后pageobject使用都将围绕此进行开展:

      1. 公共的方法代表也买你提供的服务

      2. 不要暴露细节

      3. 不要把断言和操作细节混用

      4. 方法可以return到新打开的页面

      5. 不要把整页的内容都放到PO中

      6. 相同的行为会产生不同的结果,可以封装不同结果

    具体分析

      原则一:要封装页面中的功能或服务,比如点击页面元素,可以进入到新的页面,则可为这个服务封装方法"进入新页面"

      原则二:封装细节,对外只提供方法名(或者接口)

      原则三:封装的操作细节中不要使用断言,把断言放到单独的模块中,比如:testcase

      原则四:点击一个按钮会开启新的页面,可以用return方法便是跳转,比如return MainPage()表示跳转到主页

      原则五:只为页面中重要的元素进行PO设计,舍弃不重要的内容

      原则六:一个动作可能产生不同结果,比如点击按钮后,可能成功,也可能失败,为两种结果封装两个方法:click_success和click_error
————————————————————————————————————————————————————————————————————


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM