Активно начал изучать автоматизацию мобильных приложенй на Appium + Pytest, но на просторах рунета не нашел нормальную документацию по построению проекта и запуска первых тестов. Решил написать данную статью.

Для начала работы необходимо настроить рабочее окружение. Для начала проверим установлен ли на вашей машине Python. Проверить это можно с помощью команды  python3 -V в терминале. Далее терминал должен вывести версию Python.

В моем случае Python установлен версии 3.13.0
В моем случае Python установлен версии 3.13.0

В моем случае Python установлен версии 3.13.0

Если после ввода в терминал команды python3 - V - терминал вывел command not found: python, то вам необходимо установить Python, сделать это можно следующими способами (необходимо установить в виртуальное окружение вашего проекта):
есть несколько способов установки, я остановился на на менеджере пакетов для macOS - Homebrew.

Данный менджер пакетов существенно ускоряет и упращет установку всех необходимых пакетов. Давайте проверим установлени ли у вас на машине Homebrew. Вводим данную команду в терминале:

brew --version

Если у вас установлен Homebrew на машине, теорминал должен вывести версию Homebrew.

Homebrew 4.4.13

Если терминал вывел ошибку, вам необходимо установить Homebrew.

Установка Homebrew

В терминале вводим:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Отлично, у нас устновлен менеджер пакетов. В дальнейшем я буду использовать его. Теперь с помощью данного менеджера пакетов установим Python, для это в терминале вводим:

brew install python

Мы установили Python с помощью Homebrew, теперь необходимо проверить его установку, вводим в терминале:

python3 -V

Так же Python можно установить через официальный сайт Python.

Следующим этапом нам необходимо установить Node.js, но так как я выбрал установку через Homebrew, в этом и дальнейшем пунктах - буду пользоваться им.

Установка Node.js через Homebrew

Чтобы проверить установлена ли Node.js на вашей машине, вам необходим выполнить следующую команду в терминале:

node -v

Если Node.js у вас установлена, то терминал выведет версию.

Вывод терминала, после выполнения команды node -v
Вывод терминала, после выполнения команды node -v

Для установки Node.js через Homebre вам потребуется выполнить в терминале следующую команду:

brew install node

После завершения установки, необходимо проверить версию установки Npde.js и npm, для этого в терминале выполним следующие команды:

npm -v
node -v

Теперь необходимо проверить установлен ли chrome webdriver, для этого нужно выполнить команду в терминале:

chromedriver -v
Установленная версия ChromeDriver
Установленная версия ChromeDriver

Если терминал вывел command not found: python, то вам необходимо установить ChromeDriver, сделаем это через Homebrew:

brew install chromedriver

Homebrew автоматически установит нужную версию ChromeDriver, проверить установку можно выполнением следующей команды в терминале:

chromedriver --version

Установка необходимых библиотек

Для установки необходимых библиотек, в своем виртуальном окружении выполняем следующую команду:

pip install Appium-Python-Client pytest

Установка Appium

Установка Appium на Mac может быть выполнена двумя основными способами: через терминал с использованием Node.js или с помощью графического интерфейса Appium Desktop. Так как ранее мы установили Node.js, мы будем использовать его.

Для установки Appium через Node.js в терминале выполняем следующую команду:

npm install -g appium

Ну и соответственно для проверки установки Appium в терминале выполняем команду:

appium --version

Для запуска Appium - выполняем команду:

appium

Если вы у вас верно установлен Appium, то после ввода команды Appium - терминал отобразит следующее:

Appium установлен
Appium установлен

Установка Appium Inspector

На данном этапе нам необходимо установить Appium Inspector. Тут все довольно просто, переходим на страничку гита и качаем Appium Inspector, затем переносим его в папку Applications. Но для чего ?

P.S. если у вас не запускается Appium Inspector из-за ошибки безопасности, то идем в настройки "Конфиденциальность и безопасность" > листаем ниже и должны увидеть, что Appium Inspector заблокирован - принимаем.

Appium Inspector нам понадобится для исследования интерфейса нашего мобильного приложения и поиска нужных локаторов. С помощью Appium Inspector мы будем находить нужные элементы интерфейса и взаимодействовать с ними, просматривать детальные свойства найденных элементов. Так же Appium Inspector является кроссплатформенным.

После того как открыли Appium Inspector, вам необходимо ввести ваши Capability

Appium Inspector
Appium Inspector

Данные Сapability понадобятся для нашего теста, но если вы хотите писать тесты для какого-то приложения, то вам в Сapability необходимо указать следующее:

Для тестирования своего приложения
Для тестирования своего приложения

Установка Android SDK

Для установки Android SDK на Mac вам нужно скачать Android Studio с официального сайта разработчиков Android. Перейдите на официальный сайт Android Studio. (если ваша геолокация находится в РФ - рекомендую включить VPN)

Настройка переменной ANDROID_HOME

Если после установки вы попытались запустить Appium Inspector и вы увидели ошибку, связанную с переменной ANDROID_HOME, то данный пункт для вас. Вам необходимо выполнить следующие шаги:

Открываем терминал и выполняем команду:

nano ~/.bash_profile

Затем вам необходимо добавить строку:

export ANDROID_HOME=$HOME/Library/Android/sdk

Ну и сохранить изменения:

sourse ~/.bash_profile

Если вам это не помогло, добавляем еще переменные, которые я привел ниже:

Путь должен быть там, где установлен Android

export ANDROID_HOME=/Users/username/Library/Android/sdk
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

Сохраняем:

source ~/.bash_profile

В конечном итоге у вас должны быть добавлены следующие переменные:

Переменные окружения
Переменные окружения

Создание проекта

project_directory/
│ ├── tests/ │
├── test_apply.py
│ ├── app/ │
└── main_application.apk (или .ipa для iOS)
│ └── utils/
├── appium_utils.py
└── ...

Для первого запуска подойдет такая структура папок
Для первого запуска подойдет такая структура папок

Для первого запуска подойдет такая структура папок

В файле test_app.py напишем простой тест, который можно взять с официального сайта Appium:

import pytest

from appium import webdriver

from appium.webdriver.common.appiumby import AppiumBy

from appium.options.android import UiAutomator2Options

capabilities = dict(

    platformName='Android',

    automationName='uiautomator2',

    deviceName='Android',

    appPackage='com.android.settings',

    appActivity='.Settings',

    language='en',

    locale='US'

)

capabilities_options = UiAutomator2Options().load_capabilities(capabilities)

appium_server_url = 'http://localhost:4723'

@pytest.fixture(scope='function')

def driver():

    driver = webdriver.Remote(appium_server_url, options=capabilities_options)

    yield driver

    if driver:  

        driver.quit()

def test_find_battery(driver) -> None:

    el = driver.find_element(by=AppiumBy.XPATH, value='//*[@text="Battery"]')

    el.click()

Запуск проекта

Запускаем Android SDK, затем выбираем Virtual Device Manager.

Затем нам необходим выбрать и запустить симулятор мобильного телефона:

Выбираем и запускаем (жмем на кнопку play)
Выбираем и запускаем (жмем на кнопку play)

Выбираем и запускаем (жмем на кнопку play)

Эмулятор запустился
Эмулятор запустился

Теперь необходимо запустить сервер Appium, для этого вводим в терминале:

Appium

Теперь переходим в Appium Inspector и жмем "Start Session":

Appium Inspector, после запуска
Appium Inspector, после запуска

Если при запуске Appium Inspector, возникают какие-то ошибки - пробуйте перезапустить эмулятор и Appium server (Раздел называется "Запуск проекта").

Переходим в свой проект и в терминале вводим:

pytest
Результат нашего теста
Результат нашего теста

P.S. Все ваши тесты должны лежать в папке tests и начинаться на: test_.
Например: test_login, test_cart и т.д.

Комментарии (0)