【问题标题】:Abstract Keywords in Robot FrameworkRobot Framework中的抽象关键字
【发布时间】:2019-04-26 02:14:12
【问题描述】:

是否可以实现抽象关键字,这样既可以避免重复的“代码”,又可以避免实际测试实现中的技术争论?对我来说也很重要的是,抽象关键字在任何实际测试实现中都不可用。

我想要的是这样的:

*** Abstract Keywords ***
Open Menu Item
    [Arguments]     ${menu}
    Click Element    ${menu}

*** Keywords ***
Open Home
    Open Menu Item    Home

Open Setup
    Open Menu Item    Setup

Robot Framework 是否支持抽象?

【问题讨论】:

  • “抽象”是什么意思?常用的一个(参见:Java)指定不应在此类方法中实现;并且它们在抽象类中使用,因此继承者必须根据它们的形状提供实际的实现。在您的示例中,情况并非如此,您正在重新使用希望成为抽象关键字中定义的实现; RF 中没有类的概念。那么你真正想要达到什么目的呢?禁止在测试用例中使用关键字,仅在其他关键字中使用?
  • 我同意@todor 并想添加一条评论。 Robot Framework 不是一种编程语言。您使用的这些构造与它的 DSL 不同,原因很明显:它们不属于那里。正如 Bryan 所说,您可以在 Python 中做更多事情,这种方法确实应该在该层中开发。保持机器人框架方面的简单。所以,请详细说明为什么这对您在机器人框架层如此重要。

标签: testing automated-tests robotframework


【解决方案1】:

简短回答:没有

机器人框架没有抽象关键字的概念。您当然可以像在示例中那样创建调用其他关键字的新关键字,但是如果有人知道如何导入它,则无法阻止他们直接调用 Open Menu Item

稍微长一点的答案:是的,如果你用python写关键字

你当然可以在 python 中做你想做的事。 Robot 有一个明确定义的机制,它知道哪些函数是关键字,哪些不在关键字库中。您的 abstract 关键字可以只是一个不会导出的私有函数或方法。您导出的关键字可以在内部使用此函数,但不能直接用作测试用例的关键字。

【讨论】:

    猜你喜欢
    • 2016-09-17
    • 2017-07-07
    • 2015-12-04
    • 2013-07-07
    • 2011-11-26
    • 2021-07-17
    • 2015-09-09
    • 2020-04-09
    • 2017-06-05
    相关资源
    最近更新 更多