Skip to content

Commit

Permalink
TECH: changes in screenshot lesson
Browse files Browse the repository at this point in the history
  • Loading branch information
sumin93 committed Jul 6, 2023
1 parent 4d89999 commit 20c3846
Showing 1 changed file with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions docs/Tutorial/Logger_and_screenshot.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -531,14 +531,14 @@ class LoginActivityGeneratedDataTest : TestCase() {

Теоретически, все тесты, которые вы пишете, могут упасть. В таких случаях хотелось бы всегда иметь возможность посмотреть скриншоты, чтобы понять, что пошло не так. Как этого добиться? Как вариант – во все шаги всех тестов добавлять вызов метода, который делает скриншот, но это не слишком удобно.

Поэтому в Kaspresso была добавлена возможность настройки параметров теста при создании тестового класса. Для этого в конструктор `TestCase` можно передать объект `Kaspresso.Builder`, который по умолчанию принимает значение `Kaspresso.Builder.simple()`.
Поэтому в Kaspresso была добавлена возможность настройки параметров теста при создании тестового класса. Для этого в конструктор `TestCase` можно передать объект `Kaspresso.Builder`, у которого можно указать различные настройки.

<img src="../images/logs/test_case_params.png" alt="Test Case Params"/>

!!! info
Чтобы посмотреть параметры, которые принимает метод или конструктор, можно кликнуть левой кнопкой мыши внутри круглых скобок и нажать комбинацию клавиш `ctrl + P` (или `cmd + P` на Mac)

Мы можем добавить множество разных настроек, подробнее о которых можно почитать в [Wiki](https://kasperskylab.github.io/Kaspresso/Wiki/Kaspresso_configuration/).
Если этот параметр не передавать, оставив конструктор пустым, то будет использоваться значение по умолчанию `Kaspresso.Builder.simple()`. В этом варианте билдера автоматическое сохранение скриншотов не реализовано. Мы можем добавить множество разных настроек, подробнее о которых можно почитать в [Wiki](https://kasperskylab.github.io/Kaspresso/ru/Wiki/Kaspresso_configuration/).

Сейчас нас интересует добавление скриншотов, если тесты упали. Самый простой вариант сделать это – использовать `advanced` builder вместо `simple`. Делается это следующим образом:

Expand Down Expand Up @@ -610,22 +610,22 @@ class LoginScenario(

```

Запускаем тест. Тесты упали, и на устройстве появились скриншоты (не забывайте нажимать `Synchronize`):
Запускаем тест. Он завершился неудачно, и на устройстве появились скриншоты (не забывайте нажимать `Synchronize`):

<img src="../images/logs/advanced_builder.png" alt="Advanced Builder"/>

При использовании `advanced` builder-а появляется еще несколько изменений. Кроме скриншотов добавляются также файлы с логами, иерархией View и другое.

Если все эти изменения вам не нужны, то можно изменить только определенные настройки простого builder-а.
Если вам не нужны все эти артефакты, то можно изменить только определенные настройки простого builder-а

!!! info
Если вы не разработчик, то кастомизация builder-а по умолчанию может быть достаточно сложной. В случае, если разобраться с настройкой не удалось, используйте `advanced` builder для получения скриншотов
Если вы испытываете сложности с кастомизацией builder-ов, то используйте `advanced` builder для получения скриншотов

## Interceptors

Вы должны помнить, что в предыдущих тестах, кроме выполнения наших методов, «под капотом» происходило много дополнительных действий: запись логов для каждого шага, неявный вызов flakySafely, автоматический скролл до элемента, если проверка выполнилась неуспешно и так далее.
Следует помнить, что в предыдущих тестах кроме выполнения наших методов «под капотом» происходило много дополнительных действий: запись логов для каждого шага, неявный вызов flakySafely, автоматический скролл до элемента, если проверка выполнилась неуспешно, и так далее.

Все это работало благодаря `Interceptor`-ам. `Interceptors` — это классы, которые перехватывают вызываемые нами действия и добавляют в них какую-то функциональность. Таких классов в Kaspresso достаточно много, подробнее о них вы можете почитать в [документации]( https://kasperskylab.github.io/Kaspresso/Wiki/Kaspresso_configuration/)
Все это работало благодаря `Interceptor`-ам. `Interceptor` — это класс, который перехватывает вызываемые нами действия и добавляет в них какую-то функциональность. Таких классов в Kaspresso достаточно много, подробнее о них вы можете почитать в [документации](https://kasperskylab.github.io/Kaspresso/ru/Wiki/Kaspresso_configuration/)

Нас интересует добавление скриншотов, за это отвечают классы `ScreenshotStepWatcherInterceptor`, `ScreenshotFailStepWatcherInterceptor` и `TestRunnerScreenshotWatcherInterceptor`.

Expand All @@ -634,7 +634,7 @@ class LoginScenario(
</li>
<li>ScreenshotFailStepWatcherInterceptor – добавляет скриншот только того шага, который завершился с ошибкой
</li>
<li>TestRunnerScreenshotWatcherInterceptor – добавляет скриншот, если произошла ошибка в секции `before` или `after`
<li>TestRunnerScreenshotWatcherInterceptor – добавляет скриншот, если произошла ошибка в секции <code>before</code> или <code>after</code>
</li>
</ul>

Expand Down Expand Up @@ -675,7 +675,6 @@ object TestData {
## Итог

В этом уроке мы узнали, как в наши тесты добавить логирование и скриншоты. Узнали, в каких случаях стандартных логов бывает недостаточно, научились настраивать `Kaspresso.Builder`, добавляя в него различные `Interceptor`-ы.
Также мы рассмотрели способы, как создавать скриншоты вручную, и как этот процесс можно автоматизировать.


<br>

0 comments on commit 20c3846

Please sign in to comment.