• PageObject设计思想


    PageObject思想

    一、基本概念

    它是一种设计模式,是实施selenium的最佳实践,能清楚的体现web应用和页面显示之间的关系。简单叙说就是把页面元素定位和元素操作方法还有页面业务分离。在设计过程中,对脚本进行分层:对象层、逻辑层、业务层、公共层。

    1、对象库层

    存放页面的元素信息,和页面特殊控件的操作方法。

    2、逻辑层

    存放一些封装好了的功能用例模块。

    3、业务层

    存放真正实现测试用例的操作。

    4、公共层

    在业务操作过程中,有几点是会经常变化的,比如页面访问地址、元素定位、业务流程-->构成功能页面,么就可以采用: 元素定位 --> 元素操作 --> 业务流程 进行分层,进一步细化,元素操作中的数据、异常处理、报告生成可以作为公共部分进行处理。

    二、为什么要使用PageObeject

    1、使用Selenium实现业务测试会遇到哪些对像?

        1.页面即Page,用来定位业务实现的位置;

        2.页面元素即element,用来定位业务操作的对像。

    基本的实现逻辑:基于某个页面,操作某个元素,实现某个特定的功能。

    2Selenium如何实现

        1)get(url),定位某个页面

        2)findelementby_XXX,定位某个元素 locator

        3)click/send/set......,操作元素、特定数据实现特定功能

        4)组合不同功能,实现某个特定的业务

    3、实现selenium自动化的难点

    什么影响了测试代码的实现和维护:可能变化的内容。

     如何减少可变化内容对代码的影响:分离可变和不可变内容,独立维护可变代码,减少可变代码对于整体代码的影响。

     如何实现可变内容与不可变内容分离:参数化,分层调用。

    三、PageObject设计的好处

    1、减少代码的编码量,和代码的维护工作,明确尔清晰的业务测试流程

    2、集中管理页面中的元素对象,便于应对页面元素的变化

    3、集中管理一个page中的公共方法,便于测试用例的编写

    4、后期维护更新方便,不需要重复的修改代码

    四、设计概念示例

    1具体的做法如下

    1、创建一个页面的类

    2、在类的构造方法中,传递 WebDriver 参数。

    3、在测试用例的类中,实例化页面的类,并且传递在测试用例中已经实例化的WebDriver对象。

    4、在页面的类中,编写该页面的所有操作的方法

    5、在测试用例的类中,调用这些方法

    2、简单示例,登录

      对象层: UserID, Password, Login

      逻辑层: input(UserID), Input(Password), Click(Login Button)

      业务层: login(input(UserID), Input(Password), Click(Login Button))

      公共层: login url, driver, browser 

     软件设计的三层架构:界面层/表示层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer),高内聚低耦合,减少层次间的连系,减少变化带来的系统性变化。 

  • 相关阅读:
    WebApi Ajax 跨域请求解决方法(CORS实现)
    JQuery Ajax POST/GET 请求至 ASP.NET WebAPI
    Hybird APP对接后台:Net WebApi
    Chrome
    centos8平台:用fontconfig安装及管理字体(fc-list/fc-match/fc-cache)
    centos8平台:redis6配置启用io多线程(redis6.0.1)
    centos8平台安装redis6.0.1
    centos8平台:举例讲解redis6的ACL功能(redis6.0.1)
    ImageMagick实现图片加水印(ImageMagick6.9.10)
    centos8上安装ImageMagick6.9.10并压缩图片生成webp缩略图
  • 原文地址:https://www.cnblogs.com/HMeier/p/12827780.html
Copyright © 2020-2023  润新知