什么是PO模式
PO(page object)设计模式是在自动化中已经流行起来的一种易于维护和减少代码的设计模式。 在自动化测试中, PO对象作为一个与页面交互的接口。测试中需要与页面的UI进行交互时, 便调用PO的方法。
这样做的好处是:如果页面的UI发生了更改,那么测试用例本身不需要更改,,只需更改PO中的代码即可。
为什么要用PO模式
例如一个测试用例是这样写的
1 点击元素a
2 检查元素a是否被点击
3 在元素a上输入123
4 检查元素a上是否有123
上面那段代码把“操作细节”“结果验证”都放到一起了,如果某天元素a变成了元素b,那么每行代码都必须去改,当页面元素变化比较大时,需要变更的部分就很多了。
Page Object 设计模式是将“操作细节”“结果验证”分开来,这样如果某天页面元素变了,但各种业务验证没变,那么只需要更改操作细节对应的部分即可,不会影响各种结果验证。
Page Object 发展历史
- 2013年,Martin Fowler 提出了这一设计思想,其官方博客地址:链接
- 2015年,selenium官方文档里加上了PO设计模式:最新的文档地址:链接
Page Object 设计思路
PO六大原则
- 用公共方法代表UI所提供的服务
- 方法应该返回其他的PageObject或者返回用于断言的数据
- 同样的行为不同的结果可以建模为不同的方法
- 不要在方法内加断言
- 不要暴露页面内部的元素给外部
- 不需要建模UI内的所有元素
PO主要组成
- Page对象:完成对页面的封装
- Driver对象:完成对Web,android,IOS,接口等的驱动
- 测试用例:调用Page对象实现业务并断言
- 数据封装:配置文件和数据驱动
- 其他功能封装:改进原生框架不足
Page Object 实例
直接看selenium的官方实例吧:中文版链接
[created_at:2020-07-12 updated_at:2020-07-12]
[我的导航目录]