Files
divkit/client/android/divkit-regression-testing
2022-09-06 10:43:11 +03:00
..
2022-09-06 10:43:11 +03:00
2022-09-06 10:43:11 +03:00
2022-09-06 10:43:11 +03:00
2022-08-25 21:22:56 +03:00
2022-08-25 21:21:49 +03:00

DivKit Regression Testing

Модуль ручного регрессионого тестирования DivKit. Содержит сценарии и сопутсвующие файлы версток для ручного прогона сценариев.

Прогон сценариев

Осуществляется в divkit-demo-app:

  • Запустить divkit-demo-app
  • Выбрать раздел Regression. Загрузится список сценариев
  • При выборе каждого из сценариев загрузиться Div2View с заданными для сценария параметрами и описание сценария (шаги и ожидаемый результат). Перейти на следующий сценарий можно прямо с этого экрана по кнопкам в тулбаре.

Начиная с Android 5.0+ доступна возможность записи экрана во время работы над сценарием. Её можно отключить на главном экрана Regression, в случае возникновения проблем.

Добавление нового сценария

Для добавления нового сценария требуется:

  1. Добавить файл *.json с версткой Div2 в assets/scenarios, которая будет отражать будущий сценарий
  2. Добавить сценарий в файл assets/scenarios.yaml:
    • Задать заголовок в поле title
    • Перечислить шаги сценария в поле steps
    • Перечислить ожидаемые результаты в поле expect
    • Опционально указать tags для группировки и фильтрации сценариев
    • Опционально указать priority, один из blocker, critical, normal и minor. По-умолчанию normal.
    • Задать path к ранее добавленному файлу верстки
  3. Проверить работу сценария. См. Прогон сценария

Development

Входной точкой в модуль является RegressionActivity. Состояние ui RegressionActivity обновляются из RegressionViewModel#uiState. RegressionViewModel#uiState представляет собой Kotlin Flow.

Сценарии загружаются из ScenariosRepository, который создается на уровне DivKitApplication.

Данные сценариев отображаются в списке ScenarioListAdapter.

Данные каждого сценария отображаются в ScenarioActivity. За создание Div2View отвечает реализация в divkit-demo-app Div2ViewCreator

Генерация сценариев

Генерация сценариев анимаций

$ ./path/to/div/divkit-regression-testing/scripts/generate_animation_scenarios.py

Скопировать вывод paths в assets/scenarios.yaml.