Emi*_*anu 7 python testing robotframework
用机器人语言编写复杂的机器人关键字有时非常耗时,因为机器人语言不是真正的编程语言.我想在python中编写我的关键字,并且只在robotframework语言中公开简单的html表.问题是我们已经有很多用机器人语言编写的低级机器人关键字(在.robot和.txt文件中).是否可以使用robotframework python api从python代码中执行这些关键字?
对的,这是可能的.在您的python代码中,您可以获得对BuiltIn库的引用,然后使用Run Keyword关键字运行您想要的任何关键字.
例如,您可以编写一个python关键字,将另一个关键字作为参数并运行它.以下可能是你在python中的方式:
# MyLibrary.py
from robot.libraries.BuiltIn import BuiltIn
def call_keyword(keyword):
return BuiltIn().run_keyword(keyword)
Run Code Online (Sandbox Code Playgroud)
然后,您可以告诉此关键字调用任何其他关键字.这是一个示例套件,其中包含一个用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
Run Code Online (Sandbox Code Playgroud)
请注意测试用例如何告诉call_keyword
方法运行关键字Example Keyword
.当然,你不必有一个关键字来传递.关键点是获取对BuiltIn库的引用,然后允许您调用该库中的任何方法.
这在"机器人框架用户指南"的" 使用机器人框架的内部模块"一节中有记录.更具体地说,请参阅使用BuiltIn Library一节.
请注意,如果关键字调用run_keyword
方法,则说明您需要调用register_run_keyword .我不会在这里复制文档.您可以通过查看BuiltIn模块本身来获取文档,或者在交互式python会话中运行以下代码:
>>> import robot.libraries.BuiltIn
>>> help(robot.libraries.BuiltIn.register_run_keyword)
Run Code Online (Sandbox Code Playgroud)