一、什么是PO设计模式(Page Object Model)
1、Page Object是一种设计模式,它主要体现在对界面交互细节的封装上,使测试用例更专注于业务的操作,从而提高测试用例的可维护性。
2、一般PO设计模式有三层
第一层:
- 对Selenium 进行二次封装,定义一个所有页面都继承的 BasePage ,
- 封装 Selenium 基本方法 例如:元素定位,元素等待,导航页面 ,
- 不需要全部封装,用到多少方法就封装多少方法。
第二层:
- 页面元素进行分离,每个元素只定位一次,隔离定位,如果页面改变,只需要改变相应的元素定位;
- 业务逻辑分离 或 操作元素动作分离
第三层:
- 使用单元测试框架对业务逻辑进行测试
二、为什么要使用PO设计模式
- 页面频繁变化,(页面html结构等变化)导致页面UI元素频繁变动,元素定位改变
- 传统线性自动化(面向过程开发),用例中需要反复的定位同一个元素
- 每当页面发生变化的时候,需要在用例中寻找变动的部分,工作量大,容易产生遗漏,不容易维护
三、PO设计模式的六大原则
- 公共方法代表页面提供的服务
- 不要暴露细节
- 不要在封装的框架中做断言
- 方法可以return到新打开的页面
- 不要对所有元素建模,仅对自己关注的元素建模
- 相同的行为会产生不同的结果,可以封装不同的结果
四、PO设计模式实例
以公司的统一登录作为项目例子,用PO设计模式实现登陆:
1、手工用例:
用例编号 | 标题 | 前置条件 | 操作步骤 | 预期结果 | 实际结果 |
T-001 | 登录成功 | 输入正确的用户名和密码 | 1、打开统一登录页 2、输入用户名 3、输入密码 4、点击登录按钮 |
登录成功,正确跳转到应用系统界面 | XXX |
T-002 | 登录失败 | 输入错误的用户名 | 1、打开统一登录页 2、输入用户名 3、输入密码 4、点击登录按钮 |
登录失败,正确提示用户名或密码不正确 | XXX |