MOBIUS
мобильная автоматизация

система в норме

GitHub ↗

M-01 · главный экран · Android/iOS

947 тестов.
Две платформы.
Один пайплайн.

Экранные объекты, пул устройств и жесты в общей инженерной системе на Appium 2.x и pytest.

стек: Python · Appium 2.x · pytest

S-02 / возможности

Модули системы

06 модулей

MO-01

Экранные объекты

Каждый экран описан как объект: локаторы собраны в одном месте, шаги переиспользуются между тестами обеих платформ.

MO-02

Пул устройств

Устройства берутся из общего пула и освобождаются после прогона — тесты не привязаны к конкретному девайсу.

MO-03

Жесты

Тапы, свайпы, ввод текста и системные жесты описаны единым слоем, одинаковым для Android и iOS.

MO-04

Параллельные запуски

Тесты расходятся по свободным устройствам: прогон не выстраивается в одну длинную очередь.

MO-05

Appium-сессия

Жизненный цикл сессии Appium 2.x — создание, драйвер, завершение — управляется фикстурами pytest.

MO-06

Отчёт о проверке

Результаты каждого прогона собираются в отчёт: что проверено, на каком устройстве и с каким итогом.

S-03 / процесс

Цепочка прогона

4 шага
  1. Экранный объект

    Экран приложения описывается один раз — как объект с локаторами и шагами.

  2. Пул устройств

    Тест берёт свободное устройство из пула и работает именно с ним.

  3. Appium-сессия

    Открывается сессия Appium 2.x, и сценарий проходит на реальной платформе.

  4. Отчёт

    Итог проверки попадает в отчёт прогона — с устройством и результатом.

S-04 / демо

Консоль платформы

локальная иллюстрация
Платформа
Android
Драйвер
UiAutomator2
Устройство
Pixel 8 · API 34
Капабилити
appium:automationName = UiAutomator2

для запуска нужны Android SDK, UiAutomator2 и доступное устройство; локальная иллюстрация

S-05 / запуск

Поднять систему

git

терминал // запуск проектаbash

$ git clone https://github.com/ssrjkk/mobius.git
$ cd mobius
# далее — по README репозитория

Репозиторий открыт: github.com/ssrjkk/mobius. Требования к окружению описаны в README — здесь их сознательно не дублируют.