如何从JSON响应RobotFramework中获取所需参数



作为Robot Framework中验证的一部分,我有以下数据(存储为${response}(作为get请求响应:

{
"interfaces": [
{
"name": "eth0",
"status": "ready",
"macAddress": "xx:xx:xx:xx:xx:xx",
"ipv4": {
"mode": "DHCP",
"address": "127.0.0.1",
"mask": "255.255.255.0",
},
"ipv6": {
"mode": "DISABLED",
"addresses": [],
"gateway": "",
}
}
],
"result": 0
}

And I would like to get value of key ipv4 and store in variable 
3 library is requestlibrary collection httplibrary.http
is there anykeyword to save this value ? please help me

您可以使用给定的代码获取并存储Value:

def get_activation_code():
print(dict["data"]["user"]["activationCode"])
return dict["data"]["user"]["activationCode"]

如果您提供更多关于"发送到另一个API"任务的信息,我也可以帮助您,但此方法将提供activationCodedict指的是你所说的作为回应而得到的给定词典。

当你已经从某个地方得到响应时,我猜你已经导入了requests-库?

向另一个API发送内容的方法是通过post-命令:

r = requests.post(url = the_url_of_the_target_api, data = get_activation_code())  

然后,您可以用获取响应

response = r.text
print(response) 

您得到的响应是一个字符串,使用python的标准json库将其转换为dict:

${as dict}=    Evaluate    json.loads("""${response}""")    json

现在,您可以在Robot Framework中使用它作为一个普通的字典:

${ipv4}=     Set Variable    ${as dict['interfaces'][0]['ipv4']}

您可以使用请求库来访问:

Create Session  server  http://mywebsite.com #You the ROOT URL here 
${response}=  Get Request  server  #You put the URI here
${var_dict}=    Evaluate     json.loads("""${response.content}""")    json
${ipv4}=    Set Variable    ${var_dict}[interfaces][ipv4]

这将把ipv4中的所有密钥存储在变量${ipv4}

相关内容

  • 没有找到相关文章

最新更新