2016-09-20 1 views
1

Ich versuche, die Build- und Implementierungsfunktionen von Bamboo zu verwenden, um automatisierte Selenium-Tests mit meinem Projekt auszuführen.Selenium-Tests hängen beim Versuch, mit Bamboo ausgeführt zu werden

Wir verwenden derzeit einen Maven-Task zum Erstellen und Ausführen von regulären JUNIT-Tests. Es ist geplant, einen weiteren Maven-Task zum Ausführen der Selenium-Tests zu verwenden, nachdem der Code erfolgreich auf dem Server bereitgestellt wurde. Im Moment scheint alles lokal gut zu laufen, aber wenn Bambus versucht, die Selenium-Tests durchzuführen, scheint es auf unbestimmte Zeit zu hängen. Leider habe ich keinen Fernzugriff auf den Server, um es aus erster Hand zu sehen, aber ich weiß, dass es ein Microsoft-Server ist, der mit der Betriebssystemversion läuft: Windows 2012 R2 64-Bit. Ich weiß auch, dass der Server die Java-Version "1.8.0_101" verwendet, was mit meiner lokalen Konfiguration übereinstimmt. Ich habe ein Beispiel für den Code eingefügt, den ich unten ausführe.

import java.util.concurrent.TimeUnit; 

import org.junit.Before; 
import org.junit.Test; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.ie.InternetExplorerDriver; 
import org.openqa.selenium.remote.DesiredCapabilities; 

public class SeleniumTestExample { 
WebDriver driver; 
@Before 
public void setup(){ 
    System.setProperty("webdriver.ie.driver", "src/test/resources/IEDriverServer32bit.exe"); 
    DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer(); 
    ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); 
    driver = new InternetExplorerDriver(null, ieCapabilities); 
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
    driver.get("https://google.com"); 
} 

@Test 
public void printPageTitle(){ 
    System.out.println("Title of Page is: " + driver.getTitle()); 
    driver.quit(); 
} 

}

Wenn durch Bambus ausgeführt, der einzige Ausgang in den Protokollen die Linien ...

Schritte InternetExplorerDriver Server (32-Bit)

2.53.1.0

Anhören am Port 8080

Nur lokale Verbindungen sind zulässig

+0

wo versuchen Sie, Ihre Tests auf CI (Bambus) Server auszuführen? – user1207289

+0

Ja, ich versuche diese Tests auf einem Bambus-Server auszuführen, aber könnten Sie etwas mehr auf Ihre Frage eingehen? – NB987654321

Antwort

0

Für die Kontrolle Ihrer Tests sollten CI- oder Bamboo-Server verwendet werden. Sie sollten nicht versuchen, Ihre Tests auf einem CI-Server auszuführen. Das Problem, das Sie haben, liegt wahrscheinlich daran. Sie versuchen, den CI-Server als Ihren lokalen Computer zu verwenden, da er nicht wie Ihr lokaler Computer antwortet. Stattdessen sollten Sie in Ihrem Setup selenium grid verwenden, um eine Remoteverbindung zu einem Computer herzustellen, indem Sie Hub und Knoten verwenden. Möglicherweise müssen Sie auch remote webdriver verwenden. Werfen Sie einen Blick auf this post

0

Ich habe dies mit TeamCity gesehen, in diesem Fall der IE sagt Ihnen, dass seine ausführbare Datei nur Verbindungen von der lokalen Maschine akzeptiert. Selenium org nach

Der HTTP-Server durch den IEDriverServer.exe gestartet setzt eine Zugriffssteuerungsliste nur Verbindungen vom lokalen Rechner übernehmen, und nicht zulässt, eingehende Verbindungen von entfernten Rechnern. Gegenwärtig kann dies nicht geändert werden, ohne den Quellcode zu IEDriverServer.exe zu ändern. Verwenden Sie zum Ausführen des Internet Explorer-Treibers auf einem Remotecomputer den eigenständigen Java-Remote-Server in Verbindung mit dem Gegenstück zu RemoteWebDriver Ihrer Sprachbindung.

So wird zuerst ein chromedriver über die durch einen param wie so laufen:

chromedriver --whitelisted-ips="" 

Dadurch werden alle IP-Adressen grundsätzlich die weiße Liste, nicht immer eine ideale Lösung natürlich. Aber zeigt Ihnen, dass Ihre Tests mit dieser CI-Konfiguration ausgeführt werden können. Das nächste, was Sie suchen, sind Ihre Benutzerprivilegien. Bitten Sie Ihren Administrator, Ihnen mehr Berechtigungen zu erteilen, um Ihre Arbeit zu erledigen. Beachten Sie, dass der geschützte Modus von IE einige zusätzliche Änderungen von Ihrem Benutzer erfordern kann. Wenn nichts davon hilft, betrachten Sie Selenium grid mit IE-Knoten.

0

Versuchen der Zeile im Code, um loszuwerden:

System.setProperty("webdriver.ie.driver", "src/test/resources/IEDriverServer32bit.exe"); 

Zu allererst es sagt, wo Selen für die WebDriver für IE aussehen sollte. Da der Bamboo Server ein Windows-Rechner ist, müssen Sie ihn mit dem absoluten Pfad der Datei einrichten, wie "C: \ test \ webdriver \ IEDriverServer32bit.exe".

Zweitens könnte die Eigenschaft mithilfe von Umgebungsvariablen der Bamboo-Task festgelegt werden.

Drittens, wenn Sie es im Fluge definieren möchten, können Sie die Eigenschaft in pom.xml als definieren:

<webdriver.ie.driver.path> C:\test\webdriver\IEDriverServer32bit.exe </webdriver.ie.driver.path>

und in einer Systemeigenschaft mit Hilfe von Maven-surefire- verwenden Plugin.

dann können Sie Test mit dem Befehl

mvn test -Dwebdriver.ie.driver.path=C:\test\webdriver\IEDriverServer32bit.exe

mit dem, was Weg Sie wollen laufen.

Verwandte Themen