J'ai une boîte où j'exécute des tests. Il semble que Jenkins ssh in et exécute les commandes décrites dans le travail spécifique en cours d'exécution.
Ici, j'essaie d'exécuter mes tests Selenium Webdriver, mais cela me dit que j'ai des erreurs lors du lancement de Firefox. L'idée finale est d'exécuter entièrement les tests Web sur cette boîte et de prendre également des captures d'écran d'erreurs.
J'utilise selenium-java-2.25.jar, firefox 10, Linux OS.
Ce qui est drôle, c'est que je peux ssh manuellement dans la boîte, copier temporairement le cookie magique d'un autre utilisateur sur la boîte (pour obtenir un tunnel X), faire un export DISPLAY=mydisplay:1.0
, puis lancer mes tests de sélénium en utilisant ant. Et cela fera apparaître Firefox et les tests très bien.
Il y a différents threads ici qui semblent avoir exactement le même problème, et je pense que j'ai essayé la plupart d'entre eux. Voici ce que j'ai fait:
Redémarrez la boîte, reconnectez-vous avec VNC.
Placement d'un script bash dans Jenkins à exécuter avant d'exécuter les tests de sélénium. Le script bash fait simplement un
export DISPLAY=mydisplay:1.0
. Il exécute égalementxclock
. Cela fonctionne comme je peux voir xclock affiché dans le VNC.iptables ont été désactivés
firefox est correctement situé dans / usr / bin / firefox
sshd_config montre que X11Forwarding est vrai.
Le déclassement supposé de Firefox a aidé certaines personnes, mais je ne souhaite pas le faire. Webdriver devrait de toute façon prendre en charge FF 10.
Cependant, rien de ce qui précède ne résout le problème.
Il ne semble pas que le port 7055 sur localhost existe même:
netstat -an | grep 7055
- Rien ne s'imprime
Voici ce que dit mon / etc / hosts:
1 127.0.0.1 localhost.localdomain localhost
2 ::1 localhost6.localdomain6 localhost6
Peut-être que cela a quelque chose à voir avec localhost: 7055 n'existe pas? Je ne sais pas trop où aller d'ici. encore, pourquoi la sortie d'erreur indique-t-elle qu'il recherche display: :0.0
lorsque j'ai spécifié mydisplay:1.0
?
Et enfin la sortie d'erreur que je reçois:
[testng] org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng]
[testng] Error: cannot open display: :0.0
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng]
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng]
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng]
[testng] Error: cannot open display: :0.0
[testng]
[testng] at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:109)
[testng] at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:245)
[testng] at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:109)
[testng] at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:185)
[testng] at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:178)
[testng] at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:174)
[testng] at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:92)
[testng] at com.test.webtest.browser.BrowserFactory.createBrowser(BrowserFactory.java:24)
[testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[testng] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[testng] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[testng] at java.lang.reflect.Method.invoke(Method.java:601)