2013-04-17 17 views
12
  • Vorrei poter utilizzare Selenium 2 con Jenkins.Come eseguire test Selenium 2 in Jenkins

  • Sono nuovo ad entrambi quindi per favore scusate qualsiasi mia ignoranza.

  • Ho notato il seguente plug-in per jenkins HERE e l'ho installato.

  • Ho una classe di base come segue:

    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; 
        } 
        } 
    

Ho la seguente configurazione sul Selenio Plugin per Jenkins:

enter image description here

..

enter image description here

Una volta che cerco di costruire il progetto ed eseguire un test JUnit selenio Jenkins, si costruisce con successo, ma il test è di per sé fallisce. (Funziona bene quando si esegue con la formica dalla riga di comando - e cambiando il WebDriver a: driver = new FirefoxDriver();) - Utilizzando il selenio RC

Questa è l'uscita della console in Jenkins: enter image description here

EDIT: Ho appena notato è possibile archiviare il file di output .xml di Junit dopo la creazione in Jenkins. Sto ottenendo una classe non trovata eccezione? Questo è strano perché, come ho detto, si integra perfettamente quando si utilizza ant dalla riga di comando.

L'errore è il seguente:

<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> 

Grazie in anticipo per qualsiasi direzione o aiuto si può avere!

risposta

5

Penso che stavo facendo diversi errori. Per risolvere il Class Not Found Exception ho aggiunto il seguente alla formica di build.xml - (ricordate Sono Ant)

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

Questo ha ottenuto i miei classi Java compilazione.

poi ho dovuto aggiornare il server di selenio autonomo alla versione più recente (selenium-server-standalone-2.xx.x.jar) Si trova in:

jenkins_home_directory\plugins\selenium\WEB-INF\lib

scorso stavo cercando di utilizzare la configurazione sbagliata nel plug-in di selenio (stavo cercando di utilizzare una configurazione nodo personalizzato RC, quello che mi serviva era una configurazione del nodo del driver web personalizzato)

enter image description here

ANCHE. Nota: quando ru nning Selenium Server su Red Hat Ho dovuto installare e installare XVFB con il plug-in Jenkins Xvfb.

Spero che questo possa essere di aiuto agli altri in futuro! In bocca al lupo!

+0

Anch'io ho avuto un problema durante l'integrazione di Selenium 2 + Jenkins. Sono in grado di eseguire il mio test di selenio in jenkins. Ma non sono in grado di avviare il browser attraverso jenkins. Funziona come un browser senza testa. Posso sapere che tempo è possibile farlo? Se sì, per favore condividi come farlo. Per favore, condividi se hai dei bei tutorial. – Manigandan

+0

Sì, ero in grado di farlo con firefox sia su MAC OSX 10.8.3 che su Windows 7. È necessario utilizzare una configurazione del nodo del driver Web personalizzata come ho detto sopra e dovrebbe avviare il broswer se è stata impostata una griglia di selenio con firefox configurato. Non ho trovato nessun buon tutorial su questo. In bocca al lupo! – Curt

1

Beh, se la vostra intenzione è semplicemente eseguire il file di selenio senza griglia di selenio. Quindi non hai bisogno di alcun plugin. Avresti solo bisogno di un webdriver remoto.

Per avviare Selenium 2 da Jenkins il modo migliore sarebbe quello di avvolgere il processo di test nel pom.xml (se si utilizza Maven) e quindi semplicemente creare un nuovo lavoro in Maven usando "Crea un progetto maven2/3 "a Jenkins.

+0

Vorrei utilizzare Selenium Grid e non è un progetto Maven. – Curt

+0

Cambia questa riga 'driver = new RemoteWebDriver (nuovo URL (" http: // localhost: 4444/wd/hub "), DesiredCapabilities.internetExplorer());' a 'driver = new RemoteWebDriver (nuovo URL (" http:// localhost: 5555/wd/hub "), DesiredCapabilities.internetExplorer());' e prova – Amey

+0

Cambiare la porta in 5555 non funziona, e mi dispiace che fosse una vecchia schermata dove avevo IE come configurazione, ho aggiornato quella schermata nella domanda originale. – Curt

Problemi correlati