Bean Network Tester

Faire évoluer les conditions réseau au fil du temps

Une perte fixe de 10 % est une condition de laboratoire. Les vraies connexions se dégradent, se rétablissent, se figent quatre secondes et reviennent, et le bug que vous traquez se trouve généralement dans le changement, pas dans l’état stable.

Un scénario est une chronologie

Un fichier JSON. Chaque étape dit à cette seconde, ces réglages, et tout ce que vous ne mentionnez pas garde sa valeur :

{
  "loop": true,
  "steps": [
    {"at": 0,  "settings": {"latency": 20, "jitter": 15, "down": 4096}},
    {"at": 20, "settings": {"loss": 8, "latency": 180}},
    {"at": 45, "settings": {"block_ip": "203.0.113.0/24"}},
    {"at": 65, "settings": {"block_ip": "", "loss": 0, "latency": 20}}
  ]
}

Les temps sont des secondes depuis le début de l’exécution, pas des intervalles entre étapes. Avec "loop": true, la chronologie recommence quand elle se termine, ce qui convient à un long test d’endurance : laissez-la tourner et utilisez l’application.

BeanNetworkTester.exe --scenario cafe-wifi.json --target myapp.exe

8 scénarios prêts à l’emploi sont fournis avec le programme

Dans le dossier scenarios à côté de l’exécutable. Lus depuis ces fichiers, c’est donc bien ce que vous avez réellement :

FichierÉtapesDuréeSe répète
blocked-endpoint.json465 soui
cafe-wifi.json585 soui
congested-vpn.json470 soui
failing-dns.json685 soui
mobile-lte-to-3g.json785 soui
overloaded-game-server.json572 soui
same-loss-in-runs.json5100 soui
upload-drop-midway.json775 snon

Ce sont de simples fichiers texte : ouvrez-en un, changez un nombre, enregistrez. Les noms disent ce qu’ils reproduisent : un café bondé, une connexion mobile qui passe de la LTE à la 3G, un envoi qui meurt à mi-chemin, un serveur qui se surcharge, un DNS qui ne répond plus.

Deux façons plus simples d’obtenir du changement

Un scénario vaut la peine d’être écrit quand l’enchaînement compte. Quand ce n’est pas le cas, deux réglages varient d’eux-mêmes :

BeanNetworkTester.exe --flap-period 10 --flap-down 40 --target myapp.exe

Pourquoi cela fonctionne pendant que l’application tourne

Chaque réglage qu’un scénario touche est appliqué en direct à la session déjà en cours : l’application n’a pas besoin d’être redémarrée, l’outil non plus. Le journal d’événements consigne chaque étape au moment où elle se produit, si bien que lorsque quelque chose casse, vous voyez à quel changement cela a succédé. Associez cela à une graine et toute la séquence, y compris la perte aléatoire qu’elle contient, se répète à l’identique.

Pour aller plus loin

Prêt à casser votre propre réseau, exprès ?

Télécharger pour Windows