-
Notifications
You must be signed in to change notification settings - Fork 79
20. Мобильная автоматизация #2. Разрабатываем автотесты с эмулятором Android устройства Python
Данный раздел разделен на несколько частей (каждый пункт - это ссылка на соответствующий раздел):
-
Инструкция по настройке системы на Windows
- Установка Node.js и npm
- Установка Appium
- Установка драйвера UiAutomator2 для Appium
- Установка Android Studio
- Настройка Android Studio и установка SDK
- Добавление переменной ANDROID_HOME в системные переменные
- Создание виртуального устройства в Android Studio
- Установка Java Development Kit (JDK)
- Установка Appium Inspector
-
Инструкция по настройке системы на macOS
- Установка Node.js и npm на macOS
- Установка Appium на macOS
- Установка драйвера UiAutomator2 для Appium на macOS
- Установка Android Studio на macOS
- Настройка Android Studio и установка SDK на macOS
- Добавление переменной ANDROID_HOME в системные переменные на macOS
- Создание виртуального устройства в Android Studio на macOS
- Установка Java Development Kit (JDK) на macOS
- Установка Appium Inspector на macOS
-
Запуск Appium сервера и Appium Inspector и подключение эмулятору
Нажать, чтобы раскрыть
Нажать, чтобы раскрыть
Для начала необходимо проверить установлены ли Node.js и npm на вашем компьютере. Для этого необходимо открыть командную строку и выполнить следующие команды:
node -v
npm -v
Если Node.js и npm не установлены, то вы увидите сообщение об ошибке.
Для того чтобы установить Node.js и npm необходимо перейти на сайт Node.js и скачать актуальную версию.
После скачивания необходимо запустить установщик и следовать инструкциям.
Обратите внимание чтобы во время установки были отображены как на скриншоте следующие опции, а именно отображение Add to PATH
и npm package manager
.
После установки необходимо проверить всё ли установилось корректно. Для этого необходимо открыть командную строку и выполнить команды:
node -v
npm -v
Если всё установилось корректно, то вы увидите версии установленных пакетов.
Нажать, чтобы раскрыть
Установка Appium происходит через npm. Для этого необходимо открыть командную строку и выполнить следующую команду:
npm install -g appium
Нажать, чтобы раскрыть
Для установки драйвера UiAutomator2 необходимо выполнить следующую команду:
appium driver install uiautomator2
Важно! Если во время ввода команды вы увидите ошибку, подобную этой:
То необходимо выполнить следующую команду в терминале с правами администратора!:
Set-ExecutionPolicy RemoteSigned
И после этого ввести букву Y
и нажать Enter
.
Далее заново нужно повторить установку драйвера UiAutomator2 по команде:
appium driver install uiautomator2
Если всё прошло успешно, то вы увидите сообщение об успешной установке драйвера.
Нажать, чтобы раскрыть
Для установки Android Studio необходимо перейти на официальный сайт разработчика и скачать актуальную версию.
Указать отметку, что вы прочитали и согласны с условиями лицензионного соглашения и нажать на кнопку Download Android Studio for Windows
.
Открыть скачанный файл и следовать инструкциям.
После установки нажимаем на кнопку Finish
.
Так как была указана отметка Start Android Studio
, то после нажатия на кнопку откроется Android Studio.
В отобразившемся окне Import Android Studio settings
указываем отметку Do not import settings
и нажимаем на кнопку OK
.
В окне Help improve Android Studio
нажимаем на кнопку Don't send
.
Нажать, чтобы раскрыть
После открытия Android Studio будет отображено окно Welcome to Android Studio
. Нажимаем на кнопку Next
.
В окне Install Type
выбираем Standard
и нажимаем на кнопку Next
.
В окне Verify Settings
в Current Settings
отображено что будет скачано и установлено. Нажимаем на кнопку Next
.
В окне License Agreement
в блоке android-sdk-license
ставим отметку accept
.
Кликаем на блок intel-android-extra-license
и ставим отметку accept
и нажимаем на кнопку Finish
.
Название блока intel-android-extra-license
может отличаться в зависимости от вашего пк.
Установка зависимостей и sdk может занять некоторое время.
Важно! Если во время установки вы увидите сообщение об ошибке, подобное этому:
То необходимо включить виртуализацию в BIOS. Для этого необходимо перезагрузить компьютер и во время загрузки нажать на клавишу F2
или F12
(в зависимости от производителя вашего пк). В меню BIOS необходимо найти пункт Virtualization
и включить его.
После установки зависимостей откроется окно Welcome to Android Studio
. В котором необходимо кликнуть на выпадающий список More Actions
и выбрать пункт SDK Manager
.
На вкладке SDK Platforms
убедитесь, что установлены все необходимые пакеты. Если какие-то пакеты не установлены, то установите их.
Перейти на вкладку SDK Tools
и убедиться, что установлены все необходимые пакеты. Если какие-то пакеты не установлены, то установите их.
Нажать, чтобы раскрыть
Для того чтобы Appium мог найти SDK Android, необходимо добавить переменную ANDROID_HOME
в системные переменные. Для этого необходимо выполнить следующие шаги:
- Перейти в
Панель управления
->Систем и безопасность
->Система
->Дополнительные параметры системы
.( Либо открыть окноМой компьютер
, кликнуть правой кнопкой мыши и выбрать пунктСвойства
). - В открывшемся окне перейти на вкладку
Дополнительно
/Дополнительные параметры системы
и нажать на кнопкуПеременные среды
. - В разделе
Системные переменные
/Переменные среды пользователя
нажать на кнопкуСоздать
. - В поле
Имя переменной
ввестиANDROID_HOME
, а в полеЗначение переменной
ввести путь до папки с SDK Android. Например,C:\Users\%USERNAME%\AppData\Local\Android\Sdk
. - Нажать на кнопку
ОК
.
где %USERNAME%
- это ваше имя пользователя.
Действия выше нужно проделать как для системной переменной, так и для переменной пользователя.
Далее необходимо добавить в переменную Path
путь до папки platform-tools
и tools
внутри папки с SDK Android. Для этого необходимо выполнить следующие шаги:
- В разделе
Системные переменные
/Переменные среды пользователя
найти переменнуюPath
и нажать на кнопкуИзменить
. - Нажать на кнопку
Создать
. - В поле
Имя переменной
ввестиPath
кликнуть на нее два раза, а в пустое поле ввести пути до папокplatform-tools
иtools
внутри папки с SDK Android.
Например,
C:\Users\%USERNAME%\AppData\Local\Android\Sdk\tools
C:\Users\%USERNAME%\AppData\Local\Android\Sdk\tools\bin
C:\Users\%USERNAME%\AppData\Local\Android\Sdk\platform-tools
C:\Users\%USERNAME%\AppData\Local\Android\Sdk\platform-tools\adb
C:\Users\%USERNAME%\AppData\Local\Android\Sdk\emulator
где %USERNAME%
- это ваше имя пользователя.
- Нажать на кнопку
ОК
.
Данные действия нужно проделать как для системной переменной, так и для переменной пользователя.
Mac os
Для того чтобы добавить переменную ANDROID_HOME
в Mac OS, необходимо выполнить следующие шаги:
открыть терминал и выполнить следующую команду:
open .zshrc
Откроется файл .zshrc
в текстовом редакторе. В конец файла добавить следующую строку:
export PATH=$PATH:/usr/local/bin
export ANDROID_HOME="$HOME/Library/Android/sdk"
export ANDROID_SDK_ROOT="$HOME/Library/Android/sdk"
export PATH="$ANDROID_HOME/tools:$PATH"
export PATH="$ANDROID_HOME/platform-tools:$PATH"
source ~/.zshrc
Нажать, чтобы раскрыть
Открыть Android Studio
.
Кликнуть на выпадающий список More Actions
и выбрать пункт Virtual Device Manager
.
В открывшемся окне нажать на кнопку Device Manager
необходимо нажать на иконку +
.
В окне Choice a device definition
выбрать устройство, которое вы хотите эмулировать и нажать на кнопку Next
.
На странице System Image
необходимо выбрать версию Android, которую вы хотите установить на эмуляторе.
Если в строке Realease Name
нарисована иконка скачивания, то необходимо нажать на нее и дождаться окончания загрузки.
После скачивания данная версия будет доступна для установки.
В окне Verify Configuration
если необходимо можно изменить название устройства и другие параметры. После этого нажать на кнопку Finish
.
Для того чтобы запустить виртуальное устройство, необходимо на странице Device Manager
в строке с созданным устройством нажать на кнопку Play
.
Первый раз может отобразиться окно Adb
, которое необходимо одобрить.
После этого начнется загрузка виртуального устройства.
После загрузки виртуального устройства можно проверить его отображение в терминале с помощью команды adb devices
.
В терминале будет отображен уникальный идентификатор устройства.
Нажать, чтобы раскрыть
Для установки JDK необходимо перейти на официальный сайт разработчика и скачать актуальную версию.
Или же использовать Azul.
Или JDK Java.
Запустить установщик и следовать инструкциям.
Далее необходимо снова перейти в Системные переменные
/ Переменные среды пользователя
и проверить есть ли добавленная переменная JAVA_HOME
. Если ее нет, то добавить ее.
Mac os
Для того чтобы добавить переменную ANDROID_HOME
в Mac OS, необходимо выполнить следующие шаги:
открыть терминал и выполнить следующую команду:
open .zshrc
Откроется файл .zshrc
в текстовом редакторе. В конец файла добавить следующую строку:
export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home"
source ~/.zshrc
Далее необходимо проверить видно ли переменную JAVA_HOME
и Java
в командной строке. Для этого необходимо выполнить следующие команды:
java -version
$Env:JAVA_HOME
Если переменные установлены корректно, то вы увидите версию установленного JDK и путь до папки с JDK.
Нажать, чтобы раскрыть
Для установки Appium Inspector необходимо перейти на страницу GitHub проекта и скачать актуальную версию установщика именно для вашей операционной системы.
После скачивания необходимо запустить установщик и следовать инструкциям.
Нажать, чтобы раскрыть
Нажать, чтобы раскрыть
Для начала необходимо проверить установлены ли Node.js и npm на вашем компьютере. Для этого необходимо открыть терминал и выполнить следующие команды:
node -v
npm -v
Если Node.js и npm не установлены, то вы увидите сообщение об ошибке.
Для того чтобы установить Node.js и npm необходимо перейти на сайт Node.js и скачать актуальную версию.
После скачивания необходимо запустить установщик и следовать инструкциям.
После установки необходимо проверить всё ли установилось корректно. Для этого необходимо открыть терминал и выполнить команды:
node -v
npm -v
Если всё установилось корректно, то вы увидите версии установленных пакетов.
Нажать, чтобы раскрыть
Установка Appium происходит через npm. Для этого необходимо открыть терминал и выполнить следующую команду:
npm install -g appium
или
sudo npm install -g appium
Нажать, чтобы раскрыть
Для установки драйвера UiAutomator2 необходимо выполнить следующую команду:
appium driver install uiautomator2
или
sudo appium driver install uiautomator2
Если всё прошло успешно, то вы увидите сообщение об успешной установке драйвера.
Нажать, чтобы раскрыть
Для установки Android Studio необходимо перейти на официальный сайт разработчика и скачать актуальную версию.
Указать отметку, что вы прочитали и согласны с условиями лицензионного соглашения и нажать на версию в зависимости от вашего процессора.
Открыть скачанный файл и следовать инструкциям.
Добавить Android Studio в папку Applications
.
Подождать пока произойдет копирование файлов.
Открыть Finder
и перейти в папку Программы
. Запустить Android Studio
.
Одобрить запуск установщика Android Studio
.
В окне Help improve Android Studio
нажимаем на кнопку Don't send
.
Нажать, чтобы раскрыть
После открытия Android Studio будет отображено окно Welcome to Android Studio
. Нажимаем на кнопку Next
.
В окне Install Type
выбираем Standard
и нажимаем на кнопку Next
.
В окне Verify Settings
в Current Settings
отображено что будет скачано и установлено. Нажимаем на кнопку Next
.
В окне License Agreement
в блоке android-sdk-license
ставим отметку Accept
и нажимаем на кнопку Finish
.
Название блока android-sdk-license
может отличаться в зависимости от вашего процессора. А также возможно, что вам придется установить дополнительные компоненты.
Установка зависимостей и sdk может занять некоторое время.
После установки зависимостей откроется окно Welcome to Android Studio
. В котором необходимо кликнуть на выпадающий список More Actions
и выбрать пункт SDK Manager
.
На вкладке SDK Platforms
убедитесь, что установлены все необходимые пакеты. Если какие-то пакеты не установлены, то установите их.
Перейти на вкладку SDK Tools
и убедиться, что установлены все необходимые пакеты. Если какие-то пакеты не установлены, то установите их.
Нажать, чтобы раскрыть
Для того чтобы Appium мог найти SDK Android, необходимо добавить переменную ANDROID_HOME
в системные переменные. Для этого необходимо выполнить следующие шаги:
Для начала нужно проверить есть ли у вас созданный файл .zshrc
. Для этого необходимо выполнить следующие команды в терминале:
~/.zshrc
open .zshrc
Если же файл был найден и открылся, то необходимо пропустить шаг с созданием файла и его открытием.
Если файл .zshrc
не найден, то необходимо его создать. Для этого необходимо выполнить следующую команду в терминале:
touch ~/.zshrc
После того как файл создан, необходимо его открыть. Необходимо выполнить следующую команду в терминале:
open .zshrc
Откроется файл .zshrc
в текстовом редакторе. В конец файла добавить следующую строку:
export PATH=$PATH:/usr/local/bin
export ANDROID_HOME="$HOME/Library/Android/sdk"
export ANDROID_SDK_ROOT="$HOME/Library/Android/sdk"
export PATH="$ANDROID_HOME/tools:$PATH"
export PATH="$ANDROID_HOME/platform-tools:$PATH"
Далее необходимо сохранить файл и закрыть текстовый редактор.
После этого необходимо выполнить следующую команду в терминале:
source ~/.zshrc
Эта команда обновит переменные окружения.
Нажать, чтобы раскрыть
Открыть Android Studio
.
Кликнуть на выпадающий список More Actions
и выбрать пункт Virtual Device Manager
.
В открывшемся окне нажать на кнопку Device Manager
необходимо нажать на иконку +
.
В окне Choice a device definition
выбрать устройство, которое вы хотите эмулировать и нажать на кнопку Next
.
На странице System Image
необходимо выбрать версию Android, которую вы хотите установить на эмуляторе.
Если в строке Realease Name
нарисована иконка скачивания, то необходимо нажать на нее и дождаться окончания загрузки.
После скачивания данная версия будет доступна для установки.
В окне Verify Configuration
если необходимо можно изменить название устройства и другие параметры. После этого нажать на кнопку Finish
.
Для того чтобы запустить виртуальное устройство, необходимо на странице Device Manager
в строке с созданным устройством нажать на кнопку Play
.
После этого начнется загрузка виртуального устройства.
После загрузки виртуального устройства можно проверить его отображение в терминале с помощью команды adb devices
.
В терминале будет отображен уникальный идентификатор устройства.
Нажать, чтобы раскрыть
Для установки JDK необходимо перейти на официальный сайт разработчика и скачать актуальную версию.
Или же использовать Azul.
Или JDK Java.
Запустить установщик и следовать инструкциям.
Одобрить установку.
Далее необходимо открыть файл .zshrc
в который добавить переменную JAVA_HOME
. Для этого необходимо открыть терминал и ввести команду:
open .zshrc
Откроется файл .zshrc
в текстовом редакторе. В конец файла добавить следующие строки:
export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home"
Далее необходимо сохранить файл и закрыть текстовый редактор.
После этого необходимо выполнить следующую команду в терминале:
source ~/.zshrc
Эта команда обновит переменные окружения.
Далее необходимо проверить видно ли переменную JAVA_HOME
и Java
в командной строке. Для этого необходимо выполнить следующие команды:
java -version
echo $JAVA_HOME
Если переменные установлены корректно, то вы увидите версию установленного JDK и путь до папки с JDK.
Нажать, чтобы раскрыть
Для установки Appium Inspector необходимо перейти на страницу GitHub проекта и скачать актуальную версию установщика именно для вашей операционной системы.
После скачивания необходимо запустить установщик и следовать инструкциям.
Если во время установки будет отображено сообщение, что не удается открыть приложение, то необходимо открыть Конфиденциальность и безопасность
и разрешить запуск приложения.
Нажать, чтобы раскрыть
Для запуска Appium необходимо открыть командную строку и выполнить следующую команду:
appium
Необходимо дождаться пока Appium запустится и отобразится сообщение о том, что сервер запущен.
Необходимо проверить не отображено ли ошибок при запуске, а также отображены ли драйверы UiAutomator2
которые были установлены ранее.
Важно обратить внимание на следующие строки:
[Appium] You can provide the following URLs in your client code to connect to this server:
[Appium] http://127.0.0.1:4723/ (only accessible from the same host)
– именно http://127.0.0.1:4723/ является полным «remote url», который используется для создания подключения.
Для подключения из Appium Inspector
: Remote Host (127.0.0.1); Remote Port (4723); Remote Path (/).
Есть важный нюанс по Remote Path – раньше он по умолчанию был равен /wd/hub, и полный remote url
выглядел так http://127.0.0.1:4723/wd/hub
. Сейчас поменялась, и не нужно указывать /wd/hub
, но если необходимо запускать appium как ранее, то необходимо передать --base-path
:
appium --base-path "/wd/hub"
После запуска Appium сервера нужно запустить Appium Inspector. После запуска Appium Inspector необходимо убедиться что убедиться, что параметры Remote Host, Remote Port, Remote Path соответствуют тем, с которыми запущен Appium-сервер
Если запущен Appium сервер с Remote Path как /wd/hub
, то нужно указать его в Appium Inspector.
Иногда при подключении к Appium Inspector может возникнуть ошибка, что не удается подключиться и что необходимо подтвердить неавторизованное подключение.
Для этого необходимо в Appium Inspector открыть блок Advanced Settings
и включить опцию Allow Unauthorized Sertificates
.
Важно! Для того чтобы подключить Android эмулятор к Appium Inspector необходимо чтобы appium был запущен и работал.
Необходимо запустить эмулятор в Android Studio и дождаться его загрузки.
После этого необходимо подключить Appium Inspector к Android эмулятору. Для этого необходимо выполнить следующие шаги:
А именно ввести в поле Desired Capabilities
следующие минимальные параметры:
{
"platformName": "Android",
"appium:automationName": "UiAutomator2"
}
Это можно сделать вручную добавляя каждый параметр по отдельности или же воспользоваться блоком JSON Representation
.
Через блок JSON Representation
можно добавить все параметры сразу, вставив их в поле и нажав иконку с дискетой.
После сохранения параметров они будут размещены в поля Desired Capabilities
.
Префикс appium
: в названии параметров можно не писать, он добавится при подключении автоматически при условии установленного чекбокса Automatically add necessary Appium vendor prefixes on start
.
После добавления параметров необходимо нажать на кнопку Start Session
.
После запуска appium inspector в терминале будет отображен лог подключения к эмулятору. И если всё прошло успешно, то в Appium Inspector будет отображен экран эмулятора.
Нажать, чтобы раскрыть
В Appium Inspector есть несколько основных функций, которые помогают в работе с элементами на экране эмулятора.
Select Elements
- это функция, которая позволяет выбрать элемент на экране эмулятора и увидеть его XPath, ID, ClassName и другие параметры.
По умолчанию данная функция включена. Необходимо только кликнуть на элемент на экране.
Search for element
- это функция, которая позволяет искать элемент на экране по его XPath, ID, ClassName и другим параметрам.
Для того чтобы проверить есть ли среди элементов на экране нужный элемент, необходимо кликнуть на иконку лупы, выбрать тип локатора и ввести значение. Далее нажать на кнопку Search
.
Полный списком поддерживаемых локаторов можно увидеть в официальном README драйвера UiAutomator2
Tap/Swipe by coordinates
- это функция, которая позволяет тапнуть или свайпнуть по экрану эмулятора по координатам.
Для того чтобы тапнуть по экрану или свайпунть, необходимо кликнуть на иконку с +
для активации режима выбора координат, выбрать координаты(навести курсор на нужное место и кликнуть).
Show Element Handles
- это функция, которая позволяет увидеть все кликабельные элементы на экране.
Для того чтобы увидеть все элементы на экране, необходимо переключить переключатель в положение ON
.
Все кликабельные элементы будут подсвечены красным цветом. Если это иконка +
то нужно кликнуть и отобразиться несколько параметров элемента на которые можно кликнуть.
Нажать, чтобы раскрыть
- Перейти в настройки устройства;
- Открыть пункт
О телефоне
; - Нажать на пункт
Номер сборки
несколько раз, пока не появится сообщение о том, что режим разработчика активирован; - Перейти в настройки разработчика;
- Активировать режим разработчика;
- Активировать отладку по USB.
- Подключить устройство к компьютеру через USB-кабель.
- При первом подключении устройства к компьютеру необходимо дать разрешение на подключение к компьютеру, выбрав пункт
Всегда разрешать...
. - После подключения устройства проверить его отображение с помощью команды
adb devices
. - Если необходимо, можно настроить дополнительные опции, например, включить опцию «Stay Awake» («Не выключать экран»)
Для начала необходимо скачать apk файл, который будет тестироваться. Как пример wikipedia.apk
Далее необходимо запустить Appium и Appium Inspector. После этого необходимо подключить устройство к компьютеру и дождаться его отображения в терминале с помощью команды adb devices
.
В Appium Inspector необходимо добавить параметры для подключения к устройству:
{
"platformName": "Android",
"appium:automationName": "UiAutomator2",
"appium:app": "<YOUR-PATH-TO-PROJECT>/app-alpha-universal-release.apk",
"appium:appWaitActivity": "org.wikipedia.*"
}
Опция appium:app
- это путь до apk файла, который будет тестироваться.
Опция appium:appWaitActivity
- это активити, которая будет открыта после запуска apk файла. Чаще всего ее не используют, или же используют *
если нужно указать любую активити.
После добавления параметров необходимо нажать на кнопку Start Session
.
Если одновременно подключено более одного устройства, например – эмулятор и реальный девайс, то надо либо оставить только одно устройство подключенным (закрыв, например, эмулятор), либо дополнительно указать опцию deviceName:
"appium:deviceName": "<YOUR-DEVICE-NAME>"
YOUR-DEVICE-NAME
– это имя вашего устройства.
или опцию udid:
"appium:udid": "<YOUR-DEVICE-UDID>"
YOUR-DEVICE-UDID
– это уникальный идентификатор вашего устройства, который можно узнать с помощью команды adb devices
.
Нажать, чтобы раскрыть
Ты увидишь полное решение реализации, если нажмешь на кнопку ниже. Ты уверен, что хочешь это сделать?
Да, я осознаю все риски, и спишу
А может подумаешь еще раз?
Уже думал, хочу списать
А может загуглить самостоятельно?
Не помогло, дай списать
Спишешь, но не скажешь никому?
Так и думал/ла сделать
А вдруг ты сможешь сам?
Может, но не сейчас
Ладно, смотри решение, но не забудь разобраться в нем.
Обязуюсь разобраться после того как спишу
Пример реализации конфигурации, а именно файл config.py:
Пример реализации конфигурации, а именно файл config.py
import os
from dotenv import load_dotenv
from appium.options.android import UiAutomator2Options
import utils
def to_driver_options(context):
options = UiAutomator2Options()
if context == 'local_emulator':
options.set_capability('remote_url', os.getenv('REMOTE_URL')) # адрес удаленного сервера
options.set_capability('deviceName', os.getenv('DEVICE_NAME')) # имя устройства
options.set_capability('appWaitActivity', os.getenv('APP_WAIT_ACTIVITY')) # активити, которая будет открыта после запуска apk файла
#options.set_capability('udid', os.getenv('UDID')) # уникальный идентификатор устройства
options.set_capability('app', utils.file.abs_path_from_project(os.getenv('APP'))) # путь до apk файла
if context == 'local_real_device':
options.set_capability('remote_url', os.getenv('REMOTE_URL'))
options.set_capability('deviceName', os.getenv('DEVICE_NAME'))
options.set_capability('appWaitActivity', os.getenv('APP_WAIT_ACTIVITY'))
#options.set_capability('udid', os.getenv('UDID'))
options.set_capability('app', utils.file.path_from_project(os.getenv('APP')))
if context == 'bstack':
options.set_capability('remote_url', os.getenv('REMOTE_URL'))
options.set_capability('deviceName', os.getenv('DEVICE_NAME'))
options.set_capability('platformName', os.getenv('PLATFORM_NAME'))
options.set_capability('platformVersion', os.getenv('PLATFORM_VERSION'))
options.set_capability('appWaitActivity', os.getenv('APP_WAIT_ACTIVITY'))
options.set_capability('app', os.getenv('APP'))
load_dotenv(dotenv_path=utils.file.path_from_project('.env.credentials')) # загрузка переменных окружения из файла .env.credentials
options.set_capability(
'bstack:options', {
'projectName': 'Wikipedia project',
'buildName': 'browserstack-build-1',
'sessionName': 'BStack test',
'userName': os.getenv('USER_NAME'),
'accessKey': os.getenv('ACCESS_KEY'),
},
)
return options
Env файлы могут быть реализованы следующим образом:
.env.local_emulator
REMOTE_URL='http://127.0.0.1:4723' # адрес удаленного сервера
DEVICE_NAME='emulator-5554' # имя устройства, его можно узнать с помощью команды 'adb devices'
APP_WAIT_ACTIVITY='org.wikipedia.*' # активити, которая будет открыта после запуска apk файла
APP='./app-alpha-universal-release.apk' # название apk файла
.env.local_real_device
REMOTE_URL='http://127.0.0.1:4723'
DEVICE_NAME='****' # имя реального устройства, его можно узнать с помощью команды 'adb devices'
APP_WAIT_ACTIVITY='org.wikipedia.*'
APP='./app-alpha-universal-release.apk'
.env.bstack
REMOTE_URL='http://hub.browserstack.com/wd/hub' # адрес удаленного сервера BrowserStack
DEVICE_NAME='Google Pixel 3' # имя устройства BrowserStack
PLATFORM_NAME='Android' # платформа Android
PLATFORM_VERSION='9.0' # версия Android
APP_WAIT_ACTIVITY='org.wikipedia.*' # активити, которая будет открыта после запуска apk файла
APP='bs://*********' # ссылка на apk файл в BrowserStack
.env.credentials
USER_NAME='*****' # имя пользователя BrowserStack
ACCESS_KEY='*****' # ключ доступа к аккаунту BrowserStack
Пример файла conftest.py
import pytest
from appium import webdriver
from dotenv import load_dotenv
from selene import browser
import config
from utils import attach
def pytest_addoption(parser):
parser.addoption(
"--context",
default="bstack",
help="Specify the test context"
)
def pytest_configure(config):
context = config.getoption("--context")
env_file_path = f".env.{context}"
load_dotenv(dotenv_path=env_file_path)
@pytest.fixture
def context(request):
return request.config.getoption("--context")
@pytest.fixture(scope='function', autouse=True)
def mobile_management(context):
options = config.to_driver_options(context=context)
browser.config.driver = webdriver.Remote(options.get_capability('remote_url'), options=options)
browser.config.timeout = 10.0
yield
attach.add_screenshot()
attach.add_xml()
session_id = browser.driver.session_id
browser.quit()
if context == 'bstack':
attach.add_video(session_id)
Пример запуска тестов при реализации описанной выше
pytest # при не указании параметра --context будет запущен тест в контексте bstack, это равноценно команде pytest --context=bstack
pytest --context=local_emulator # запуск теста в контексте local_emulator
pytest --context=local_real_device # запуск теста в контексте local_real_device
pytest --context=bstack # запуск теста в контексте bstack
✔️ Сайт
✔️ Чат в Telegram
✔️ Канал в Telegarm
Содержание
Командная строка
Кодировка UTF-8 в Java
Список полезных книг для автоматизаторов тестирования на языке Java
Список полезных книг для автоматизаторов тестирования на языке Python
Структура проекта
Github README.md
Java:
1. Вводное занятие. Сразу к практике.
2. Git. GitHub. Погружаемся.
3. Погружаемся в инструментарий и библиотеки
4. Основы Java
5. Продолжаем разрабатывать автотесты. PageObjects
6. JUnit 5
7. Allure Reports
8. Работа с файлами
9. Selenide #1
10. Jenkins. Создаем первую задачу
11. Управляем параметрами в коде и в Jenkins
12. Отправляем уведомления о результатах прохождения автотестов
13. Учимся быстро разрабатывать проекты для тестовых заданий
14. Selenoid
15. Библиотека Owner
16. REST API. Пишем автотесты с Rest assured
17. REST API. Декомпозируем UI тесты. Подключаем отчетность
18. REST API. Продолжаем изучать
19. Мобильная автоматизация #1. Разрабатываем автотесты с Browserstack
20. Allure TestOps
21. Переезд на собственную инфраструктуру Java
Python:
1. Вводное занятие. Сразу к практике!
2. Погружаемся в инструментарий и библиотеки
3. Git. GitHub. Погружаемся.
4. Основы Python
5. Selene #1
6. Основы Python. Часть II
7. Основы Python. Часть III
8. Page Object
9. Allure Reports
10. Работаем с файлами Python
11. Jenkins. Создаем первую задачу и управляем параметрами Python
12. Телеграм бот. Отправляем уведомления о результатах прохождения тестов
13. Pytest
14. Selenoid
15. Pytest. Часть II
16. Venv, Poetry и управление зависимостями проекта
17. REST API. Часть I. Пишем автотесты с Requests
18. REST API. Часть II. Продолжаем изучать
19. Мобильная автоматизация #1. Разрабатываем автотесты с Browserstack
20. Мобильная автоматизация #2. Разрабатываем автотесты с эмулятором Android устройства
21. Allure TestOps
22. Переезд на собственную инфраструктуру Python