Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Auf einen Blick
Ziel: Aufzeichnen und Exportieren von Dev Proxy-Aktivitäten in eine Berichtsdatei
Zeit: 10 Minuten
Plugins:ExecutionSummaryPlugin, MarkdownReporter
Voraussetzungen:Einrichten des Dev-Proxys
Verwenden Sie zum Aufzeichnen und Exportieren von Proxyaktivitäten das ExecutionSummaryPlugin und ein Reporter-Plug-In in Ihrer Konfigurationsdatei.
Das folgende Beispiel zeigt, wie Sie den Dev-Proxy so konfigurieren, dass Proxyaktivitäten mithilfe des ExecutionSummaryPlugin - und des MarkdownReporter-Plug-Ins erfasst und exportiert werden.
Datei: 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/*"
]
}
Tipp
Anstatt die Konfiguration selbst zu erstellen, können Sie die vorgefertigte api-inventory Voreinstellung herunterladen, die die URLs, die Ihre App aufruft, und eine Zusammenfassung ihrer Aktivität erfasst:
devproxy config get api-inventory
devproxy --config-file "~dataFolder/configs/api-inventory/.devproxy/devproxyrc.json" --urls-to-watch "https://api.contoso.com/*"
Weitere Informationen finden Sie unter Verwenden von voreingestellten Konfigurationen.
Hinweis
Um die Aktivität zu exportieren, muss das Reporter-Plugin in der Konfigurationsdatei aktiviert und nach der ExecutionSummaryPlugin in der Plugins-Liste platziert werden. Es wird empfohlen, ein Reporter Plugin am Ende der Plugins-Liste zu platzieren.
Um Aktivitäten aufzuzeichnen, muss der Dev-Proxy im Datensatzmodus platziert werden.
Es gibt zwei Möglichkeiten zum Starten der Aufzeichnung:
-
Notieren Sie sich sofort. Starten Sie Proxy mit der Option
--record, zum Beispieldevproxy --record. - Ad-hoc aufzeichnen Drücken Sie R , während der Proxy ausgeführt wird.
Wenn die Aufzeichnung aktiviert ist, ◉ Recording... wird in der Proxyausgabe angezeigt.
Beenden Sie die Aufzeichnung, um einen Bericht aus der aufgezeichneten Aktivität zu generieren.
Es gibt zwei Möglichkeiten zum Beenden der Aufzeichnung:
- Beenden Sie den Proxy. Drücken Sie STRG + C.
- Ad-hoc beenden Drücken Sie S.
Standardmäßig sind Aktivitäten nach URL gruppiert. Verwenden Sie die --summary-group-by Option, um Aktivitäten nach Nachrichtentyp zu gruppieren.
devproxy --record --summary-group-by messageType
Wo Berichte geschrieben werden
Wenn Sie die Aufzeichnung beenden, schreibt jeder aktivierte Reporter eine Datei für jeden Bericht, der von einem Reporting Plugin erstellt wird. Dev Proxy schreibt die Dateien in das aktuelle Arbeitsverzeichnis, also den Ordner, aus dem Sie Dev Proxy gestartet haben. Wenn Sie Dev Proxy im Hintergrund starten, z. B. in einer CI-Pipeline, stellen Sie sicher, dass Sie Dev Proxy in dem Ordner starten, in dem die Berichte gespeichert werden sollen.
Berichtsdateien verwenden das folgende Benennungsmuster:
<ReportingPlugin>_<Reporter>.<ext>
Die Konfiguration in diesem Artikel erstellt z. B. eine Datei mit dem Namen ExecutionSummaryPlugin_MarkdownReporter.md.
Wenn eine Datei mit diesem Namen bereits vorhanden ist, überschreibt Dev Proxy sie nicht. Stattdessen wird ein Zeitstempel im yyyyMMddHHmmss Format an den Dateinamen angefügt, z. B ExecutionSummaryPlugin_MarkdownReporter_20261105103000.md. . Dev Proxy protokolliert den Namen jeder Berichtsdatei, die Dev Proxy schreibt, z. B.:
Writing report ExecutionSummaryPlugin to ExecutionSummaryPlugin_MarkdownReporter.md...
In der folgenden Tabelle sind die Erweiterungen aufgeführt, die jeder Reporter verwendet.
| Melder | Extension |
|---|---|
| JsonReporter |
.json (einige Berichte verwenden eine andere Erweiterung, z. B .jsonc . für UrlDiscoveryPlugin) |
| MarkdownReporter | .md |
| PlainTextReporter | .txt |
Hinweis
Alle Aufzeichnungen sind lokal. Es werden keine Daten an Microsoft gesendet.
Aufzeichnen aus Skripten und CI
In Skripts und CI/CD-Pipelines können Sie keine Tasten drücken, um die Aufzeichnung zu starten und zu beenden. Führen Sie stattdessen Dev Proxy im Hintergrund aus, und steuern Sie die Aufzeichnung mithilfe der Dev Proxy-API. Für alle API-Anfragen ist ein Bearertoken erforderlich. Wenn Ihnen das Token vorab bekannt ist, legen Sie die DEV_PROXY_API_TOKEN Umgebungsvariable auf einen Wert von mindestens 32 Zeichen fest, bevor Sie Dev Proxy starten.
Die minimale Sequenz lautet:
- Legen Sie für
DEV_PROXY_API_TOKENeinen Zufallswert mit mindestens 32 Zeichen fest. - Starten Sie Dev Proxy im Hintergrund:
devproxy --detach --as-system-proxy false -c devproxyrc.json. - Warten Sie, bis
GET /proxyabschlossen ist. - Aufzeichnung starten:
POST /proxymit{"recording": true}. - Führen Sie Ihre Workload mit den
HTTPS_PROXYundHTTP_PROXYUmgebungsvariablen aus, die auf Dev Proxy verweisen. - Aufzeichnung beenden:
POST /proxymit{"recording": false}. Die Anforderung wird zurückgegeben, nachdem die Berichtsgeneratoren abgeschlossen sind, sodass die Berichte bereit sind, wenn sie abgeschlossen ist. - Dev Proxy herunterfahren:
POST /proxy/stopProxy.
Dev Proxy schreibt die Berichte in den Ordner, aus dem Sie Dev Proxy gestartet haben.
#!/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"
In den Beispielen werden der Standardproxyport 8000 und der API-Port 8897 verwendet. Legen Sie die Proxyumgebungsvariablen nur für die Workload fest, sodass die API-Aufrufe nicht über Dev Proxy geleitet werden. Um HTTPS-Datenverkehr abzufangen, muss die Workload dem Dev Proxy-Stammzertifikat vertrauen. Weitere Informationen zum Ausführen von Dev Proxy in Pipelines, einschließlich, dem Zertifikat zu vertrauen, finden Sie unter Verwenden von Dev Proxy in CI/CD-Szenarien.
Siehe auch
- ExecutionSummaryPlugin - Vollständiger Verweis
- MarkdownReporter - Berichtsformat
- Proxy-API – Programmgesteuertes Steuern des Dev-Proxys
- Verwenden von Dev Proxy in CI/CD-Szenarien – Ausführen von Dev Proxy in Pipelines
- Glossar - Dev Proxy-Terminologie
- Verwenden von Dev Proxy in CI/CD-Szenarien – Aufzeichnen von API-Aufrufen in einer Pipeline
- Voreingestellte Konfigurationen verwenden – einsatzbereite Konfigurationen