Testing 机器人框架中的抽象关键词

Testing 机器人框架中的抽象关键词,testing,automated-tests,robotframework,Testing,Automated Tests,Robotframework,是否可以实现抽象关键字,以便在实际测试实现中避免重复代码和技术参数?对我来说,抽象关键字在任何实际的测试实现中都是不可用的,这一点也非常重要 我想要的是这样的东西: *** Abstract Keywords *** Open Menu Item [Arguments] ${menu} Click Element ${menu} *** Keywords *** Open Home Open Menu Item Home Open Setup

是否可以实现抽象关键字,以便在实际测试实现中避免重复代码和技术参数?对我来说,抽象关键字在任何实际的测试实现中都是不可用的,这一点也非常重要

我想要的是这样的东西:

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

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

Open Setup
    Open Menu Item    Setup
Robot框架支持抽象吗

简短的回答:没有

Robot框架没有抽象关键字的概念。您当然可以像在您的示例中那样创建调用其他关键字的新关键字,但如果有人知道如何导入打开的菜单项,则无法阻止他们直接调用打开的菜单项

稍长一点的回答:是的,如果您用python编写关键字

在python中,您当然可以随心所欲。Robot有一个定义良好的机制,它可以知道哪些函数是关键字,哪些不在关键字库中。抽象关键字可以只是一个私有函数或方法,不能被导出。导出的关键字可以在内部使用此函数,但不能直接作为测试用例的关键字使用

简短的回答:没有

Robot框架没有抽象关键字的概念。您当然可以像在您的示例中那样创建调用其他关键字的新关键字,但如果有人知道如何导入打开的菜单项,则无法阻止他们直接调用打开的菜单项

稍长一点的回答:是的,如果您用python编写关键字


在python中,您当然可以随心所欲。Robot有一个定义良好的机制,它可以知道哪些函数是关键字,哪些不在关键字库中。抽象关键字可以只是一个私有函数或方法,不能被导出。导出的关键字可以在内部使用此函数,但不能直接作为测试用例的关键字使用

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