Comment Écrire le Système Automatisé de Tests avec C#?
Nous avons une vieux asp.net application qui n'a pas de tests unitaires, tests d'intégration, tests d'éléments ou UI/tests fonctionnels - surprise!
Maintenant, nous aimerions vous présenter quelques système automatisé de tests qui teste la fonctionnalité de sorte que lorsque quelque chose se brise dans l'application, nous avons immédiatement notifié!
Par exemple, la le formulaire d'inscription utilisateur où l'utilisateur peut entrer le nom d'utilisateur et votre adresse de courriel et s'inscrire dans le système.
Il est trop tard/coûté cher à l'introduction de tests unitaires (comme le modèle actuel n'est pas l'unité vérifiable) de sorte que le plus important maintenant est de l'écriture automatique du Système de Tests.
Par exemple, nous aimerions écrire un test dans C# qui ouvre le navigateur, saisit les données dans les cases de texte, clique sur le bouton Enregistrer puis notre test vérifie si les données sont insérées dans la base de données et un email de vérification est envoyé et à la fin, si un message est affiché à l'utilisateur (bien sûr ce n'est que les principaux scénarios, et il y aurait de nombreux cas particuliers). Fondamentalement, ne teste pas des unités isolées, mais de tester si l'ensemble du processus fonctionne!
Donc, quel outil dois-je utiliser pour m'aider à rédiger ce test et automatisation?
Quelle approche vous recommandons d'utiliser?
J'ai eu un coup d'oeil au Sélénium et Fitnesse, mais ils ne semblent pas me permettre d'écrire du code C# pour tester la base de données, etc. J'ai regardé la SoapUI/LoadUI même problème. WatiN pourrait éventuellement être utilisé, pas sûr. toutes les pensées/recommandations sont très appréciés.
Espère que la question est claire.
Merci beaucoup,
le visual studio ont "test de programme", comprises, et ne pense que vous décrivez ici. Avez-vous l'essayer ?
à l'aide de Sélénium vous pouvez écrire du code c#? nous avons Professional edition VS seulement.
ouais, mais c'est seulement une partie de ce que je suis après. LoadUI/SoapUI serait également le faire. J'avais besoin d'écrire un test qui vérifie également la base de données par exemple. L'ensemble des composants qui sont impliqués dans le processus, non seulement les changements de l'INTERFACE.
OriginalL'auteur The Light | 2012-01-24
Vous devez vous connecter pour publier un commentaire.
Sélénium absolument ne vous permettent d'écrire du code C# pour les tests du système. D'abord, vous auriez une méthode pour interagir avec le site, une deuxième méthode pour vérifier la base de données est correct. Le tout dans une seule application de test/de la classe.
Pour le web d'interaction, vous pouvez utiliser un WebDriver (prises à partir de la Le sélénium doc API). Voici un exemple de code de IWebDriver de l'interface. Il interagit avec google, mais vous pouvez modifier cela pour interagir avec votre site web.
Alors vous serait tout simplement de mettre en œuvre une autre méthode qui vérifie la base de données entrées sont correctes, en utilisant quelque chose comme LinqToSql ou autres C# API de base de données.
Je n'ai jamais utilisé WatiN donc je ne peut pas commenter sur ses capacités. Aussi loin que l'enregistrement et la relecture, oui, vous pouvez utiliser Selenium IDE (extension de Firefox) cliquez sur par le biais de votre interface utilisateur web et l'IDE permettra d'enregistrer vos actions dans Selenese. Vous pouvez ensuite exporter que le code C#, facilement. Je n'ai jamais fait ça moi-même, mais en fonction de leur docs il est facile.
Notez que le code généré suppose que vous utilisez NUnit en C# qui vous n'avez pas nécessairement besoin. Vous avez juste besoin de la IWebDriver interactions. Dépend de la façon dont formelle et sophistiqué vous voulez que ce soit.
OriginalL'auteur mattypiper
Si vous avez Visual Studio Ultimate, peut-être Codés de l'INTERFACE utilisateur de Test est ce que vous recherchez? http://msdn.microsoft.com/en-us/library/dd286681.aspx
Des Tests codés de l'INTERFACE utilisateur sont également disponibles pour Visual Studio 2010 Premium.
OriginalL'auteur David Merriman
Utilisation CodedUI ou Le sélénium Web pilote
OriginalL'auteur Pritam Karmakar
Vous pouvez également regarder à Telerik Test du Studio comme une solution pour vos besoins de test. (Divulgation: je travaille pour Telerik que leur Test Studio Évangéliste.)
Test Studio vous permet de créer très facilement maintenable fonctionnels et des tests de performances.
Vous pouvez également facilement ajouter des étapes ou des tests en C# (ou VB.NET) afin de gérer les choses comme banc d'essai de l'installation/démontage, ou de traiter avec oracle test de situations que vous mentionnez. (Vérification de la base de données afin d'assurer un enregistrement est correctement enregistré, en les liant à quelque chose comme nDumbster pour l'e-mail de validation, etc.)
OriginalL'auteur Jim Holmes
Selenium Webdriver peuvent être ajoutés dans le package de projet C# dans Visual studio express IDE, puis en ajoutant nUnit paquet que l'on peut écrire des cas de test. Voici les quelques liens qui peuvent vous aider à obtenir amorcée avec selenium webdriver de test Automatisé cas
Sur la configuration de l'IDE (VS express), nUnit et le sélénium se référer
Comment le programme d'installation C#,nUnit et le sélénium pilotes clients sur VSExpress de tests Automatisés
Sur la Création de script simple qui lance un navigateur ne prend que quelques étapes consulter
La création de Base de Sélénium web pilote de cas de test à l'aide de Nunit et C#
Sur la façon de Charger la même page web sur un certain nombre de différents navigateurs je suggère de référence
Comment appeler localement différents types de navigateur pilote à l'aide de sélénium et c#
Sur le Chargement de la même page web sur un certain nombre de machines virtuelles pour cela, vous devez utiliser la Télécommande webdriver au lieu de la normale webdriver. Aussi à distance de webdriver, vous pouvez lancer différents types de navigateur. Reportez-vous à cette page web
Comment appeler/exécuter différents types de pilotes web navigateur à l'aide de remote webdriver en C#
Pour prendre des instantanés sur différentes navigateur, vous pouvez consulter le lien
Capturer des captures d'écran à l'aide de remote/local webdriver en C#/Selenium webdriver
OriginalL'auteur Sham332