- Appium
- Introducing Appium.
- Watch the Videos
- Appium Philosophy
- Use your favorite tools
- Appium
- Introducing Appium.
- Watch the Videos
- Appium Philosophy
- Use your favorite tools
- Русские Блоги
- Начало работы с Appium + Python3 + Android
- Предисловие:
- Три, управление позиционированием
- Руководство по Appium для тестирования устройств под Andoid и iOS
- Почему Appium стал популярным инструментом для автоматизации мобильных приложений?
- Настройка Appium на Windows
- USB-драйвер для тестового устройства (Moto G)
- Обновите API, как показано на скриншоте:
- Подготовка мобильного устройства для автоматизации в Appium
- Как включить режим разработчика/опции на смартфоне Android или планшете:
- Начало автоматизации Android-приложения с помощью Appium
- Как обнаружить элемент, используя UIAutomatorViewer?
- Первая программа для автоматизации приложения на Appium
Appium
Automation for Apps
Appium is an open source test automation framework for use with native, hybrid and mobile web apps.
It drives iOS, Android, and Windows apps using the WebDriver protocol.
Introducing Appium.
Is native app automation missing from your tool belt? Problem solved.
Watch the Videos
Appium Philosophy
Appium is built on the idea that testing native apps shouldn’t require including an SDK or recompiling your app. And that you should be able to use your preferred test practices, frameworks, and tools. Appium is an open source project and has made design and tool decisions to encourage a vibrant contributing community.
Use your favorite tools
Appium aims to automate any mobile app from any language and any test framework, with full access to back-end APIs and DBs from test code. Write tests with your favorite dev tools using all the above programming languages, and probably more (with the Selenium WebDriver API and language-specific client libraries).
Источник
Appium
Automation for Apps
Appium is an open source test automation framework for use with native, hybrid and mobile web apps.
It drives iOS, Android, and Windows apps using the WebDriver protocol.
Introducing Appium.
Is native app automation missing from your tool belt? Problem solved.
Watch the Videos
Appium Philosophy
Appium is built on the idea that testing native apps shouldn’t require including an SDK or recompiling your app. And that you should be able to use your preferred test practices, frameworks, and tools. Appium is an open source project and has made design and tool decisions to encourage a vibrant contributing community.
Use your favorite tools
Appium aims to automate any mobile app from any language and any test framework, with full access to back-end APIs and DBs from test code. Write tests with your favorite dev tools using all the above programming languages, and probably more (with the Selenium WebDriver API and language-specific client libraries).
Источник
Русские Блоги
Начало работы с Appium + Python3 + Android
Предисловие:
Appium — это инструмент для автоматического тестирования с открытым исходным кодом, который поддерживает собственные приложения, веб-приложения и гибридные приложения на платформах iOS и Android.
1. Конфигурация среды
1. Установите Node.js
2. Установите Appium
3. Установите Android SDK
4. Установите Python-клиент
pip3 install Appium-Python-Client
5. Установите Appium-клиент
Наконец, откройте командную строку и введите команду «appium-doctor». Если появляется следующее приглашение, это означает, что все среды, необходимые для вашего Appium, готовы.
Во-вторых, ключевые слова службы
Желаемые возможности должны быть предоставлены при запуске сеанса.
Желаемые возможности по сути хранятся в виде словаря значений ключей.Клиент отправляет эти пары ключ-значение на сервер и сообщает серверу, как мы хотим провести тестирование.
Это говорит appium Server что-то вроде этого:
• deviceName: какое устройство запускается, это реальная машина или эмулятор? iPhone Simulator, iPad Simulator, iPhone Retina 4-дюймовый, Android-эмулятор, Galaxy S4 .
• AutomationName: какой механизм автоматизации использовать. appium (по умолчанию) по-прежнему Selendroid.
• platformName: какую мобильную платформу использовать. iOS, Android или FirefoxOS.
• platformVersion: укажите системную версию платформы. Например, платформа Android относится к версии 5.1.
• appActivity: имя активности тестируемого приложения. Такие как MainActivity, .Settings. Обратите внимание, что если вы хотите собственное приложение, добавьте «.» Перед действием.
• appPackage: пакет Java тестируемого приложения. Например, com.example.android.myApp, com.android.settings.
Три, управление позиционированием
1. Идентификация личности
Как использовать: driver.find_element_by_id («com.android.calculator2: id / формула»)
2. Название позиционирования
Как использовать: driver.find_element_by_name («9»))
3. Расположение имени класса
Как использовать: driver.find_element_by_class_name («android.widget.Button»))
4. XPath позиционирование
Как использовать: Используйте атрибут класса, чтобы заменить имя метки.
Если класс один и тот же, значение атрибута элемента управления можно использовать для его различения.
Использование XPath в Appium по-прежнему очень мощно, иногда необходимо написать более устаревший и более длинный синтаксис позиционирования, потому что команда class элемента в APP уже длинная, плюс несколько уровней, и можно представить себе результат.
5. Расположение идентификатора доступности
Использование: Фактически, наше ядро - найти атрибут contentDescription элемента. Это содержание-элемент.
6, позиционирование Android uiautomator
Любой атрибут элемента может быть позиционирован методом uiautomator android, но уникальность этого метода позиционирования должна быть гарантирована.
Четыре, операция приложения
1. Установите приложение
Установите приложение на устройство. Путь к пакету apk обязателен.
2. Удалите приложение
Удалить приложение с устройства.
3. Закройте приложение
Закройте открытое приложение. По умолчанию текущее открытое приложение закрыто, поэтому ввод не требуется. Этот метод на самом деле не закрывает приложение, это эквивалентно нажатию кнопки «Домой», чтобы поместить приложение в фоновый режим, который можно запустить снова с помощью launchApp ().
4. Запустите приложение
Запустите приложение. Вы должны быть сбиты с толку. Дело не в том, что приложение было указано в начальной информации о конфигурации. Когда скрипт запускается, вам нужно запустить приложение. Зачем вам нужен этот метод для запуска приложения? Перезапуск приложения также является контрольной точкой, и этот метод необходимо использовать с closeApp ().
5. Проверьте, установлено ли приложение
Проверьте, установлено ли приложение. Вам необходимо передать название пакета приложения. Возвращаемый результат — Ture или False.
6. Поместите приложение в фоновом режиме
Отправить текущее активное приложение в фоновом режиме. Этот метод требует ввода и должен указать период времени, в течение которого приложение помещается в фоновом режиме.
7. Сброс приложения
Сброс текущей протестированной программы в исходное состояние. Этот метод не требует ввода.
5. Клавиатура
1. Метод SendKeys ()
2. Метод PressKeyCode ()
Кроме того, расширение Appium предоставляет метод pressKeyCode (). Этот метод уникален для Android.
Операция отправки кода ключа. (Пожалуйста, проверьте Baidu для таблицы сравнения кода ключа, которая здесь не показана.)
driver.press_keycode (3) // Нажать клавишу Android HOME
driver.press_keycode (27) // Нажмите кнопку камеры
3. Проблема метода ввода:
Вы должны использовать собственную клавиатуру appium и добавить:
Шесть, TouchAction операция
Вспомогательный класс Appium в основном предназначен для операций с жестами, таких как скольжение, длительное нажатие, перетаскивание и т. Д.
1. Нажмите контрольную кнопку ()
Начните нажимать элемент или координатную точку (x, y). Используйте свой палец, чтобы нажать место на экране телефона.
press(WebElement el, int x, int y)
2. Длинное нажатие управления longPress ()
Начните нажимать элемент или координатную точку (x, y). По сравнению с методом press (), longPress () имеет еще один входной параметр. Так как длительное нажатие должно быть время для нажатия Продолжительность в миллисекундах. 1000 означает нажатие на одну секунду. Его использование такое же, как и у метода press ().
longPress(WebElement el, int x, int y, Duration duration)
3. Нажмите на элемент управления ()
Нажмите на элемент или элемент управления. Обратитесь к нажатию () для использования.
tap(WebElement el, int x, int y)
Наведите указатель (курсор) из прошлого на указанный элемент или точку.
movTo(WebElement el, int x, int y)
5. Приостановить ожидание ()
Приостановите выполнение скрипта в миллисекундах.
7. Другие операции
Другие операции характерны для некоторых операций на мобильных устройствах.
1. Экран выключен
Нажмите кнопку питания, чтобы выключить экран.
Устройство iOS можно настроить на отключение экрана на определенный период времени. У Android нет параметров, поэтому он не загорается после выключения экрана.
2. Свернуть клавиатуру
Сверните клавиатуру, этот метод очень полезен. Когда мы закончим вводить поле ввода, нам нужно убрать клавиатуру, а затем переключиться на поле ввода для ввода.
driver.hideKeyboard (); // Остановить клавиатуру
Имитация пользовательского удара. Перетащите элемент управления или элемент из одного места (x, y) в другое место (x, y).
swipe(int startx, int starty, int endx, int endy, int duration)
* start_x: координата x, чтобы начать скольжение. * start_y: координата y, чтобы начать скольжение.
* end_x: координата x конечного слайда. * end_y: конец координаты y слайда.
Пример: driver.swipe (75, 500, 75, 0, 800);
Использование: driver.get_screenshot_as_file (‘../ screenshot / foo.png’), параметр — путь и имя сохраненного изображения
5. Получить различные свойства элемента управления
Использование: driver.find_element_by_id (). Get_attribute (name),
имя — знак слева (класс, пакет, проверено, проверено . ),
Доступные типы строк:
имя (вернуть контент-описание или текст)
текст (вернуть текст)
className (возвращаемый класс, только API => 18 может поддерживать)
resourceId (вернуть идентификатор ресурса, может поддерживать только API => 18)
8. Утверждение юниттеста
В рамках модульного тестирования unittest класс TestCase предоставляет несколько методов для проверки и сообщения о сбоях:
>>assertEqual(first, second, msg=None)
Определите, равны ли значения first и second.Если они не равны, тест не пройден. Msg используется для определения информации об исключении, выдаваемой после сбоя.
>>assertNotEqual(first, second, msg=None)
Первый и второй тесты не равны. Если они равны, тест не пройден.
Test expr для Ture (или False)
>>assertIs(first, second, msg=None)
>>assertIsNot(first, second, msg=None)
Первый и второй тесты являются (или не являются) одним и тем же объектом.
Проверьте, есть ли expr (или нет)
>>assertIn(first, second, msg=None)
>>assertNotIn(first, second, msg=None)
Проверьте, является ли первое (или нет) вторым. второй содержит, содержит ли первый.
Девять, пример кода (пример приложения: Гималаи FM)
Источник
Руководство по Appium для тестирования устройств под Andoid и iOS
Appium — это кроссплатформенный инструмент с открытым исходным кодом, который помогает автоматизировать тестирование мобильных приложений для Android и iOS.
Appium поддерживает мобильные, нативные и гибридные приложения.
Существует три типа мобильных приложений:
- Нативные. Их создают с помощью комплекта средств разработки (SDK) для iOS, Android или Windows. Для каждой платформы нужен свой комплект.
- Гибридные. Веб-приложения, разработанные с использованием HTML и CSS + обертка нативного приложения поверх компонента UIWebView для iOS-приложений и WebView — для Android.
- Мобильные веб-приложения. Приложения, доступ к которым предоставляют мобильные браузеры.
Почему Appium стал популярным инструментом для автоматизации мобильных приложений?
Appium — кроссплатформенный инструмент, т.е. позволяет писать тесты для мобильных платформ (iOS, Android, Windows), используя API. Это один из самых широко используемых инструментов для регрессионного тестирования приложений на смартфонах и планшетах.
Настройка Appium на Windows
Краткий перечень ПО и устройств, необходимых для автоматизации тестирования мобильного приложения с помощью Appium:
- На вашем ПК должны присутствовать: JDK, Appium Server, Eclipse, Android SDK.
- Apk. Мобильное приложение для автоматизации. В данном случае речь идет о ContactManager.apk
- Устройство для теста: в данном случае — Moto G.
- Jar: Java-client и Selenium.
USB-драйвер для тестового устройства (Moto G)
Шаг #1: Установить инструментальный набор JDK.
Шаг #2: Задать путь для системной переменной Java (Environment Variable Path)
Шаг #3: Скачать и установить Android SDK здесь и обновить API.
Чтобы обновить API, откройте Eclipse -> кликните Window в Eclipse Menu, затем -> выберите Android SDK manager
Обновите API, как показано на скриншоте:
Шаг #4: Теперь понадобится установить Appium для Windows.
Шаг #5: Установите Node JS отсюда: Node JS download
Шаг #6: Установите путь для ANDROID_HOME и для JAVA_HOME
Уточните путь для инструментов в Android SDK.
Эти папки присутствуют в adt-bundle-windows-x86_64-20140702\sdk
Теперь понадобится обновить системную переменную (скриншот ниже)
Обновите инструменты (папка присутствует в Android SDK).
Нажмите комбинацию клавиш Win+R
Впишите CMD. Теперь в CMD впишите «adb». adb будет доступен.
Подготовка мобильного устройства для автоматизации в Appium
Подключите свое мобильное устройство для тестирования к ПК через USB. Включите режим разработчика (Developer Mode) в устройстве перед автоматизацией приложения.
Как включить режим разработчика/опции на смартфоне Android или планшете:
1) Откройте настройки, нажмите вкладку «About», нажмите «Software Information», нажмите «More».
2) Нажмите «Build number» 7 раз, чтобы активировать опцию разработчика.
3) Вернитесь к настройкам — появились ли «Developer options»?
4) Нажмите «Developer options», выберите опцию «USB Debugging» из меню на следующем экране.
Более детальные инструкции — по ссылке.
5) Скачайте и установите USB-драйверы для тестового устройства на ПК.
6) В терминале впишите «adb devices»
Список подключенных устройств
Это высветит список устройств, которые подключены к системе. В качестве примера автоматизации будет использован App Contact Manager.apk. Установите на устройство Contact Manager.apk.
Начало автоматизации Android-приложения с помощью Appium
Запустите appium.exe на ПК.
Appium должен быть запущен и соответствовать следующим условиям.
Примечание: не меняйте название устройства в настройках Android. При запуске Appium Server, адрес сервера, а также адрес порта будут установлены по умолчанию. Адрес порта по умолчанию будет 4723.
В настройках Android пользователю необходимо установить путь APK, где расположен APK, проверить путь приложения, пакет и запустить Activity.
Подключите своей андроидофон к ПК и включите режим отладки USB.
Откройте командную строку.
Впишите команду adb logcat.
Откройте приложение на своем андроидофоне. Сразу же нажмите CTRL + C в командной строке.
com.example.android.contactmanager — название пакета и com.example.android.contactmanager.ContactManager — это название активности приложения Contact Manager.
На скриншоте выше заполнена вся необходимая информация в Appium, т.е. пакет, активность, название мобильного устройства.
Как обнаружить элемент, используя UIAutomatorViewer?
1) Для автоматизации приложения понадобится вначале найти элементы приложения, для которых нужна автоматизация. Будет использован UIAutomatorViewer.
2) Подключите к ПК устройство, на котором установлено приложение.
3) Откройте терминал.
Впишите ‘adb devices‘.
Список подключенных устройств
Так можно будет увидеть список устройств, которые подключены к ПК.
4) Откройте приложение, которое вы хотите автоматизировать в мобильном устройстве.
5) Откройте UIAutomatorViewer и пройдите по навигации:
6) На скриншоте устройства проверьте, что приложение и UIAutomaterViewer запущены.
7) Эта опция позволяет сделать скриншот приложения с полной информацией обо всех элементах, которые видны в приложении.
Кликните кнопку Add Contact (добавить контакт) для тестового сценария.
В качестве указателя может использоваться By.name(“Add Contact”)
Указатель By.className (android.widget.EditText)
Указатель By.name(“Save”) для кнопки Save.
Первая программа для автоматизации приложения на Appium
Запустите скрипт, размещенный ниже, приложение Contact Manager запустится на фактическом устройстве и все логи вводятся в консоли Appium. Так можно увидеть все действия, которые запустил этот скрипт.
Источник