【问题标题】:Robot Framework: am I implementing the Page Object Pattern the right way?机器人框架:我是否以正确的方式实现页面对象模式?
【发布时间】:2017-12-12 18:16:21
【问题描述】:

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

假设我要测试一个公司网站,其主页有一个菜单,可将用户带到“关于”、“产品”、“联系我们”等页面。

这是我迄今为止提出的用于构建我的项目的方法,但我不确定它是否是可扩展性和可维护性方面的最佳方法:

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

  • GeneralResources.robot 文件包含一个“设置”部分,其中包含所有测试都将使用的库引用(例如:Selenium2Library)

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

    1. __init__.robot 带有 Test SetupTest Teardown 用于所有主页测试。
    2. Resources.robot 带有全局变量(如 ${home_url}${home_title})和主页测试将使用的更高级别的关键字。
    3. PageObjects.robot 带有变量,用于存储将在主页中测试的所有对象的定位器(例如:主徽标、主菜单、页脚等)。
    4. tests.robot 我将在主页中执行所有测试。 Settings 部分调用其他文件(除了自动检测到的 init),如下所示:

资源Resources.robot

资源PageObjects.robot

资源../GeneralResources.robot

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

我不确定这是正确的方法,因为每页 4 个文件似乎是相当大的开销。我想知道我是否忽略了某些内容,或者我正在使用的某些文件是否应该合并为一个。

【问题讨论】:

  • 你考虑过用python写你的关键字吗?它为您提供了更多的灵活性。我编写了一个页面对象库,使这变得非常容易。见github.com/boakley/robotframework-pageobjectlibrary。不幸的是,这个问题的答案主要是意见,这种类型的问题在这里是题外话。
  • 谢谢,布莱恩。不幸的是,我必须在我的项目中使用 Java,而且我找不到任何可以为我设置页面对象模式的库,所以我试图自己从头开始组织它。我的结构不够灵活吗?

标签: automation robotframework


【解决方案1】:

页面对象模型是一种将应用程序 UI 从您的测试逻辑中逐页抽象出来的好方法。

如果您的应用程序由在多个页面中重复使用的独立元素构成,那么按页面的方法可能不太有效。

对于我使用 ID 生成的应用程序,可以预见我选择的抽象反映了应用程序的结构,因此每个页面我只是重复使用表示应用程序功能的基本构建块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多