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

Bab*_*abu 0 robotframework

我有这样的数据

{"_embedded":[
  {"attr_name":"attr_value_1"},
  {"attr_name":"attr_name_2"}
 ]
}
Run Code Online (Sandbox Code Playgroud)

我想获得第一个属性 attr_value_1

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

Bry*_*ley 5

您可以将 JSON 数据转换为 python 对象,然后使用机器人的扩展变量语法来获取元素。在 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
Run Code Online (Sandbox Code Playgroud)