我正在尝试使用robot框架变量文件来创建一个字典来描述我的测试床中的硬件。根据提供的参数值,将返回不同的硬件。在
例如,这是我尝试使用的变量文件(名为拓扑.py)公司名称:
import sys
testbed = sys.argv[1]
UUT1 = {}
UUT2 = {}
if testbed == 'development':
UUT1 = {'platform': 'xyz', 'address': '192.168.1.1'}
UUT2 = {'platform': 'xyz', 'address': '192.168.1.2'}
if testbed == 'production':
UUT1 = {'platform': 'pdq', 'address': '192.168.2.1'}
UUT2 = {'platform': 'pdq', 'address': '192.168.2.2'}
我的目标是能够在测试用例中引用这个字典。例如:
^{pr2}$我面临的问题是,每当我调用变量文件时,robot会立即退出,并出现以下错误:
[ ERROR ] Execution stopped by user.
用这种方式使用词典有可能吗?在
是的,变量文件可以创建字典。robot框架用户指南gives an example。在
引用值时使用了错误的语法。使用extended variable syntax时,必须在大括号内使用python引用,因为大括号内的所有内容都被视为python表达式。变量引用应该是
${UUT1["address"]}
如果}将不会被定义,那么您的代码也可能会失败。在
sys.argv[1]
既不是"development"
,也不是"platform"
,在这种情况下,UUT1
和{所有这些都可能不会导致错误
[ ERROR ] Execution stopped by user.
如果你使用了错误的语法,你会得到不同的错误,所以你问题中的错误似乎与另一个问题有关。在相关问题 更多 >
编程相关推荐