XVFB dan Selenium di EC2 - Tidak dapat melihat UI Chrome di VNC Viewer
Tes tanpa kepala Selenium saya dipicu dari server Jenkins dan dijalankan di EC2-Ubuntu. Saya ingin melihat pengujian langsung di Chrome jadi saya menginstal plugin Xvfb di Jenkins.
Pada EC2 saya menginstal Xvfb. Ketika saya mulai menjalankan build, pengujian saya mulai dijalankan dan saya melihat log di bawah ini:
Xvfb /usr/bin/Xvfb :1 -fbdir /var/lib/jenkins/xvfb
27-..fbdir13700092919317283985
Parsing POMs
Established TCP socket on 30810
dan saya melihat tes berjalan dengan sukses.
Sekarang saya melakukan SSH ke EC2 dari terminal Mac oleh
ssh -L 5901:localhost:5901 [email protected]
Kemudian saya mengeksekusi:
qa_user@jenkins-it:~$ export DISPLAY=: 30810` (Port number from Jenkins logs above) qa_user@jenkins-it:~$ vncserver "$DISPLAY" -geometry 1280x1024 New 'X' desktop is jenkins-it: 30810 Starting applications specified in /home/qa_user/.vnc/xstartup Log file is /home/qa_user/.vnc/jenkins-it: 30810.log qa_user@jenkins-it:~$ x11vnc --listen 0.0.0.0 -rfbport 5901 -display : 30810
Ini memulai XVFB dan saya melihat:

Sekarang ketika saya terhubung dari Mac ke localhost: 5901 dari VNCviewer, saya dibawa ke desktop Ubuntu.

Tapi saya tidak melihat chrome terbuka meskipun pengujian sedang berjalan dan saya melihat log pengujian di Jenkins.
Saya juga dapat menggunakan Chrome melalui VncViewer.

Apa yang kulewatkan di sini? Saya mencoba banyak instruksi pemasangan Xvfb dan telah mencoba melakukannya dengan benar sejak sebulan sekarang. Berikut beberapa pertanyaan yang saya ajukan:
https://askubuntu.com/questions/1262925/run-selenium-tests-on-ec2-with-gui?noredirect=1#comment2139716_1262925
Cara melihat tes Selenium tanpa kepala langsung pada EC2-Ubuntu menggunakan vncserver dan xvfb
https://sqa.stackexchange.com/questions/45376/looking-for-a-solution-to-run-selenium-tests-on-ec2-with-gui/45380#45380
Jauh sampai sini dan sekarang Stackoverflow adalah pilihan terakhir saya. Tolong bantu.
Jawaban
Saya menemukan solusi untuk ini sendiri. Untuk siapa saja yang mengalami masalah yang sama:
Apa yang saya lakukan salah adalah saya digunakan driver = new ChromeDriver(options);
dalam kode saya, bukandriver = new RemoteWebDriver(new URL("http://my.aws.ip:4444/wd/hub"), options);
Setelah melakukan perubahan ini, saya mengunduh selenium-server-standalone.jar ke dalam EC2.
Kemudian, sebelum memulai pengujian, saya melakukan ssh -X [email protected] ke EC2 dan mengeksekusi:
Xvfb :99 -ac -screen 0 1280x1024x24 &
export DISPLAY=:99
java -jar /home/qa_user/Selenium/selenium-server-standalone.jar
Sekarang, jalankan tes, secara paralel saya membuka terminal baru dan melakukan:
ssh -L 5900:localhost:5900 [email protected]
Setelah layar disetel, saya melakukan:
x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :99 -auth /var/run/lightdm/root/:0 -rfbport 5900
Selanjutnya, buka VNC viewer, sambungkan ke localhost: 5900 dan Anda akan melihat eksekusi Chrome.
Nanti Anda dapat memindahkan semua ini ke Jenkins pre-build mengeksekusi shell jika diperlukan :)
Detail lebih lanjut tentang jawaban terbaru saya: XVFB di Jenkins menyambungkan ke tampilan yang salah. Tampilan menunjukkan layar hitam