本文章会讲述如下几个内容:
一、什么是PO设计模式(Page Object Model)
二、为何要使用PO设计模式
三、使用PO设计模式要点
四、PO设计模式实例html
一、什么是PO设计模式 (Page Object Model)
一种在测试自动化中变得流行的设计模式,使得自动化测试脚本的减小代码重复、更易读、减小维护成本。
通常PO设计模式有三层
第一层:git
- 对Selenium 进行二次封装,定义一个全部页面都继承的 BasePage ,
- 封装 Selenium 基本方法 例如:元素定位,元素等待,导航页面 ,
- 不须要所有封装,用到多少方法就封装多少方法。
第二层:github
- 页面元素进行分离,每一个元素只定位一次,隔离定位,若是页面改变,只须要改变相应的元素定位;
- 业务逻辑分离 或 操做元素动做分离
第三层:设计模式
二、为何要使用PO设计模式
- 页面频繁变化,(页面html结构等变化)致使页面UI元素频繁变更,元素定位改变
- 传统线性自动化(面向过程开发),用例中须要反复的定位同一个元素
- 每当页面发生变化的时候,须要在用例中寻找变更的部分,工做量大,容易产生遗漏,不容易维护
三、使用PO设计模式要点
- 不要在page页面对象外作元素定位
- 不在page页面对象里面写断言,除非是页面是否成功加载断言
- 须要多少个元素就定位多少个,不须要对整个页面的元素进行定位
- 当你的用例设计页面跳转时,例如登录操做,登录完成后跳转首页,当页面发生“跳转”
,封装的业务逻辑须要返回(return)对应的页面对象的实例
- BasePage封装Selenium 基础方法,不须要所有封装,用到多少方法就封装多少方法
四、 PO设计模式实例
以TAPD做为项目例子,用PO设计模式实现登录:
Github地址:https://github.com/SEtester/easy_POM框架
用例:
标题:登录成功
前置条件:打开TAPD登陆页 https://www.tapd.cn/cloud_logins/login
操做步骤:
1. 输入用户名(手机或邮箱):XXXXXX
2. 输入密码:XXXXXX
3. 点击登录按钮
预期结果:
3. 页面跳转至“工做台-个人待办”
项目目录:

base_page.py

login_page.py


worktable_to_do_page.py

test_login.py

Page object model 官方文档
Github 官方文档地址 : https://github.com/SeleniumHQ/selenium/wiki/PageObjects单元测试
文末,感谢乙醇老师指导