1

我正在使用 Dredd 来测试我的一个端点。我认为由于标题,测试失败了,因为我得到了以下预期:

headers:
    Content-Type: application/json

body:
[
  {
    "id": 15107,
    "name": "Route Name",
    "date": "2022-01-27T09:00:00",
    "full_user_name": "Test Admin",
    "url": "api/2/users/1/routes/15107"
  }
]
statusCode: 200

以下是实际情况:

statusCode: 200
headers:
    date: Wed, 02 Feb 2022 12:54:11 GMT
    server: WSGIServer/0.2 CPython/3.6.9
    content-type: application/json; charset=utf-8
    vary: Accept, Cookie
    allow: GET, POST, PATCH, HEAD, OPTIONS
    access-control-allow-origin: None
    access-control-allow-methods: POST,GET
    access-control-allow-headers: Origin,Content-Type,Accept,Accept-Encoding
    access-control-allow-credentials: true
    x-frame-options: SAMEORIGIN
    content-length: 136

bodyEncoding: utf-8
body:
[
  {
    "id": 15107,
    "name": "Route Name",
    "date": "2022-01-27T09:00:00",
    "full_user_name": "Test Admin",
    "url": "api/2/users/1/routes/15107"
  }
]

我看到的唯一区别是标题。有什么办法可以忽略这些吗?例如,内容长度标头。也许我只需要在 Open API 文件中包含 auth 标头。现在我指定的文档如下:

...
  securitySchemes:
    ApiKey:
      type: apiKey
      name: Authorization
      in: header
      description: Authentication token
security:
  - ApiKey: []

并使用 python 服务器按如下方式运行 dredd:

dredd oas-routes.yaml http://127.0.0.1:8000/api/2/users/1/routes --header="Authorization: Token 6b232e1c00bbc8b12d0066a483bf401009fbdb21"

知道如何正确执行此操作吗?老实说,我对使用 dredd 进行测试还很陌生。

4

0 回答 0