gpt4 book ai didi

listener - 如何在 Robot Framework 中的监听器和(一个或多个)测试用例之间传递信息?

转载 作者:行者123 更新时间:2023-12-04 02:16:30 38 4
gpt4 key购买 nike

我有一个测试,我需要将结果写入数据库。我想通过监听器中的 startSuite 函数(将在所有测试用例的开头运行)建立与数据库的连接(使用用户名、密码、数据库、主机),并在 endSuite 中关闭它。我的问题是,如何将连接(或游标)传递回机器人框架代码以在测试用例中使用。目前我正在这样做:

*** Test Cases ***
RecordinTestflow
Setup1
${return} = Record Start in Testflow ${data}

其中 Setup1 是一个 python 函数,它将设置连接,RecordStartinTestFlow 将使用该连接。我想将 Setup1 移动到监听器 python 脚本。

谢谢。

最佳答案

外部监听器无法向测试用例发送信息。但是,如果您使用关键字库作为监听器,则可以。缺点是您必须在测试套件中导入监听器,而不是在命令行中指定它。

机器人框架用户指南的章节标题为 Test libraries as listeners其中描述了如何做。

这是一个人为的示例,展示了监听器方法如何设置测试用例随后可以使用的套件变量。

首先是监听器:

from robot.libraries.BuiltIn import BuiltIn

class ListenerExample(object):
ROBOT_LISTENER_API_VERSION = 2
ROBOT_LIBRARY_SCOPE = "GLOBAL"

def __init__(self):
self.ROBOT_LIBRARY_LISTENER = self

def _start_suite(self, name, attrs):
message = "hello, world"
BuiltIn().set_suite_variable("${from listener}", message)

接下来,一个简单的测试用例展示了如何在套件启动后立即设置变量。请注意,测试本身并未定义 ${from listener}。相反,一旦调用监听器方法,它就会被定义。

*** Settings ***
| Library | ListenerExample.py

*** Test Cases ***
| Example of getting data from a listener
| | should be equal | ${from listener} | hello, world

当然,在您的情况下,您可以将 message 更改为您的数据库游标或您想要的任何其他内容。

当然,你也可以把关键字放到这个库里,你也可以用。

关于listener - 如何在 Robot Framework 中的监听器和(一个或多个)测试用例之间传递信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33419864/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com