⚙️ Features
Tout ce qu'il faut pour
maîtriser le chaos
7 anomalies backend, 4 anomalies frontend, chaos scripting 3 niveaux, APM complet et 8 socles techniques — tout en un seul déploiement Docker.
💥 Chaos Engineering
Injection d'anomalies en temps réel
Activez et désactivez des pannes réelles sans redémarrer l'application. Trois niveaux d'intensité par anomalie.
💥
Chaos Admin Panel
perfshop-chaos.tests-performance.fr
🔴
Injection instantanée
Aucun redémarrage nécessaire — les anomalies sont injectées à chaud via l'API Spring Boot.
🎚️
3 niveaux d'intensité
Faible, Moyen, Critique — adaptez la pression selon l'objectif pédagogique ou le niveau de l'équipe.
📋
Audit trail complet
Chaque injection est horodatée et visible dans les traces Tempo — corrélation immédiate anomalie/impact.
🖥️ Backend — 7 anomalies
Fuite mémoire progressive simulée — la heap JVM monte jusqu'au GC storm, puis OOM. Observable en temps réel dans Grafana.
FaibleMoyenCritique
Injection de latence SQL — les requêtes s'allongent artificiellement, le p95 monte, le pool de connexions se sature.
FaibleMoyenCritique
🔒
Thread Pool Saturation
Tomcat
Le pool de threads HTTP se remplit — les nouvelles requêtes attendent ou échouent. Timeouts en cascade observables.
FaibleMoyenCritique
⏰
External Latency
HTTP Client
Simulation d'un service tiers lent — les appels externes ajoutent une latence configurable, le circuit breaker peut se déclencher.
FaibleMoyenCritique
💾
DB Connection Leak
HikariCP
Les connexions DB ne sont pas libérées — le pool HikariCP s'épuise progressivement jusqu'au rejet des nouvelles requêtes.
FaibleMoyenCritique
Thread en boucle infinie — la CPU monte et reste haute, dégradant toutes les requêtes en parallèle. Visible dans Pyroscope.
FaibleMoyenCritique
❌
Error Rate Injection
HTTP 500
Injection d'un taux d'erreur configurable sur les endpoints — de 5% à 80% de 500. Teste la résilience des scripts et alertes.
5%30%80%
🖥️ Frontend — 4 anomalies
Des calculs lourds bloquent le thread principal React — l'UI se fige, le score Lighthouse s'effondre. Mesurable avec WebVitals.
FaibleMoyenCritique
🌐
Network Throttling
XHR/Fetch
Les requêtes API depuis le front sont ralenties côté client — simule une connexion dégradée sans toucher l'infrastructure réseau.
FaibleMoyenCritique
💥
Memory Leak UI
React / DOM
Accumulation de listeners et de nœuds DOM non nettoyés — la mémoire navigateur monte progressivement jusqu'au crash de l'onglet.
FaibleMoyenCritique
🔁
Infinite Re-render
React State
Boucle de re-rendu React provoquée par un useEffect mal configuré — CPU navigateur à 100%, UI non responsive.
FaibleMoyenCritique
🧪 Chaos Fonctionnel — données & métier
Tester la robustesse fonctionnelle
Validations, règles métier, contrats API — injectez des données incorrectes et vérifiez que l'application résiste.
📋
Validation champs KO
Formulaires
Injection de valeurs invalides (email malformé, quantité négative, caractères spéciaux) — teste la robustesse des validations front et back.
FaibleMoyenCritique
💸
Données métier corrompues
Panier / Prix
Prix négatifs, stocks incohérents, calculs de panier erronés — vérifie que les règles métier restent intègres sous stress fonctionnel.
FaibleMoyenCritique
🔄
Réponses API incohérentes
REST / JSON
Champs manquants, types incorrects ou valeurs nulles dans les réponses JSON — teste la résilience du front face à des contrats API violés.
FaibleMoyenCritique
🤖 Chaos Automatisation — UFT & Selenium
L'automatisation mise à l'épreuve
Exécutez vos scripts UFT ou Selenium pendant les injections de chaos — détectez les régressions fonctionnelles causées par les anomalies.
🧬
Détection par scripts auto
UFT / Selenium
Scripts UFT ou Selenium rejoués pendant une injection — détection automatique des régressions fonctionnelles causées par les anomalies actives.
UFTSeleniumPlaywright
📸
Assertions visuelles sous stress
UI Testing
Vérification que l'interface reste cohérente sous charge — les scripts capturent les états dégradés : spinners infinis, messages d'erreur absents.
FaibleMoyenCritique
🔁
Scénarios de résilience E2E
End-to-End
Parcours complets (ajout panier → commande → paiement) automatisés et rejoués pendant les injections — valide le comportement de bout en bout.
FaibleMoyenCritique
☕ Chaos Développeur — Debug Java
Trouvez et corrigez le bug
Un problème Java est injecté dans l'application — NPE, deadlock, race condition. Le développeur l'identifie via les outils APM et le corrige.
🐛
Bug Java à identifier
Spring Boot
Un problème Java est injecté (NPE, deadlock, race condition, fuite de ressource) — identifié à partir des traces Tempo et flamegraphs Pyroscope.
NPEDeadlockRace condition
🔬
Diagnostic APM uniquement
Tempo / Pyroscope
Cause racine à trouver sans accès aux logs — uniquement via Tempo (traces) et Pyroscope (flamegraphs). Reproduit les conditions réelles de production.
GuidéSemi-guidéAutonome
✅
Correction & validation
Code Review
Après correction, le scénario de charge est rejoué — les métriques doivent revenir à la normale. Validation complète via les outils d'observabilité.
FaibleMoyenCritique
📊 Observabilité
Stack APM complète intégrée
Prometheus, Grafana, Tempo et Pyroscope préconfigurés — zéro setup, corrélation métriques/traces/profiling out-of-the-box.
📈
Grafana + Prometheus
Dashboards pré-configurés JVM, HTTP, DB, chaos state. Alertes incluses.
🔍
Tempo — Distributed Tracing
Traces distribuées OpenTelemetry — suivez chaque requête de l'UI au SQL, anomalie visible dans la trace.
🔥
Pyroscope — Continuous Profiling
Flamegraphs CPU/mémoire en continu — identifiez le code qui consomme pendant les injections de chaos.
📊
Dashboard monitoring custom
Interface pédagogique simplifiée — métriques clés en temps réel, état du chaos, sparklines Chart.js.
📈
Grafana Dashboard
perfshop-grafana.tests-performance.fr
📜 Chaos Scripting
Scripting JMeter & k6
Scripts de charge fournis pour JMeter et k6, organisés en 3 niveaux de complexité pédagogique.
Niveau 1
Scripts de base
Thread Groups, HTTP Samplers, assertions simples. Idéal pour démarrer et comprendre les fondamentaux du test de charge.
Niveau 2
Scénarios réalistes
Corrélations dynamiques, paramétrage CSV, think time, montée en charge progressive. Scénarios e-commerce complets.
Niveau 3
Chaos + observabilité
Scripts coordonnés avec injections chaos — déclenchement automatique d'anomalies pendant le test, corrélation métriques.
Niveau 1
Scripts ES6 basiques
VUs, durée, thresholds simples. Import des bibliothèques k6 standard. Idéal pour les équipes DevOps habituées au JS.
Niveau 2
Scenarios & checks
Scenarios multiples, checks avancés, gestion des sessions, export Prometheus / Grafana Cloud. SLO intégrés.
Niveau 3
Chaos orchestration
Orchestration chaos depuis k6 — appels API chaos synchronisés avec la montée de charge, scénarios de résilience complets.