Часть I. Настройка Appium для работы в MacOS-M1
Вступление.
… прошло 5 месяцев с того момента, как я начал карьеру в IT, и вот я уже встал на путь исследования автотестов.
В третий раз настраивая Appium, решил собрать всю информацию об этом в одной статье. Возможно, кому-нибудь она будет полезна.
Первое, что мне нужно было сделать — это установить Homebrew: этот инструмент в разы облегчает установку и удаление программ.
Для анализа хода настройки Appium на своем компьютере нам понадобится инструмент Appium Doctor, он диагностирует и исправляет распространенные проблемы с конфигурацией Node, iOS и Android перед запуском Appium.
Подготовка к установке программ.
Homebrew — это менеджер пакетов для macOS, и команда brew install
используется для удобной установки программных пакетов и приложений из командной строки.
Чтобы установить пакеты с помощью Homebrew на macOS, запустите Терминал и выполните следующую команду:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Эта команда загрузит и установит Homebrew в вашей системе. После установки вы можете использовать его для установки пакетов, например Node.js и npm. Выполните следующую команду в Терминале:
brew install node
— это установит Node.js и npm с помощью Homebrew.
После установки Node.js и npm вы можете установить Appium Doctor с помощью npm. Выполните следующую команду:
npm install -g appium-doctor
— флаг -g
устанавливает пакет глобально, делая его доступным из любого каталога.
После вы можете использовать Appium Doctor, выполнив команду appium-doctor
из консоли или терминала. Ниже на рис.1 представлен пример того, что вы можете получить как ответ проверки.

Для корректной работы необходимо исправить все ошибки, чтобы вместо крестиков были зеленые галочки.
Устранение ошибок
Возможно, у вас будут иные сообщения и неполадки, поэтому я опишу необходимые действия и для тех пунктов, которых нет на рис.1.
ANDROID_HOME
Для устранения необходимо установить Android Studio, используя команду:
brew install --cask android-studio
Если у вас возникли проблемы с настройкой переменной среды ANDROID_HOME и добавлением ее в PATH в .zshrc
файле для Appium Studio, вы можете попробовать выполнить следующие действия:
Откройте терминал в вашей системе macOS.
Откройте
.zshrc
файл в текстовом редакторе, используя следующую команду:open ~/.zshrc
В
.zshrc
файле добавьте строки для установки переменной среды ANDROID_HOME и добавьте ее в PATH:export ANDROID_HOME=/path/to/your/android/sdk export PATH=$PATH:$ANDROID_HOME/platform-tools export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/tools/bin export PATH=$PATH:$ANDROID_HOME/emulator
Замените
/path/to/your/android/sdk
фактическим путем к каталогу установки Android SDK.Сохраните изменения в
.zshrc
файле и закройте текстовый редактор.
Теперь, когда вы запустите Appium Studio или используете связанные с Appium команды в терминале, он сможет правильно найти Android SDK.
JAVA_HOME
Убедитесь, что Java уже установлена в вашей системе, выполнив следующую команду:
java -version
Если Java не установлена, вам необходимо загрузить и установить ее, прежде чем продолжить, используйте для этого команду:
brew install --cask adoptopenjdk
Определите путь, по которому в вашей системе установлена Java. Путь установки по умолчанию для Java в macOS обычно —
/Library/Java/JavaVirtualMachines/
.В терминале установите переменную среды JAVA_HOME, выполнив следующую команду:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/<jdk_version>/Contents/Home
Замените
<jdk_version>
на номер версии установленного Java JDK. Например, если у вас установлена Java 11, команда будет выглядеть так:export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home
Убедитесь, что переменная JAVA_HOME установлена правильно, выполнив следующую команду:
echo $JAVA_HOME
Она должна отображать путь к вашей установке Java.
Чтобы сделать переменную JAVA_HOME постоянной в сеансах терминала, вы можете добавить команду экспорта в файл конфигурации оболочки. Для macOS вы можете изменить файл
.bash_profile
или.zshrc
в своем домашнем каталоге. Например:
Если вы используете Bash, запустите:
echo 'export JAVA_HOME=/Library/Java/JavaVirtualMachines/<jdk_version>/Contents/Home' >> ~/.bash_profile
Если вы используете Zsh, запустите:
echo 'export JAVA_HOME=/Library/Java/JavaVirtualMachines/<jdk_version>/Contents/Home' >> ~/.zshrc
Не забудьте заменить
<jdk_version>
на фактический номер версии.Закройте и снова откройте приложение «Терминал», чтобы изменения вступили в силу.
Теперь переменная среды JAVA_HOME должна быть установлена в консоли вашей системы macOS. Вы можете проверить это, запустив echo $JAVA_HOME
в Терминале.
XCODE
Введите следующие команды в Терминале одну за другой, чтобы установить зависимости:
brew install node
brew install carthage
brew install libimobiledevice
brew install ios-deploy
Введите следующую команду в Терминале, чтобы установить Xcode:
brew install --cask xcode
Homebrew загрузит и установит Xcode из Mac App Store. Этот процесс может занять некоторое время, так как Xcode — большое приложение.
После завершения установки вам может потребоваться открыть Xcode и принять лицензионное соглашение. Откройте Терминал и выполните следующую команду:
sudo xcodebuild -license accept
После завершения установки вы можете найти Xcode в папке Applications. Запустите Xcode и следуйте инструкциям для завершения установки.
DEV TOOLS SECURITY
Dev Tools Security — это не отдельный инструмент или утилита командной строки в macOS. Возможно, произошло недопонимание или предоставлена неверная информация.
macOS имеет встроенные функции безопасности, которые контролируют доступ к различным инструментам и ресурсам разработчика. Эти функции безопасности предназначены для защиты вашей системы и предотвращения несанкционированного доступа.
В Терминале введите следующую команду и нажмите Enter, чтобы загрузить сценарий безопасности Dev Tools:
sudo /usr/sbin/DevToolsSecurity --enable
Введите свой пароль и нажмите Enter. При вводе пароля в Терминале вы не увидите никакой визуальной обратной связи (например, звездочек или точек), но ввод будет произведен.
Скрипт Dev Tools Security будет выполняться с привилегиями администратора, что позволит использовать инструменты разработчика в вашей системе. Этот процесс может занять несколько секунд.
После завершения работы скрипта вы должны увидеть сообщение о том, что режим разработчика включен.
AUTHORIZATION DB
БД авторизации (authorizationdb) относится к структуре служб авторизации в macOS, которая предоставляет механизм для управления политиками авторизации и контроля доступа в системе. Он позволяет администраторам и разработчикам определять и применять правила, касающиеся привилегий и разрешений, предоставляемых пользователям, приложениям и процессам.
БД авторизации отвечает за обработку запросов на авторизацию и определение того, следует ли разрешить конкретное действие или операцию на основе определенных политик и правил. Он предоставляет способ контролировать доступ к конфиденциальным ресурсам и выполнять привилегированные операции.
В Терминале введите следующую команду и нажмите Enter, чтобы установить инструмент Authorization DB:
brew install authorizationdb
После завершения установки вы можете приступить к использованию инструмента авторизации базы данных для управления политиками авторизации.
CARTHAGE
Carthage — это менеджер зависимостей для проектов разработки macOS и iOS. Это позволяет разработчикам легко управлять сторонними библиотеками и фреймворками и интегрировать их в свои проекты Xcode.
Вы можете установить Carthage, выполнив следующую команду в Терминале:
brew install carthage
Эта команда загрузит и установит Carthage и все необходимые зависимости.
После завершения установки вы можете убедиться, что Carthage успешно установлен, выполнив следующую команду:
carthage version
Если Carthage установлен правильно, он отобразит номер версии.
ADB
ADB — Android Debug Bridge. Это инструмент командной строки, который является частью Android SDK (Software Development Kit). ADB обеспечивает связь между компьютером и устройством Android или эмулятором, позволяя разработчикам выполнять различные задачи по отладке и разработке.
Вы можете установить ADB, выполнив следующую команду в Терминале:
brew install android-platform-tools
Эта команда загрузит и установит пакет Android Platform Tools, который включает ADB и другие полезные инструменты для разработки под Android.
После завершения установки вы можете убедиться, что ADB установлен, выполнив следующую команду:
adb version
Если ADB установлен правильно, он отобразит информацию о версии.
OPENCV4NODEJS
Вы можете установить
opencv4nodejs
, выполнив следующую команду в Терминале:npm install opencv4nodejs
Эта команда загрузит и установит
opencv4nodejs
пакет и его зависимости в ваш текущий каталог проекта.В зависимости от конфигурации вашей системы для установки могут потребоваться дополнительные зависимости, такие как сам OpenCV. При появлении запроса следуйте инструкциям в Терминале, чтобы установить необходимые зависимости.
После завершения установки вы можете начать использовать
opencv4nodejs
в своих приложениях Node.js, потребовав его в своем коде:const cv = require('opencv4nodejs');
Затем вы можете использовать
cv
объект для доступа к функциям, предоставляемым OpenCV в вашем приложении Node.js.
FFMPEG
Вы можете установить FFmpeg, выполнив следующую команду в Терминале:
brew install ffmpeg
Эта команда загрузит и установит FFmpeg и его зависимости с помощью Homebrew.
После завершения установки вы можете убедиться, что FFmpeg успешно установлен, выполнив следующую команду:
ffmpeg -version
Если FFmpeg установлен правильно, он отобразит информацию о версии.
MJPEG-CONSUMER
Вы можете установить MJPEG-Consumer, выполнив следующую команду в Терминале:
npm i -g mjpeg-consumer
Эта команда загрузит и установит MJPEG-Consumer и его зависимости с помощью Homebrew.
SET-SIMULATOR-LOCATION
Вы можете установить инструмент
set-simulator-location
глобально, выполнив следующую команду в Терминале:npm install -g set-simulator-location
Эта команда загрузит и установит инструмент глобально, что позволит вам использовать его из любого места в терминале.
После завершения установки вы можете убедиться, что она
set-simulator-location
был установлен, выполнив следующую команду:set-simulator-location -h
Если инструмент установлен правильно, он отобразит справочную информацию и параметры использования.
IDB AND IDB COMPANION
Вы можете установить IDB, выполнив следующую команду в Терминале:
npm install -g idb
Эта команда загрузит и установит IDB глобально, что позволит вам использовать его из любого места в терминале.
После завершения установки вы можете установить IDB Companion, который предоставляет веб-интерфейс для IDB, выполнив следующую команду в Терминале:
npm install -g idb-companion
Эта команда загрузит и установит IDB Companion глобально.
После завершения установки вы можете запустить IDB Companion, выполнив следующую команду в Терминале:
idb-companion
Это запустит веб-интерфейс IDB Companion, к которому вы можете получить доступ из своего веб-браузера по адресу
http://localhost:9001
.
APPLESIMUTILS
Вы можете установить
applesimutils
, выполнив следующую команду в Терминале:brew tap wix/brew brew install applesimutils
Эта команда добавит кран Wix Homebrew и установит его
applesimutils
из крана.После завершения установки вы можете убедиться, что
applesimutils
установка прошла успешно, выполнив следующую команду:applesimutils --help
Если
applesimutils
установлен правильно, он будет отображать справочную информацию и параметры использования.
IOS-DEPLOY
Вы можете установить
ios-deploy
, выполнив следующую команду в Терминале:brew install ios-deploy
Эта команда загрузит и установит
ios-deploy
и ее зависимости с помощью Homebrew.После завершения установки вы можете убедиться, что
ios-deploy
установка прошла успешно, выполнив следующую команду:ios-deploy --version
Если
ios-deploy
установлен правильно, он отобразит информацию о версии.
BUNDLETOOL.JAR
Это инструмент командной строки, предоставленный Google для работы с пакетами приложений Android (файлы .aab). Чтобы установить и использовать BundleTool, вам необходимо выполнить следующие действия:
Загрузите BundleTool.jar:
Перейдите в репозиторий BundleTool на GitHub: https://github.com/google/bundletool/releases .
Загрузите последнюю версию файла BundleTool.jar.
Настройте Java:
Убедитесь, что на вашем компьютере установлен Java Development Kit (JDK). Вы можете скачать его с официального сайта Oracle или использовать OpenJDK.
Откройте терминал или командную строку:
В Windows нажмите Win + R, введите «cmd» и нажмите Enter.
В macOS или Linux откройте приложение «Терминал».
Перейдите в каталог, в который вы загрузили файл BundleTool.jar, используя команду «cd»:
cd path/to/your/download/directory
Запустите BundleTool с помощью команды Java:
java -jar BundleTool.jar
Это отобразит доступные команды и параметры, подтверждающие, что установка прошла успешно.
Теперь вы можете использовать BundleTool, предоставив соответствующие команды и аргументы, необходимые для ваших конкретных задач.
GST-LAUNCH-1.0 AND GST-INSPECT-1.0
gst-launch-1.0
иgst-inspect-1.0
являются частью мультимедийной среды GStreamer. Это инструменты командной строки, используемые для работы с конвейерами GStreamer и проверки элементов GStreamer соответственно. Вот как установить их на различных платформах:macOS (Homebrew): если вы используете Homebrew на macOS, вы можете установить GStreamer с помощью следующей команды в терминале:
brew install gstreamer
Это установит GStreamer вместе с необходимыми инструментами, такими как
gst-launch-1.0
иgst-inspect-1.0
.
После установки вы можете использовать
gst-launch-1.0
для создания конвейеров GStreamer для обработки и потоковой передачи мультимедиа. Например:gst-launch-1.0 videotestsrc ! autovideosink
И вы можете использовать
gst-inspect-1.0
для получения информации об элементах GStreamer. Например:gst-inspect-1.0 videotestsrc
Это покажет вам подробную информацию об
videotestsrc
элементе.Имейте в виду, что GStreamer — это универсальный и мощный мультимедийный фреймворк с обширной документацией и многочисленными плагинами для различных задач. Обязательно изучите официальную документацию GStreamer для получения дополнительной информации и примеров: https://gstreamer.freedesktop.org/documentation/
Это основные инструменты, которые необходимы для корректной работы с Appium, но что-то может и отличаться от моего примера, я старался охватить большинство случаев.
В конечном итоге у вас должны быть везде галочки, как на примере ниже:
