WebUI 自动化测试的经典设计模式:PO

先来看下未使用 PO(PageObject) 设计模式下的代码,以网页版百度登录为例来说明。

非 PO(PageObject) 模式下的代码如下,所有内容全部写在一个方法里。

存在的问题:

PO(PageObject) 模式优化后的代码

1、WebUI 自动化需要的 driver 基础操作

2、登录页面元素获取

3、登录逻辑业务的封装

4、登录测试用例将使用以上3个页面对象

可以发现,使用 PO(PageObject) 模式优化后的代码,有以下明显优势:

1)、将以下3个模块进行了单独封装 降低了模块之间的耦合度,使层次更加清晰合理,便于后期维护与复用:

2)、如果前端页面有 定位元素的 type 或 value 发生变化时,只需要修改 elements.py 文件中元素信息即可 ,不需要在测试业务模块中进行修改。