• 【UI自动化测试】经典框架及模型


    参考:

    https://www.cnblogs.com/CesareZhang/p/11140520.html

    https://www.cnblogs.com/CesareZhang/p/10744722.html

    框架结构:


    Business:业务相关公共模块,如登录

    Common:业务无关公共模块,如读取文件

    PageObject:页面元素封装

    TestCase:测试用例层

    TestData:测试数据

    TestSuite:测试套件

    browser.ini:运行浏览器配置文件
    https://www.cnblogs.com/CesareZhang/p/10738541.html


    run.py:运行文件



    Page Object(页面对象)模式

    https://www.cnblogs.com/yinjia/p/9503267.html

    https://www.cnblogs.com/xiaofeifei-wang/p/6733753.html

     https://www.cnblogs.com/xiaofeifei-wang/p/6733753.html

     https://www.cnblogs.com/yuanchunli/articles/7576142.html

    https://zhuanlan.zhihu.com/p/157136254

    页面对象,并将页面元素定位方法和元素操作进行分离。

    当Web页面编写测试时,需要操作该Web页面上的元素,如果在测试代码中直接操作HTML元素,那么代码比较脆弱,因为UI频繁变动。可用到page对象封装成一个HTML页面,通过提供的API来操作页面元素。

    什么是POM?
    1. 页面对象模型 是 为Web UI元素创建Object Repository的设计模式 。
    2. 在这个模型下,对于应用程序中的每个网页,应该有相应的页面类
    3. 此Page类将会找到该Web页面的WebElements,并且还包含对这些WebElements执行操作的页面方法
    4. 这些方法的名称应该按照他们正在执行的任务给出

    POM的优点
    1. 页面对象Patten表示UI中的操作和流程应与验证分开。这个概念使我们的代码更清洁,易于理解。
    2. 第二个好处是 对象存储库独立于测试用例,因此我们可以使用与不同工具不同的目的使用相同的对象存储库。
    例如,我们可以将POM与用于功能测试的TestNG / JUnit进行集成,并与JBehave / Cucumber同时进行验收测试。
    3. 由于POM类中的可重用页面方法,代码变得更少和优化。
    4. 方法采用更实际的名称 ,可以轻松地映射UI中发生的操作。即如果在点击按钮后,我们登陆主页,方法名称就像'gotoHomePage()'

    优点如下:

    •   减少代码的重复
    •   提高测试用例的可读性
    •   提高测试用例的可维护性,特别是针对UI频繁变化的项目

    如何实现POM?
    简单的POM:
    它是页面对象模型(POM)的基本结构,其中AUT的所有Web元素和在这些Web元素上操作的方法都保留在类文件中。
    类的验证的任务应该作为测试方法的一部分分开.

     
    对脚本的实现分为三层:
      对象层: 用于存放页面元素定位和控件操作
      逻辑层: 则是一些封装好的功能用例模块
      业务层: 则是我们真正的测试用例的操作部分

    在Page Object设计时,可以有两种设计模式:

        1. 在Class中实现逻辑功能,比如判断title是否显示正确,页面跳转是否正确,只需要返回函数执行结果(True OR False)即可

        2. 在Class中返回元素内容,比如返回title内容,具体的逻辑在测试页面代码中书写,这样Page Object 端只需要获取元素和返回值就行啦,工作也比较简单

  • 相关阅读:
    主席树学习记录
    P1072 Hanson 的趣味题 题解
    好文章收集
    计算几何专题
    小问题
    CSP-S2020题解
    上下界网络流
    想到的无法解决的点子
    省选联考2020组合数问题
    省选数学复习
  • 原文地址:https://www.cnblogs.com/cathygx/p/14450871.html
Copyright © 2020-2023  润新知