Robotframework 变量文件中的变量
我试图使用变量phyton文件中的变量。 我想我正在做用户手册中描述的所有事情,但是变量仍然不可用 这是变量文件Robotframework 变量文件中的变量,robotframework,Robotframework,我试图使用变量phyton文件中的变量。 我想我正在做用户手册中描述的所有事情,但是变量仍然不可用 这是变量文件 TEST_VAR = 'Michiel' def get_variables(environment = 'UAT'): if environment.upper() == 'INT': ENV = {"NAME": "Bol.com INT", "BROWSER": "safari", "URL
TEST_VAR = 'Michiel'
def get_variables(environment = 'UAT'):
if environment.upper() == 'INT':
ENV = {"NAME": "Bol.com INT",
"BROWSER": "safari",
"URL": "www.bol.com"}
else:
ENV = {"NAME": "Bol.com UAT",
"BROWSER": "firefox",
"URL": "www.bol.com"}
return ENV
我是这样导入的:
*** Settings ***
Variables Variables.py ${ENVIRONMENT}
Library Selenium2Library
Resource ../PO/MainPage.robot
Resource ../PO/LoginPage.robot
*** Variables ***
${ENVIRONMENT}
*** Keywords ***
Initialize suite
log ${TEST_VAR}
log start testing on ${ENV.NAME}
Start application
open browser ${ENV.URL} ${ENV.BROWSER}
Stop application
close browser
这两个文件在文件夹结构中处于同一级别。
但是文件中的变量对我不可用。甚至不是正态变量
有人能告诉我我做错了什么吗?
一定是我忘了的小东西。
非常感谢。当您使用这样的变量文件时,您不会得到名为
${ENV}
的变量。相反,您返回的字典中的每个键都成为一个变量
从(增加强调)开始:
获取变量的另一种方法是在变量文件中使用特殊的get_variables函数(也可以使用camelCase语法getVariables)。如果存在这样一个函数,Robot Framework将调用它,并期望以Python字典或Java映射的形式接收变量,其中变量名作为键,变量值作为值
在这种特定情况下,这意味着您将得到变量${NAME}
,${BROWSER}
和${URL}
如果要设置名为${ENV}
的变量,则必须将其作为返回字典的一部分
# Variables.py
from robot.utils import DotDict
def get_variables(environment="UAT"):
...
return {
"ENV": DotDict(ENV)
}
如果这是您的实际代码,您将得到错误,因为缩进是错误的。很抱歉混淆了这个问题。我的帖子中的标识是错误的,但代码中没有。我在帖子中更正了。DotDict导入+1。。。有些人多年来可能已经编写了自己的代码