我有一些用FlowKeywords.txt
编写的机器人关键字,它已用于我的机器人测试案例中。
我可以从Python脚本中调用这些关键字吗?
I have checked this link但它包括在机器人测试用例中导入Python文件,然后从机器人端调用它。
我需要在Python脚本中使用这些关键字。
这是test.robot
档
*** Settings ***
*** Test Cases ***
Test
Example keyword
*** Keywords ***
Example keyword
log hello, world
以下是Python文件runkw.py
:
from robot.libraries.BuiltIn import BuiltIn
def call_keyword(keyword):
return BuiltIn().run_keyword(keyword)
如何从Python文件本身调用KW'Example关键字'?
答案 0 :(得分:0)
我不确定你是否可以直接从python中调用一个KW of robotfile。也许其他人可以回答。
但是在不知道怎么做的情况下,我可以使用python子进程模块为我执行命令
所以如果你想执行KW'示例关键字'来自python文件的test.robot文件,你可以像下面那样实现它
from subprocess import Popen
#-t option help you to run specific test , shell=true will allow the command to run as a single statment i.e. pybot -t test running_kw_from_python.robot
p1=Popen(['pybot','-t','Test','running_kw_from_python.robot'],shell=True)
这将运行测试用例'测试' ,最终运行'示例关键字'。
答案 1 :(得分:0)
在运行的Robot套件之外似乎没有官方支持运行Robot关键字。
如果您只想访问类似控制台的环境以执行调试命令,则可以将其修补为关键字,然后从Robot中运行它。这是我使用Dialogs库的(相当笨拙的)实现:
from robot.libraries.Dialogs import get_value_from_user
from robot.libraries.BuiltIn import BuiltIn
def keyword_console():
"""Console for executing keywords"""
while True:
keyword = get_value_from_user("Enter a keyword to run.")
result = BuiltIn().run_keyword(keyword)
print(result)
将此关键字插入测试用例中,系统将提示您输入要运行的关键字。此准系统版本不适用于参数。此关键字也可能有用:
def python_console():
"""Console for arbitrary Python code"""
run_keyword = BuiltIn().run_keyword
while True:
statement = get_value_from_user("Enter a Python expression to execute.")
result = exec(statement)
print(result)