首页 > 解决方案 > 在 Robot Framework 侦听器中使全局变量可访问

问题描述

在我的一个项目中,我们使用 Robot Framework 和一个特殊的监听器通过 XRAY 将结果推送到 Jira。

现在,我们想以 A 或 B 两种不同的模式调用 Robot Framework,并且需要通过 XRay 将不同的标签推送到 Jira。

我不想在调用机器人之前设置一些环境变量,因为它们真的很难跟踪。

什么可能是使机器人框架的全局变量在机器人框架侦听器中可访问的最简单方法。

我只想这样称呼机器人:

robot --listener XRayListener.py --variable Mode:A

如何,我现在可以访问 XRayListener.py 中的变量 Mode

标签: jirarobotframeworkjira-xray

解决方案


本文所述,从侦听器 python 代码中,您可以使用 BuiltIn().get_variables() 来获取给定的变量值。

from robot.libraries.BuiltIn import BuiltIn
ROBOT_LISTENER_API_VERSION = 2

def end_test(name, attributes):
    print("BROWSER = '%s'" % BuiltIn().get_variables()['${BROWSER}'])

然后运行它:

robot --listener ShowVariable simple.robot 

仅供参考的机器人文件是:

*** Settings ***
Library           SeleniumLibrary

*** Variables ***
${URL}            https://www.google.com/
${REMOTE_URL}     http://192.168.56.1:4444/wd/hub
${BROWSER}        Chrome

*** Test Cases ***
Confirm login popup is accessable
    #Go To    ${URL}
    open browser    ${URL}    ${BROWSER}
    set window size    350    800
    [Teardown]    Close Browser(base

推荐阅读