与用于 Selenium 对象模式设计的 Robot 框架的关键字管理集成

Posted

技术标签:

【中文标题】与用于 Selenium 对象模式设计的 Robot 框架的关键字管理集成【英文标题】:Integration with Robot framework's keyword management for Selenium Object Pattern Design 【发布时间】:2011-07-22 18:25:01 【问题描述】:

我购买 UI 自动化工具已经有一段时间了。而且,之所以如此谨慎,是为了防止自己在脚上开枪。下面的链接最能描述我的恐惧 http://gojko.net/2010/04/13/how-to-implement-ui-testing-without-shooting-yourself-in-the-foot-2/

我现在很确定我可以通过利用 Selenium2.0 和页面对象设计(负责技术活动部分)以及机器人框架的关键字功能(负责工作流程和规则部分)。那么,会发生什么情况,我会将用户定义的关键字与相应的 Page 方法进行映射,然后使用关键字来设计机器人框架上的测试计划

但是,我还没有找到关于如何将用户定义的关键字映射到 Java 中相应页面对象设计方法中的方法的解决方案。

关于如何欣赏的指导。

谢谢

【问题讨论】:

在我围绕这个主题进行谷歌搜索之前已经有一段时间了。实际上有一些以前不存在的匹配文章。 beer30.org/?p=54(通过 RF 电子表格建模页面对象)imsardine.simplbug.com/note/robotframework/page-object.html(直接将页面对象导入 RF 电子表格,但结论不是一个好主意,因为关键字基于平面层次结构,而页面对象是继承的) Daniel,后面的链接似乎消失了/移动了?返回 404。 嗨大卫,试试这个beer30.org/2012/05/26/… 嗨丹尼尔,该链接与第一个链接的目的地相同。第二个链接(imsardine.simplbug.com),它最初是否也指向同一件事,还是指向其他文章?只是检查一下是否有其他“文章/帖子”已经下线。 嗨大卫,第一个链接确实返回 404,因为提供的第一个链接不完整。第二个链接有效。使用“robotframework pageobject”尝试谷歌,您应该能够在第一个匹配的项目中看到它 【参考方案1】:

我们的组织开发了一个框架来支持这一点:https://github.com/ncbi/robotframework-pageobjects。

我在这里写了实现这个的经验: http://www.kahunacohen.com/2014/12/03/new-testing-paradigm-robotframework-pageobjects/

【讨论】:

【参考方案2】:

这里有一些信息可能会有所帮助:http://blog.codecentric.de/en/2010/07/how-to-structure-a-scalable-and-maintainable-acceptance-test-suite/

如果没有,那么最好去询问 robotsframework 用户组:http://groups.google.com/group/robotframework-users

【讨论】:

【参考方案3】:

除了 Ruslan 所说的,我一直在开发一个名为 TOSCA 测试套件的自动化工具。它非常适合 UI 测试,并且像魔术一样工作。但是,如果您讨厌没有沉浸在脚本中的自动化工具(我的脚本是指编码),我建议您远离它。 Tosca 允许您使用称为 TOSCA 向导的内置机制从应用程序中捕获屏幕,该机制将应用程序屏幕保存在 .xml 文件中。稍后可以将其导入您的测试工作区并用于创建脚本。

此工具也可用作测试管理工具,可让您维护需求、创建测试用例流、自动化测试用例、执行测试用例,还可以帮助您报告结果。

你可以在http://www.tricentis.com/en/home找到更多关于这个工具的信息

试试这个,如果有帮助,请告诉我们。

【讨论】:

【参考方案4】:

我最近写了一个简单的示例,展示了将 Java 页面对象转换为 Robot Framework 纯用户关键字/资源文件格式(全部在用户级别完成,无需代码)。我这样做是因为发现现有示例对于那些在实际代码中使用页面对象或遵循代码中给出的页面对象示例的人来说有点过于复杂且不太直观。这里更接近于代码实现

https://github.com/daluu/robotframework-simple-page-object-example

它不包括页面对象的继承和测试用例可能继承的独立测试相关类。也许这是为了一个更复杂的未来示例。

然而,我会说基本继承可以通过资源文件相互引用来模仿。您可能无法获得在代码中获得的范围粒度级别是全部(公共、私有、受保护等)

【讨论】:

【参考方案5】:

我不认为 Robot 框架是 UI 测试的最佳选择。当测试复杂系统或系统组件时,它更适合功能集成测试。例如,我正在使用它来测试业务规则引擎。我向引擎发送不同的事件并验证系统是否已转入适当的状态。

您是否检查过任何其他 UI 测试工具,例如 Watir、Tosca 或 Sahi?我发现最后一个最有趣的是它如何处理页面上的组件(相对于其他元素)。并且它不需要 UI 组件的任何特殊标签。

【讨论】:

以上是关于与用于 Selenium 对象模式设计的 Robot 框架的关键字管理集成的主要内容,如果未能解决你的问题,请参考以下文章

selenium自动化测试框架之PO设计模式

PageObject设计模式 在selenium 自动化测试里面的应用

Selenium3与Python3实战 Web自动化测试框架

python+ selenium&APPium page Object 设计模式

java面向对象与设计模式

浅析selenium的page object模式