316просмотров
29 октября 2025 г.
questionScore: 348
Вот я сижу в самом неудобном кресле в мире — в поезде «Ласточка» — и думаю: а что вообще написать? Ну, как говорится, главное начать. Дальше само поедет 😄 Так же было и с мобильными автотестами. Мобильные автотесты: первый шаг В конце весны я накидал план внедрения автотестов. Первый пункт — выбор инструментов. У нас проект на iOS и Android, поэтому сначала смотрел на кроссплатформенный Appium, но после обсуждения с мобильной командой остановились на нативных инструментах (привет Тиграм ✌️): - XCUITest → для iOS; - Espresso → для Android. Летом как раз привезли корпоративный MacBook, а iOS-разработчик переписал часть приложения на SwiftUI. Поэтому первым пошёл iOS UI-тест. 📍 Какие проблемы пришлось решить по ходу (и как) - UI не имел уникальных идентификаторов → Xcode просто не видел элементы → добавил свою accessibilityId(...), совместно с разработчиком разметили экраны - На iOS < 14 .accessibilityIdentifier не работает → сделал обёртку accessibilityId(id, label:), которая безопасна для старых девайсов - Системное окно “Разрешить уведомления?” ломало флоу теста → добавил auto-хэндлинг через com.apple.springboard, теперь тест сам нажимает “Разрешить/Allow” - Ошибка в тест-кейсе → после нажатия на крестик тест ожидал “вернуться назад”, но по бизнес-логике нужно было перейти на главный экран тестового приложения → поправил ожидаемый результат теста - В проекте оказалось две функции для accessibilityId → Xcode вызывал случайную 🥲 → убрал старую, оставили одну Написал и оформил документацию (UITests.md), открыл PR, получил ревью, почистил — готово. Весь этот процесс я вёл совместно с ChatGPT — но, конечно, важно быть в контексте проекта. Модель очень помогает, экономит время, но думать за тебя не будет. Что дальше? Следующий шаг — настроить удалённый запуск тестов (CI). Xcode Cloud официально недоступен в РФ, поэтому скорее всего буду настраивать через Jenkins. Но пока точно не решил. После настройки удаленного запуска буду заниматься масштабированием — написанием тестов для других функциональных частей приложения. Плюс надо будет всё это проделать еще и для Android. Вот так я ворвался в мобильную автоматизацию. Про подкаст от Carrot quest о людях не хватило мне сил написать, расскажу в следующий раз. Всем удачи! #mobileAutomation
316
просмотров
2282
символов
Да
эмодзи
Нет
медиа

Другие посты @valentin_qa

Все посты канала →
Вот я сижу в самом неудобном кресле в мире — в поезде «Ласто — @valentin_qa | PostSniper