从Python写入机器人框架控制台
我刚开始学Python,想请教一下你们,怎么才能把Python中的信息打印到Robot Framework的控制台上。
3 个回答
3
这个命令可以用来在机器人控制台上打印任何消息或内容。
from robot.libraries.BuiltIn import BuiltIn
BuiltIn().log_to_console("Message that needs to be printed")
7
你似乎在问怎么写一个库,让你的测试用例在执行时可以在控制台上打印信息。
这其实很简单,你可以在RF手册里找到相关内容,具体在日志信息的部分。简单来说,你可以记录一个“警告”(WARN),这样它会同时出现在日志和屏幕上,方法是用打印语句,像这样:
print "*WARN* This text will show up on the console."
29
有几种方法可以让Python函数把信息发送到机器人日志或者控制台。这些方法都在Robot框架用户指南中有详细说明,具体在一个叫做记录信息的部分。
最简单的方法是使用日志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
这条信息只会出现在控制台上,不会出现在日志中。如果你想让信息出现在日志里,可以使用logger的方法,比如info
、warn
、debug
或者trace
。如果要记录一个错误,只需抛出一个异常即可。
调用内置关键字
还有其他方法可以让你的自定义关键字发送信息到日志。例如,你可以获取内置库的引用,直接调用log或log to console关键字,像这样:
from robot.libraries.BuiltIn import BuiltIn
def write_to_console(s):
BuiltIn().log_to_console("Hello, world")
使用打印语句
最后,你可以使用打印语句将信息写入日志(不仅仅是控制台)。你可以在字符串前加上*<level>*
来影响日志级别。例如,要打印一个警告,你可以这样做:
print "*WARN* Danger Will Robinson"
总结
使用API可以说是从你的关键字记录信息的最佳方法。然而,这个API相对较新,自Robot Framework 2.6版本以来才可用,所以如果你使用的是旧版本的Robot,可能需要使用其他方法。