2013-07-18 5 views
32

Badam to od dobrych kilku godzin, ale znalazłem tylko fragmenty wielkiego obrazu. Wszędzie zakładają, że czytelnik ma już część skonfigurowanego systemu.Jak sprawić, by Jenkins uruchamiał testy Selenium WebDriver/TestNG/Java automatycznie podczas wdrażania i co Maven ma z tym wszystkim wspólnego?

Myślę, że przydatne będzie posiadanie dużego opisowego obrazu części potrzebnych do połączenia całości.

Wszyscy mówią: "używaj swoich testów selenu" i tak dalej, i tak dalej.

EDYCJA: Po pewnych badaniach dowiedziałem się, że muszę zainstalować Mavena w Jenkinsie i na moim komputerze, zainstalować wtyczkę maven dla Eclipse i tworzyć/konwertować moje projekty jako projekty Maven. Jak mogę przenieść projekty Maven w Jenkins? Czy mogę eksportować do pliku .jar, czy przenieść cały folder na serwer? Jak połączyć całość z xvfb?

Więc tutaj jest to, co wiem do tej pory

  1. Install Jenkins (mamy już, że na naszym serwerze)
  2. Instalowanie wtyczek dla Jenkins (jakie?)
  3. Install Xvfb tak prowadzone są testy w bezgłowej przeglądarce (jak to określić w pisemnym teście Java?)
  4. Zainstaluj Mavena na komputerze, jenkinsie i zaćmieniu, użyj projektów maven.
  5. Którą część folderu projektu z miejsca zaćmienia należy załadować na serwer i gdzie? Mam plik testng.xml i niektóre klasy (które są testami akutalnymi).
  6. Jak mogę powiedzieć Jenkins, aby automatycznie uruchamiał testy Selenium Webdriver po wdrożeniu i do którego pliku mam wskazywać?
  7. Jak uzyskać raporty - za pomocą TestNg lub za pomocą funkcji Jenkins?

Odpowiedz

11

Odpowiedzi, podążając za twoją listą:
Q1. Zainstaluj Jenkinsa (mamy już to na naszym serwerze)
A1. Nie potrzebne.

Q2. Zainstaluj wtyczki dla Jenkinsa (które?)
A2. O ile pamiętam, do tego celu nie jest wymagana żadna specjalna wtyczka. Jenkins powinien być w stanie wykonywać pracę maven lub mrówki, to wszystko po wyjęciu z pudełka.

Q3. Zainstaluj xvfb, aby testy były uruchamiane w przeglądarce bezgłowej (jak to określić w pisemnym teście Java?)
A3. W testach Java będziesz określał host, na którym powinna zostać uruchomiona przeglądarka (bardziej technicznie, host, który uruchamia serwer selenowy). Zwykle jest to "localhost", ale w tym przypadku będzie inaczej (generalnie nie jest dobrym pomysłem, aby uruchomić jenkins i selen w tym samym pudełku). Tak więc w twoim kodzie java wskazujesz hosta z xvfb AND z siatką selenu (która domyślnie nasłuchuje na porcie 4444). Uważa się również, że dobrą praktyką jest odseparowanie tej informacji poza kod (pliki właściwości, a także zmienne w pliku pom lub dostarczone przez jenkins).

Q4. Zainstaluj Mavena na komputerze, jenkinsie i zaćmieniu, użyj projektów maven.
A4. Maven powinien zostać zainstalowany na hoście Jennkins (i na twojej lokalnej maszynie, tej, której używasz do rozwijania testów).

Q5.Którą część folderu projektu z miejsca pracy w eclipse należy przesłać na serwer i gdzie? Mam plik testng.xml i niektóre klasy (które są testami acutal)
A5. Twój kod znajduje się pod kontrolą wersji (prawda?), Więc wskaż Jenkins, aby pobrać projekt (następnie skompiluj kod, skompiluj testy, uruchom testy ...). Odpowiedź brzmi "przynajmniej cały kod potrzebny do skompilowania testów i ich uruchomienia". Jenkins buduje Twój projekt ze źródła, a wykonanie testu to tylko faza tego procesu.

Q6. Jak mam powiedzieć Jenkinsowi, aby automatycznie uruchamiał testy Selenium Webdriver po wdrożeniu i do jakiego pliku mam wskazywać?
A6. zastosuj fazę "testu integracji" obsługiwaną przez wtyczkę surefire.

Q7. Jak uzyskać raporty - za pośrednictwem TestNg lub za pomocą funkcji Jenkins?
A7. Jenkins wyświetli (i rozpowszechni, jeśli tak skonfigurowano) raporty generowane przez testng.

+0

Dziękujemy za wiadomość! 2. Czy nie powinienem zainstalować wtyczki testng w Jenkins, jeśli używam testng z WebDriverem? 3. W moim kodzie Java nie określono serwerów ani portów, tutaj jest to, co określiłem: 'Profil ProfilesIni = new ProfilesIni(); FirefoxProfile ffprofile = profile.getProfile ("SELENIUM"); sterownik = nowy FirefoxDriver (ffprofile); ' Czy powinienem dodać coś o hostach i portach, a jeśli" tak "- co dokładnie? 5. Nie wiem, czym jest "kontrola wersji" :(. Mój kod jest umieszczany w folderze obszaru roboczego o nazwie "testingMyApp" i tam są wszystkie pliki. Jest na moim dysku c. –

+0

6. czym jest ta faza i co to jest wtyczka "surefire"? –

+0

2. Wtyczka służy do drukowania wykresów wyników testu, a nie do faktycznego wykonania testu, a nie musi. 3. http://docs.seleniumhq.org/docs/03_webdriver.jsp WebDriver driver = new FirefoxDriver(); driver.get ("http://www.google.com"); 5. To źle, raczej zacznij czytać, użyj słów kluczowych "git" i "subversion" jako słów kluczowych. 6. Ta sama sugestia co do plug-in-a-plug-in. Szybki powrót do googlowania http://176.34.122.30/blog/2008/09/17/automated-integration-testing-with-selenium-maven-and-jetty/, wygląda na to, str roviding some good maven xml for surefire + selen. – patrungel

4

Nawet ja zorientować się ten sam problem, kiedy zacząłem konfigurowania mojego WebDriver projekt na Maven projektu i spróbuj skonfigurować że na Jenkins I muszą przejść przez wiele tutorialu i pisać w internecie. Więc chciałem napisać własne. Daj mi znać, jeśli to pomaga
http://qtp-help.blogspot.in/2013/09/webdriver-with-maven.html

0

Jeżeli chcesz poinformować Jenkins uruchomić build za każdym razem, kiedy wdrożyć wprowadź następujące ustawienia w projekcie Jenkins

Jenkins Build Settings

W ten sposób powiedz Jenkinsowi, aby sprawdzał repozytorium pod kątem aktualizacji co 15 minut, a jeśli zostanie znaleziona aktualizacja, Jenkins automatycznie uruchomi kompilację. Możesz zmieniać czas elastycznie, jak potrzebujesz.

Powiązane problemy