End to end tests with Selenium Grid and Python
I’ll show you how to set up a comprehensive testing environment quickly and effortlessly.
We’ll be using Selenium WebDriver within a Selenium Grid, run locally via a Docker Compose configuration, and writing our tests in Python.
For reporting, we’ll use Allure.
And the best part? You can set everything up with just one command.
You’ll need:
- A functioning docker-compose setup
- Python 3 (we’ll install all necessary pip packages)
First, download the template:
git pull https://github.com/andgineer/e2e-tests.git
Navigate to the e2e-tests
folder and run:
docker-compose up -d
Now, a Selenium Grid is operational, supporting Chrome
, MS Edge
and Firefox
browsers for testing, console is available at http://localhost:4040
.
It automatically generates reports from the data inside the
allure-results
folder.
Resulting Allure report is published at http://localhost:4040
.
To run tests from tests/
and view the report, execute:
. ./activate.sh
./scripts/test.sh
Our tests include a --host
parameter to specify the URL of the web application being tested.
Implementation details see in
pytest hook pytest_addoption
of conftest.py
.
For instance, to test https://google.com
, you would run:
scripts/test.sh --host=https://google.com
This test will fail, as the word “Python” is not present on the Google main page.
For tips on capturing screenshots when tests fail and adding them to the report, check out my blog post.