目录
概念
PO(Page Object)设计模式是一种面向对象( 页面对象)的设计模式,将测试对象及单个的测试步骤封装在每个Page对象以page为单位进行管理。
优点
- 可以使代码复用
- 降低维护成本
- 提高程序可读性和编写效率。
- 可以将页面定位和业务操作分开,测试对象(元素对象)和测试脚本(用例脚本)
- 提高用例的可维护
| 非PO模式 | PO模式 |
| 面向过程的线性脚本 | POM把页面元素定位和业务操作流程分开,实现松耦合 |
| 复用性性差 | UI元素的改变不需要修改业务逻辑代码,只需要找到对应的PO页修改定位即可,数据代码分离 |
| 维护性差 | PO能使代码更具有可读性,高复用性、可维护性 |
PO三层模式:
主要分三层:
1.base层(对象库层):page页面一些公共的方法。如:初始化、元素定位、点击、输入、获取文本、截图等方法;
2.page层(操作层):封装对元素的操作。将每个涉及的元素操作单独封装一个操作方法,然后根据需求组装操作步骤,如登录方法=输入帐号+输入密码+点击登录三个操作进行组装;
3.scripts层(业务层):导包调用 page页面,使用单元测试框架对业务逻辑进行封装测试。如:实现登录,直接调用page组装的登陆方法即可。
三者的关系:page层继承base层,scripts层调用page层
案例:
项目结构介绍:

创建项目,如下图

1. 构建基础的 BasePage 对象层
创建driver,浏览器驱动封装
# encoding='UTF-8'
# 浏览器启动
from selenium import webdriver
def browser():
driver=webdriver.Chrome()
# driver.get("http://www.baidu.com")
return driver
创建myuni.py文件,初始化封装,
定义一个继承自unittest.TestCase的测试用例类
定义setUp和tearDown,这两个方法与junit相同,即如果定义了则会在每个测试case执行前先执行setUp方法,执行完毕后执行tearDown方法。
# encoding='UTF

本文介绍了PageObject(PO)设计模式在IT测试中的应用,包括三层结构(基础的BasePage对象层、首页操作的Page层和业务逻辑的scripts层),展示了如何创建和组织测试代码,以及如何执行自动化测试并生成测试报告。

6541

被折叠的 条评论
为什么被折叠?



