Actividad del proxy de exportación y registro

De un vistazo
Objetivo: Registrar y exportar la actividad del proxy de desarrollo a un archivo de informe
Hora: 10 minutos
Plugins:ExecutionSummaryPlugin, MarkdownReporter
Requisitos previos:Configuración del proxy de desarrollo

Para registrar y exportar la actividad de proxy, use el complemento ExecutionSummaryPlugin y un complemento reporter en el archivo de configuración.

En el ejemplo siguiente se muestra cómo configurar Dev Proxy para registrar y exportar la actividad del proxy mediante ExecutionSummaryPlugin y el complemento MarkdownReporter.

Archivo: 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

En lugar de crear la configuración usted mismo, puede descargar el ajuste preestablecido listo api-inventory, que registra las direcciones URL a las que llama la aplicación y un resumen de su actividad:

devproxy config get api-inventory
devproxy --config-file "~dataFolder/configs/api-inventory/.devproxy/devproxyrc.json" --urls-to-watch "https://api.contoso.com/*"

Para obtener más información, consulte Uso de configuraciones preestablecidas.

Nota

Para exportar la actividad, el complemento de informes debe estar habilitado en el archivo de configuración y situado después de ExecutionSummaryPlugin en la lista de complementos. Se recomienda colocar un plugin de informes al final de la lista de complementos.

Para registrar la actividad, Dev Proxy debe colocarse en modo de registro.

Hay dos maneras de iniciar la grabación:

  • Grabar inmediatamente. Inicie el proxy con la opción --record, por ejemplo, devproxy --record.
  • Grabar ad hoc. Presione R mientras se ejecuta el proxy.

Cuando la grabación está habilitada, ◉ Recording... se muestra en la salida del proxy.

Para generar un informe a partir de la actividad grabada, detenga la grabación.

Hay dos maneras de detener la grabación:

  • Detener proxy. Presione Ctrl + C.
  • Detener ad hoc. Presione S.

Por defecto, las actividades se agrupan por URL. Para agrupar la actividad por tipo de mensaje, use la --summary-group-by opción .

devproxy --record --summary-group-by messageType

Dónde se escriben los informes

Al detener la grabación, cada generador de informes habilitado escribe un archivo por cada informe generado por un complemento de informes. Dev Proxy escribe los archivos en el directorio de trabajo actual, que es la carpeta desde la que inició dev Proxy. Al iniciar Dev Proxy en segundo plano, por ejemplo, en una canalización de CI, asegúrese de iniciarlo desde la carpeta donde desea que se almacenen los informes.

Los archivos de informe usan el siguiente patrón de nomenclatura:

<ReportingPlugin>_<Reporter>.<ext>

Por ejemplo, la configuración de este artículo genera un archivo denominado ExecutionSummaryPlugin_MarkdownReporter.md.

Si ya existe un archivo con ese nombre, Dev Proxy no lo sobrescribe. En su lugar, anexa una marca de tiempo en el yyyyMMddHHmmss formato al nombre de archivo, por ejemplo ExecutionSummaryPlugin_MarkdownReporter_20261105103000.md. El proxy de desarrollo registra el nombre de cada archivo de informe que escribe, por ejemplo:

Writing report ExecutionSummaryPlugin to ExecutionSummaryPlugin_MarkdownReporter.md...

En la tabla siguiente se enumeran las extensiones que usa cada generador de informes.

Informador Extension
JsonReporter .json (algunos informes usan una extensión diferente, por ejemplo .jsonc , para UrlDiscoveryPlugin)
MarkdownReporter .md
PlainTextReporter .txt

Nota

Todas las grabaciones son locales. No se envía ningún dato a Microsoft.

Grabar desde scripts y CI

En scripts y canalizaciones de CI/CD, no puede pulsar teclas para iniciar y detener la grabación. En su lugar, ejecute Dev Proxy en segundo plano y controle la grabación mediante la Dev Proxy API. Todas las solicitudes de API requieren un token Bearer. Para conocer el token por adelantado, establezca la variable de entorno DEV_PROXY_API_TOKEN en un valor de al menos 32 caracteres antes de iniciar Dev Proxy.

La secuencia mínima es:

  1. Establezca DEV_PROXY_API_TOKEN en un valor aleatorio de al menos 32 caracteres.
  2. Inicie el proxy de desarrollo en segundo plano: devproxy --detach --as-system-proxy false -c devproxyrc.json.
  3. Espere hasta que GET /proxy se complete correctamente.
  4. Inicie la grabación: POST /proxy con {"recording": true}.
  5. Ejecute la carga de trabajo con las variables de entorno HTTP_PROXY y HTTPS_PROXY que apuntan al proxy de desarrollo.
  6. Detener grabación: POST /proxy con {"recording": false}. La solicitud vuelve después de que finalicen los generadores de informes, por lo que los informes están listos cuando se completa.
  7. Apague el proxy de desarrollo: POST /proxy/stopProxy.

Dev Proxy escribe los informes en la carpeta desde la que lo iniciaste.

#!/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"

En los ejemplos se usa el puerto 8000 proxy predeterminado y el puerto 8897de API . Establezca las variables de entorno de proxy solo para la carga de trabajo, de modo que las llamadas API no pasen por Dev Proxy. Para interceptar el tráfico HTTPS, la carga de trabajo debe confiar en el certificado raíz del proxy de desarrollo. Para obtener más información sobre cómo ejecutar Dev Proxy en canalizaciones, incluida la confianza en el certificado, consulte Uso de Dev Proxy en escenarios de CI/CD.

Consulte también