Skip to content
This repository has been archived by the owner on Aug 7, 2023. It is now read-only.

Latest commit

 

History

History
75 lines (57 loc) · 2.24 KB

README.md

File metadata and controls

75 lines (57 loc) · 2.24 KB

hawk_test

This Docker image runs a set of Selenium tests for testing Hawk

Build Status

Usage

usage: hawk_test.py [-h] [-b {firefox,chrome,chromium}] [-H HOST] [-S SLAVE]
                    [-I VIRTUAL_IP] [-P PORT]
                    [-s SECRET] [-r RESULTS] [--xvfb]

Dependencies

  • OS packages:
  • Python packages:
    • paramiko
    • selenium
    • PyVirtualDisplay

Usage with Docker

Build image with:

docker build -t hawk_test -f Dockerfile.alpine

Run:

docker run --rm --ipc=host hawk_test --xvfb [OPTIONS]

If you don't want to use the Xvfb headless mode:

xhost +
docker run --rm --ipc=host -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix hawk_test [OPTIONS]

Notes:

  • You may want to add --net=host if you have problems with DNS resolution.

Options

  -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

FAQ

  • Why Xvfb?
    • The -headless in both browsers still have bugs, specially with modal dialogs.
    • Having Xvfb prevents it from connecting to our X system.
  • 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).