当前位置:   article > 正文

基于Python Selenium - Unittest框架的PO设计模式详解_unittest po模式

unittest po模式

接下来我们步入正文,这篇文章从以下几个内容讲述:

1、什么是PO设计模式(Page Object Model)
2、为什么要使用PO设计模式
3、使用PO设计模式要点
4、PO设计模式实例

1、什么是PO设计模式 (Page Object Model)

一种在测试自动化中变得流行的设计模式,使得自动化测试脚本的减少代码重复、更易读、减少维护成本。

一般PO设计模式有三层

第一层:

  • 对 Selenium 进行二次封装,定义一个所有页面都继承的 BasePage ,
  • 封装 Selenium 基本方法 例如:元素定位,元素等待,导航页面 ,
  • 不需要全部封装,用到多少方法就封装多少方法。

第二层:

  • 页面元素进行分离,每个元素只定位一次,隔离定位,如果页面改变,只需要改变相应的元素定位;
  • 业务逻辑分离 或 操作元素动作分离

第三层:

  • 使用单元测试框架对业务逻辑进行测试

2、为什么要使用PO设计模式

  • 页面频繁变化,(页面html结构等变化)导致页面UI元素频繁变动,元素定位改变
  • 传统线性自动化(面向过程开发),用例中需要反复的定位同一个元素
  • 每当页面发生变化的时候,需要在用例中寻找变动的部分,工作量大,容易产生遗漏,不容易维护

3、使用PO设计模式要点

  • 不要在page页面对象外做元素定位
  • 不在page页面对象里面写断言,除非是页面是否成功加载断言
  • 需要多少个元素就定位多少个,不需要对整个页面的元素进行定位
  • 当你的用例设计页面跳转时,例如登陆操作,登陆完成后跳转首页,当页面发生“跳转”
    ,封装的业务逻辑需要返回(return)对应的页面对象的实例
  • BasePage封装Selenium 基础方法,不需要全部封装,用到多少方法就封装多少方法

4、 PO设计模式实例

以TAPD作为项目例子,用PO设计模式实现登陆:
 

原文地址:https://mp.weixin.qq.com/s?__biz=MzkyNDI1NTAzNg

用例:

  1. 标题:登陆成功
  2. 前置条件:打开TAPD登录页 https://www.tapd.cn/cloud_logins/login
  3. 操作步骤:
  4. 1. 输入用户名(手机或邮箱):XXXXXX
  5. 2. 输入密码:XXXXXX
  6. 3. 点击登陆按钮
  7. 预期结果:
  8. 3. 页面跳转至“工作台-我的待办”

项目目录:

base_page.py

 

login_page.py

 

worktable_to_do_page.py

test_login.py

这个Demo很简单,主要意图是帮助理解PO设计模式的思想,如果需要代码,可以加入我们一起探讨。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/540097
推荐阅读
相关标签
  

闽ICP备14008679号