This Docker image runs a set of Selenium tests for testing Hawk
The following tests are executed by openQA during ci regularly.
As developer you can execute them manually when you do an update on hawk.
- docker
- 2 Hawk vms running (normally it is a cluster) See https://github.com/SUSE/pacemaker-deploy for deploying hawk
-
Create the docker image
docker build . -t hawk_test
-
Run the tests with:
docker run --ipc=host -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY hawk_test -H 10.162.32.175 -S 10.162.29.122 -s linux --xvfb
Notes:
- You may want to add
--net=host
if you have problems with DNS resolution.
- OS packages:
- Xvfb (optional)
- Docker (optional)
- Firefox
- Geckodriver
- Chromium (optional)
- Chromedriver (optional)
- Python 3.6+
- Python packages:
- paramiko
- selenium
- PyVirtualDisplay
-h, --help show this help message and exit
-b {firefox,chrome,chromium}, --browser {firefox,chrome,chromium}
Browser to use in the test
-H HOST, --host HOST Host or IP address where HAWK is running
-S SLAVE, --slave SLAVE
Host or IP address of the slave
-I VIRTUAL_IP, --virtual-ip VIRTUAL_IP
Virtual IP address in CIDR notation
-P PORT, --port PORT TCP port where HAWK is running
-s SECRET, --secret SECRET
root SSH Password of the HAWK node
-r RESULTS, --results RESULTS
Generate hawk_test.results file for use with openQA.
--xvfb Use Xvfb. Headless mode
- Why Xvfb?
- The
-headless
in both browsers still have bugs, specially with modal dialogs. - Having Xvfb prevents it from connecting to our X system.
- The
- Why docker?
- The Docker image packs the necessary dependencies in such a way that fits the compatibility matrix between Python, Selenium, Firefox (and Geckodriver) & Chromium (and Chromedriver).