2013-04-17 19 views
12
  • Chciałbym móc używać Selenium 2 z Jenkinsem.Jak wykonać testy Selenium 2 w Jenkinsach

  • Jestem nowy dla obu, więc proszę wybaczyć każdą z mojej ignorancji.

  • Zauważyłem następujące wtyczki dla jenkins HERE, i zainstalowałem go.

  • mam podstawową klasę następująco:

    public class BaseTestClass { 
    
    protected Properties myprops; 
    protected String baseurl; 
    protected WebDriver driver; 
    protected boolean acceptNextAlert = true; 
    protected StringBuffer verificationErrors = new StringBuffer(); 
    
    public BaseTestClass() 
    { 
        try 
        { 
         myprops = TestUtil.readProps("src/MyProps.properties"); 
         baseurl = myprops.getProperty("baseurl"); 
    
         driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), DesiredCapabilities.fireFox()); 
        } 
        catch(Exception e) 
        { 
         e.printStackTrace(); 
        }  
    } 
    
    @Before 
    public void setUp() throws Exception { 
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
    } 
    
    @After 
    public void tearDown() throws Exception { 
        driver.quit(); 
        String verificationErrorString = verificationErrors.toString(); 
        if (!"".equals(verificationErrorString)) { 
         fail(verificationErrorString); 
        } 
    } 
    
    protected boolean isElementPresent(By by) { 
        try { 
         driver.findElement(by); 
         return true; 
        } catch (NoSuchElementException e) { 
         return false; 
        } 
        } 
    
        protected String closeAlertAndGetItsText() { 
        try { 
         Alert alert = driver.switchTo().alert(); 
         if (acceptNextAlert) { 
         alert.accept(); 
         } else { 
         alert.dismiss(); 
         } 
         return alert.getText(); 
        } finally { 
         acceptNextAlert = true; 
        } 
        } 
    

I ma następującą konfigurację na selen dodatku do Jenkins:

enter image description here

..

enter image description here

Kiedy próbuję zbudować projekt i uruchomić test selenu Junit w Jenkins, to on pomyślnie się buduje, ale sam test się nie powiedzie. (Działa poprawnie, gdy uruchomiony z ant z linii poleceń - i zmieniając WebDriver do: driver = new FirefoxDriver();) - Korzystanie selenu RC

To wyjście konsola w Jenkins: enter image description here

EDIT: Właśnie zauważyłem możesz archiwizować plik wyjściowy Junit .xml po kompilacji w Jenkins. Otrzymuję wyjątek klasy nie znaleziono? Jest to dziwne, ponieważ jak powiedziałem, kompiluje się dobrze, gdy używa się ant z wiersza poleceń.

Błąd jest następujący:

<error message="com.loggedin.CCBreadCrumb" type="java.lang.ClassNotFoundException"> 
java.lang.ClassNotFoundException: com.loggedin.CCBreadCrumb at 
java.net.URLClassLoader$1.run(URLClassLoader.java:366) at 
java.net.URLClassLoader$1.run(URLClassLoader.java:355) at 
java.security.AccessController.doPrivileged(Native Method) at 
java.net.URLClassLoader.findClass(URLClassLoader.java:354) at 
java.lang.ClassLoader.loadClass(ClassLoader.java:423) at 
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at 
java.lang.ClassLoader.loadClass(ClassLoader.java:356) at java.lang.Class.forName0(Native 
Method) at java.lang.Class.forName(Class.java:186) 
</error> 

Dzięki z góry za pomoc dowolnym kierunku lub może masz!

Odpowiedz

5

Myślę, że popełniłem kilka błędów. Aby rozwiązać ten Class Not Found Exception I dodaje następujące do ant build.xml - (pamiętaj Jestem nowy Ant)

<target name="compile" depends="init" description="compile the source " >  
    <javac srcdir="src/" destdir="bin" classpathref="SeleniumCC.classpath"/> 
</target>  

Ten dostał moje klasy Java kompilacji.

Potem musiałem zaktualizować serwer selen autonomicznego do najnowszej wersji (selenium-server-standalone-2.xx.x.jar) Znajduje się w:

jenkins_home_directory\plugins\selenium\WEB-INF\lib

Ostatnio starałem się używać złą konfigurację w plug-in selenu (starałem się używać konfiguracji węzła klienta RC, co mi było potrzebne to konfiguracja węzła kierowca Custom Web)

enter image description here

również pamiętać. Kiedy ru nning Serwer Selenium w Red Hat Musiałem zainstalować i zainstalować XVFB z wtyczką Jenkins Xvfb.

Mam nadzieję, że może to być pomocne dla innych w przyszłości! Powodzenia!

+0

Ja też miałem problem podczas integracji Selenium 2 + Jenkins. Jestem w stanie przeprowadzić test selenu w jenkins. Ale nie jestem w stanie uruchomić przeglądarki przez Jnkins. Działa jak bezgłowy przeglądarka. Czy mogę wiedzieć, że pogoda jest możliwa? Jeśli tak, podziel się tym, jak to zrobić. Podziel się, jeśli masz ładne samouczki. – Manigandan

+0

Tak, udało mi się to zrobić za pomocą firefoxa zarówno na MAC OSX 10.8.3 i Windows 7. Musisz użyć niestandardowej konfiguracji węzła sterownika sieci, jak wskazałem powyżej i powinien uruchomić broswer, jeśli ustawiłeś siatkę selenu z skonfigurowany firefox. Nie mogłem znaleźć żadnych dobrych tutoriali na ten temat. Powodzenia! – Curt

1

Cóż, jeśli Twoim zamiarem jest po prostu uruchomić skrypt selenowy bez siatki Selenium. Wtedy nie potrzebujesz żadnej wtyczki. Potrzebny byłby tylko zdalny webdriver.

Aby uruchomić Selenium 2 z Jenkinsa, najlepiej byłoby zawinąć proces testowy do pliku pom.xml (jeśli używasz Mavena), a następnie po prostu utworzyć nową pracę w Maven za pomocą "Zbuduj projekt maven2/3" "w Jenkins.

+0

Chciałbym użyć siatki Selenium i nie jest to projekt Maven. – Curt

+0

Zmień ten wiersz 'driver = new RemoteWebDriver (nowy adres URL (" http: // localhost: 4444/wd/hub "), DesiredCapabilities.internetExplorer());' to 'driver = new RemoteWebDriver (nowy adres URL (" http:// localhost: 5555/wd/hub "), DesiredCapabilities.internetExplorer());' i spróbuj – Amey

+0

Zmiana portu na 5555 nie działa, i im jest przykro, że był stary zrzut ekranu, gdzie miałem IE jako konfigurację, zaktualizowałem ten zrzut ekranu w pierwotnym pytaniu. – Curt

Powiązane problemy