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

时间:2016-05-26 13:22:09

标签: robotframework

我有这样的数据

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

我希望得到第一个属性attr_value_1

你知道在Robot框架中如何做到这一点的好方法吗?像Get JSON /_embedded[0]/attr_name

这样的东西

1 个答案:

答案 0 :(得分:4)

您可以将JSON数据转换为python对象,然后使用robot 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