在Robot Framework log.html中,我想记录我正在从python文件执行的命令输出.如附带的log.html截图所示,现在我无法看到命令输出.简单的打印或记录为PASS.
我的机器人文件:
*** Settings ***
Library test
*** Test cases ***
check
test
Run Code Online (Sandbox Code Playgroud)
Python关键字:
def test():
cmd = ' net test" '
output = os.popen(cmd).read()
match1 = re.findall('.* (successfully).*',output)
mat1 = ['successfully']
if match1 == mat1:
print "PASS::"
Run Code Online (Sandbox Code Playgroud)
有人可以指导我吗?
如果希望命令的输出显示在日志中,则有三种方法:使用print语句,使用日志记录API或使用内置的log关键字.这些方法都记录在机器人框架用户指南中.
在这三者中,日志API可以说是最好的选择.
你已经在使用这种方法了.用户指南中记录了一个名为Logging information的部分:
...方法也可以通过写入标准输出流(stdout)或标准错误流(stderr)将消息发送到日志文件......
例:
def test():
cmd = ' net test" '
output = os.popen(cmd).read()
match1 = re.findall('.* (successfully).*',output)
mat1 = ['successfully']
if match1 == mat1:
print "output: " + output
Run Code Online (Sandbox Code Playgroud)
有一个用于记录的公共API,也在用户指南中的一个名为Public API的部分中记录,用于记录:
Robot Framework有一个基于Python的日志记录API,用于将消息写入日志文件和控制台.测试库可以像logger.info('我的消息')一样使用这个API,而不是像打印' INFO我的消息' 那样记录标准输出.除了使用更清晰的编程接口之外,此API还有一个好处,即日志消息具有准确的时间戳.
例:
from robot.api import logger
def test():
...
logger.info("output: " + output)
Run Code Online (Sandbox Code Playgroud)
最后,您还可以使用内置的log关键字.使用内置关键字在用户指南的" 使用BuiltIn Library "一节中介绍.
使用Python实现的测试库可以使用Robot Framework的内部模块,例如,获取有关已执行测试和所使用设置的信息.但是,应该谨慎使用这种与框架通信的强大机制,因为所有Robot Framework的API都不是外部使用的,它们可能会在不同的框架版本之间发生根本变化.
例:
from robot.libraries import BuiltIn
...
def test():
...
BuiltIn().log("this is a debug message", "DEBUG")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13315 次 |
| 最近记录: |