从Python脚本

时间:2017-12-14 04:10:14

标签: python robotframework

我有一些用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关键字'?

2 个答案:

答案 0 :(得分:0)

我不确定你是否可以直接从python中调用一个KW of robotfile。也许其他人可以回答。

但是在不知道怎么做的情况下,我可以使用python子进程模块为我执行命令

所以如果你想执行KW'示例关键字'来自python文件的test.robot文件,你可以像下面那样实现它

runkw.py

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)