从Python写入机器人框架控制台

问题描述 投票:0回答:4

我是一个使用 python 的新手,我想请求您帮助向我展示如何将消息从 Python 打印到机器人框架控制台中。

python console robotframework
4个回答
30
投票

Python 函数可以通过多种方式将信息发送到机器人日志或控制台。这些都记录在机器人框架用户指南的标题为记录信息的部分中。

最干净的方法是使用logging API,它为各种日志记录提供了专门的功能。例如,要将信息发送到控制台,您可以使用

logger.console(message)

使用日志记录API

这里有一个使用此方法的库文件:

# ExampleKeywords.py
from robot.api import logger
def write_to_console(s):
    logger.console(s)

您可以通过以下方式使用该库:

*** Settings ***
| Library | ExampleKeywords.py

*** Test Cases ***
| Use a custom keyword to write to the console
| | Write to console | Hello, world

这只会出现在控制台中,不会显示在日志中。如果您希望信息显示在日志中,您可以使用记录器方法

info
warn
debug
trace
。要记录错误,您只需抛出异常即可。

调用内置关键字

您的自定义关键字还可以通过其他方式将信息发送到日志。例如,您可以获取对内置库的引用,并直接调用 loglog to console 关键字,如下所示:

from robot.libraries.BuiltIn import BuiltIn
def write_to_console(s):
    BuiltIn().log_to_console("Hello, world")

使用打印语句

最后,您可以使用 print 语句将信息写入日志(但不仅限于控制台)。您可以在字符串前面添加

*<level>*
来影响日志级别。例如,要打印警告,您可以执行以下操作:

print "*WARN* Danger Will Robinson"

总结

使用 API 可以说是记录关键字信息的最佳方法。然而,这是一个相当新的 API,仅自 Robot Framework 2.6 起可用,因此,如果您使用旧版本的 Robot,您可能需要使用其他技术之一。


7
投票

听起来您要求的是一种编写库的方法,以便您的测试用例可以在测试执行期间打印到控制台。

这非常简单,您可以在射频手册的记录信息下找到它。 简而言之,您可以记录一个“警告”,该警告将同时出现在日志和屏幕上并带有打印语句,如下所示:

print "*WARN* This text will show up on the console."

3
投票

此命令可用于打印机器人控制台上的任何消息或内容。

from robot.libraries.BuiltIn import BuiltIn
BuiltIn().log_to_console("Message that needs to be printed")

0
投票

您无需执行任何操作。打开BuiltIn.py模块并查看log()函数。 只需用作:

| Log | Hello, console!   | console=yes | | # Log also to the console. |

仅供参考:

示例:

`|日志|你好世界! | | | # 正常的 INFO 消息。 |

| Log | Warning, world!      | WARN     |   | # Warning.               |

| Log | <b>Hello</b>, world! | html=yes |   | # INFO message as HTML.  |
| Log | <b>Hello</b>, world! | HTML     |   | # Same as above.         |
| Log | <b>Hello</b>, world! | DEBUG    | html=true | # DEBUG as HTML. |
| Log | Hello, console!   | console=yes | | # Log also to the console. |
| Log | Hello, console!   | CONSOLE     | | # Log also to the console. |
| Log | Null is \x00    | formatter=repr | | # Log ``'Null is \x00'``. |`
© www.soinside.com 2019 - 2024. All rights reserved.