You need to enable JavaScript to run this app. Robot Framework判断命令行传入变量时报name is not defined错误
优惠活动
大模型
产品
解决方案
定价
更多

Robot Framework判断命令行传入变量时报name is not defined错误

Robot Framework 多环境变量判断报错解决方案

错误根因

报错是因为Robot Framework IF表达式的解析规则导致:你在判断条件中直接使用${TESTENV}取字符串类型变量时,框架会直接把变量值代入表达式,不会自动添加字符串引号。当你传入TESTENV=prod时,实际执行的判断逻辑变为prod == "uat",Python会将prod识别为未定义的变量,因此抛出NameError。
同时你代码第一行存在笔误,变量赋值用了小括号$(MAIN_URL),不符合Robot Framework变量语法规则。

修复后的代码

IF   "${TESTENV}"  ==  "uat"
    ${MAIN_URL}=    Set Variable    ${env_data['uat_url']}
ELSE IF    "${TESTENV}"  ==  "dev"
    ${MAIN_URL}=   Set Variable   ${env_data['dev_url']}
ELSE IF    "${TESTENV}" == "prod"
    ${MAIN_URL}=   Set Variable   ${env_data["prod_url"]}
ELSE
    Fail    "No URL specified"
END

核心修改点

  • 所有判断条件中的${TESTENV}用双引号包裹,确保变量值被解析为字符串参与比较
  • 把变量赋值的$(MAIN_URL)修正为${MAIN_URL},使用正确的大括号变量标识

更简洁的优化方案

你可以直接用TESTENV的值拼接字典key,省去多分支判断逻辑,代码更易维护:

${MAIN_URL}=    Set Variable    ${env_data["${TESTENV}_url"]}

内容的提问来源于stack exchange,提问作者Jeff

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 16:03:02