Покрытие авто-тестами UI Playwright + TS + Allure
Спасибо за внимание! Вопросы?

Покрытие авто-тестами UI Playwright + TS + Allure

1. Покрытие авто-тестами UI Playwright + TS + Allure

Агошков Алексей
Старший инженер по тестированию
Подгруппа разработки заказов и потребности

Часто делаешь презентации? Скачай расширенный шаблон по ссылке

2.

01
В каких случаях нужны UI
тесты и что использовать
для стека

3.

Покрыть авто-тестами критические пользовательские сценарии
Зачем нам UI
е2е тесты?
Проверить работоспособность интеграций с соседними сервисами
Покрыть UI автотестами прогон смоука или регресса
Покрыть UI тестами тот функционал – который одним бэком проверять
нецелесообразно

4.

Почему OZON использует Playwright?
Простая установка
Высокая скорость и производительность
Легкая интеграция с Allure
Поддержка ожидания элементов
Записывает трейсы и видео прохождения тест-кейса
Более мощные функции управления браузером и
выполнения задач автоматизации
4

5.

02
Следите за стабильностью и
качеством тестов, а не за их
количеством

6.

ВАЖНО
Не забывать про
параметризация тестов.
Выносить в Before all
предусловия для тестов
с похожей логикой или с
единым предусловием
Обращайте внимание на
асинхронные действия и
порядок запуска тестов
6

7.

Пример выноса общего предусловия для набора тестов
Создали setup с предусловием для теста
Создали setup с общей авторизацией
7

8.

Настройка setup в проектах с тестами
8

9.

ВАЖНО
В тесте должно быть
минимум hardcodedданных
9

10.

Начнем с самого важного: Авторизация в тестах
10

11.

Настройка Vault
Запросить доступы к
секретам
Установить Vault
Поверить, что
секреты видны
11

12.

Настройка конфигурации Vault
12

13.

Пример реализованной авторизации
13

14.

Хардкод и его исправление
Рассмотрим пример по проверке текста в поступающей нотификации:
Локатор нужно вынести в
конфигурационный файл с константами
Наименование статусов, текст нотификаций
и все остальные текстовые значения мы
также выносим в конфигурационный файл
14

15.

Хардкод и его исправление
Локаторы для тестов храним в конфигурационных файлов
ВАЖНО
Импортируем конфигурационного файла
В итоге, исправив все недочёты мы получаем:
15

16.

ВАЖНО
Следить за
эффективностью
селекторов элементов
16

17.

Хардкод и его исправление
Рассмотрим примеры по поиску локаторов:
Xpath: //*[@data-qa='order_sku_id']
17

18.

Хардкод и его исправление
Рассмотрим примеры по поиску локаторов:
Xpath: //*[@data-qa='order_sku_id' and contains (.,'20069121')]
18

19.

Что же еще может помочь нам в поиске локаторов?
Поиск элемента по части текста
Поиск элемента по части атрибута
Поиск элемента по нескольким частям разных атрибутов сразу
Поиск элемента по части атрибута и части текста сразу
Поиск элемента содержащего либо одно значение либо другое
19

20.

ВАЖНО
Структурировать и
детализировать отчёт
в Allure
20

21.

Рассмотрим организацию и кастомизацию тестов в иерархическую структуру
21

22.

22

23.

03
Результат покрытия е2е
тестами на нашем примере

24.

Чего мы достигли UI е2е тестами?
Что сейчас
Было раньше
Покрытые авто-тестами сервисы
Флакающие тесты по
gdz-api-budgets
gdz-api-orders
gdz-api-orders
70%
gdz-api-orders-archive
Ручного тестирования
20%
Ручного тестирования
Проверка корректности интеграций с соседними сервисами
gdz-api-contractors
Было не до этого
В связи с вечной
оптимизацией тестов
eams-schedule-api
80%
30%
Нестабильные
Авто-тесты на Selenium
≈ 10 min
Время прохождения авто-тестов
230 sec
20
Количество тестов
199
≈ 1 день
Время прохождения Smoke
230 sec
Оптимизированные
Авто-тесты
на Playwright
24

25. Спасибо за внимание! Вопросы?

English     Русский Правила