Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На первый взгляд
Цель: Запись и экспорт активности прокси для разработки в файл отчета
Время: 10 минут
Подключаемые модули:ExecutionSummaryPlugin, MarkdownReporter
Предварительные требования:настройка прокси-сервера разработки
Чтобы записать и экспортировать активность прокси-сервера, используйте плагин ExecutionSummaryPlugin и плагин репортера в файле конфигурации.
В следующем примере показано, как настроить Dev Proxy для записи и экспорта активности прокси с помощью плагина ExecutionSummaryPlugin и плагина MarkdownReporter.
Файл: devproxyrc.json
{
"plugins": [
{
"name": "ExecutionSummaryPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
},
{
"name": "MarkdownReporter",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
}
],
"urlsToWatch": [
"https://jsonplaceholder.typicode.com/*"
]
}
Tip
Вместо самостоятельной сборки конфигурации можно скачать готовую api-inventory предустановку, которая записывает URL-адреса, к которым обращается приложение, и сводку о его действиях:
devproxy config get api-inventory
devproxy --config-file "~dataFolder/configs/api-inventory/.devproxy/devproxyrc.json" --urls-to-watch "https://api.contoso.com/*"
Дополнительные сведения см. в разделе Использование предустановленных конфигураций.
Примечание.
Чтобы экспортировать активность, модуль репортера должен быть включен в файле конфигурации и помещён после ExecutionSummaryPlugin в списке подключаемых модулей. Рекомендуется разместить плагин репортера в конце списка подключаемых модулей.
Чтобы записать действие, прокси-сервер разработки должен быть помещен в режим записи.
Начать запись можно двумя способами:
-
Немедленно запишите. Запуск прокси-сервера с
--recordпараметром, напримерdevproxy --record. - Запись экспромт. Нажмите клавишу R во время выполнения прокси-сервера.
Если запись включена, ◉ Recording... отображается в выходных данных прокси-сервера.
Чтобы создать отчет из записанного действия, остановите запись.
Существует два способа остановить запись:
- Остановите прокси-сервер. Нажмите клавиши CTRL + C.
- Остановите отложение. Нажмите клавишу S.
По умолчанию действия сгруппированы по URL-адресу. Чтобы группировать действия по типу --summary-group-by сообщения, используйте этот параметр.
devproxy --record --summary-group-by messageType
Где пишутся отчеты
При остановке записи каждый включенный модуль формирования отчетов записывает один файл для каждого отчета, созданного плагином отчетности. Dev Proxy записывает файлы в текущий рабочий каталог, который является папкой, из которой вы запустили Dev Proxy. При запуске Dev Proxy в фоновом режиме, например в конвейере CI, убедитесь, что вы запускаете его из папки, в которой должны храниться отчеты.
Файлы отчетов используют следующий шаблон именования:
<ReportingPlugin>_<Reporter>.<ext>
Например, конфигурация в этой статье создает файл с именем ExecutionSummaryPlugin_MarkdownReporter.md.
Если файл с таким именем уже существует, Dev Proxy не перезаписывает его. Вместо этого он добавляет метку времени в yyyyMMddHHmmss формате к имени файла, например ExecutionSummaryPlugin_MarkdownReporter_20261105103000.md. Dev Proxy регистрирует имя каждого файла отчета, который он записывает, например:
Writing report ExecutionSummaryPlugin to ExecutionSummaryPlugin_MarkdownReporter.md...
В следующей таблице перечислены расширения, которые используются каждым средством создания отчетов.
| Репортер | Extension |
|---|---|
| JsonReporter |
.json (некоторые отчеты используют другое расширение, например .jsonc urlDiscoveryPlugin) |
| MarkdownReporter | .md |
| PlainTextReporter | .txt |
Примечание.
Все записи являются локальными. Данные не отправляются в корпорацию Майкрософт.
Запись из скриптов и CI
В скриптах и конвейерах CI/CD нельзя нажать клавиши для запуска и остановки записи. Вместо этого запустите Dev Proxy в фоновом режиме и управляйте записью с помощью Dev Proxy API. Для всех запросов API требуется токен Bearer. Чтобы заранее задать токен, задайте переменной среды DEV_PROXY_API_TOKEN значение не менее 32 символов перед запуском Dev Proxy.
Минимальная последовательность:
- Задайте
DEV_PROXY_API_TOKENслучайное значение длиной не менее 32 символов. - Запустите прокси-сервер разработки в фоновом режиме:
devproxy --detach --as-system-proxy false -c devproxyrc.json - Дождитесь, пока
GET /proxyзавершится успешно. - Начать запись:
POST /proxyс{"recording": true}. - Запустите рабочую нагрузку с переменными среды
HTTP_PROXYиHTTPS_PROXY, указывающими на Dev Proxy. - Остановить запись:
POST /proxyс{"recording": false}. Запрос возвращается после завершения работы репортеров, поэтому отчеты готовы к моменту его завершения. - Завершите работу Dev Proxy:
POST /proxy/stopProxy
Dev Proxy записывает отчеты в папку, из которой он был запущен.
#!/usr/bin/env bash
set -euo pipefail
# 1. use a known API token (at least 32 characters)
export DEV_PROXY_API_TOKEN=$(openssl rand -hex 32)
api=http://127.0.0.1:8897
auth="Authorization: Bearer $DEV_PROXY_API_TOKEN"
# 2. start Dev Proxy in the background
devproxy --detach --as-system-proxy false -c devproxyrc.json
# 3. wait for the API
until curl -sf -H "$auth" "$api/proxy" > /dev/null; do sleep 1; done
# 4. start recording
curl -sf -X POST "$api/proxy" -H "$auth" -H "Content-Type: application/json" -d '{"recording": true}'
# 5. run the workload through Dev Proxy
HTTP_PROXY=http://127.0.0.1:8000 HTTPS_PROXY=http://127.0.0.1:8000 npm test
# 6. stop recording and wait for the reports
curl -sf -X POST "$api/proxy" -H "$auth" -H "Content-Type: application/json" -d '{"recording": false}'
# 7. shut down Dev Proxy
curl -sf -X POST "$api/proxy/stopProxy" -H "$auth"
В примерах используются порт прокси-сервера по умолчанию 8000 и порт API 8897. Задайте переменные среды прокси-сервера только для рабочей нагрузки, чтобы вызовы API не проходили через Dev Proxy. Чтобы перехватить трафик HTTPS, рабочая нагрузка должна доверять корневому сертификату Dev Proxy. Дополнительные сведения о запуске Dev Proxy в конвейерах, включая доверие к сертификату, см. Использование Dev Proxy в сценариях CI/CD.
См. также
- ExecutionSummaryPlugin — полная ссылка
- MarkdownReporter — формат отчета
- API для прокси — Управление Dev Proxy программно
- Использование Dev Proxy в сценариях CI/CD — запуск Dev Proxy в конвейерах
- Глоссарий — терминология прокси для разработки
- Использование Dev Proxy в сценариях CI/CD — запись вызовов API в конвейере
- Использовать предустановленные конфигурации — готовые конфигурации