PO(page object)页面对象模式简介

什么是PO?

PO是page object的缩写,中文翻译为‘页面对象模式’。它是一种设计模式,其目的是为了web UI测试创建对象库。在这种模式下,应用涉及的每一个页面应该定义为一个单独的类。类中应该包含此页面上的页面元素对象和处理这些元素对象所需要的方法等。方法的命名也有一定的规则,比如方法命名要能清楚、正确地表明此方法的作用或者行为。

比如,需要定义一个方法,目的是回到应用首页,那么就可以把它命名为getHomePage(),这样通过方法的名字就可以很清楚地知道方法的具体功能。

PO的优点如下:
(1)PO提供了页面元素操作和业务流程相分离的模式,可以使测试的代码结构比之前清晰,可读性强。
(2)更方便地复用对象和方法。
(3)对象库是独立于测试用例的、统一的对象库,可以通过集成不同的工具类来达到不同的测试目的。比如集成unittest 可以用来做单元测试;同时也可以集成JBhave/Cucumber等来做验收测试。
(4)使得整体自动化测试的优化变得更容易一些,如果有某个页面的元素需要变更,那么就可以直接更改封装好的页面元素类即可,而不用更改调用它的其他测试类/代码。这样整个的代码维护成本也会缩减。

PO的核心就是分层的思想,把同属于一个页面的元素都放在一个页面类中。即我们以页面为单位,将某一个页面中的元素控件等全部提炼出来并封装成相应的方法,形成一个个可以被调用的对象。

要想真正掌握PO的精髓,至少还需要掌握两点:一是对被测试系统要有充分的认识,特别对需要纳入自动化测试的场景或者功能点等要有一个清晰的判断和划分;二是需要实战,实战才能体现出真正的自动化的意义。

如图所示,为PO 项目的框架结构图。
在这里插入图片描述
Base层主要定义了项目需要的基础方法,特别是一些基础操作,如元素click操作、send keys操作,调用JavaScript脚本的方法和其他一些与基本浏览器相关的操作。

Common层主要包含处理excel文件的方法,获取项目路径。测试系统URL的信息和框架执行相关日志功能的实现方法。

PageObject层是PO的核心层。该层不但涉及代码技术,还涉及对项目业务的分析,进而对相关的页面进行分析。在业务分析方面,首先,分析要进行PO的页面;其次,对在每个范围内的页面进行细节分析(如自动化需要用到的元素和相关的操作方法及页面之间的关联情况等)。

TestCases层的作用是管理测试用例和执行测试,相当于测试的总入口。在项目中,可以将测试管理的代码和测试用例的相关代码都放在这里。

Data层是存放测试数据的。

Logs层主要存放在项目运行过程中产生的日志文件。

Reports层主要存放项目执行过程中产生的测试报告文件。

config.ini 是一个配置文件,在整个项目配置项需要用到的。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值