将字典作为参数传递给RobotFramework测试

时间:2018-04-04 13:18:49

标签: python-3.x robotframework

我的机器人测试中有一本字典,我想从调用测试的程序中填充。我有两个文件:robotstarter.py和printdictionary.robot。但是,当我运行脚本时,测试套件中的字典都是空的。我不确定这是否是python或RobotFramework相关问题。

Result of running the script

robotstarter.py

import robot

test_dict = {'dict.a': '2', 'dict.b': '2', 'dict.c': '2', 'dict.d': '2', 'dict.e': '2', 'dict.f': '2'}
print(test_dict)
robot.run("printdictionary.robot", variable=test_dict)

printdictionary.robot

*** Variables ***
&{dict}    a=${1}    b=${1}    c=${1}    d=${1}    e=${1}    f=${1}

*** Test Cases ***
Test print the identity stuff
    Log To Console     \nDictionary:
    Log To Console     ${dict.a}
    Log To Console     ${dict.b}
    Log To Console     ${dict.c}
    Log To Console     ${dict.d}
    Log To Console     ${dict.e}
    Log To Console     ${dict.f}

2 个答案:

答案 0 :(得分:0)

它的工作原理是将robotstarter.py中的字典替换为数组。

test_dict = {'dict.a': '2', 'dict.b': '2', 'dict.c': '2', 'dict.d': '2', 'dict.e': '2', 'dict.f': '2'}

变为:

test_dict = {'dict.a:2', 'dict.b:2', 'dict.c:2', 'dict.d:2', 'dict.e:2', 'dict.f:2'}

答案 1 :(得分:0)

不支持通过命令行参数变量传递字典。 documentation on command line variables明确指出只支持标量变量。

  

...只有标量变量可以使用这种语法设置,他们可以   只获取字符串值。 ...

如果要传递任何类型的层次结构,则必须通过变量文件传递。这可以是对YAML文件的引用,也可以是声明字典的Python文件,或者是返回所需变量的Python方法/类。可以在documentation on variable files

中找到示例
相关问题