如何将 API 响应转换为变量(机器人框架)

问题描述 投票:0回答:4

我是 Robot Framework 的初学者,我一直在尝试将 API 提供的信息之一存储到变量中。 我发出了此数据的 Post 请求:

${response}    POST On Session    studentsAPI    studentsDetails
...    data={"first_name": "Student Name1", "middle_name": "Name2", "last_name": "Name3","date_of_birth": "01/01/1995"}
...    headers=${HEADERS}

数据已发布在 API 上,日志响应 ( Log ${response.content} ) 为:

{"id":3746677,"first_name":"Student Name1","middle_name":"Name2","last_name":"Name3","date_of_birth":"09/12/1995"}

如何获取生成的“id”号,并将其放入变量中以便在接下来的测试中使用?

谢谢!

robotframework web-api-testing
4个回答
2
投票

首先,将所需的值提取到变量中

${Id}=  Get Value From Json  ${response.json()}  id

然后要在整个测试套件中使用它,请使用关键字 Set Suite Variable;例如,

Set Suite Variable  ${Id}

1
投票

如果您想在测试套件中使用该变量。使用关键字设置套件变量或者您也可以使用设置全局变量。 您的代码可能如下所示:

${response_json}=    Evaluate    json.loads("""${response.content}""")    json
Set Suite Variable    ${ID}    ${response_json[id]} 

1
投票
  1. 从Json响应中获取id
  2. 从列表中获取第一个元素

您的代码可能如下所示:

${Id}=  Get Value From Json  ${response.json()}  id

${IdFromList}=  Get From List   ${Id}  0

0
投票

这是您如何访问 JSON 中的“id”并将其放入变量中:

    ${Id_in_json}=    Get Value From Json     ${response.json()}     $.id

然后:

如果你想在当前文件的测试中使用它:

Set Suite Variable    ${variable_name}    ${Id_in_json}

如果您想在所有文件的所有测试中使用它:

Set Global Variable    ${variable_name}    ${Id_in_json}
© www.soinside.com 2019 - 2024. All rights reserved.