Ich werde bald damit beginnen, einige automatisierte Tests unserer Präsentation zu codieren. Es scheint, dass jeder WatiN und Selen empfiehlt . Welche bevorzugen Sie zum automatisierten Testen von ASP.NET-Webformularen? Welches dieser Produkte funktioniert besser für Sie?
Als Randnotiz habe ich festgestellt, dass WatiN 2.0 seit März 2008 in CTP ist. Ist das etwas, worüber man sich Sorgen machen muss?
asp.net
selenium
automation
automated-tests
watin
DavGarcia
quelle
quelle
Antworten:
Ich möchte nur sagen, dass ich derzeit hart an einer Beta-Version von WatiN 2.0 im ersten Quartal 2009 arbeite. Es wird ein bedeutendes Upgrade auf die aktuellen CTP 2.0-Versionen sein und Ihnen im Grunde die gleiche Funktionalität zur Automatisierung von FireFox und IE bieten wie Version 1.3.0 bietet zur Automatisierung des IE.
Also keine Bedenken.
Ich hoffe, dies hilft Ihnen bei Ihrer Wahl. Jeroen van Menen Lead Dev WatiN
quelle
Wenn Sie ernsthaft langfristig in ein Framework investieren möchten, das von der Community weiter verbessert und unterstützt wird, ist Selen wahrscheinlich die beste Wahl. Zum Beispiel bin ich gerade auf diese Information in Matt Raibles Blog gestoßen:
Ich habe kürzlich auch eines der Selenium-Meetups besucht und erfahren, dass Google ernsthafte Ressourcen in die Verbesserung von Selenium und dessen Integration in WebDriver investiert, ein von Simon Stewart entwickeltes automatisiertes Testtool. Einer der Hauptvorteile von WebDriver besteht darin, dass es den Browser selbst steuert und nicht als Javascript-Anwendung im Browser ausgeführt wird. Dies bedeutet, dass große Stolpersteine wie das Problem "gleichen Ursprungs" kein Problem mehr darstellen.
quelle
Wir haben beide getestet und uns für WaTiN entschieden. Wie andere bereits betont haben, hat Selen einige nette Funktionen, die in WaTiN nicht zu finden sind, aber wir hatten Probleme, Selenium zum Laufen zu bringen, und als wir dies taten, war es beim Ausführen von Tests definitiv langsamer als bei WaTiN. Wenn ich mich richtig erinnere, sind die Setup-Probleme, auf die wir gestoßen sind, darauf zurückzuführen, dass Selenium über eine separate App verfügt, mit der der eigentliche Browser gesteuert werden kann, in dem WaTiN alles in Bearbeitung hat.
quelle
Ich habe sie beide ausprobiert und hier sind meine ersten Gedanken ...
WatiN
Die gute
Das Schlechte
Skriptbeispiel (C #). Mit Selen kann man das nicht machen (zumindest nicht, dass ich es weiß):
Selen
Trotz allem bin ich am Ende mit WatiN gegangen; Ich beabsichtige hauptsächlich, kleine Screen-Scraping-Anwendungen zu schreiben und möchte LINQPad für die Entwicklung verwenden. Das Anhängen an eine Remote-IE-Instanz (eine, die ich nicht selbst erstellt habe) ist ein großes Plus. Ich kann in einer vorhandenen Instanz herumfummeln ... dann ein bisschen Skript ausführen ... dann wieder herumfummeln usw. Dies ist mit Selenium schwieriger zu tun, obwohl ich annehme, dass "Pausen" in das Skript eingebettet werden könnten, währenddessen ich könnte direkt mit dem Browser fummeln.
quelle
Der größte Unterschied besteht darin, dass Selenium verschiedene Browser unterstützt (nicht nur IE oder FF, siehe http://seleniumhq.org/about/platforms.html#browsers) .
Außerdem verfügt Selenium über einen Fernbedienungsserver ( http://seleniumhq.org/projects/remote-control/ ). Dies bedeutet, dass Sie den Browser nicht auf demselben Computer ausführen müssen, auf dem der Testcode ausgeführt wird. Sie können daher Ihre Web-App testen. auf verschiedenen Betriebssystemplattformen.
Im Allgemeinen würde ich die Verwendung von Selen empfehlen. Ich habe WatiN vor einigen Jahren verwendet, war aber mit seiner Stabilität nicht zufrieden (es hat sich wahrscheinlich inzwischen verbessert). Das größte Plus für Selen ist für mich die Tatsache, dass Sie die Web-App testen können. in verschiedenen Browsern.
quelle
Weder. Verwenden Sie Coypu. Es wickelt Selen ein. Viel haltbarer. https://github.com/featurist/coypu
Update Ye Oliver du hast recht. Ok, warum ist es besser? Persönlich habe ich festgestellt, dass der Selenium-Treiber für IE besonders fragil ist - es gibt eine Reihe von "Standard" -Treiberausnahmen, die ich beim Fahren von Selenium für Unit-Tests auf Ajax-Websites erneut gefunden habe.
Habe ich erwähnt, dass ich meine Skripte als Testprojekt in c # schreiben möchte? Ja Abnahmetests innerhalb einer kontinuierlichen Build-Bereitstellung.
Nun, Coypu kümmert sich um das Obige. Es ist eine Hülle für Selen, die Testvorrichtungen wie z.
... wodurch ein (konfigurierbarer) Browser hochgefahren und das Skript ausgeführt wird. Es funktioniert hervorragend mit Bereichen mit Gültigkeitsbereich und ist SEHR erweiterbar.
Es gibt weitere Beispiele bei GitHub und wie Olvier weiter unten erwähnt, ist Adrians Video ausgezeichnet. Ich denke, es ist der beste Weg, um browserbasierte Tests in der .Net-Welt durchzuführen und versucht, dem Ruby-Namensvetter zu folgen
capybara
quelle
Ich habe beide benutzt, beide scheinen in Ordnung zu funktionieren. Mein Nicken ist für Selenium, da es eine bessere Ajax-Unterstützung zu haben schien. Ich glaube, WaTiN ist gereift, seit ich es das letzte Mal benutzt habe, also sollte es das gleiche haben.
Das Größte wäre, in welcher Entwicklungsumgebung Sie sich gerne befinden? Selenium und Watin haben Rekorder, aber Selenium ist im Browser und watin ist im Visual Studio. + und -'s zu beiden.
quelle
Bis jetzt sind wir ein reiner Microsoft Shop für die Bereitstellung von Lösungen für das Unternehmen und haben uns für WatiN entschieden. Dies kann sich in Zukunft ändern.
Als neuere Quelle:
Microsoft druckte im MSDN Magazine 12/2010 einen BDD-Primer mit der Kombination von SpecFlow mit WatiN (coole BDD-Behaviour Driven Development). Sein Autor Brandon Satrom (msft Developer Evangelist) hat im Dezember 2010 auch einen Video-Webcast veröffentlicht, der seine obigen Ergebnisse 1: 1 ausführlich lehrt.
Ab 04/2011 gibt es ein Whitepaper zur Unterstützung von ATDD / BDD mit SpecLog, SpecFlow und Team Foundation Server (Akzeptanztestgesteuerte Entwicklung / Verhaltensgesteuerte Entwicklung) von Christian Hassa , dessen Team SpecFlow erstellt hat.
quelle
Ich benutze Watin, aber kein Selen. Ich kann sagen, dass ich mit Watin schnell einsatzbereit war und nur wenige bis gar keine Probleme hatte. Ich kann mir nichts vorstellen, was ich tun wollte, was ich damit nicht herausfinden konnte. HTH
quelle
Ich verwende im Allgemeinen Selenium, hauptsächlich, weil mir das Selenium IDE-Plugin für FireFox zum Aufzeichnen von Startpunkten für meine Tests gefällt.
quelle
Ich empfehle WebAii, da ich damit Erfolg hatte und bei der Verwendung nur wenige Griffe vorhanden waren. Ich habe Selen nie ausprobiert und ich erinnere mich nicht, dass ich WaTiN viel benutzt habe, zumindest nicht bis zu dem Punkt, an dem ich es erfolgreich zum Laufen bringen könnte. Ich kenne kein Framework, das Windows-Dialoge ordnungsgemäß behandelt, obwohl WebAii über eine Schnittstelle zum Implementieren eigener Dialoghandler verfügt.
quelle
Ich überlegte, ob ich beides verwenden sollte. Ich habe den Rekorder für Selen verwendet, um einige Tests in FF zu erstellen. Ich habe versucht, dasselbe in Watin zu tun, und festgestellt, dass der Watin-Rekorder (2.0.9.1228) für unsere Websites völlig wertlos ist . Es schien, als würde die Site in IE6 gerendert, wodurch unsere Site für die Aufzeichnung praktisch unbrauchbar wurde. IE6 wird nicht unterstützt. Ich konnte keine Möglichkeit finden, den verwendeten Browser zu ändern. Ich habe da draußen nur einen Watin Recorder gefunden. Wenn es mehr als eine gibt oder eine, die auf dem neuesten Stand gehalten wird, kommentieren Sie bitte.
Die Selenium Recorder IDE für Firefox ist einfach zu verwenden und portiert Tests nach C #. Das ist nicht so toll. Ich konnte Portierungs-Testsuiten nicht zum Laufen bringen, obwohl ich ein oder zwei Blog-Posts gelesen hatte, die Problemumgehungen hatten. Es gibt also ein bisschen Manipulation des generierten Codes. Trotzdem funktioniert es zu 90% und das ist besser als die Alternative.
Für mein Geld / meine Zeit ist Selen nur deshalb überlegen, weil es einfach ist, neue Tests zu erstellen . IE hat keine guten Entwickler-Symbolleisten, die annähernd so gut sind wie Firebug , daher mache ich meine Entwicklung zunächst in Firefox. Ein gut funktionierender Rekorder in Firefox ist also ein großer Bonus.
Mein Fazit hier war dem Demokratie-Zitat von Churchill sehr ähnlich: Selen ist die schlechteste Form automatisierter UI-Tests. Bis auf alle anderen.
quelle
Auf die Gefahr einer Tangente würde ich Axe / WatiN empfehlen. Mit Ax können Tests von 'manuellen' Testern in Excel geschrieben werden, ohne die zugrunde liegende Testsprache zu kennen. Es braucht einen 'Techniker', um die maßgeschneiderten Aktionen zu schreiben (IE. Heute musste ich eine etwas komplexe Tabellensuche und Querverweise durchführen), aber sobald sie geschrieben sind, können die Aktionen in Tests von Nicht-Technikern verwendet werden.
Ich habe auch gehört, dass das UK Government Gateway-Projekt (von dem ich glaube, dass es automatisierte 6K + -Tests gibt) kürzlich alle Tests innerhalb einer Woche von Axe / Winrunner nach Axe / Watin portiert hat !! Und viele der Tests sind ziemlich komplex - ich weiß, als ich vor ein paar Jahren daran gearbeitet habe ...
Ich betrachte Selenium im Moment, da ein potenzieller Kunde es nutzt. Aber ich schlage vor, Axe als eine Schicht über dem 'Arbeitspferd'-Werkzeug anzusehen.
quelle
Wenn Sie auf Iframes, modale Dialoge und domänenübergreifende Iframes zugreifen müssen, ist WatiN ein guter Weg. Selenium konnte nicht mit den Iframes umgehen, die Ausnahmen für das Befehlszeitlimit auslösten. WatiN Sie könnten viel mehr tun, insbesondere wenn die Website IE-spezifische Dinge wie ShowModalDialog usw. verwendet. WatiN handhabt alle sehr gut. Ich könnte sogar domänenübergreifenden Iframe-Zugriff durchführen.
quelle
Sie müssen beides tun, wenn Sie IE- und FF-Tests durchführen müssen, aber sie funktionieren nur so gut für Präsentationstests. Sie können nicht erkennen, ob ein Element leicht abweicht, nur dass die Elemente vorhanden sind. Ich kenne nichts, was das menschliche Auge für UI- / Präsentationstests ersetzen könnte, obwohl Sie ein paar Dinge tun könnten, um dies zu unterstützen (machen Sie bei jedem Schritt Screenshots der Seiten, damit Benutzer sie überprüfen können).
quelle