Часть 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 xcodeHomebrew загрузит и установит 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, но что-то может и отличаться от моего примера, я старался охватить большинство случаев.
В конечном итоге у вас должны быть везде галочки, как на примере ниже:
