WatiN czy selen? [zamknięte]

Wkrótce zacznę kodować zautomatyzowane testy naszej prezentacji. Wydaje się, że każdy poleca WatiN i Selen . Które wolisz do automatycznego testowania ASP.NET formularze internetowe? Które z tych produktów działają lepiej dla Ciebie?

Na marginesie zauważyłem, że WatiN 2.0 jest w CTP od marca 2008, czy to jest powód do zmartwień?

Author: Jonas Söderström, 2009-01-06

15 answers

Chcę tylko powiedzieć, że obecnie ciężko pracuję nad wydaniem Beta WatiN 2.0 gdzieś w Q1 2009. Będzie to poważne uaktualnienie do obecnych wersji CTP 2.0 i w zasadzie daje taką samą funkcjonalność do automatyzacji Firefoksa i IE jak Wersja 1.3.0 oferuje do automatyzacji IE.

Więc nie ma obaw.

Mam nadzieję, że pomoże to w dokonaniu wyboru Jeroen van Menen Lead dev WatiN

 108
Author: Jeroen van Menen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-06 20:21:47

Jeśli chcesz dokonać poważnej inwestycji długoterminowej w ramy, które będą nadal ulepszane i wspierane przez społeczność, Selenium jest prawdopodobnie najlepszym rozwiązaniem. Na przykład, właśnie natknąłem się na tę informację na blogu Matta Raible ' a:

Od piątku Google ma ponad 50 zespołów przejechanie ponad 51 tys. testów dziennie na wewnętrzna Farma selenu. 96% z nich testami zajmuje się selen RC i Maszyny rolnicze prawidłowo. Inne 4% są częściowo spowodowane błędami RC, częściowo do testowania błędów, ale izolowanie przyczyna może być trudna. Selen ma zostały przyjęte jako podstawowa technologia do testowania funkcjonalnego sieci aplikacje w Google. To jest dobre wieści.

Byłem też ostatnio na jednym z spotkań Selenium i dowiedziałem się, że Google wkłada poważne zasoby w ulepszanie Selenium i integrację go z WebDriver, który jest zautomatyzowanym narzędziem do testowania opracowanym przez Simona Stewarta. Jedną z głównych zalet WebDriver jest to, że kontroluje samą przeglądarkę, a nie działa w przeglądarce jako aplikacja Javascript, co oznacza, że główne przeszkody, takie jak problem" tego samego pochodzenia", nie będą już problemem.

 58
Author: Mark Erdmann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-22 22:41:29

Przetestowaliśmy oba i zdecydowaliśmy się na WaTiN. Jak zauważyli inni, Selenium ma kilka fajnych funkcji, których nie można znaleźć w WaTiN, ale napotkaliśmy problemy z działaniem selenu i gdy już to zrobiliśmy, było zdecydowanie wolniejsze podczas uruchamiania testów niż WaTiN. Jeśli dobrze pamiętam, problemy z konfiguracją, na które wpadliśmy, wynikały z faktu, że Selenium miało oddzielną aplikację do sterowania rzeczywistą przeglądarką, w której WaTiN robił wszystko w procesie.

 37
Author: Cole Shelton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-27 18:38:48

Próbowałem ich obu i oto moje pierwsze myśli...


WatiN

The Good

  • szybka realizacja.
  • narzędzia do tworzenia skryptów są niezależnymi projektami; są dwa, które znam: Wax (oparty na Excelu, hostowany na CodePlex) i WatiN Test Record (hostowany na SourceForge). Ani nie jest tak wytrzymały jak selen IDE.
  • Bardzo dobra obsługa IE. Może dołączać i odłączać się od uruchomionych instancji. Może uzyskać dostęp do natywnego klamki okienne itp. (Patrz przykład skryptu poniżej).
  • NuGet spakowany, łatwy do uruchomienia w środowisku. NET, W Stylu Visual Studio i na bieżąco.

The Bad

    [11]}Googling WatiN (watin xyz) często powoduje, że Google zaleca zamiast tego "watir xyz". Nie ma tam takiej dokumentacji.
  • co tam jest (dokumentacja), to jest mylące; na przykład: na początku blush wydawałoby się, że nie ma natywnego wsparcia dla selektorów CSS. Szczególnie ponieważ istnieją biblioteki rozszerzeń, takie jak 'Watincsselectorextensions' i wiele artykułów na blogu o alternatywnych technikach (takich jak wstrzykiwanie jQuery/sizzle na stronę). Na Stack Overflow znalazłem komentarz Jeroen van Menen , który sugeruje, że istnieje natywne wsparcie. Przynajmniej lead-developer spędza czas na przepełnieniu stosu:) [12]}
  • brak natywnej obsługi XPath.
  • brak gotowego wykonania zdalnego / wykonania opartego na siatce.

Przykład Skryptu (C#). Ty nie da się tego zrobić z selenem (przynajmniej Nie wiem):

class IEManager
{
    IE _ie = null;
    object _lock = new object();

    IE GetInstance(string UrlFragment)
    {
        lock (_lock)
        {
            if (_ie == null)
            {
                var instances = new IECollection(true);  //Find all existing IE instances
                var match = instances.FirstOrDefault(ie=>ie.Url.Contains(UrlFragment));
                _ie = match ?? new IE();
                if (match==null)  //we created a new instance, so we should clean it up when done!
                    _ie.AutoClose = true;
            }
        }

        return _ie;
    }
}

Selen

  • wolniejszy niż WatiN (zwłaszcza, że trzeba utworzyć nowy proces).
  • Wbudowana obsługa selektorów CSS/XPath.
  • selen IDE jest dobry (nie można powiedzieć świetny, ale jest najlepszy w klasie!).
  • wydaje się bardziej Java-owski niż. NET-owski...ale tak naprawdę jest to język programowania agnostyczny; wszystkie polecenia są wysyłane do 'sterownika' poza procesem. Kierowca jest naprawdę proces "host" dla instancji przeglądarki. Cała komunikacja musi być serializowana w/wy przez granice procesu, co może wyjaśniać problemy z szybkością w stosunku do WatiN.
  • procesy Odsprzęgane - "sterownik" i "sterowanie" oznaczają większą wytrzymałość, większą złożoność itp., ale także łatwiejsze tworzenie siatek / rozproszonych środowisk testowych. Bardzo by się podobało, gdyby mechanizm "dystrybucji" (tj. komunikacja między sterownikiem i kontrolą) był w WebSphere lub innym istniejącym, solidnym, menedżer kolejki komunikatów.
  • Obsługa chrome i innych przeglądarek po wyjęciu z pudełka.

Mimo wszystko, w końcu poszedłem z WatiN; głównie zamierzam pisać małe aplikacje do skrobania ekranu i chcę używać LINQPad do rozwoju. Dołączanie do zdalnej instancji IE (takiej, której sam nie odradzałem) jest dużym plusem. Mogę bawić się w istniejącym przypadku...następnie uruchom trochę skryptu...potem jeszcze raz itp. Trudniej to zrobić z selenem, choć przypuszczam, że " pauzuje" może być osadzony w skrypcie, w którym to czasie mogłem bawić się bezpośrednio z przeglądarką.

 30
Author: Grynn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:41

Największa różnica polega na tym, że Selenium ma wsparcie dla różnych przeglądarek (nie tylko IE czy FF, zobacz http://seleniumhq.org/about/platforms.html#browsers .

Ponadto Selenium posiada serwer zdalnego sterowania ( http://seleniumhq.org/projects/remote-control/), co oznacza, że nie musisz uruchamiać przeglądarki na tym samym komputerze, na którym działa kod testowy. Możesz zatem przetestować swoją aplikację internetową. na różnych platformach OS.

Ogólnie polecam używanie Selen. Używałem WatiN kilka lat temu, ale nie byłem zadowolony z jego stabilności (prawdopodobnie już się poprawił). Największym plusem dla Selenium jest dla mnie fakt, że można przetestować aplikację internetową. w różnych przeglądarkach.

 18
Author: Igor Brejc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-28 09:08:47

Żadne z nich. Użyj Coypu. Zawiera selen. Znacznie trwalsze. https://github.com/featurist/coypu

Update Oliver, masz rację. Dlaczego jest lepiej? Osobiście uważam, że sterownik Selenium dla IE jest szczególnie delikatny - istnieje wiele "standardowych" WYJĄTKÓW sterowników, które ponownie znalazłem podczas jazdy Selenium do testów jednostkowych na ciężkich stronach ajax.

Czy wspomniałem, że chcę pisać skrypty w c# jako projekt testowy ? Akceptacja Tak Testy w ramach ciągłego wdrażania kompilacji.

Cóż Coypu radzi sobie z powyższym. Jest to owijarka do selenu, która umożliwia testowanie urządzeń takich jak,

browser.Visit("file:///C:/users/adiel/localstuff.htm")
browser.Select("toyota").From("make");
browser.ClickButton("Search");

... który uruchomi (konfigurowalną markę) przeglądarkę i uruchomi skrypt. Działa świetnie z obszarami zasięgu i jest bardzo rozciągliwy.

Jest więcej przykładów na GitHub i jak wspomina Olvier poniżej, wideo Adriana jest doskonałe. Myślę, że jest to najlepszy sposób, aby prowadzić testy oparte na przeglądarce w świecie. Net i stara się śledzić It ' s Ruby imiennik capybara

 16
Author: penderi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-21 17:01:55

Użyłem obu, oba wydają się działać ok. Mój ukłon jest dla Selenium, ponieważ wydawało się, że ma lepsze wsparcie Ajax. Wierzę, że WaTiN dojrzał, choć od ostatniego użyłem go, więc powinien mieć to samo.

Najważniejsze byłoby to, w jakim środowisku programistycznym chciałbyś być? Selenium i Watin mają rejestratory, ale Selenium jest w przeglądarce, a watin w visual studio. + i - ' S dla obu z nich.

 12
Author: rball,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-06 17:19:19

Do tej pory jesteśmy czystym sklepem Microsoft dostarczającym rozwiązania dla przedsiębiorstw i poszliśmy z WatiN. To może się zmienić w przyszłości.

Jako nowsze Źródło:

Microsoft wydrukował w MSDN Magazine 12/2010 podkład BDD z połączeniem SpecFlow z WatiN (cool BDD-Behavior Driven Development). Jej autor Brandon Satrom (Msft Developer Evangelist) również opublikował w grudniu 2010 Webcast wideo nauczanie w szczegółach 1: 1 jego powyżej wyniki.

Istnieje Whitepaper od 04/2011 o wspieraniu ATDD/BDD za pomocą Speclog, SpecFlow i Team Foundation Server (Acceptance Test Driven Development/Behavior Driven Development) od Christian Hassa, którego zespół zbudował SpecFlow.

 6
Author: Henry99,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-01 14:54:36

Używam Watin, ale nie używałem selenu. Mogę powiedzieć, że szybko zacząłem działać na Watin i miałem kilka lub żadnych problemów. Nie mogę wymyślić niczego, co chciałem zrobić, czego nie mogłem z tym rozgryźć. HTH

 5
Author: JasonS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-06 17:23:09

Generalnie używam Selenium, głównie dlatego, że lubię wtyczkę Selenium IDE dla Firefoksa do nagrywania punktów wyjściowych do moich testów.

 4
Author: Steven Robbins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-06 17:20:18

Polecam WebAii ponieważ z tym miałem jakiś sukces i podczas korzystania z niego moje narzekania były nieliczne. Nigdy nie próbowałam selenu i nie pamiętam, żebym za bardzo używała WaTiN, przynajmniej nie do tego stopnia, że udało mi się go skutecznie uruchomić. Nie znam żadnego frameworka, który zajmuje się oknami dialogowymi Windows, chociaż WebAii ma interfejs do implementacji własnych okien dialogowych.

 4
Author: Mark Cidade,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-23 21:51:14

Rozważałem użycie obu. Użyłem rejestratora dla Selenium do zbudowania kilku testów w FF. Próbowałem zrobić to samo w Watin i okazało się, że Watin Recorder (2.0.9.1228)jest całkowicie bezwartościowy dla naszych stron. Okazało się, że strona jest w IE6 - czyniąc naszą stronę efektywnie bezużyteczną do nagrywania. Nie wspieramy IE6. Nie mogłem znaleźć sposobu, aby zmienić przeglądarkę, której używa. Znalazłem tylko jeden Magnetofon Watin. Jeśli jest więcej niż jeden, lub jeden, który jest utrzymywany do Data, proszę o komentarz.

Selenium Recorder IDE dla Firefoksa jest prosty w obsłudze i przenosi testy do C#. Nie jest w tym dobry. Nie mogłem przenieść pakietów testowych do pracy, pomimo przeczytania posta na blogu lub dwóch, które miały obejścia. Więc jest trochę manipulacji wygenerowanym kodem. Mimo to działa w 90% i to jest lepsze niż alternatywa.

Za moje pieniądze/czas, selen jest lepszy tylko dla ułatwienia budowania nowych testów . IE nie ma dobrego programisty paski narzędzi, które są w pobliżu tak dobre jak Firebug, więc robię mój rozwój w Firefoksie na początek, więc posiadanie dobrze działającego rejestratora w Firefoksie to ogromny bonus.

Mój wniosek był podobny do tego demokracja cytat Churchilla: selen jest najgorszą formą zautomatyzowanego testowania UI. Poza wszystkimi innymi.

 4
Author: jcollum,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-21 17:51:48

Ryzykując zejście na styczną, polecam Axe / WatiN. Axe umożliwia pisanie testów w Excelu przez Testerów "manualnych" bez znajomości podstawowego testu "języka". Do napisania akcji na zamówienie potrzebny jest "Technik"(np. Dzisiaj musiałem zrobić nieco skomplikowane wyszukiwanie tabeli i odsyłacze), ale raz napisane akcje mogą być używane w testach przez testerów nie-technicznych.

Słyszałem też, że projekt brytyjskiej bramy rządowej (który moim zdaniem ma zautomatyzowane testy 6K+ testy) niedawno przeportowali wszystkie swoje testy z Axe / Winrunner do Axe / Watin w ciągu tygodnia!! I wiele testów jest dość skomplikowanych-wiem, jak pracowałem nad nim kilka lat temu...

W tej chwili patrzę na selen, ponieważ potencjalny klient go używa. Ale proponuję spojrzeć na Topór jako warstwę nad narzędziem "koń pracy".

 3
Author: Mat W,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-08 07:19:50

Jeśli masz dostęp do ramek iframes, modalne okna dialogowe i cross domain iframes WatiN jest droga do zrobienia. Selenium nie poradziĺ 'sobie z ramkami iFrame, ktĂłre rzucaĺ' y wyjÄ ... tki commandtimeout. WatiN można zrobić dużo więcej rzeczy, zwłaszcza jeśli strona używa IE konkretne rzeczy jak ShowModalDialog itp.. WatiN radzi sobie z nimi bardzo dobrze. Mógłbym nawet zrobić cross domain iframe access.

 3
Author: kesavkolla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-13 22:00:01

Będziesz musiał zrobić oba, jeśli musisz zrobić testowanie IE i FF, ale będą one działać tylko tak dobrze do testowania prezentacji. Nie mogą wykryć, czy jeden element jest lekko wyłączony, tylko że elementy są obecne. Nie wiem nic, co może zastąpić ludzkie oko do testowania UI / prezentacji, chociaż możesz zrobić kilka rzeczy, aby mu pomóc(zrób zrzuty ekranu stron na każdym kroku, aby użytkownicy mogli je przejrzeć).

 -1
Author: StingyJack,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-06 17:20:57