UI自动化测试中的PO模式
Page Object(简称PO模式)
在ui自动化测试中,通常分为这几步:
- 编写用例
- 元素定位
- 操作定位的元素(例如:send_keys() click())
- 执行用例
假设:
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~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)