An unintended docker image rebuild of ngcp-panel-tests-selenium-jessie resulted in failures with our selenium tests. A series of problems started: 1) Updating the Selenium version resulted in an error message by Selenium, requesting the geckodriver binary (https://github.com/mozilla/geckodriver - being a proxy for using W3C WebDriver-compatible clients to interact with Gecko-based browsers). So Selenium versions >=3 depend on geckodriver. 2) Recent versions of Selenium also depend on Java >=8, available only via backports for jessie. Since we avoid usage of backports as much as possible and we'd have to upgrade once anyway we decided to base our fresh docker image on stretch. 3) We have to backport Selenium::Remote::Driver (Debian package libselenium-remote-driver-perl) for stretch (since it's not available in Debian, even though there's an ITP: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839569). It has a bug which prevents its usage for us: https://github.com/gempesaw/Selenium-Remote-Driver/issues/319 -> We fixed the problem via our own backport and submitted a PR towards upstream: https://github.com/gempesaw/Selenium-Remote-Driver/pull/321 4) Firefox from Debian/stretch (firefox-esr 52.2.0esr-1~deb9u1) fails with geckodriver e.g. in click events, the current Firefox version 54 works fine though. So instead install only the relevant runtime packages from Debian and use the Firefox version v54 from upstream. Resulting changes: * switch from Debian/jessie to Debian/stretch * no longer use selenium at all but only geckodriver instead (recent versions of selenium depend on geckodriver anyway) * do all package/file changes in /home/selenium/ (to clearly see what's from us/docker and what are actual temporary files) * testrunner related changes: - invoke vncserver with `-localhost no` option to accept VNC connections not only from localhost only - adjust vncserver process name for Xvnc4->Xtigervnc switch - start geckodriver instead of selenium * package related changes: - backported libtest-pretty-perl (v0.32) - backported libselenium-remote-driver-perl (v1.20) - add curl to package list since it's handy for debugging test failures, like e.g. `curl -X POST localhost:4444/session --data {}` - add procps to have pkill binary available inside testrunner - openjdk/java is no longer needed since we don't depend on selenium anymore - vnc4server is now a transitional package for tigervnc-standalone-server, so directly depend on it Change-Id: I607ffd4fce80f9e84b76c3c7a19824819ac4503cchanges/36/14036/2
parent
106f65bb89
commit
2b021efb56
Loading…
Reference in new issue