Comment faire pour simuler la panne de réseau, à des fins de test (en C#)?
Je suis en train de construire ce qui pourrait être appelé le DAL pour une nouvelle application. Malheureusement, la connectivité réseau à la base de données est un problème réel.
Je voudrais être en mesure de bloquer temporairement l'accès au réseau dans le cadre de mon test afin de m'assurer de ma DAL se comporte comme prévu dans ces circonstances.
Mise à JOUR: Il y a beaucoup de moyens manuels pour désactiver le réseau, mais ce serait bien si je pouvais activer/désactiver dans le test lui-même.
- Pourriez vouloir vérifier cette question sur les outils du réseau à simuler des connexions lentes: stackoverflow.com/questions/1094760/...
Vous devez vous connecter pour publier un commentaire.
Pour le moment, je suis juste "désactivation" du réseau en définissant un faux IP statique comme suit:
Écrire un wrapper pour la classe de réseau de connectivité de la classe que vous utilisez (par exemple, client web) avec un interrupteur marche-arrêt 🙂
Soit ça, ou de bloquer votre application dans le pare-feu.
Si vous essayez une panne complète du réseau pour votre demande de débrancher le câble réseau fonctionne. Parfois, vous pourriez avoir une couche d'accès aux données avec de multiples sources de données (sur des machines différentes), dans ce cas, vous pouvez simuler une exception dans vos tests avec un faux Cadre comme Rhino se moque. Voici quelques pseudo-code que vous pouvez avoir dans votre test
Essayez de bloquer la connexion avec un pare-feu à mi-chemin par le biais de la session, peut-être?
J'aime le wrapper idée aussi, mais c'est le genre d'abstraire le problème et vous pro pourraient ne pas être exacte du monde réel comportement. Aussi, l'insertion l'emballage de couches, puis l'enlever peut-être plus de problèmes que de sa valeur.
Modifier: Exécuter un script qui transforme la carte Réseau on/off au hasard ou à des intervalles définis?
Essayer Toxiproxi, il peut simuler la panne de réseau.
Ils ont API REST et même .NET Client API pour modifier le réseau de simulation par programme (à partir de votre code de test)
https://github.com/shopify/toxiproxy
Recherchez un WAN simulateur qui vous permettra de limiter la bande passante (et le couper complètement), je trouve qu'il est toujours intéressant de voir comment l'expérience de l'utilisateur des modifications lors de mes applications sont exécutées dans une largeur de bande limitée de l'environnement. Regarder ici pour obtenir certaines informations.
Il est un outil que vous pouvez utiliser pour la simulation des temps de Latence Élevé et la Faible bande Passante dans les Tests d'Applications de Base de données, comme l'explique cette l'entrée de blog.
Probablement pas utile pour la simulation de "vrais" problèmes de réseau, mais vous pourriez tout point de votre base de données chaîne de connexion à une machine qui n'existe pas alors que dans le cadre de votre essai.
Dépend de ce particulier de problème de réseau que vous souhaitez simuler. Pour la plupart des gens, c'est aussi simple que "serveur inaccessible", auquel cas vous devriez juste essayez de vous connecter à un inexistante serveur. Attention, cependant, parce que vous voulez quelque chose qui est routable, mais ne répond pas. Essayez de vous connecter à dkjdsjk.com ne fonctionnera pas immédiatement (DNS), mais en essayant de se connecter à http://www.google.com:1433 sera (probablement) le temps en raison d'un pare - feu qui est de savoir comment votre application se comportent lors de votre serveur de base de données est arrêté.
Viens de trouver une alternative qui permet aux directement fermer les connexions TCP:
http://lamahashim.blogspot.ch/2010/03/disabling-network-using-c.html
Il est basé sur Windows IP Helper API (utilise DllImport):
http://msdn.microsoft.com/en-us/library/windows/desktop/aa366073(v=vs. 85).aspx
Utiliser les objets fantaisie pour créer configurable, destructibles versions de la chose réelle, dans ce cas, la base de données.