Плагин для сводки выполнения

Создает сводку запросов, проходящих через прокси-сервер.

Совет

Используйте подключаемый модуль репортера в конфигурации, чтобы сохранить сводку в файл.

Снимок экрана: командная строка с сводкой выполнения прокси-сервера разработки с информацией о перехватанных запросах.

Снимок экрана: командная строка с сводкой запросов, перехватанных прокси-сервером разработки.

Пример конфигурации

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "ExecutionSummaryPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "executionSummaryPlugin"
    }
  ],
  "executionSummaryPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/executionsummaryplugin.schema.json",
    "groupBy": "url"
  }
}

Свойства конфигурации

Свойство Описание По умолч.
groupBy Как прокси-сервер должен сгруппировать сведения в сводке. Доступные параметры: url, messageType url

Параметры командной строки

Имя Описание По умолч.
--summary-group-by Как прокси-сервер должен сгруппировать сведения в сводке. Доступные параметры: url, messageType url

Output

ExecutionSummaryPlugin создает свой отчет при остановке записи. Чтобы сохранить отчет в формате JSON, добавьте JsonReporter после ExecutionSummaryPlugin в конфигурацию. JsonReporter записывает отчет в файл с именем ExecutionSummaryPlugin_JsonReporter.json в текущем рабочем каталоге. Если файл уже существует, прокси-сервер разработки добавляет метку времени к имени файла, например ExecutionSummaryPlugin_JsonReporter_20261105104151.json.

Отчет JSON — это объект, вложенный в три уровня глубоко. Значения на самом внутреннем уровне — это числа, которые показывают, сколько раз прокси-сервер разработки зарегистрировал сообщение. Значение каждого уровня зависит от groupBy параметра.

В отчете используется следующие доступные для чтения имена категорий.

Category Описание
Requests intercepted Запрашивает перехват прокси-сервера разработки. Только в том случае, если groupBymessageType
Requests passed through Запросы, передаваемые прокси-серверу разработки на исходный сервер
Requests mocked Запросы, для которых подключаемый модуль вернул макет ответа
Requests with chaos Запросы, для которых подключаемый модуль имитировал ошибку или задержку
Failures Запросы, которые завершилися сбоем
Tips Советы по входу подключаемых модулей для запроса
Warnings Предупреждения о том, что подключаемые модули, зарегистрированные для запроса
Unknown Другие сообщения, зарегистрированные для запроса, такие как метки времени запроса и сообщения из подключаемых модулей, пропускающих запрос

Группировка по URL-адресу

Если groupBy это urlтак, отчет имеет следующую форму:

{
  "<method> <url>": {
    "<category>": {
      "<message>": <count>
    }
  }
}
Level Описание
1 Метод HTTP и URL-адрес каждого перехвата запроса, например GET https://jsonplaceholder.typicode.com/users. Каждое сочетание методов и URL-адресов появляется один раз, независимо от того, сколько раз вызывается приложение.
2 Категория сообщений, зарегистрированных в прокси-сервере разработки для запроса
3 Сообщение, вошедшего в журнал прокси-сервера dev, сопоставленное с числом записей прокси-сервера разработки для метода и URL-адреса.

В следующем примере показан отчет для приложения, вызываемого GET https://jsonplaceholder.typicode.com/users один раз, который вымехал прокси-сервер разработки и GET https://jsonplaceholder.typicode.com/posts дважды, через который передается прокси-сервер разработки. Записи Unknown сокращены для удобства чтения.

{
  "GET https://jsonplaceholder.typicode.com/users": {
    "Unknown": {
      "2026-11-05T10:41:13.1151430+00:00": 1,
      "GET https://jsonplaceholder.typicode.com/users": 1
    },
    "Requests mocked": {
      "200 https://jsonplaceholder.typicode.com/users": 1
    }
  },
  "GET https://jsonplaceholder.typicode.com/posts": {
    "Unknown": {
      "No matching mock response found": 2,
      "GET https://jsonplaceholder.typicode.com/posts": 2
    },
    "Requests passed through": {
      "Passed through": 2
    }
  }
}

Группировать по типу сообщения

Если groupBy это messageTypeтак, отчет имеет следующую форму:

{
  "<category>": {
    "<message>": {
      "<method> <url>": <count>
    }
  }
}
Level Описание
1 Категория сообщений, зарегистрированных в прокси-сервере разработки
2 Сообщение, зарегистрированное в прокси-сервере разработки. Requests intercepted Для категорий Requests passed through этот уровень повторяет имя категории
3 Метод HTTP и URL-адрес запроса, сопоставленные с числом записей прокси разработки для этого метода и URL-адреса.

В следующем примере показан отчет для одинаковых запросов, сгруппированных по типу сообщения. Категория Unknown сокращена для удобства чтения.

{
  "Requests intercepted": {
    "Requests intercepted": {
      "GET https://jsonplaceholder.typicode.com/users": 1,
      "GET https://jsonplaceholder.typicode.com/posts": 2
    }
  },
  "Unknown": {
    "No matching mock response found": {
      "GET https://jsonplaceholder.typicode.com/posts": 2
    }
  },
  "Requests mocked": {
    "200 https://jsonplaceholder.typicode.com/users": {
      "GET https://jsonplaceholder.typicode.com/users": 1
    }
  },
  "Requests passed through": {
    "Requests passed through": {
      "GET https://jsonplaceholder.typicode.com/posts": 2
    }
  }
}

Совет

Чтобы проверить конвейер CI, запрашивающий перехват прокси-сервер разработки, используйте messageType группирование и считывание ключей ["Requests intercepted"]["Requests intercepted"] объекта. url С помощью группирования считывайте ключи верхнего уровня. Каждый ключ начинается с метода HTTP, за которым следует пробел и URL-адрес. Не полагаться на содержимое Unknown категории, так как она включает метки времени и другие диагностические сообщения.

См. также

Следующий шаг