机器人框架从 JSON 列表中获取

Robot framework get from JSON list

我有这样的数据

{"_embedded":[
  {"attr_name":"attr_value_1"},
  {"attr_name":"attr_name_2"}
 ]
}

我想获取第一个属性attr_value_1

您知道在 Robot 框架中执行此操作的任何好方法吗?像 Get JSON /_embedded[0]/attr_name ?

这样的东西

您可以将JSON数据转换为python对象,然后使用机器人的extended variable syntax获取元素。在 python 中,值被引用为 data["_embedded"][0]["attr_name"],它直接转换为 ${data["_embedded"][0]["attr_name"]}

的机器人扩展变量语法

这是一个完整的例子:

*** Test Cases ***
Example
    ${json}=    catenate    SEPARATOR=\n
    ...  {"_embedded":[
    ...    {"attr_name":"attr_value_1"},
    ...    {"attr_name":"attr_name_2"}
    ...   ]
    ...  }
    ${data}=  evaluate    json.loads('''${json}''')    json
    should be equal as strings    ${data["_embedded"][0]["attr_name"]}    attr_value_1
    should be equal as strings    ${data["_embedded"][1]["attr_name"]}    attr_name_2