将变量从python文件传递给机器人框架变量

时间:2015-12-22 23:53:42

标签: python robotframework

我在机器人框架中将变量指定为

*** Variables ***
${TestNAME}                       test

但是我可以从python文件中传递变量值吗?

#test.py
var = 'test'

是否可以将var分配给${TESTNAME}

2 个答案:

答案 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}