Проект автотестов по дисциплине «Тестирование сервисов и приложений» НИЯУ "МИФИ".
В репозитории реализованы:
- Web UI автотесты для сайта Яндекс.Погода (Selenium + TestNG)
- Mobile UI автотесты для Android-приложения Wikipedia (alpha) (Appium + TestNG)
- Стабильные сценарии:
- открытие главной страницы Яндекс.Погоды
- открытие страницы города по прямому URL
- навигация через меню на «Карту осадков»
- проверка наличия основных UI-элементов на главной странице
- Page Object Model: логика действий вынесена в
WeatherMainPage - Явные ожидания:
WebDriverWaitтам, где это критично для стабильности - Конфигурация через
src/test/resources/web-test.properties
- Стабильные сценарии:
- запуск приложения и проверка главного экрана
- поиск статьи
- открытие статьи из результатов поиска
- прокрутка статьи (проверка изменения контента через PageSource)
- Page Object Model:
MainPage,SearchPage,ArticlePage - Обработка всплывающих окон Wikipedia (например, Wikipedia Games, Customize Toolbar) без клика по лишним кнопкам
- Конфигурация через
src/test/resources/mobile-test.properties
- Язык: Java 23
- Сборка: Maven 4.0.0
- Тестовый фреймворк: TestNG 7.9.0
- Web UI: Selenium WebDriver 4.20.0 + WebDriverManager 5.7.0
- Mobile UI: Appium Java Client 9.2.2 + UiAutomator2
- IDE: IntelliJ IDEA
src/test/java/ru/mifi/testing/
├── mobile/
│ ├── base/
│ ├── config/
│ ├── pages/
│ └── tests/
└── web/
├── base/
├── config/
├── pages/
└── tests/
src/test/resources/
├── mobile-test.properties
└── web-test.properties
- JDK 11+ или выше
- Maven 4.0.0
- Google Chrome
- WebDriver настраивается автоматически через WebDriverManager
- JDK 11+
- Maven 4.0.0
- Android Studio + Android SDK (SDK Platforms, Platform-Tools)
- Android Emulator (AVD) (рекомендуется Pixel 7a / API 36+)
- Node.js + npm
- Appium Server 2.x + драйвер UiAutomator2
- Приложение Wikipedia (org.wikipedia.alpha) установлено на эмуляторе
git clone https://github.com/pasom-creator/ui-testing.git
cd ui-testingmvn clean install "-DskipTests"Файл: src/test/resources/web-test.properties
Пример:
base.url=https://yandex.ru/pogoda
browser=chrome
timeout.seconds=10Запустить только web-тесты (без mobile):
mvn test "-Dtest=OpenWeatherPageTest,OpenCityWeatherPageTest,NavigationMenuTest,WeatherPageUiElementsTest"Запуск конкретного теста:
mvn test "-Dtest=OpenWeatherPageTest"Файл: src/test/resources/mobile-test.properties
Пример:
mobile.appium.server.url=http://127.0.0.1:4723
mobile.platformName=Android
mobile.platformVersion=16
mobile.deviceName=emulator-5554
mobile.automationName=UiAutomator2
mobile.appPackage=org.wikipedia.alpha
mobile.appActivity=org.wikipedia.main.MainActivity
mobile.noReset=false
mobile.newCommandTimeout=180
mobile.autoGrantPermissions=truenpm i -g appium
appium driver install uiautomator2
appium --versionappium --address 127.0.0.1 --port 4723- Запустить AVD в Android Studio (Device Manager)
- Проверить, что устройство видно:
adb devicesПример (эмулятор запущен):
Если приложение не установлено:
adb install -r wikipedia.apkЗапустить только mobile-тесты:
mvn test "-Dtest=AppLaunchTest,SearchTest,OpenArticleTest,ScrollArticleTest"Запуск конкретного теста:
mvn test "-Dtest=OpenArticleTest"Примечание: предупреждение
Логирование в проекте выполняется черезSystem.out.println`.
Активные стабильные тесты:
OpenWeatherPageTest— открытие главной страницыOpenCityWeatherPageTest— открытие страницы погоды Москвы по URLNavigationMenuTest— переход на «Карту осадков» через менюWeatherPageUiElementsTest— проверка основных UI-элементов
Демонстрационные (отключены enabled = false из-за нестабильности SPA-suggest/JS-кликов):
CitySearchViaFormTestNavigationMenuJsClickTest
AppLaunchTest— приложение запускается, главный экран доступенSearchTest— поиск статьи по запросуJavaдаёт результатыOpenArticleTest— открытие первой найденной статьиScrollArticleTest— прокрутка статьи, проверка изменения PageSource
- Покрытие тестами основных сценариев: реализовано 4 стабильных ключевых сценария
- Качество реализации тестов и техника автоматизации: Page Object, ожидания, локаторы вынесены
- Настройка окружения и запуск тестов: конфиг + инструкции в README
- Покрытие мобильных сценариев: реализовано 4 сценария (поиск, открытие, скролл, запуск)
- AКорректность настройки Appium и окружения: capabilities через
mobile-test.properties, описаны шаги запуска - Качество кода мобильных тестов: Page Object, минимальные дубли, безопасное закрытие попапов
- Пакеты разделены по зонам ответственности, единый стиль, Page Object
- README содержит инструкции по Web и Mobile, конфиги и примеры запуска


