[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