Záznam a export aktivity proxy serveru

Na první pohled
Cílem: Záznam a export aktivity Dev Proxy do výstupního souboru.
Čas: 10 minut
Pluginy:ExecutionSummaryPlugin, MarkdownReporter
Požadavky:Nastavení dev proxy serveru

Pokud chcete zaznamenávat a exportovat aktivitu proxy serveru, použijte ve svém konfiguračním souboru plugin ExecutionSummaryPlugin a plugin reportéru.

Následující příklad ukazuje, jak nakonfigurovat dev proxy pro záznam a export aktivity proxy pomocí ExecutionSummaryPlugin a modulu plug-in MarkdownReporter .

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

Místo vlastního sestavení konfigurace si můžete stáhnout předem připravenou api-inventory předvolbu, která zaznamenává adresy URL, které aplikace volá, a souhrn její aktivity:

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

Další informace naleznete v tématu Použití přednastavených konfigurací.

Poznámka:

Pokud chcete aktivitu exportovat, musí být plug-in reportéru povolen v konfiguračním souboru a umístěn za ExecutionSummaryPlugin v seznamu modulů plug-in. Doporučujeme umístit reportérský plugin na konec seznamu pluginů.

Aby bylo možné zaznamenávat aktivitu, musí být Dev Proxy umístěn v režimu záznamu.

Nahrávání můžete spustit dvěma způsoby:

  • Okamžitě zaznamenejte. Spusťte proxy server s --record možností, například devproxy --record.
  • Záznam ad-hoc. Stiskněte R, když je spuštěný proxy server.

Pokud je záznam povolený, ◉ Recording... zobrazí se ve výstupu proxy serveru.

Pokud chcete vygenerovat sestavu ze zaznamenané aktivity, zastavte záznam.

Nahrávání můžete zastavit dvěma způsoby:

  • Zastavte proxy. Stiskněte Ctrl + C.
  • Přestaňte s ad hoc řešením. Stiskněte S.

Ve výchozím nastavení jsou aktivity seskupené podle adresy URL. Pokud chcete seskupit aktivitu podle typu zprávy, použijte tuto --summary-group-by možnost.

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

Kde se vytvářejí reporty

Když zastavíte nahrávání, každý povolený reportovací modul zapíše jeden soubor pro každou sestavu vytvořenou modulem plug-in pro vytváření sestav. Dev Proxy zapisuje soubory do aktuálního pracovního adresáře, což je složka, ze které jste spustili Dev Proxy. Když spustíte dev Proxy na pozadí, například v kanálu CI, ujistěte se, že ho spustíte ze složky, kam chcete sestavy uložit.

Soubory sestav používají následující vzor pojmenování:

<ReportingPlugin>_<Reporter>.<ext>

Například konfigurace v tomto článku vytvoří soubor s názvem ExecutionSummaryPlugin_MarkdownReporter.md.

Pokud soubor s tímto názvem již existuje, dev Proxy ho nepřepíše. Místo toho připojí časové razítko ve yyyyMMddHHmmss formátu k názvu souboru, například ExecutionSummaryPlugin_MarkdownReporter_20261105103000.md. Dev Proxy protokoluje název každého souboru sestavy, který vytváří, například:

Writing report ExecutionSummaryPlugin to ExecutionSummaryPlugin_MarkdownReporter.md...

V následující tabulce jsou uvedena rozšíření, která každý reportér používá.

Reportér Extension
JsonReporter .json (některé sestavy používají jiné rozšíření, například .jsonc pro UrlDiscoveryPlugin).
MarkdownReporter .md
PlainTextReporter .txt

Poznámka:

Veškerá nahrávka je místní. Microsoftu se neposílají žádná data.

Nahrávat ze skriptů a CI

Ve skriptech a pipelinech CI/CD nemůžete stisknutím kláves spustit a zastavit nahrávání. Místo toho spusťte dev Proxy na pozadí a pomocí rozhraní DEV Proxy API můžete řídit nahrávání. Všechny požadavky rozhraní API vyžadují bearer token. Pokud chcete token znát předem, nastavte DEV_PROXY_API_TOKEN proměnnou prostředí na hodnotu nejméně 32 znaků před spuštěním Dev Proxy.

Minimální posloupnost je:

  1. Nastavte DEV_PROXY_API_TOKEN na náhodnou hodnotu o délce nejméně 32 znaků.
  2. Spusťte dev Proxy na pozadí: devproxy --detach --as-system-proxy false -c devproxyrc.json.
  3. Počkejte, až bude GET /proxy úspěšné.
  4. Začněte nahrávat: POST /proxy s {"recording": true}.
  5. Spusťte úlohu s proměnnými prostředí HTTP_PROXY a HTTPS_PROXY, které odkazují na Dev Proxy.
  6. Zastavte nahrávání: POST /proxy pomocí {"recording": false}. Požadavek se vrátí poté, co reportery dokončí zpracování, takže jsou sestavy připravené, když se dokončí.
  7. Vypněte Dev Proxy: POST /proxy/stopProxy.

Dev Proxy zapisuje sestavy do složky, ze které jste ji spustili.

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

Příklady používají výchozí port 8000 proxy serveru a port 8897rozhraní API . Nastavte proměnné prostředí proxy pouze pro úlohu, aby volání rozhraní API neprošla přes Dev Proxy. Aby bylo možné zachytávat provoz HTTPS, musí úloha důvěřovat kořenovému certifikátu serveru Dev Proxy. Další informace o spuštění Dev Proxy v kanálech CI/CD, včetně přidání certifikátu mezi důvěryhodné, najdete v tématu Použití Dev Proxy ve scénářích CI/CD.

Viz také