Wie Schreiben von Automatisierten System-Tests mit C#?
Haben wir eine alt asp.net Anwendung, die keine unit-tests, integration-tests, Komponenten-tests oder UI/funktionale tests - überraschung!
Nun, wir möchte einige automatisierten system-Tests, dass die tests der Funktionalität, so dass, wenn etwas kaputt geht in der app wir sofort benachrichtigt!
Beispielsweise die user registration form, wo Benutzer können geben Sie Benutzername und E-Mail-Adresse und registrieren in das system.
Es ist zu spät/zu teuer Einführung von unit-tests (wie das aktuelle design ist nicht unit-getestet) also das wichtigste ist jetzt das schreiben von Automatisierten System Tests.
Zum Beispiel, wir würden gerne einen test schreiben, in C#, die öffnet den browser, gibt die Daten an die Textfelder, klicken Sie auf die Schaltfläche Registrieren, dann ist unser test prüft, ob die Daten in die Datenbank eingefügt wurde und ob eine Bestätigungs-E-Mail gesendet wird, und am Ende, ob eine ordnungsgemäße Meldung wird dem Benutzer angezeigt (das ist natürlich nur die wichtigsten Szenarien und gäbe es zahlreiche Sonderfälle). Grundsätzlich nicht zu prüfen isolierten Einheiten, sondern die Prüfung, ob der ganze Prozess funktioniert!
Also, welches tool könnte ich verwenden, um mir zu helfen, schreiben diesen test und die Automatisierung der it?
Welchen Ansatz würden Sie empfehlen?
Hatte ich einen Blick auf Selenium und Fitnesse, aber Sie scheinen nicht, mir zu erlauben, schreiben von C# - code zu testen, Datenbank, etc. Ich schaute auf die SoapUI/LoadUI gleiche Problem. WatiN könnte möglicherweise verwendet werden, nicht sicher. irgendwelche Gedanken/Empfehlungen sehr geschätzt werden.
Hoffe die Frage ist klar.
Vielen Dank,
- seleniumhq.org ist der de-facto-tool oder wenn Sie Visual Studio Ultimate, ich glaube, die version hat irgendeine Art von Fähigkeit zu tun.
- die visual studio "test" - Programm enthalten, und zu tun, die denkt, dass Sie hier beschreiben. Tun Sie es versuchen ?
- mit Selen kann man schreiben c# - code? wir haben die Professional edition von VS nur.
- ja, aber das ist nur ein Teil von dem, was ich bin nach. LoadUI/SoapUI würde auch das tun. Ich hätte schreiben müssen, eine Prüfung, die auch überprüft die Datenbank zum Beispiel. Die ganzen Komponenten, die in den Prozess involviert sind, nicht nur die änderungen an der Benutzeroberfläche.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Selen absolut nicht erlauben, Ihnen das schreiben von C# - code für die system-Tests. Zuerst müsste man eine Methode, um mit der website interagieren, wird eine zweite Methode zur überprüfung der Datenbank korrekt ist. Alle in einem einzigen test-app/class.
Für die web-Interaktion, die Sie verwenden würden, ein WebDriver (entnommen aus der Selenium API-doc). Hier einige Beispiel-code von IWebDriver-Schnittstelle. Es interagiert mit google, aber Sie kann geändert werden, um die Interaktion mit Ihrer website.
Dann würden Sie nur umzusetzen eine andere Methode, die überprüft, ob die Einträge in der Datenbank korrekt sind, mit so etwas wie LinqToSql oder andere C# - Datenbank-API.
Wenn Sie Visual Studio Ultimate verwenden, vielleicht einen Test der Codierten UI ist das, was du suchst? http://msdn.microsoft.com/en-us/library/dd286681.aspx
Verwenden CodedUI oder Selenium Web driver
Könnte man auch schauen, Telerik Test Studio als eine Lösung für Ihre Testanforderungen. (Disclosure: ich arbeite für Telerik als Ihre Test-Studio Evangelist.)
Test Studio können Sie leicht erstellen, der extrem gut wartbar funktionale und performance-tests.
Können Sie auch einfach Schritte hinzufügen oder tests in C# (oder VB.NET), um Dinge zu handhaben wie die test-fixture setup/teardown, oder zu viel mit testen, oracle-Situationen, wie Sie erwähnen. (Überprüfung der Datenbank zu gewährleisten, wird ein Datensatz korrekt gespeichert, binden in etwas wie nDumbster für e-mail-Validierung, etc.)
Selenium Webdriver Hinzugefügt werden können, werden als Paket an C# - Projekt in Visual studio express IDE und dann das hinzufügen von nUnit-Paket kann man schreiben Testfälle. Unten sind einige links, die Ihnen helfen können, erhalten wurde mit selenium webdriver von Automatisierten Testfällen
Darüber, wie das einrichten der IDE (VS express), nUnit und Selen finden
Wie setup-C#,nUnit-und selenium-client-Treiber auf VSExpress für Automatisierte tests
Auf die Erstellung von einfachen Skript, das startet einen browser keine paar Schritte beziehen
Erstellung von Basic-Selenium web driver test mit Nunit und C#
Über das Laden der gleichen Webseite auf verschiedenen Browsern empfehle ich beziehe
Gewusst wie: aufrufen von lokal verschiedene Arten von browser-Fahrer mit Selen und c#
Beim Laden der gleichen Webseite auf eine Reihe von virtuellen Maschinen, die für diese, müssen Sie die Verwendung von Remote webdriver anstelle der normalen webdriver. Auch mit remote webdriver, starten Sie verschiedene Arten von browser. Finden Sie diese Webseite
Gewusst wie: aufrufen/ausführen andere Art von web-driver-browser mit remote webdriver in C#
Nehmen snapshot auf verschiedene browser finden Sie unter dem link
Erfassen Sie screenshots mithilfe von remote/local webdriver in C#/Selenium webdriver