Saya memiliki kotak tempat saya menjalankan tes. Sepertinya Jenkins akan ssh in dan menjalankan perintah yang dijelaskan dalam pekerjaan spesifik yang sedang berjalan.
Di sini saya mencoba menjalankan tes Selenium Webdriver saya, tetapi memberitahu saya bahwa saya memiliki kesalahan dalam meluncurkan firefox. Gagasan akhirnya adalah menjalankan sepenuhnya webtests pada kotak ini, dan juga mengambil beberapa tangkapan layar dari kesalahan.
Saya menggunakan selenium-java-2.25.jar, firefox 10, OS linux.
Yang lucu adalah saya bisa memasukkan secara manual ke dalam kotak, sementara menyalin cookie ajaib dari pengguna lain di kotak (untuk mendapatkan terowongan X), melakukan export DISPLAY=mydisplay:1.0
, lalu meluncurkan tes selenium saya menggunakan semut. Dan ini akan memunculkan firefox dan tes-tesnya baik-baik saja.
Ada berbagai utas di sini yang tampaknya memiliki masalah yang sama persis, dan saya pikir saya sudah mencoba sebagian besar dari mereka. Inilah yang telah saya lakukan:
Nyalakan ulang kotaknya, masuk kembali dengan VNC.
Menempatkan skrip bash di Jenkins untuk dijalankan sebelum menjalankan tes selenium. Script bash pada dasarnya hanya melakukan
export DISPLAY=mydisplay:1.0
. Itu juga mengeksekusixclock
. Ini berfungsi karena saya dapat melihat xclock ditampilkan di VNC.iptables telah dimatikan
firefox terletak dengan benar di / usr / bin / firefox
sshd_config menunjukkan memiliki X11Forwarding sebagai true.
Seharusnya menurunkan versi firefox membantu beberapa orang, tetapi saya tidak ingin melakukan ini. Webdriver seharusnya mendukung FF 10.
Namun, tidak satupun dari yang di atas menyelesaikan masalah.
Tampaknya tidak ada port 7055 di localhost:
netstat -an | grep 7055
- Tidak ada yang dicetak
Inilah yang dikatakan / etc / hosts saya:
1 127.0.0.1 localhost.localdomain localhost
2 ::1 localhost6.localdomain6 localhost6
Mungkin ada hubungannya dengan localhost: 7055 tidak ada? Saya tidak yakin ke mana harus pergi dari sini. tetap saja, mengapa output kesalahan mengatakan sedang mencari display: :0.0
ketika saya telah menentukan mydisplay:1.0
?
Dan akhirnya output kesalahan yang saya terima:
[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)