A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ~Maybe 中级黑马   /  2019-5-9 14:41  /  1000 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1. 存在的问题

在做UI自动化时定位元素特别依赖页面,一旦页面发生变更就不得不跟着去修改定位元素的代码。
举例:假设要对一个元素进行点击操作,而且会经常对该元素进行操作,那么你就可能会编写多 处如下代码:
driver.find_element_by_id("login-btn").click()

存在的问题:
如果开发人员修改了这个元素的id,这时候你就不得不修改所有对应的代码 存在大量冗余代码

思考:
如何来解决这个问题呢?

2. PO模式

PO是Page Object的缩写,PO模式是自动化测试项目开发实践的最佳设计模式之一。 核心思想是通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化, 只 需要调整页面元素封装的代码,提高测试用例的可维护性、可读性。

PO模式可以把一个页面分为三层,对象库层、操作层、业务层。
对象库层:封装定位元素的方法。
操作层:封装对元素的操作。
业务层:将一个或多个操作组合起来完成一个业务功能。比如登录:需要输入帐号、密码、点 击登录三个操作。

2.1 引入PO模式的好处

引入PO模式前:
存在大量冗余代码
业务流程不清晰 后期维护成本大

引入PO模式后:
减少冗余代码
业务代码和测试代码被分开,降低耦合性 维护成本低


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马