使用随机错误测试我的应用

生成应用时,应测试应用如何处理 API 错误。 使用开发代理,可以使用 GenericRandomErrorPlugin 在应用中使用的任何 API 上模拟错误。

模拟任何 API 上的错误

若要开始,请在配置文件中启用 GenericRandomErrorPlugin

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.20.0/rc.schema.json",
  "plugins": [
    {
      "name": "GenericRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "errorsContosoApi",
      "urlsToWatch": [
        "https://api.contoso.com/*"
      ]
    }
  ]
}

提示

由于每个 API 都不同,因此通常会为要模拟错误的每个 API 配置 一个 实例 GenericRandomErrorPlugin 。 若要更轻松地管理配置,请在要模拟错误的 API 后面命名 configSection 。 此外,使用 插件指定要在 属性中 urlsToWatch 模拟错误的 URL。 这样一来,可以更轻松地管理配置,并在将来重复使用它。

接下来,将插件配置为使用包含要模拟的错误的文件。

{
  "errorsContosoApi": {
    "errorsFile": "errors-contoso-api.json"
  }
}

最后,在错误文件中,定义要模拟的错误响应列表。 例如,若要使用自定义 JSON 响应模拟 500 错误,请使用以下配置:

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.20.0/genericrandomerrorplugin.schema.json",
  "errors": [
    {
      "request": {
        "url": "https://api.contoso.com/*"
      },
      "responses": [
        {
          "statusCode": 500,
          "headers": [
            {
              "name": "content-type",
              "value": "application/json; charset=utf-8"
            }
          ],
          "body": {
            "code": "InternalServerError",
            "message": "Something went wrong"
          }
        }
      ]
    }
  ]
}

可以根据需要定义任意数量的错误响应。

使用配置文件启动开发代理,并使用应用查看它如何处理错误。 对于每个匹配的请求,开发代理确定是模拟错误,还是使用 配置的失败率将请求传递到原始 API。 当开发代理模拟错误时,它将使用配置文件中定义的错误响应数组中的随机错误。

暂时禁用模拟

如果在配置文件中使用 mocks,则可以使用 --no-mocks 选项暂时禁用它们。

devproxy --no-mocks

后续步骤

详细了解 GenericRandomErrorPlugin