Robot Framework中如何正确实现字典key的存在性断言?
报错原因
- 代码结构错误:你将测试用例逻辑块错误标记为了
*** Variables ***,Robot Framework会将这部分内容识别为变量定义逻辑,把空格分隔的内容当成关键字+参数解析,因此抛出找不到指定关键字的报错。 - 表达式写法错误:即使修正了块标记,直接在
Run Keyword If后写'name' in ${name}的写法也不符合Robot Framework的解析规则,不会被识别为合法的布尔判断表达式。
正确实现方案
方案1:使用Collections库内置关键字(推荐)
该方式可读性最高,报错信息清晰,不需要自行编写判断逻辑。
首先在*** Settings ***块中导入依赖库:
*** Settings *** Library Collections
然后直接调用Dictionary Should Contain Key关键字完成断言:
*** Test Cases *** 校验字典包含指定key Dictionary Should Contain Key ${name} name Log name is in the dict as expected
方案2:内联Python表达式实现条件判断
如果你需要结合Run Keyword If实现条件分支逻辑,可以用Robot Framework的内联Python表达式语法:
*** Test Cases *** 条件判断key是否存在 Run Keyword If ${{ 'name' in $name }} Log name is in the dict as expected
说明:${{ }}包裹的内容会被直接解析为Python代码执行,$name是Robot Framework中直接引用变量的简化写法,不需要额外加花括号。
内容的提问来源于stack exchange,提问作者Rizka Khoirotunnisa
相关产品推荐
相关产品推荐

