Registre e exporte a atividade de proxy

Visão geral
Objetivo: Registrar e exportar atividade de Proxy de Desenvolvimento para um arquivo de relatório
Tempo: 10 minutos
Plugins:ExecutionSummaryPlugin, MarkdownReporter
Pré-requisitos:Configurar o Proxy de Desenvolvimento

Para registrar e exportar a atividade de proxy, use o ExecutionSummaryPlugin e um plug-in de relatório em seu arquivo de configuração.

O exemplo a seguir mostra como configurar o Dev Proxy para registrar e exportar a atividade de proxy usando o ExecutionSummaryPlugin e o plug-in MarkdownReporter.

Arquivo: 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/*"
  ]
}

Dica

Em vez de criar a configuração por conta própria, você pode baixar a predefinição pronta api-inventory , que registra as URLs que seu aplicativo chama e um resumo de sua atividade:

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

Para obter mais informações, consulte Usar configurações predefinidas.

Observação

Para exportar a atividade, o plug-in do relator deverá ser habilitado no arquivo de configuração e colocado depois do ExecutionSummaryPlugin na lista de plug-ins. Recomenda-se colocar um plug-in de relatório no final da lista de plug-ins.

Para registrar a atividade, o Dev Proxy deve ser colocado no modo de registro.

Existem duas maneiras de começar a gravar:

  • Registre imediatamente. Inicie o proxy com --record opção, por exemplo, devproxy --record.
  • Registre ad hoc. Pressione R enquanto o proxy está em execução.

Quando a gravação está ativada, ◉ Recording... é mostrada na saída do proxy.

Para gerar um relatório da atividade registrada, pare a gravação.

Existem duas maneiras de interromper a gravação:

  • Pare o proxy. Pressione Ctrl + C.
  • Pare o ad hoc. Pressione S.

Por padrão, as atividades são agrupadas por URL. Para agrupar a atividade por tipo de mensagem, use a opção --summary-group-by.

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

Onde os relatórios são escritos

Quando você para de gravar, cada gerador de relatórios habilitado grava um arquivo para cada relatório produzido por um plug-in de relatório. O Dev Proxy grava os arquivos no diretório de trabalho atual, que é a pasta da qual você iniciou o Dev Proxy. Ao iniciar o Dev Proxy em segundo plano, por exemplo, em um pipeline de CI, inicie-o na pasta em que deseja que os relatórios sejam armazenados.

Os arquivos de relatório usam o seguinte padrão de nomenclatura:

<ReportingPlugin>_<Reporter>.<ext>

Por exemplo, a configuração neste artigo produz um arquivo chamado ExecutionSummaryPlugin_MarkdownReporter.md.

Se já existir um arquivo com esse nome, o Dev Proxy não o substituirá. Em vez disso, acrescenta um carimbo de data/hora no yyyyMMddHHmmss formato ao nome do arquivo, por exemplo ExecutionSummaryPlugin_MarkdownReporter_20261105103000.md. O Proxy de Desenvolvimento registra o nome de cada arquivo de relatório que ele grava, por exemplo:

Writing report ExecutionSummaryPlugin to ExecutionSummaryPlugin_MarkdownReporter.md...

A tabela a seguir lista as extensões que cada reporter usa.

Repórter Extension
JsonReporter .json (alguns relatórios usam uma extensão diferente, por exemplo .jsonc para UrlDiscoveryPlugin)
Repórter de Markdown .md
Repórter de texto simples .txt

Observação

Toda gravação é local. Nenhum dado é enviado para a Microsoft.

Gravar de scripts e CI

Em scripts e pipelines de CI/CD, você não pode pressionar teclas para iniciar e parar a gravação. Em vez disso, execute o Dev Proxy em segundo plano e controle a gravação usando a API do Dev Proxy. Todas as solicitações de API exigem um token Bearer. Para especificar o token antecipadamente, defina a variável de ambiente DEV_PROXY_API_TOKEN como um valor de pelo menos 32 caracteres antes de iniciar o Proxy de Desenvolvimento.

A sequência mínima é:

  1. Defina DEV_PROXY_API_TOKEN como um valor aleatório de pelo menos 32 caracteres.
  2. Inicie o Proxy de Desenvolvimento em segundo plano: devproxy --detach --as-system-proxy false -c devproxyrc.json.
  3. Aguarde até que GET /proxy seja bem-sucedido.
  4. Inicie a gravação: POST /proxy com {"recording": true}.
  5. Execute sua carga de trabalho com as variáveis de ambiente HTTP_PROXY e HTTPS_PROXY apontando para o Proxy de Desenvolvimento.
  6. Parar gravação: POST /proxy com {"recording": false}. A solicitação retorna após os repórteres terminarem, de modo que os relatórios fiquem prontos quando ela for concluída.
  7. Desligar o Proxy de Desenvolvimento: POST /proxy/stopProxy.

O Proxy de Desenvolvimento grava os relatórios na pasta de onde você o iniciou.

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

Os exemplos usam a porta 8000 proxy padrão e a porta 8897de API. Defina as variáveis de ambiente proxy apenas para a carga de trabalho, para que as chamadas à API não passem pelo Dev Proxy. Para interceptar o tráfego HTTPS, a carga de trabalho deve confiar no certificado raiz do Dev Proxy. Para obter mais informações sobre como executar o Dev Proxy em pipelines, incluindo confiar no certificado, consulte Usar Dev Proxy em cenários de CI/CD.

Consulte também