You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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,返回包含键值对的字典明确变量名:
    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}
    
    此时Robot中会生成${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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 12:23:23