如何在Robot Framework中将api响应与数据库查询结果进行比较

时间:2019-08-13 06:31:47

标签: python database api robotframework

我有一个测试用例,其中我必须将Rest API响应与数据库结果进行比较。 我自动化的步骤是- 1.发布请求 2.获取API响应 3.与数据库结果比较

在向API发布请求后,当我尝试对其进行评估时,我遇到了错误-

failed: TypeError: Expression must be string, got dictionary.
create session  session  ${apiurl}  disable_warnings=1
    &{headers}=    Create Dictionary    Content-Type=application/json  x-api-key=${api_token_key}
    ${api_response}=    post request  session    ${emp_id}/${module_name}  data=${request_body}
    ...  headers=${headers}
${response_list}=  evaluate  ${api_response.json()}
log to console  ${response_list}

遇到上述错误。

我希望将下面的API响应与数据库结果进行比较。

 "page": {
    "size": 5,
    "totalElements": 278,
    "totalPages": 56,
    "number": 0
  },
  "embedded": {
    "emp": [
      {
        "id": 1,
        "bookid": 2,
        "batchid": "2018-aaa",
        "title": "ash",
        "sub1": 10,
        "sub2": 11,
        "sub failed": {
          "total": {
            "value": 50,
            "subject": "sub6",
            "filter": "[{"field":"1","exclusive":false,"operator":"IN","value":"2018-aaa"}]"
          }
        },
        "sports": {
          "total": {
            "value": 12,
            "subject": "PE",
            "filter": "[{"field":"1","exclusive":false,"operator":"IN","value":"2018-aaa"}]"
          }
        },
        "count": 222,
        "count1": 333,
        "improved": 0,
        "last": "2019-08-12",
        "isstudent": true
      },

如何将以上API响应与数据库结果进行比较

1 个答案:

答案 0 :(得分:2)

只需将参数data更改为json,因为如果使用data,则仅适用于Json string类型。

create session  session  ${apiurl}  disable_warnings=1
    &{headers}=    Create Dictionary    Content-Type=application/json  x-api-key=${api_token_key}
    ${api_response}=    post request  session    ${emp_id}/${module_name}  json=${request_body}
    ...  headers=${headers}
${response_list}=  evaluate  ${api_response.json()}
log to console  ${response_list}