机器人框架:我是否以正确的方式实现了页面对象模式?

时间:2017-07-08 15:37:32

标签: automation robotframework

我已经阅读了一些文章和示例,但我仍然不确定如何组织我的测试套件。

让我们说我将测试一个公司网站,主页上有一个菜单,用户将用户带到"","产品和#34等页面;,"联系我们"。

到目前为止,我已经提出了构建项目的方法,但我不确定它是可扩展性和可维护性方面的最佳方式:

/src/test/robotframework/acceptance包含 GeneralResources.robot 文件,每个网站一个文件夹

  • GeneralResources.robot文件包含"设置"所有测试都将使用的库引用部分(例如:Selenium2Library)

  • /home文件夹包含4个文件:

    1. __init__.robot使用测试设置测试拆解进行所有主页测试。
    2. Resources.robot包含全局变量(如 $ {home_url} $ {home_title} )以及主页测试将使用的更高级别关键字。< / LI>
    3. PageObjects.robot带有变量,用于存储将在主页中测试的所有对象的定位器(例如:主徽标,主菜单,页脚等)。
    4. tests.robot我将在主页上执行所有测试。 设置部分调用其他文件(自动检测到的 init 除外),如下所示:
  

资源 Resources.robot

     

资源 PageObjects.robot

     

资源 ../ GeneralResources.robot

  • /about文件夹还将包含4个文件,其组织方式与/ home文件夹相同。
  • /products文件夹还将包含4个文件,其组织方式与/ home文件夹相同。
  • /contactus文件夹还将包含4个文件,其组织方式与/ home文件夹相同。

我不确定这是正确的方法,因为每页4个文件看起来非常开销。我想知道我是否忽略了某些内容,或者是否可能将我正在使用的某些文件合并为一个。

1 个答案:

答案 0 :(得分:1)

页面对象模型是一种从每页基础上从测试逻辑中抽象出应用程序UI的好方法。

如果您的应用程序是在多个页面中重复使用的单独元素中构建的,则每页方法的效果可能会降低。

对于我使用ID生成的应用程序是可预测的,我选择的抽象镜像应用程序的结构,因此每页我只是重新使用代表应用程序功能的基本构建块。