2016-12-15 11 views
1

ausführen Ich möchte Selenium-Tests im TestNG-Framework mit Jenkins geschrieben ausführen.Wie Selenium Tests mit TestNG-Framework und Jenkins

Der Befehl in jenkins Job (Freestyle-Projekt) konfiguriert:

java -cp J:\taf\testng\*;J:\taf\workspace\TestNGExamples\bin;J:\automation\* org.testng.TestNG J:\taf\workspace\TestNGExamples\testng1.xml 

Hinweis: für -cp argument, um die Verzeichnispfade gegeben testng jar, test classes, and selenium jar

Wenn ich den Job (Build Now Option) ausführen, wird es immer schlug auf Session-Aktivität von Selenium erstellen und den Fehler geben.

Hinweis:

Der gleiche Befehl lief erfolgreich wenn sie von der Kommandozeile lief.

Fehlerprotokoll von Konsolenausgabe: (jenkins)

Started by user Naveen 
Building in workspace C:\Program Files (x86)\Jenkins\workspace\TestNG Example 
[TestNG Example] $ cmd /c call C:\Windows\TEMP\hudson2261889395366550414.bat 

C:\Program Files (x86)\Jenkins\workspace\TestNG Example>java -cp J:\taf\testng\*;J:\taf\workspace\TestNGExamples\bin;J:\automation\* org.testng.TestNG J:\taf\workspace\TestNGExamples\testng1.xml 
[TestNG] Running: 
    J:\taf\workspace\TestNGExamples\testng1.xml 

1481801204206 geckodriver INFO Listening on 127.0.0.1:1387 
Dec 15, 2016 4:56:44 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end 
1481801204827 mozprofile::profile INFO Using profile path C:\Windows\TEMP\rust_mozprofile.KDz9DWYpWQAM 
1481801204829 geckodriver::marionette INFO Starting browser C:\Program Files\Mozilla Firefox\firefox.exe 
1481801204831 geckodriver::marionette INFO Connecting to Marionette on localhost:7795 
1481801206090 Marionette INFO Listening on port 7795 

###!!! [Parent][MessageChannel] Error: (msgtype=0x2E007D,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv 

JavaScript error: resource://app/modules/ContentCrashHandlers.jsm, line 75: TypeError: browser.permanentKey is not a non-null object 

###!!! [Parent][MessageChannel] Error: (msgtype=0x2E007D,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv 

Dec 15, 2016 4:56:47 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
INFO: Detected dialect: W3C 

###!!! [Parent][MessageChannel] Error: (msgtype=0x2E007D,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv 

Nach der Testklasse ist:

import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.testng.annotations.AfterMethod; 
import org.testng.annotations.BeforeMethod; 
import org.testng.annotations.Test; 

    public class SeleniumTests { 

     @Test 
     public void test1(){ 
      WebDriver driver = new FirefoxDriver(); 
      driver.get("http://www.google.co.in"); 
      driver.quit(); 
     } 

    } 

Im Anschluss an die testng1.xml:

<?xml version="1.0" encoding="UTF-8"?> 

<suite name="Default suite"> 
    <test verbose="2" name="Default test"> 
    <classes> 
     <class name="SeleniumTests"/> 
    </classes> 
    </test> <!-- Default test --> 
</suite> <!-- Default suite --> 

Umwelt Details:

  1. Jenkins - 2.19.4 (als Windows-Dienst)
  2. Java - 1.8
  3. TestNG - 6.8.5
  4. Selen - 3.0.1
  5. Firefox - 51
  6. geckodriver - 0.11. 1
  7. Os - Windows 7 - 64 bit
+0

Welches Betriebssystem verwenden Sie? Linux? Windows? – mackowski

+0

Windows OS - 7 - 64 Bit –

+0

Für ChromDriver wurde kein Problem beobachtet. aber für IEDriver, habe 'org.openqa.selenium.NoSuchWindowException: Kann Browser nicht erhalten (ACHTUNG: Der Server hat keine Stacktrace-Informationen zur Verfügung gestellt)' –

Antwort

2

Dies ist kein TestNG- oder Selenium-Problem. Dieser Fehler tritt manchmal auf, wenn Jenkins als Windows-Dienst installiert wird. Installieren Sie Jenkins im Servlet-Container wie Tomcat oder GlassFish und es sollte helfen.

2

Wievorgeschlagen 210, installierte Jenkins in tomcat als webapp (anstelle von Windows Service) und löste das Problem.

Referenz:

  1. https://wiki.jenkins-ci.org/display/JENKINS/Tomcat

Hinweis: Wenn wir die Tests ausgeführt werden, wenn Jenkins as Windows Service eingesetzt, wird kein Browser GUI gestartet/beobachtet. Jenkins inside tomcat, Browser-GUI wird gestartet.

Verwandte Themen