• 基于Python Selenium 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设计模式实现登陆:
    Github地址:https://github.com/SEtester/easy_POM

    用例:

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

    项目目录:

    image

    base_page.py

    image

    login_page.py

    image
    image

    worktable_to_do_page.py

    image

    test_login.py

    image

    Page object model 官方文档

    Github 官方文档地址 : https://github.com/SeleniumHQ/selenium/wiki/PageObjects


    文末,感谢乙醇老师指导




  • 相关阅读:
    Chrome 无法登录 GitHub,响应时间过长,可行解决办法
    npm install报错 npm ERR! cb() never called! 检查镜像源!
    Win10 移动文件的时候“卡”在“正在暂停/取消”解决办法
    VS code 彻底关闭插件自动更新功能
    箭头函数 函数中的this指向
    ES6 ES6变量的声明
    范围内的拖拽事件
    div拖拽移动事件
    事件对象的属性 div点击移动事件
    tab切换之循环遍历
  • 原文地址:https://www.cnblogs.com/snailrunning/p/10163159.html
Copyright © 2020-2023  润新知