[Fuego] [PATCH 00/14] Add screenshot test to fuego-release-test
Guilherme Camargo
guicc at profusion.mobi
Tue Apr 24 17:40:59 UTC 2018
On Tue, Apr 24, 2018 at 2:24 PM, Guilherme Campos Camargo <
guicc at profusion.mobi> wrote:
> Hello, everyone.
>
> This series of patches adds a new test case class to the
> fuego_release_test functional test. The name of this new test class is
> "CheckScreenshot", and its purpose is to get a screenshot of a web-page
> (in this specific case, Fuego's Jenkins' webpage) and compare it with a
> reference image.
>
> Currently, CheckScreenshot supports:
> - Taking screenshot of an HTML element of a page and compare it with a
> reference image.
> - Taking screenshot of the full viewport (full page if it fits in the
> viewport) and also compare it with a reference image.
> - Take a screenshot (full or element) and compare only specific regions
> of interest with a reference image. The mask is a black-and-white
> image in which black regions are ignored by the comparison algorithm.
>
> On these patches we have also added a helper script (take_screenshot.py)
> that may be used for collecting reference screenshots and a few test
> cases to serve as example of usage.
>
> A README.md file has also been to explain the usage of
> fuego_release_test and the helper script, including a few examples.
>
>
> # Running
>
> Currently this test requires a modified version of Fuego to be executed,
> given that it needs to install some dependencies and needs to map the
> dockerd socket from the host to the fuego container.
>
> The modified version can be found in two different branches on
> Profusion's fuego fork.
>
> Correction: Branch 'fuego-test'
> 1 - Branch master: Just a few commits that are necessary for making
> this test work, applied on top of fuego/next. We plan to try to
> integrate these commits into fuego/next in the future.
>
> 2 - Branch fuego-base-image: A more complex change on fuego, that makes
> the necessary changes for allowing it to be shipped as a docker image
> through dockerhub.
>
> The steps for each one of the versions above are given below:
>
> ## Building the image (from the branch fuego-test)
>
> To run the test, execute the following commands:
>
Instructions are correct:
>
> ```
> git clone --branch master https://bitbucket.org/
> profusionmobi/fuego-core.git
> git clone --branch fuego-test https://bitbucket.org/
> profusionmobi/fuego.git
> cd fuego
> ./install fuego-to-test-fuego
> ./fuego-host-scripts/docker-create-container.sh fuego-to-test-fuego
> fuego-to-test-fuego-container
> ./fuego-host-scripts/docker-start-container.sh
> fuego-to-test-fuego-container
> ```
>
> Then, add the fuego-test board and the Functional.fuegotest and start
> the test through Jenkins (localhost:8080/fuego/)
>
> ```
> ftc add-nodes fuego-test
> ftc add-jobs -b fuego-test -t Functional.fuegotest
> ```
>
> ## Using the modified Fuego Base Image from Dockerhub
> (fuego-base-image):
>
> You can also use the fuego base image that's being developed in
> Profusion's fuego-base-image branch in our fork:
> https://bitbucket.org/profusionmobi/fuego/branch/fuego-base-image
>
> The image is already available on dockerhub and can be
> downloaded/executed with:
>
> ```
> docker pull fuegotest/fuego
> docker run -it \
> -p 8080:8080 \
> -v $(pwd)/host_fuego_home:/var/fuego_home \
> -e JENKINS_UID=$(id -u) \
> -e JENKINS_GID=$(id -g) \
> -v /var/run/docker.sock:/var/run/docker.sock \
> fuegotest/fuego:latest
> ```
>
> Wait for the shell to be available and add fuego-test board and
> Functional.fuegotest as explained in the last section.
>
> ```
> ftc add-nodes fuego-test
> ftc add-jobs -b fuego-test -t Functional.fuegotest
> ```
>
> You can also run the test in standalone mode (given that you have all
> the dependencies installed in your system). See the test README.md for
> more instructions.
>
> Thanks.
>
> Guilherme Campos Camargo (14):
> Add a SeleniumCommand that compares screenshots
> Minor style fix
> Add a CheckScreenshot command into the COMMANDS_TO_TEST list
> Increase the size of the webdriver viewport
> Allow working_dir and install_dirs to be different
> Prevent exception NameError when removing container
> Add an example reference screenshot
> Add helper script for taking element/full-page screenshots
> Add mask-img-path argument to CheckScreenshot for ignored areas
> Add a README.md
> Allow Full viewport Screenshots
> Allow compare-with-mask to work with ImageMagick 6 and ImageMagick 7
> Improve logging
> Set logging level to INFO by default
>
> .../Functional.fuego_release_test/README.md | 182 +++++++++
> .../fuego_test.sh | 6 +-
> .../helpers/take_screenshot.py | 145 ++++++++
> .../screenshots/footer.png | Bin 0 -> 7371 bytes
> .../screenshots/footer_mask.png | Bin 0 -> 302 bytes
> .../screenshots/full_screenshot.png | Bin 0 -> 46323 bytes
> .../screenshots/full_screenshot_mask.png | Bin 0 -> 10717 bytes
> .../screenshots/side-panel-tasks.png | Bin 0 -> 9609 bytes
> .../Functional.fuego_release_test/test_run.py | 347 ++++++++++++++++--
> 9 files changed, 639 insertions(+), 41 deletions(-)
> create mode 100644 engine/tests/Functional.fuego_release_test/README.md
> create mode 100755 engine/tests/Functional.fuego_
> release_test/helpers/take_screenshot.py
> create mode 100644 engine/tests/Functional.fuego_
> release_test/screenshots/footer.png
> create mode 100644 engine/tests/Functional.fuego_
> release_test/screenshots/footer_mask.png
> create mode 100644 engine/tests/Functional.fuego_
> release_test/screenshots/full_screenshot.png
> create mode 100644 engine/tests/Functional.fuego_
> release_test/screenshots/full_screenshot_mask.png
> create mode 100644 engine/tests/Functional.fuego_
> release_test/screenshots/side-panel-tasks.png
>
> --
> 2.17.0
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/fuego/attachments/20180424/281356c4/attachment.html>
More information about the Fuego
mailing list