Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
De relance
Objetivo: Gravar e exportar a atividade do Proxy de Desenvolvimento para um ficheiro 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 .
Ficheiro: 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
Em vez de construir a configuração você próprio, pode descarregar o predefinido pronto api-inventory , que regista os URLs a que a sua aplicação acede e um resumo da 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 mais informações, consulte Usar configurações de predefinição.
Nota
Para exportar a atividade, o plug-in do repórter deve ser habilitado no arquivo de configuração e colocado após o ExecutionSummaryPlugin na lista de plug-ins. Recomenda-se colocar um plugin reporter no final da lista de plugins.
Para registrar a atividade, o Proxy de Desenvolvimento deve ser colocado no modo de registro.
Há duas maneiras de começar a gravar:
-
Grave imediatamente. Inicie o proxy com a opção
--record, por exemplo,devproxy --record. - Registo ad-hoc. Pressione R enquanto o proxy está em execução.
Quando a gravação está habilitada, ◉ Recording... é mostrada na saída do proxy.
Para gerar um relatório da atividade gravada, pare a gravação.
Há duas maneiras de parar a gravação:
- Parar proxy. Pressione Ctrl + C.
- Interromper adhoc. Pressione S.
Por padrão, as atividades agrupadas por URL. Para agrupar a atividade por tipo de mensagem, use a --summary-group-by opção.
devproxy --record --summary-group-by messageType
Onde são redigidos relatórios
Quando para a gravação, cada repórter ativado escreve um ficheiro para cada relatório produzido por um plugin de relatório. O Dev Proxy escreve os ficheiros no diretório de trabalho atual, que é a pasta a partir da qual iniciaste o Dev Proxy. Quando iniciares o Dev Proxy em segundo plano, por exemplo num pipeline de CI, certifica-te de que o inicias na pasta onde queres que os relatórios sejam armazenados.
Os ficheiros de relatório utilizam o seguinte padrão de nomenclatura:
<ReportingPlugin>_<Reporter>.<ext>
Por exemplo, a configuração neste artigo produz um ficheiro chamado ExecutionSummaryPlugin_MarkdownReporter.md.
Se um ficheiro com esse nome já existe, o Dev Proxy não o sobrescreve. Em vez disso, adiciona um carimbo temporal no yyyyMMddHHmmss formato ao nome do ficheiro, por exemplo ExecutionSummaryPlugin_MarkdownReporter_20261105103000.md. O Dev Proxy regista o nome de cada ficheiro de relatório que escreve, por exemplo:
Writing report ExecutionSummaryPlugin to ExecutionSummaryPlugin_MarkdownReporter.md...
A tabela seguinte lista as extensões que cada gerador de relatórios utiliza.
| Jornalista | Extension |
|---|---|
| JsonRepórter |
.json (alguns relatórios usam uma extensão diferente, por exemplo .jsonc para o UrlDiscoveryPlugin) |
| MarkdownReporter | .md |
| PlainTextReporter | .txt |
Nota
Toda a gravação é local. Nenhum dado é enviado para a Microsoft.
Gravar a partir de scripts e CI
Em scripts e pipelines CI/CD, não podes carregar em teclas para iniciar e parar a gravação. Em vez disso, executa o Dev Proxy em segundo plano e controla a gravação usando a API do Dev Proxy. Todos os pedidos de API requerem um token Bearer. Para definir o token antecipadamente, define a variável de ambiente DEV_PROXY_API_TOKEN com um valor de, pelo menos, 32 caracteres antes de iniciares o Dev Proxy.
A sequência mínima é:
- Defina
DEV_PROXY_API_TOKENpara um valor aleatório de pelo menos 32 caracteres. - Inicie o Proxy de Desenvolvimento em segundo plano:
devproxy --detach --as-system-proxy false -c devproxyrc.json. - Aguarde até que
GET /proxyseja bem-sucedido. - Começar a gravar:
POST /proxycom{"recording": true}. - Executa a tua carga de trabalho com as variáveis de ambiente
HTTP_PROXYeHTTPS_PROXYa apontar para Dev Proxy. - Parar a gravação:
POST /proxycom{"recording": false}. A solicitação regressa depois de os geradores de relatórios terminarem, para que os relatórios estejam prontos quando termina. - Desligar Proxy de Desenvolvimento:
POST /proxy/stopProxy.
O Dev Proxy grava os relatórios na pasta de onde o 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"
Os exemplos usam a porta proxy predefinida 8000 e a porta 8897 da API. Define as variáveis de ambiente proxy apenas para a carga de trabalho, para que as chamadas de API não passem pelo Dev Proxy. Para intercetar o tráfego HTTPS, a carga de trabalho deve confiar no certificado raiz do Dev Proxy. Para mais informações sobre a execução do Dev Proxy em pipelines, incluindo confiar no certificado, veja Usar o Dev Proxy em cenários de CI/CD.
Consulte também
- ExecutionSummaryPlugin - Referência completa
- MarkdownReporter - Formato de relatório
- API de Proxy - Controlar o Dev Proxy programaticamente
- Usar Dev Proxy em cenários CI/CD - Executar Dev Proxy em pipelines
- Glossário - Terminologia de Proxy de Desenvolvimento
- Usar Dev Proxy em cenários CI/CD - Gravar chamadas API num pipeline
- Utilize configurações predefinidas - Configurações prontas a usar