Тестирование приложения с случайными ошибками
При создании приложений необходимо проверить, как приложение обрабатывает ошибки API. Прокси-сервер разработки позволяет имитировать ошибки в любом API, используемом в приложении, с помощью genericRandomErrorPlugin.
Имитация ошибок в любом 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 отличается, обычно настраивается экземпляр GenericRandomErrorPlugin
каждого API, на который вы хотите имитировать ошибки. Чтобы упростить управление конфигурацией, присвойте configSection
ему имя после API, в который вы хотите имитировать ошибки. Кроме того, укажите URL-адреса, которые необходимо имитировать ошибки в свойстве urlsToWatch
с подключаемым модулем. Это позволит упростить управление конфигурацией и повторно использовать ее в будущем.
Затем настройте подключаемый модуль для использования файла, содержащего ошибки, которые нужно имитировать.
{
"errorsContosoApi": {
"errorsFile": "errors-contoso-api.json"
}
}
Наконец, в файле ошибок определите список ответов об ошибках, которые требуется имитировать. Например, чтобы имитировать ошибку 500 с пользовательским ответом JSON, используйте следующую конфигурацию:
{
"$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 с помощью настроенной частоты сбоев. При имитации ошибки прокси-сервер разработчика использует случайную ошибку из массива ответов об ошибках, определенных в файле конфигурации.
Временно отключить макеты
Если в файле конфигурации используются макеты, их можно временно отключить с помощью --no-mocks
параметра.
devproxy --no-mocks
Следующий шаг
Дополнительные сведения о GenericRandomErrorPlugin
.