UI自动化测试中的PO模式

Page Object(简称PO模式)
在ui自动化测试中,通常分为这几步:

  1. 编写用例
  2. 元素定位
  3. 操作定位的元素(例如:send_keys() click())
  4. 执行用例

假设:
case01:去百度搜索篮球

def search_basketball(self):   
self.dr.get("https://www.baidu.com")   
self.dr.find_element(By.ID, "kw").send_keys("篮球")   
self.dr.find_element(By.ID, "su").click()

case02:去百度搜索足球

def search_football(self):   
self.dr.get("https://www.baidu.com")   
self.dr.find_element(By.ID, "kw").send_keys("足球")   
self.dr.find_element(By.ID, "su").click()

case03:去百度搜索排球

def search_volleyball(self):   
self.dr.get("https://www.baidu.com")   
self.dr.find_element(By.ID, "kw").send_keys("排球")   
self.dr.find_element(By.ID, "su").click()

这时候我们会发现,在这三条用例中,我们分别进行了三次定位和操作。假设我们有100条case,在某一次的迭代中我们的定位方式失效的话,那我们就要分别修改100次(当然我知道pycharm中有替换这一说);总而言之,这种写法会增加我们的维护成本,代码也会显得过于臃肿。

Page Object的概念:把元素定位与元素操作进行分离。当元素发生变化我们只需去维护元素定位,在执行用例的时候,也不需要去关心元素是如何定位的

BasePage也就相当于是我们的基本页面,相当于封装了web的头和体
Page页相当于所有页面的管理者,主要用于拿到具体的某个页面 eg:Page01、Page02、Page03、PageN

  • Page01:获取其里面的组件,进行元素定位(Page02、Page03同理)

component库:主要返回各个组件中所要定位的元素,并将该模块导入所属的page页中
TestCase:将封装好的元素进行拼装,在这一层进行操作

这也就是po设计模式的分层思想

结语

page object是UI自动化测试项目开发实践的最佳模式之一,界面交互清晰,贴合测试用例的实现性,也更便于后期的维护。
感谢韩老师 thx~

posted @   叫我志明啦  阅读(408)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示