Gra*_*obo 3 python keyword robotframework
我正在使用 RobotFramework 进行自动测试,需要编写一个关键字来打印足够的日志信息,但我找不到一种方法来获取日志跟踪的当前关键字名称。有谁知道如何实现它?多谢。
机器人不支持获取当前关键字名称。由于您编写的代码必须从关键字运行,因此您的关键字应该知道它自己的名称是什么。
如果你用 python 编写关键字,python 库也可以是一个侦听器,可以将关键字压入堆栈并弹出堆栈。然后,您可以使用该信息来格式化错误消息。
这是一个简单的例子:
from robot.libraries.BuiltIn import BuiltIn
class ExampleLibrary(object):
ROBOT_LISTENER_API_VERSION = 2
ROBOT_LIBRARY_SCOPE = "GLOBAL"
def __init__(self):
self.ROBOT_LIBRARY_LISTENER = self
self.keywords = []
def _start_keyword(self, name, attrs):
self.keywords.append(name)
def _end_keyword(self, name, attrs):
self.keywords.pop()
def log_error_message(self, reason):
message = "{keyword} failed in testcase {testcase}: {reason}"
BuiltIn().log(message.format(
keyword=self.keywords[-2],
testcase=BuiltIn().get_variable_value("${TEST_NAME}"),
reason=reason,
))
Run Code Online (Sandbox Code Playgroud)
这是一个示例测试用例,展示了如何使用它:
*** Settings ***
Library ExampleLibrary.py
*** Keywords ***
A keyword
log inside A keyword
Another keyword
Another keyword
log error message something went wrong
*** Test Cases ***
Example
A keyword
Run Code Online (Sandbox Code Playgroud)
当您运行上述测试时,您将在日志中看到以下内容:
| 归档时间: |
|
| 查看次数: |
2225 次 |
| 最近记录: |