3. Какие решает проблемы:
● экономия время
● возможность проверки работы
приложений на различных версиях
устройствах и ОС
● получение текущего состояния
приложения (CI)
4. Проблемы при автоматизации:
● Время на реализацию тестовых скриптов;
● Поддержка тестовых скриптов;
● Высокая стоимость.
5. Общие подходы при проектировании
автоматизированных тестов:
● Record and Play
● Screen Object
6. Record and Play
Для создания скрипта используется любой
инструмент, позволяющий сделать запись
действий пользователя в приложении с
генерацией кода.
7. Итог
Плюсы:
● Не надо писать код
● Скорость
● Можно рассмотреть как часть обучения
Минусы:
● Только простые приложения
● Сложно поддерживать
17. Достоинства
● Имеет внутренний рекордер
● Запуск через Instruments и Terminal
● Тестирование на симуляторах и реальных
устройствах
● Не требует изменения кода самого
приложения
● Поддержка всех нативных элементов
интерфейса
18. Недостатки UIAutomation
● Неудобная среда разработки сценариев
● Отсутствие поддержки систем контроля
версий
● Сложность в написании тестовых
сценариев
20. Примеры тествого сценария
var target = UIATarget.localTarget();
var appWindow = target.frontMostApp().mainWindow();
var element = target;
appWindow.tabBar().buttons()["Unit Conversion"].tap();
UIALogger.logStart("Logging element tree …");
element.logElementTree();
UIALogger.logPass();
24. Tuneup JS
Tuneup JS - библиотека, с набором утилит
для написания тестовых скриптов,
используя UIAutomation.
25. Пример
test("Login screen", function(target, app) {
var window = app.mainWindow();
// tap the left button in the navigation bar
window.navigationBars()[0].leftButton().tap();
// now assert that the app has navigated into a sub-view controller
assertEquals("Settings", window.navigationBars()[0].value());
});
29. Appium
Appium - представляет собой open source-
фреймворк, который помогает
автоматизировать процесс тестирования
мобильных приложений.
30. Достоинства
● Поддержка Android и iOS устройств
● Запуск в симмуляторе и реальном
девайсе
● Множество ЯП (Java, Ruby, Python, C#,
PHP, Javascript)
● Наличие собственного инспектора
● Поддержка интеграции с различными CI
● Navite Apps, Hybrid Apps, Web Apps
31. Недостатки
● Инспектор не видит все элементы
● Нельзя переключаться между сессиями
● Нельзя запустить несколько симуляторов
● xpath бывает неверным
32. Установка Appium
> brew install node # get node.js
> npm install -g appium # get appium
> npm install wd # get appium client
> appium & # start appium
> node your-appium-test.js
41. UIAutomator
● часть Testing Support Library;
● предоставлят набор API для
тестирования UI Android приложения;
● хорошо подходит если во время теста
требуется открыть стороннее/системное
приложение;
42. UIAutomator
● API для получения доступа к состоянию
устройства;
● API для работы с UI компонентами;
● UIAutomatorViewer;
43. UIAutomator. API для получения
доступа к состоянию устройства
● эмуляция нажатия системных кнопок
(Home, Menu etc);
● изменение ориентации устройства;
● получение скриншота с устройства;
44. UIAutomator. API для работы с UI
компонентами
● получение UI элементов на устройстве;
● поддержка работы со списками;
● поиск и фильтрация UI элементов;
52. Robotium. API
Основной класс - Solo.
● предоставляет методы для доступа к UI
элементам;
● эмуляция нажатия системных кнопок
(Home, Menu etc);
● изменение ориентации устройства;
● получение скриншота с устройства;
53. Robotium. Robotium Recorder
● позволяет записывать
тестовые сценарии;
● интегрирован с Android
Studio;
● автоматически получает id
ресурсов;