Skip to content

Commit

Permalink
refreshed e2e blog
Browse files Browse the repository at this point in the history
  • Loading branch information
andgineer committed Mar 21, 2024
1 parent 9e1c8f2 commit d75b780
Show file tree
Hide file tree
Showing 4 changed files with 91 additions and 60 deletions.
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
_site
_site/
.DS_Store
.jekyll
.jekyll-metadata
Expand All @@ -9,4 +9,6 @@ _site
node_modules
package.json
venv/
Gemfile.lock
Gemfile.lock
**/__pycache__/
allure-results/
2 changes: 0 additions & 2 deletions .idea/.gitignore

This file was deleted.

72 changes: 46 additions & 26 deletions posts/en/_posts/2019-03-19-e2e_tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,41 +9,61 @@ redirect_from: "/posts/en/e2e_tests/"
---
![](/images/allure-report.png){:.post-title}

I am going to show you how you can have rich test environment in no time
and without any efforts.

We will use Selenuim WebDriver in Selenium Grid run locally in docker-compose configuration.
I'll show you how to set up a comprehensive testing environment quickly
and effortlessly.

And write tests in Python.
We'll be using Selenium WebDriver within a Selenium Grid, run locally
via a Docker Compose configuration, and writing our tests in Python.

As test reporter we will use Allure.
For reporting, we'll use Allure.

And all of this can be spin up just in one command.
And the best part? You can set everything up with just one command.

You need:
* Working docker-compose
* Python 3 (all pip package we will install)
**You'll need:**
- A functioning [docker-compose](https://docs.docker.com/compose/install/) setup
- Python 3 (we'll install all necessary pip packages)

Download [template](https://github.com/andgineer/e2e-tests)
First, download the template:

git pull https://github.com/andgineer/e2e-tests.git
Go to folder `e2e-tests` and run:
```
git pull https://github.com/andgineer/e2e-tests.git
```

docker-compose up -d

Now we have reporting service on `http://localhost:4040`.
It automatically builds reports for data inside folder `allure-results`.
Navigate to the `e2e-tests` folder and run:

Also now we have Selenium Grid up and running.
It serves `Chrome`, `Edge` and `Firefox` browsers so we can use them
in tests.
```
docker-compose up -d
```

We use docker to run Selenium Grid effortlessly.
Now, a Selenium Grid is operational, supporting `Chrome`
and `Firefox` browsers for testing, console is available at `http://localhost:4040`.

That's all! Run tests with
It automatically generates reports from the data inside the
`allure-results` folder.

. ./activate.sh
./scripts/test.sh

And see report `http://localhost:4040`.
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](https://docs.pytest.org/en/latest/how-to/writing_hook_functions.html#using-hooks-in-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](https://sorokin.engineer/posts/en/pytest_allure_selenium_auto_screenshot.html).
71 changes: 41 additions & 30 deletions posts/ru/_posts/2019-03-19-e2e_tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,45 +9,56 @@ redirect_from: "/posts/ru/e2e_tests/"
---
![](/images/allure-report.png){:.post-title}

Я хочу поделиться опытом, как в несколько кликов вы можете создать себе
инфраструктуру для тестирования сайта.
Я покажу вам, как быстро и без усилий настроить комплексную среду для тестирования.

В ней будет инструмент для управления браузерами Selenuim WebDriver.
Мы будем использовать Selenium WebDriver внутри Selenium Grid, запущенного локально через конфигурацию Docker Compose,
и писать наши тесты на Python.

Тесты мы будем писать на Python 3.
Для отчетности мы будем использовать Allure.

Шикарно выглядящеи отчеты, такие как на картинке выше, нам будет строить
allure.
И лучшая часть? Вы можете настроить все это одной командой.

И мы не будем тратить время на настройку всего этого хозяйства - уже
подготовлена конфигурация в docker, разворачиваемая ровно одной командой.
**Вам понадобится:**
- Работающая установка [docker-compose](https://docs.docker.com/compose/install/)
- Python 3 (мы установим все необходимые пакеты pip)

Так что все что вам необходимо:
* Работающий docker-compose
* Python 3 (все нужные библиотеки мы установим)
Сначала скачайте шаблон:

Скачиваем [заготовку нашего проекта](https://github.com/andgineer/e2e-tests)
```
git pull https://github.com/andgineer/e2e-tests.git
```

git pull https://github.com/andgineer/e2e-tests.git

Это создаст нам каталог `e2e-tests`, переходим туда и запускаем в этом каталоге
Перейдите в папку `e2e-tests` и запустите:

docker-compose up -d

После этого у нас магически появляется веб-сервис построителя отчетов
по адресу `http://localhost:4040`.
Он автоматически строит отчеты по данным, которые тесты помещают в папку
`allure-results`.
```
docker-compose up -d
```

Также у нас начинает работать Selenium Grid.
Это сервис, предоставляющий браузеры `Chrome`, `Edge` и
`Firefox` для запуска в них тестов.
Теперь Selenium Grid работает, поддерживая браузеры `Chrome` и `Firefox` для тестирования, сервис доступен по адресу
`http://localhost:4040`.
Он автоматически генерирует отчеты из данных в папке `allure-results`.

Мы используем docker для запуска Selenium Grid чтобы съкономить часы по его установке.
Сгенерированный отчет Allure публикуется на `http://localhost:4040`.

Это все - наслаждайтесь. Запустите пробный тест командой
Чтобы выполнить тесты в каталоге `tests/` и просмотреть отчет, выполните:

. ./activate.sh
./scripts/test.sh

И смотрите красивый отчет в браузере по адресу `http://localhost:4040`.
```
. ./activate.sh
./scripts/test.sh
```

Наши тесты включают параметр `--host` для указания URL тестируемого веб-приложения.
Если Вам интересно, как это сделано, ознакомьтесь с
[pytest hook pytest_addoption](https://docs.pytest.org/en/latest/how-to/writing_hook_functions.html#using-hooks-in-pytest-addoption)
в `conftest.py`.

Например, для тестирования `https://google.com` вы бы запустили:

```
scripts/test.sh --host=https://google.com
```

Этот тест не пройдет, так как на главной странице Google нет слова "Python".

Если Вам интересно, как делать скриншоты при провале тестов, ознакомьтесь с моим
[блог постом](https://sorokin.engineer/posts/ru/pytest_allure_selenium_auto_screenshot.html).

0 comments on commit d75b780

Please sign in to comment.