2008-09-18 18 views
14

Czy ktoś znalazł sposób na uruchomienie testów Selenium RC/Selenium Grid, napisanych w języku C# równolegle?Czy ktoś znalazł sposób, aby równolegle uruchomić testy C# Selenium RC?

Mam obecnie spory zestaw testowy napisany przy użyciu sterownika C# Selenium RC. Uruchomienie całego zestawu testów zajmuje niewiele ponad godzinę. Zwykle nie muszę uruchamiać całego pakietu, więc nie było to problemem do tej pory, ale jest to coś, co chciałbym móc robić bardziej regularnie (np. Jako część automatycznej kompilacji)

Ostatnio spędziłem trochę czasu, grając w projekt Selenium Grid, którego głównym celem jest umożliwienie równoległego wykonywania testów. Niestety, wygląda na to, że wtyczka TestDriven.net, której używam, uruchamia testy seryjnie (tj. Jeden po drugim). Zakładam, że NUnit wykonałby testy w podobny sposób, chociaż tak naprawdę tego nie testowałem.

Zauważyłem, że bety NUnit 2.5 zaczynają mówić o uruchomieniu testów równolegle z pNUnit, ale nie do końca się zapoznałem z projektem, aby wiedzieć na pewno, czy to zadziała.

Inną opcją, którą rozważam jest oddzielenie mojego zestawu testów do różnych bibliotek, co pozwoliłoby mi uruchomić test z każdej biblioteki jednocześnie, ale chciałbym tego uniknąć, jeśli to możliwe, ponieważ nie jestem przekonany, że jest to poprawne powód do dzielenia zestawu testów.

Odpowiedz

0

Nie wiem, jeśli nie liczy się odpowiedź, odpowiedź, ale powiedziałbym, że zbadali wszystko i naprawdę przyszedł z 2 możliwych rozwiązań ...

  • testowy Suite biegnie równolegle testy
  • Podział pakiet testowy się

Jestem ze stratą dla każdego coś innego.

1

Napisałem PNUnit jako rozszerzenie dla NUnit prawie trzy lata temu i cieszę się, że został ostatecznie zintegrowany z NUnit.

Używamy go codziennie do testowania naszego oprogramowania w różnych dystrybucjach i kombinacjach. Wystarczy podać przykład: mamy zestaw testów ciężkich (długich) z około 210 testami. Każdy z nich konfiguruje serwer i uruchamia klienta w linii poleceń, wykonując kilka operacji (do 210 scenariuszy).

Cóż, używamy tego samego zestawu do uruchamiania testów na różnych kombinacjach Linuksa i odmianach okien, a także takich połączonych, jak serwer Windows z klientem linuksowym, Windows XP, Vista, kontroler domeny, poza domeną i wkrótce. Używamy tych samych plików binarnych, a następnie po prostu "agenci" są uruchamiani w kilku polach.

Używamy tej samej platformy do: równoważenia obciążenia testu obciążenia -> Mam na myśli, bieganie w porcjach szybciej. Równoczesne uruchamianie kilku kombinacji i to, co myślę, jest bardziej interesujące: definiowanie scenariuszy dla wielu klientów: dwóch klientów czeka na uruchomienie serwera, następnie uruchamia operacje, synchronizuje się ze sobą i tak dalej. Używamy także PNUnit do testowania obciążenia (setki skrzyń na jednym serwerze).

Tak więc, jeśli masz jakiekolwiek pytania dotyczące konfiguracji (co nie jest proste, obawiam się), nie wahaj się zapytać.

Również napisałem artykuł o tym dawno temu na DDJ: http://www.ddj.com/architect/193104810

Nadzieja pomaga

5

pracuję na tej samej rzeczy i odkryli Gallio ostatni może prowadzić MbUnit testy równolegle. Możesz je uruchomić na pojedynczym koncentratorze Selenium Grid, który może mieć kilka serwerów zdalnego sterowania.

Używam latest nightly from Gallio, aby uzyskać ParallelizableAttribute i DegreeOfParallelismAttribute.

Coś, co zauważyłem, to nie można polegać na TestSet i TestTeardown izolować równoległe testy. Musisz test, aby wyglądać tak:

[Test] public void Foo(){ 
    var s = new DefaultSelenium("http://grid", 4444, "*firefox", 
           "http://server-under-test"); 
    s.Start(); 
    s.Open("mypage.aspx"); 
    // Continue 
    s.Stop(); 

} 

Korzystanie atrybut [SetUp] rozpocząć sesję selenu powoduje testy nie dostać sesję zdalną z s.Start().

+0

Dzięki za odpowiedź. Na razie przeniosłem się z tego projektu, ale kiedy do niego wrócę, dam ci rozwiązanie! –