使用robotframework api从python执行robot关键字

时间:2014-11-20 15:45:14

标签: python testing robotframework

用机器人语言编写复杂的机器人关键字有时非常耗时,因为机器人语言不是真正的编程语言。我想在python中编写我的关键字,并且只在robotframework语言中公开简单的html表。问题是我们已经有很多用机器人语言编写的低级机器人关键字(在.robot和.txt文件中)。是否可以使用robotframework python api从python代码中执行这些关键字?

1 个答案:

答案 0 :(得分:8)

是的,有可能。在您的python代码中,您可以获得对BuiltIn库的引用,然后使用Run Keyword关键字运行您想要的任何关键字。

例如,您可以编写一个python关键字,将另一个关键字作为参数并运行它。以下可能是你在python中的表现:

# MyLibrary.py
from robot.libraries.BuiltIn import BuiltIn

def call_keyword(keyword):
    return BuiltIn().run_keyword(keyword)

然后,您可以告诉此关键字调用任何其他关键字。这是一个示例套件,其中包含一个用robot编写的关键字,然后让python代码执行它:

*** Settings ***
| Library | MyLibrary.py

*** Keywords ***
| Example keyword
| | log | hello, world

*** Test Cases ***
| Example of calling a python keyword that calls a robot keyword
| | Call keyword | Example keyword

注意测试用例如何告诉call_keyword方法运行关键字Example Keyword。当然,你没有传递关键字。关键点是获取对BuiltIn库的引用,然后允许您调用该库中的任何方法。

这在机器人框架用户指南的标题为Using Robot Framework's Internal Modules的部分中有记录。更具体地说,请参阅Using BuiltIn Library部分。

请注意,如果关键字调用run_keyword方法,则说明您需要调用register_run_keyword。我不会在这里复制文档。您可以通过查看BuiltIn模块本身来获取文档,或者在交互式python会话中运行以下代码:

>>> import robot.libraries.BuiltIn
>>> help(robot.libraries.BuiltIn.register_run_keyword)