zoukankan      html  css  js  c++  java
  • Python+Selenium框架设计--- Page Object Model

    POM(Page Object Model):页面对象模型,POM是一种最近几年非常流行的自动化测试模型,或者思想,POM不是一个框架,就是一个解决问题的思想。采用POM的目的,是为了解决前端中UI变化频繁,从而造成测试自动化脚本维护的成本越来越大。下图,形象描述了POM的好处。

          从上图看出,采取了POM设计思路和不采取的区别,左侧把测试代码和页面元素都写在一个类文件,如果需要更改页面,那么就要修改页面元素定位,从而要修改这个类中测试代码,这个看起来和混乱。右侧,采取POM后,主要的区别就是,把页面元素和业务逻辑和测试脚本分离出来到两个不同类文件。ClassA只写页面元素定位,和业务逻辑代码操作的封装,ClassB只写测试脚本,不关心如何元素定位,只写调用ClassA的代码去覆盖不同的测试场景。如果前端页面发生变化,只需要修改ClassA的元素定位,而不需要去修改ClassB中的测试脚本代码。

    POM主要有以下优点:

    1. 把web ui对象仓库从测试脚本分离,业务代码和测试脚本分离。

    2. 每一个页面对应一个页面类,页面的元素写到这个页面类中。

    3. 页面类主要包括该页面的元素定位,和和这些元素相关的业务操作代码封装的方法。

    4. 代码复用,从而减少测试脚本代码量。

    5. 层次清晰,同时支持多个编写自动化脚本开发,例如每个人写哪几个页面,不影响他人。

    6. 建议页面类和业务逻辑方法都给一个有意义的名称,方便他人快速编写脚本和维护脚本。

    ,那么我们分别创建两个脚本文件, LoginPage.py 用于定义页面元素对象,每一个元素都封装成组件(可以看做存放页面元素对象的仓库)  CaseLoginTest.py 测试用例脚本。我们的实现思想,一切元素和元素的操作组件化定义在Page页面,用例脚本页面,通过调用Page中的组件对象,进行拼凑成一个登录脚本。

     
  • 相关阅读:
    Hadoop-2.4.1学习之Map任务源代码分析(下)
    微软面试题之两个链表的第一个公共结点
    再次轻度破解EXE文件
    源泉书签,助您管理海量收藏。www.yuanquanshuqian.com,今日更新:多标签功能已实现
    经验总结17--submitbutton,ajax提交
    python学习笔记(六)文件夹遍历,异常处理
    vue 数据传递的方法
    Vue 组件之间的数据传递
    Springboot文件下载
    springboot获取URL请求参数的几种方法
  • 原文地址:https://www.cnblogs.com/saryli/p/6811406.html
Copyright © 2011-2022 走看看