使全局变量可在 Robot Framework 侦听器中访问
Make global variable accessible in Robot Framework listener
在我的一个项目中,我们使用 Robot Framework 和一个特殊的侦听器通过 XRAY 将结果推送到 Jira。
现在,我们要以A或B两种不同的模式调用Robot Framework,不同的标签需要通过XRay推送到Jira。
我不想在调用机器人之前设置一些环境变量,因为它们真的很难跟踪。
使机器人框架 运行 的全局变量在机器人框架侦听器中可访问的最简单方法是什么。
我只想这样称呼机器人:
robot --listener XRayListener.py --variable Mode:A
如何,我现在可以访问 XRayListener.py
中的变量 Mode
如 this article 中所述,从侦听器 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
在我的一个项目中,我们使用 Robot Framework 和一个特殊的侦听器通过 XRAY 将结果推送到 Jira。
现在,我们要以A或B两种不同的模式调用Robot Framework,不同的标签需要通过XRay推送到Jira。
我不想在调用机器人之前设置一些环境变量,因为它们真的很难跟踪。
使机器人框架 运行 的全局变量在机器人框架侦听器中可访问的最简单方法是什么。
我只想这样称呼机器人:
robot --listener XRayListener.py --variable Mode:A
如何,我现在可以访问 XRayListener.py
中的变量 Mode如 this article 中所述,从侦听器 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