Aller au contenu

CLI

Fenêtre de terminal
test-proxy-recorder <target-url> [options]
OptionDéfautDescription
<target-url>(requis)URL du backend à proxifier
--port, -p8000Port d’écoute du proxy
--dir, -d./recordingsRépertoire des fichiers d’enregistrement
--timeout, -t120000Timeout de réinitialisation auto de session (ms)
--config, -c(auto)Chemin vers un fichier de configuration
--ws-timingburstCadence de replay WebSocket — burst ou original

La rédaction des secrets est activée par défaut — Authorization/Cookie/Set-Cookie sont retirés des enregistrements automatiquement. Désactivez-la avec --no-redact, ou redaction: false dans la configuration. Voir rédaction des secrets pour les flags --redact-headers et --redact-body qui ajoutent à ce qui est rédigé.

Fenêtre de terminal
# Examples
test-proxy-recorder http://localhost:8000
test-proxy-recorder http://localhost:8000 --port 8100 --dir ./mocks

Par défaut, les messages serveur WebSocket enregistrés sont rejoués en rafale (burst) à la connexion — le plus rapide et totalement déterministe, idéal pour la CI. Passez --ws-timing original (ou websocket: { timing: 'original' } dans la configuration) pour les rejouer selon les horodatages enregistrés, afin que les messages arrivent avec leurs intervalles réels ; un test dure alors à peu près le temps réel de l’enregistrement.

Vous pouvez aussi définir cela par test via playwrightProxy.before(page, testInfo, mode, { websocket: { timing: 'original' } }), qui remplace la valeur par défaut du proxy pour cette session uniquement.

Le proxy revient automatiquement à transparent après le timeout de chaque session, et le globalTeardown le réinitialise à la fin d’une exécution propre. Mais une exécution interrompue (Ctrl+C), une session UI/débogage, ou une configuration sans globalTeardown peuvent laisser le proxy partagé bloqué en record/replay — de sorte que votre app continue de servir des réponses enregistrées au lieu d’appeler le vrai backend. Réinitialisez-le à la demande :

Fenêtre de terminal
test-proxy-recorder reset # or: npm run proxy:reset

Cela envoie un POST { "mode": "transparent" } à /__control — le remplacement pris en charge et compatible parallèle de la réinitialisation manuelle avec curl. C’est sûr à tout moment : un proxy injoignable est traité comme un no-op. Le port est résolu ainsi : flag --port → env TEST_PROXY_RECORDER_PORT → fichier de configuration → 8000, donc il cible le port sur lequel le proxy a été démarré (passez --port / --config pour remplacer). init le génère comme le script proxy:reset.

Voir le démarrage rapide pour la configuration recommandée en une seule commande avec npx test-proxy-recorder init.