【问题标题】:How to compare api response with Database query result in Robot Framework如何将 API 响应与 Robot Framework 中的数据库查询结果进行比较
【发布时间】:2019-12-19 16:28:54
【问题描述】:

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

向 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 响应与 DB 结果进行比较

【问题讨论】:

  • 当您发布到服务器时,您的 Json 正文格式类型是什么?字符串还是字典?
  • 字典已发布到服务器

标签: python database api robotframework


【解决方案1】:

只需将您的参数 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}

【讨论】:

  • 但它仍然返回 json 以及如何遍历 json 响应并与数据库结果进行比较
  • 我认为这是另一个问题
  • @vectyvec 你如何尝试将结果与 db 进行比较?你应该分享你的代码和你的错误
猜你喜欢
  • 2013-06-16
  • 2014-04-06
  • 2020-03-24
  • 1970-01-01
  • 2020-11-18
  • 1970-01-01
  • 1970-01-01
  • 2018-08-20
  • 1970-01-01
相关资源
最近更新 更多