如何在Robot Framework资源文件中用内置库读取Python变量字典
解决Robot Framework资源文件中使用内置库从字典取值的问题
核心问题在于你之前使用Get From Dictionary时缺少了目标字典对象参数,这个关键字需要两个必填参数:第一个是要操作的字典变量,第二个是要获取的键名,补全参数即可解决问题。
步骤1:确认字典变量名
你的da_cfg.py返回从YAML导入的字典,在Robot Framework中导入后,这个字典会以变量形式存在:
- 如果
da_cfg.py直接返回字典(比如return yaml.safe_load(open("config.yaml"))),Robot会自动将变量名设为文件名的大写形式,即${DA_CFG}(对应文件名da_cfg.py)。 - 若需自定义变量名,可修改
da_cfg.py,返回包含键值对的字典明确变量名:
此时Robot中会生成import yaml def load_config(): with open("your_config.yaml", "r") as f: config_dict = yaml.safe_load(f) # 键为Robot中使用的变量名,值为配置字典 return {"MY_CONFIG": config_dict}${MY_CONFIG}字典变量。
步骤2:正确使用Get From Dictionary取值
在sample.resource的关键字中,传入字典变量和键名即可完成取值,替代可读性差的${${args}}写法:
*** Settings *** Library OperatingSystem Library BuiltIn # Get From Dictionary属于BuiltIn库,若未自动导入需显式引入 Variables da_cfg.py *** Keywords *** Test Connection [Arguments] ${args} # 第一个参数是目标字典变量,第二个是要获取的键名 ${cfg}= Get From Dictionary ${DA_CFG} ${args} Log ${cfg}
可选优化:处理键不存在的情况
如果担心传入的键不存在导致报错,可添加default可选参数返回默认值:
${cfg}= Get From Dictionary ${DA_CFG} ${args} default=KeyNotFound
内容的提问来源于stack exchange,提问作者user3201706
相关产品推荐
相关产品推荐

