我在机器人框架中将变量指定为
*** Variables ***
${TestNAME} test
但是我可以从python文件中传递变量值吗?
#test.py
var = 'test'
是否可以将var
分配给${TESTNAME}
?
答案 0 :(得分:8)
如果您有一个名为" test.py"的文件如果在其中定义了变量,则可以使用机器人variable file功能导入变量。
以下是一个示例,为清晰起见使用管道分隔格式:
class myLogger():
def __init__( self, configObject, stream = None ):
self.logger = logging.getLogger( "myLogger" )
self.logger.setLevel( logging.DEBUG )
self._format = "%(asctime)s - %(levelname)s - %(threadName)s, %(funcName)s - %(message)s"
self._level = 10
self.streamHandler = self._setStreamHandler( stream )
self.logger.addHandler( self.streamHandler )
self.fileHandler = self._setFileHandler()
self.logger.addHandler( self.fileHandler )
def _setFileHandler( self ):
fileName = "testLog.log"
tempHandler = logging.FileHandler( fileName, mode = "a+" )
myFormatter = logging.Formatter( self._format )
tempHandler.setFormatter( myFormatter )
tempHandler.setLevel( self._level )
return tempHandler
def _setStreamHandler( self, stream ):
tempHandler = logging.StreamHandler( stream )
myFormatter = logging.Formatter( self._format )
tempHandler.setFormatter( myFormatter )
level = 10
tempHandler.setLevel( self._level )
return tempHandler
这是有效的,因为在*** Settings ***
| Variables | test.py
*** Variables ***
| ${myTestName} | ${var}
表之前处理了设置。可以使用变量的标准机器人语法引用python文件中的任何变量(例如:python变量Variables
被引用为var
)
但请注意,机器人${var}
为automatically set,因此无法满足您的确切要求。如果您使用非自动变量,则可以按照自己的方式进行设置,这就是上面示例使用${Testname}
的原因。
答案 1 :(得分:0)
eg:- 变量文件如图- var.py
x = 10
y = 20
file1.robot 可以这样写:-
*** 设置 ***
变量 var.py
*** 测试用例 ***
KEYW1
Log ${x}