При тестуванні мобільних додатків можна зіткнутися з проблемою, коли в наявності немає потрібного пристрою, на який прийшов запит від клієнта. Звичайно, перший варіант – це покупка девайсу. Але що робити, якщо необхідних пристроїв багато? Або потрібно терміново зробити перевірку мобільного додатку на певній платформі, але під рукою такої немає? Кожна модель девайсу може значно відрізнятися, у кожної з них є свої особливості, які потрібно враховувати при розробці. І це, не враховуючи кардинальних відмінностей між операційними системами для мобільних пристроїв. Є кілька варіантів того, як можна вийти з цієї ситуації і виконати необхідне завдання: використання емуляторів і симуляторів мобільних ОС або ж використання спеціалізованих сервісів (відомих як «ферми мобільних пристроїв»). Про них ми і поговоримо в цій статті.
Емулятори, симулятори, ферми пристроїв для тестування мобільних додатків
- 23.05.2023
- Опубліковано: Admin
Емулятори/симулятори мобільних пристроїв
Емулятори мобільних телефонів допомагають тестувати функціонал додатка на різних мобільних платформах, емулюють програмне забезпечення і дозволяють створити необхідні перевірки.
У разі iOS-пристроїв все складно. Повноцінних емуляторів даної платформи не існує через закритість її архітектури.
Для тестування девайсів компанії Apple (iPhone, iPad) є кілька варіантів. Перший серед них – офіційний Apple iOS Simulator, що входить в поставку Xcode. Дозволяє тестувати різні комбінації ПЗ та пристроїв, але тільки на Mac. У цьому і полягає головний мінус. Якщо немає доступу до MacBook – не буде можливості використовувати даний симулятор. Для запуску симулятора необхідно встановити та запустити Xcode.
У випадку з Android-пристроями все набагато простіше. Різних варіантів емуляторів даної платформи існує безліч. Розглянемо деякі приклади.
MEmu
MEmu – це безкоштовний емулятор Android для Windows, спеціалізується на відеоіграх, з доступним інтерфейсом українською та російською мовами в параметрах Android та в параметрах самої оболонки. Програма добре сумісна з іграми з Play Market, також при встановленні з АРК, швидко працює, є можливість доступу до папок на комп'ютері, підміни GPS, прив'язки клавіш клавіатури до областей екрану, гнучке налаштування та інші додаткові можливості.
Remix OS Player
Емулятор Remix OS Player базується на Remix OS – модифікації Android x86, розроблений спеціально для запуску на комп'ютерах і ноутбуках (з кнопкою «Пуск», панеллю задач). Основний недолік програми – це робота тільки на процесорах Intel.
Nox App Player
Nox App Player демонструє високу продуктивність.
Тут є вбудований Play Market, звідки можна завантажити різні програми та ігри, а також запустити програми з APK-файлів з комп'ютера. Вікно емулятора можна відкрити на весь екран без помітної втрати продуктивності. Також є такі можливості:
- зміна роздільної здатності екрану та орієнтації відображення в автоматичному режимі;
- підміна розташування;
- завантаження та експорт файлів (легке перенесення файлів між ПК та емулятором);
- створення скріншотів.
Емулятор Leapdroid
Переваги цього емулятора: швидкість, можливість роботи без апаратної віртуалізації, підтримка російської мови. До недоліків відноситься обмежена кількість опцій для налаштування, до того ж не можна змінити роздільну здатність або відрегулювати будь-які параметри крім тих, які є на власній панелі налаштувань Android.
BlueStacks
BlueStacks – безкоштовна програма для запуску Android-ігор в Windows або Mac OS, має багатомовний інтерфейс, в тому числі й українською мовою. Програма підтримує повноекранний режим, 3D-ігри, а також величезну кількість додатків та має пакет встановлених додатків.
Koplayer
Koplayer – також безкоштовний емулятор, який дозволяє легко запустити Android-ігри та додатки на комп'ютері або ноутбуці з Windows. Він працює досить швидко на відносно слабких системах, має схожі налаштування, включаючи призначення кількості оперативної пам'яті для емулятора. Програма має дуже зручне налаштування клавіатури для кожної гри окремо, причому для клавіш можна призначити жести по екрану Android, дії акселерометра, натискання на окремі області екрану.
Емулятори Android для розробників
Якщо основне завдання всіх перерахованих вище емуляторів – запуск Android-ігор і додатків в Windows 10, 8 і Windows 7 звичайними користувачами, то такі призначені в першу чергу для розробників додатків і дозволяють робити налагодження, вони підтримують ADB (відповідно, підключаються до Android Studio).
Створення емуляторів в Android Virtual Device Manager
На сайті для розробників додатків Android ви можете завантажити Android Studio і все, що необхідно для програмування під Android (Android SDK). Даний комплект включає і засоби для тестування, і налагодження додатків на віртуальних пристроях. Емулятор можна створити та запустити навіть не заходячи в Android Studio.
Genymotion
Емулятор Genymotion є простим у встановленні, дозволяє емулювати широкий набір реальних пристроїв з різними версіями ОС Android, він працює швидко і підтримує апаратне прискорення графіки. Російська мова інтерфейсу відсутня.
Є можливість емуляції основної та фронтальної камери, функції скрінкасти та віддаленого керування. Серед переваг – емуляція ADB.
Тут є інтеграція з популярними IDE (Android Studio, Eclipse) та імітація вхідних дзвінків, SMS, розряду батареї та багато інших функцій.
Висновок
На перший погляд здається, що можна спокійно замінити тестування на реальних пристроях емуляторами. Але в реальності не все так просто.
Основні переваги тестування за допомогою мобільних емуляторів:
- більшість програм повністю безкоштовні;
- легко тестувати з їх допомогою;
- баги або скріншоти легко фіксуються;
- можна використовувати для вивчення поведінки програми.
Основні недоліки:
- тестування на емуляторі може давати помилкове враження про роботу додатка;
- так як мобільні емулятори запускаються на ПК, вони мають зовсім інше мережеве середовище;
- більшість емуляторів не можуть імітувати вхідні SMS та виклики;
- емулятори не підтримують тестування на сумісність, так як вони підключені не до мобільної мережі;
- емулятори не можуть імітувати роботу при різному стані акумулятора мобільного пристрою, роботу камери мобільного пристрою і т. ін.
Ферми мобільних пристроїв
Проблема з різноманітністю парку пристроїв виникла давно. Ще тоді Nokia почала безкоштовно пропонувати своїм розробникам сервіс по оренді смартфонів. Можна було встановити додаток на пристрій і в режимі віддаленого керування руками пройти по ключовим сценаріями. Деякі пристрої доводилося довго чекати, але таке тестування давало розробнику можливість дізнатися, чи буде працювати коректно його програма на різних смартфонах чи ні. Початок був гарним, і ферми пристроїв отримали свій подальший розвиток – самі розробники ОС почали надавати інструменти для імітації дій користувача.
Найпопулярніші хмарні ферми девайсів: Firebase Test Lab, Samsung Remote Test Lab, AWS Device Farm, Sauce Labs, Xamarin Test Cloud, Perfecto.
Samsung Remote Test Lab
Однією з переваг Samsung Remote Test Lab є те, що надається доступ до новинок компанії Samsung, і можна протестувати додатки на пристроях, які ще не вийшли у продаж. Плюс, там є доступ до пристроїв на базі Tizen: лінійка смартфонів Z і смарт-годинник Gear.
Робота з сервісом виглядає наступним чином: резервується пристрій і запускається спеціальний Java-додаток, що надає віддалений доступ до екрану і пристроїв введення (тачскрін, кнопки). Зараз є абсолютно безкоштовно 25 моделей смартфонів і планшетів, кожна з моделей в декількох примірниках і модифікаціях. Автоматизація робиться на рівні ручного запису послідовності подій, а встановлювати додаток треба вручну. Samsung Remote Test Lab підтримує зручний режим віддаленого налагодження.
Firebase Test Lab for Android
Сервіс Firebase Test Lab for Android розроблений Google. В цілому Firebase добре підходить командам, які спеціалізуються на розробці для Android. Ферма має широкий спектр пристроїв та їх конфігурацій, а також є можливість запуску на емуляторах. Test Lab включений в єдину підписку на сервіс Firebase і для старту може бути абсолютно безкоштовний.
Спеціалізовані професійні ферми
Розглянемо більш великі ферми, які підтримують iOS, відрізняються великим парком моделей та є платними.
AWS Device Farm
У AWS Device Farm є майже 400 пристроїв (близько 100 моделей), ціни від 0,17 долара за хвилину, є безліміт і 1000 перших хвилин безкоштовно. Серед переваг – висока якість сервісу та можливість інтеграції в DevOps-конвеєр. Сервіс дозволяє тестувати одночасно на декількох пристроях. Для написання скриптів можна використовувати Appium (iOS + Android), Calabash (iOS + Android), Espresso (Android), Robotium (Android), UI Automation (iOS) і XCTest (iOS) та ряд інших.
Xamarin Test Cloud
У сервісі Xamarin Test Cloud пропонується понад 2500 реальних пристроїв. Підтримуються iOS і Android. Надаються такі можливості: скріншоти, автоматизовані скрипти, відео, віддалене налагодження та запис у майбутньому. Вартість послуг – від 99 доларів у місяць. Сервіс ідеально підходить як розробникам кросс-платформних рішень (Xamarin, React Native), так і проєктам з широкою користувальницької аудиторією. Підтримує автоматизовані скрипти на базі Calabash і Xamarin.UITest.
Sauce Labs
На ринку автоматизованого тестування Sauce Labs вже давно. Джейсон Хаггінс (Jason Huggins) – один із засновників компанії, розробник Selenium. Sauce Labs – серйозний сервіс для дорослих команд. Ціни від 149 доларів на місяць, є нативні та гібридні програми для iOS і Android, а також можливість організувати приватну хмару або провести тестування в ручному режимі. Надається підтримка інтеграції з DevOps-конвеєрами та запуск на емуляторах/симуляторах, але моделей пристроїв заявлено не більше двадцяти.
Perfecto
Ще за часів Symbian і Windows Mobile ця компанія пропонувала свої пристрої в оренду, зараз Perfecto надає більше 3000 реальних пристроїв. Послуги платні, але на триалі можна швидко перевірити додаток на працездатність. Тестувати вручну можна безкоштовно, а ось автоматизація буде коштувати від 299 доларів на місяць.
Головними недоліками використання ферм є:
- ціна: через низьку конкуренцію ціни залишаються не дуже доступними для звичайних користувачів;
- продуктивність: команди передаються через інтернет, що може привести до затримок при відгуку пристрою на будь-яку дію, як наслідок – залежність від інтернет-з'єднання;
- місце розташування: оскільки більшість ферм розташовано в Америці чи ЄС, то протестувати додатки для операторів з інших країн є проблематичним.
Висновки
Судячи з описаного вище, можна зробити висновок, що, навіть без наявності необхідних реальних пристроїв, можна провести тестування програми. Але потрібно розуміти, що жоден емулятор або ферма не дасть повноцінного досвіду роботи з пристроєм. Все-таки, дані підходи мають свої недоліки, які потрібно враховувати при проведенні тестів. Але в тому випадку, якщо потрібно зробити швидкий прогін програми на предмет працездатності на певному пристрої, такі варіанти цілком робочі і дозволяють виконати необхідні завдання. Вибір же залежить виключно від поставлених цілей та доступних ресурсів.