Ви коли-небудь розробляли додаток для Android і публікували його в Google Play? Що ви зробите, якщо отримаєте відгук користувача, як -
Коли ви публікуєте програму в Google Play, її потрібно добре перевірити, щоб уникнути потенційних помилок. Існує маса тестових сценаріїв, які слід виконати перед публікацією програми. Щоб заощадити зусилля з тестування, вам потрібен інструмент тестування. Одним з найкращих інструментів тестування програми для Android є Selendroid.
- Що таке Selendroid?
- Навіщо нам Selendroid?
- Архітектура Selendroid
- Початок роботи з Selendroid
- Налаштування середовища Selendroid
- Як запустити Selendroid
- Основна команда Selendroid
- Почніть свій перший тест із Selendroid
Що таке Selendroid?
Selendroid - це тестова система автоматизації для багатотипових мобільних додатків: рідної та гібридної програми для Android та мобільного Інтернету.
Ви можете написати тести, використовуючи API клієнта Selenium 2. Оскільки Selendroid все ще повторно використовує існуючу Інтернет-інфраструктуру Selenium
Selendroid - це потужний інструмент тестування. Його можна використовувати на емуляторах та реальних пристроях
Навіщо нам Selendroid?
Selendroid - чудовий інструмент тестування. Але ви все одно можете сумніватися в його корисності.
Цей розділ представить важливі особливості Selendroid, щоб відповісти на запитання, навіщо вам потрібен Selendroid.
- Ви можете протестувати тестоване додаток за допомогою Selendroid без будь-яких змін програми. Вам просто потрібен двійковий файл (APK), встановлений на комп'ютері. Для того, щоб встановити двійковий файл на пристрій, тестовий додаток та мобільний додаток повинні бути підписані однаковим ключем знаку
- Тестовий додаток Selendroid може взаємодіяти з кількома пристроями або симуляторами одночасно. Це велика перевага Selendroid. Тож ви можете протестувати свою програму на різних пристроях Android, щоб перевірити сумісність.
- Selendroid може імітувати дії користувача-користувача над додатком, такі як торкання, проведення, перетягування та перетягування на пристроях
- Ви можете змінити апаратні пристрої (підключіть та відключіть) під час тестування, не перезапускаючи та не зупиняючи тест. Selendroid автоматично розпізнає нові пристрої
- Відповідно до версії Android API вгору, Selendroid також підтримує новий Android API (від API 10 до API 19)
- Selendroid також має вбудований інструмент інспектора, який допоможе вам ідентифікувати елемент інтерфейсу програми, що тестується. Наприклад, кнопка ID, текстове поле, перегляд тексту ...
Архітектура Selendroid
Selendroid базується на структурі приладів Android. Тести Selendroid написані на базі клієнтського API-сервера Selenium Web, тому він підтримує повну інтеграцію з поточними фреймворками Selenium.
На наступному малюнку описана архітектура Selendroid
Selendroid містить 4 основні компоненти:
- Клієнт веб-драйвера - Бібліотека клієнта Java, заснована на Selenium. Цю бібліотеку слід встановити на комп'ютері (який використовується для розробки тестових кейсів)
- Selendroid-Server - Сервер, який працює, знаходиться в тестованому додатку на пристрої Android або симуляторі. Це основні компоненти архітектури Selendroid
- Додаток Android Driver - вбудований драйвер Android, додаток Web View для тестування мобільного Інтернету.
- Selendroid-Standalone - Цей компонент використовується для встановлення сервера Selendroid та додатка, що тестується (AUT)
Початок роботи з Selendroid
Ви вже знали важливість Selendroid. А тепер давайте забруднимо руки Selendroid.
Перед першим тестом із Selendroid потрібно зробити 3 кроки
Налаштування середовища Selendroid
Selendroid може працювати на Windows, Linux та Mac OS. У цьому посібнику ми налаштуємо Selendroid в ОС Windows.
Перш ніж використовувати Selendroid, спочатку потрібно встановити наступний пакет
- Java SDK (мінімум 1,6)
Ви повинні прийняти ліцензійну угоду та завантажити інсталятор Java (виберіть базу x64 або x86 у вашій ОС)
Завантажте та встановіть Java SDK як звичайне програмне забезпечення
- Остання версія Android SDK
- Ваш комп’ютер повинен мати принаймні один віртуальний пристрій Android (AVD) або справжній пристрій Android, підключений до ПК.
- Selendroid Standalone із залежностями, Selendroid Client та Selenium Client
- Програмне забезпечення Eclipse
- Налаштуйте JAVA_HOME та ANDROID_HOME
Крок 1) У вікні клацніть правою кнопкою миші Комп’ютер -> Властивості -> Розширені налаштування системи
Крок 2) Відображення вікна властивостей системи, виберіть вкладку Додатково -> Змінні середовища
Крок 3) Вікно середовища, натисніть Створити -> Введіть змінну ANDROID_HOME наступним чином
Значення змінної - це шлях до android-sdks, який ви вже встановили.
Знайдіть системну змінну Шлях -> Редагувати -> Додайте наступний рядок після поточного рядка
Подібно до ANDROID_HOME, додайте нову змінну JAVA_HOME зі значенням, як показано нижче
Значення - шлях до вашої інсталяції Java JDK
Крок 4) Перезавантажте ПК -> Готово
Як запустити Selendroid
Крок 1) Отримання заявки на тест
Ви можете використовувати існуючий тестовий додаток Selendroid, щоб перевірити, як працює Selendroid (Посилання на зразок програми, що тестується)
Після завершення завантаження скопіюйте цей файл .apk та вищезазначений файл jar Selendroid Standalone у папку з назвою " Guru99"
Крок 2) Запустіть Selendroid
Відкрийте термінал у Windows і перейдіть до папки Guru99, створеної на кроці 1.
Виконайте наступну команду
Вихідні дані відображатимуться наступним чином
Після запуску цієї команди запускається автономний HTTP-сервер Selendroid! Номер порта за замовчуванням - 4444. Усі апаратні пристрої, а також віртуальні пристрої Android, будуть скановані та розпізнані автоматично. Selendroid визначить цільову версію Android та розмір екрану пристрою.
Щоб перевірити цільову версію Android, а також інформацію про пристрій, у браузері можна запустити таку URL-адресу:
http: // localhost: 4444 / wd / hub / status.
Основна команда Selendroid
У цьому розділі представлені основні командні рядки Selendroid-Standalone. Ви можете використовувати їх для налаштування середовища тестування Selendroid
- Налаштування порту Selendroid
Порт Selendroid за замовчуванням - 4444. Але ви можете перейти на інший порт, додавши параметр до команди для запуску Selendroid
Параметр: -port [номер порту]
Наприклад:
У наведеній вище команді 5555 - це новий порт.
Тож URL-адреса для перевірки цільової версії Android змінена на: http: // localhost: 5555 / wd / hub / status
- Вкажіть розташування тестованої програми (файл двійкового файлу .apk). Selendroid часто вимагав абсолютного шляху до цього файлу
Параметр: -app [шлях до файлу]
Наприклад:
У наведеній вище команді Selendroid автоматично знаходить базу двійкових файлів на "C: \ Guru99App.apk", щоб отримати інформацію про програму, що тестується.
Перевірте URL-адресу http: // localhost: 4444 / wd / hub / status, ви побачите цю інформацію
- Змініть порт, який Selendroid використовує для зв’язку з сервером контрольно-вимірювальних приладів. Selendroid використовує порт 8080 за замовчуванням
Параметр: -selendroidServerPort [номер порту]
Приклад
Зараз порт змінено на 9000
- Змініть час очікування, щоб запустити емулятори. Одиниця вимірювання - мілісекунди.
Параметр: -timeoutEmulatorStart
За замовчуванням Selendroid зачекає 300 000 мілісекунд, поки не запуститься емулятор. Ви можете перейти на новий час очікування (200 000 мс) за командою
Після закінчення цього часу, якщо термін дії закінчився, якщо емулятор не вдається запустити, Selendroid видасть помилку виключення (сталася помилка під час пошуку пристроїв / емуляторів.), А потім припинить роботу
- Після запуску команди Selendroid на терміналі ви побачите журнал, роздрукований на екрані. Ви можете змінити тип журналу, який ви бачите, додавши наступний параметр
Параметр: -logLevel [тип журналу]
Значення рівня журналу - ПОМИЛКА, ПОПЕРЕДЖЕННЯ, ІНФОРМАЦІЯ, ВИРОБКА та ВЕРБОЗА. За замовчуванням: ПОМИЛКА.
Наприклад, встановіть Selendroid для друку лише журналу ПОПЕРЕДЖЕННЯ, ви можете використовувати цю команду
Selendroid друкує лише журнал ПОПЕРЕДЖЕННЯ
Почніть свій перший тест із Selendroid
Цей розділ - покроковий посібник зі створення першого тестового сценарію за допомогою Selendroid
Припустимо, у нас є програма для Android під тестовою назвою Guru99App. Додаток включає текстове поле та назву кнопки "Показати текст".
ЗАВАНТАЖИТИ АПК ТУТ
Нам потрібно виконати наступний тест, використовуючи Selendroid
Тестові кейси |
Хвороба |
Очікуваний результат: |
|
Доступний двійковий файл тестованої програми Пристрій підключено до ПК |
Текст "Показати текст тут" змінено на текст який користувач вводить у текстове поле |
Крок 1) Створіть проект Java у Eclipse
Крок 2) Додайте файл селену та jar jar Selendroid в середовищі затемнення
Клацніть правою кнопкою миші проект Guru99Test -> Побудувати шлях -> Додати зовнішні архіви
Перейдіть до папки, в якій зберігалися файли jar
Слід додати 3 файли jar
- selendroid-client-0.10.0.jar: бібліотека клієнта Java Selendroid
- selendroid-standalone-0.11.0-with-dependencies: бібліотека автономного сервера Selendroid
- selenium-java-2.40.0.jar: бібліотека веб-драйверів Selenium
Виділити все -> Вибрати Відкрити, щоб додати файл jar до проекту
Крок 3) після додавання вищезазначеної бібліотеки ці бібліотеки будуть додані до Довідкових бібліотек тестового проекту. Тестер може використовувати API цих бібліотек для розробки програми тестування
Створіть пакет "com.guru.test" та додайте java-файл "Guru99Test.java", як показано нижче
Клацніть правою кнопкою миші Guru99Test -> New -> Package
Введіть com.guru.test у поле Ім'я у діалоговому вікні Новий пакет Java à Готово
Eclipse створить подібні папки списків та підпапок у структурі вихідного коду
Крок 4) Встановіть TestNG для Eclipse
В Eclipse, Довідка -> Встановити нове програмне забезпечення, у діалоговому вікні Установка натисніть Додати та введіть наступне
- Назва: TestNG
- Місцезнаходження: http://selendroid.io/
Натисніть OK -> Далі, щоб встановити TestNG
Крок 5) Скопіюйте Guru99App.apk у папку Test App
Крок 6) Отримайте ідентифікатор програми, що тестується.
Припустимо, у нас є файл файлу .apk Guru99App.apk. Дотримуйтесь кроку, описаного в попередньому розділі, виконайте команду на терміналі
Відкрийте наступне посилання у браузері
http: // localhost: 4444 / wd / hub / status.
Відобразиться інформація про пристрій, скопіюйте значення appId "com.guru99app: 1.0"
Крок 7) Відкрийте файл Guru99Test.java (у зразку коду) і змініть, як показано нижче
Щоб створити новий тестовий сеанс із Selendroid, потрібно вказати ідентифікатор програми у форматі: com.guru99app: 1.0. Цей ідентифікатор програми можна визначити на кроці 6. Якщо ви не встановите ідентифікатор програми, який відповідає пристрою Android, тестовий сеанс видасть помилку і не розпочнеться.
Після ініціалізації знайденого пристрою Selendroid створює власний selendroid-сервер і встановлює на нього сервер Selendroid
Selendroid також встановлює тестоване додаток і запускає selendroid-сервер на пристрої
Після успішної ініціалізації тестового сеансу запускається тестова команда на пристрої. (Наприклад, введення тексту, натисніть кнопку
…). Якщо тест додається до тестового сеансу, емулятор автоматично зупинитьсяКрок 8) Почніть новий сеанс тестування
Запустіть сервер Selendroid, використовуючи таку команду на терміналі, як крок 6
Після запуску сервера Selendroid відкрийте зразок тестового проекту Guru99test на Eclipse, встановіть точку зупинки в рядку 77 у файлі Guru99Test.java, двічі клацнувши рядок 77 -> З’явиться крапка, як показано нижче
Почніть тестову сесію, клацнувши правою кнопкою миші проект Guru99Test -> Налагодження як -> Testng Test.
Тестова сесія розпочнеться, як показано нижче
Крок 9) Отримайте ідентифікатор елемента графічного інтерфейсу програми, що тестується
Після успішного запуску тестового сеансу відкрийте браузер, перейдіть до URL-адреси http: // localhost: 4444 / inspector
Ви побачите, що тестова програма запущена, як показано нижче
Використовуйте курсор миші до кожного елемента інтерфейсу користувача AUT (Button, TextField, Text Label), ідентифікатор кожного елемента буде виділено на правій панелі
Після цього кроку ви можете отримати ідентифікатор кожного з вищезазначених елементів інтерфейсу
- Кнопка Показати ідентифікатор тексту: " btnShow "
- Ідентифікатор текстового поля: " edtText "
- Ідентифікатор тексту мітки: " txtView "
Ці ідентифікатори будуть використані на наступному кроці
Крок 10) Введіть програму тестування, як показано нижче
Тестова програма з використанням Selendroid включає 3 розділи
Тест налаштування:
Нижче наведено код для налаштування тесту, він встановить умову для тестового сеансу. У разі помилки Selendroid видасть виняток і тестова програма зупиниться.
Код містить коментарі для пояснення кожного твердження.
пакет com.guru.test;імпортувати io.selendroid.SelendroidCapabilities;імпортувати io.selendroid.SelendroidConfiguration;імпортувати io.selendroid.SelendroidDriver;імпортувати io.selendroid.SelendroidLauncher;імпортувати io.selendroid.device.DeviceTargetPlatform;імпорт org.openqa.selenium.By;імпорт org.openqa.selenium.WebDriver;імпорт org.openqa.selenium.WebElement;імпорт org.testng.Assert;імпорт org.testng.annotations.AfterSuite;імпорт org.testng.annotations.BeforeSuite;імпорт org.testng.annotations.Test;/ *** @author Guru99 Test App за допомогою Selendroid* Заявка на тест: Guru99App** /громадськостіклас Guru99Test {// Оголосити змінну веб-драйвераприватний драйвер WebDriver;/ *** Налаштуйте середовище перед тестуванням* @throws Виняток* /@BeforeSuiteгромадськостіvoid setUp () викидає виняток {// Запуск selendroid-standalone під час тестуSelendroidConfiguration config = новий SelendroidConfiguration ();// Додаємо додаток selendroid-test на автономний серверconfig.addSupportedApp ("Guru99App.apk");// запуск автономного сервераSelendroidLauncher selendroidServer = новий SelendroidLauncher (конфігурація);selendroidServer.launchSelendroid ();// Створення можливостей selendroidSelendroidCapabilities capa = новий SelendroidCapabilities ();// Вкажіть, як використовувати тестовий додаток selendroidcapa.setAut ("com.guru99app: 1.0");// Вкажіть використання API пристрою Android 19capa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Не вимагайте симулятор, використовуйте реальний пристрійcapa.setEmulator (false);//capa.wait(10000000);// Створення екземпляра драйвера Selendroidдрайвер = новий SelendroidDriver (capa);}
Виконайте тест
Нижче наведено код для виконання тесту. Код містить коментарі
Ось тестові кроки ще раз
- Введіть текст "Привіт Гуру"
- Натисніть кнопку Показати текст
- Зачекайте трохи
- Переконайтеся, що програма відображає текст під час введення користувачем у текстове поле (Наприклад, відображати текст "Hello Guru")
/ *** Почніть виконувати тест* 01. Введіть текст "Selendroid" у текстове поле* 02. Натисніть кнопку OK* @throws Виняток* /@ Тестгромадськостіvoid selendroidTest () викидає виняток {// Роздрукувати журналSystem.out.print ("Почати виконання тесту");// Знайти текстове поле введення на екрані// Ідентифікатор цього текстового поля отримано з кроку 9WebElement inputField = driver.findElement (By.id ("edtText"));// Переконайтеся, що введено текстове поле, щоб користувач міг вводити текстAssert.assertEquals ("true", inputField.getAttribute ("увімкнено"));// Введення тексту в текстове полеinputField.sendKeys ("Привіт Гуру");// натисніть кнопку Показати текст// Ідентифікатор цієї кнопки отримано з кроку 9Кнопка WebElement = driver.findElement (By.id ("btnShow"));button.click ();// Час затримки для набрання чинностіThread.sleep (5000);// Знайдіть на екрані мітку "Текстовий показ тут"// Ідентифікатор цієї мітки отримано з кроку 9WebElement txtView = driver.findElement (By.id ("txtView"));// Отримати текстове відображення на екраніОчікуваний рядок = txtView.getText ();// Переконайтеся, що текст, який користувач вводить у текстове поле, такий самий, як і текст на екраніAssert.assertEquals (очікувано, inputField.getText ());}
Завершити тест
Наступний код завершить тест, зупинивши драйвер Selendroid.
/ *** Зупиніть драйвер Selendroid** /@AfterSuiteгромадськостіvoid tearDown () {driver.quit ();}
Ви можете побачити подробиці у зразку коду, включеному до цієї статті.
Крок 10) Підключіть пристрій Android до ПК за допомогою USB-кабелю. Бали для спостереження -
- Переконайтесь, що на пристрої не налаштовано блокування екрана.
- Пристрої повинні бути підключені через USB до комп’ютера, на якому працює автономний компонент selendroid.
- Пристрій повинен встановити принаймні Android Target Version API 10
Крок 11) Запустіть тестовий додаток: Клацніть правою кнопкою миші Guru99test -> Запустити як -> TestNG test
Крок 10) Запуск сценарію виконується наступним чином
Крок 12) Після завершення тесту TestNG автоматично генерує звіт про тестування наступним чином
Хороша робота, ви пройшли тест зараз.
Резюме
Резюме
- Selendroid - це дуже потужний інструмент для тестування рідної програми Android, гібридної програми, а також веб-програми.
- Його можна використовувати як на реальних пристроях, так і на тренажері.
- Це також дозволяє запускати тести паралельно, запускаючи тест на декількох пристроях.
- Весь набір Selendroid складається з чотирьох компонентів:
- Клієнт веб-драйвера,
- Selendroid-сервер,
- Додаток для драйверів Android
- Селендроїд - самостійний
- Для використання Selendroid вам потрібно встановити Java JDK, Android SDK та Eclipse.