Что касается установки и настройки Appium на Mac OS —
недавно появился подробный официальный tutorial.
Добрый день. Занимаюсь установкой appium на Mac. Я правильно поняла инструкцию, что мне необходимо перед тем как запускать appium установить все указанное в документе:
ant, maven, npm, в том числе IDE для работы с Java?
Если на маке, на который я ставлю апиум нет WebDriver - то и его поставить тоже?
Может глупый вопрос, но с маками я пока дела не имела, все тесты писала всегда под Windows и на Windows машине их же запускала.
установка IDE - обязательно ли? Потому что тесты я пишу на другой машине, мак подразумевается только для запуска тестов. И есть ли разница будет написан тест в Windows или в iOS?
— Да, это всё нужно обязательно, для запуска Appium-сервера.
IDE — необязательно. Tutorial охватывает не только установку и настройку, но и разработку тестов. Поэтому там написано про IDE.
Я в своё время на Mac OS ставил следующим образом:
###Для тестирования под iOS
-
Update XCode to 5.0.2 or later version; install Command-Line tools (when update is started, you can proceed to further steps)
xcode-select --install
-
Install node.js
http://nodejs.org
-
Goto some directory and get Appium framework
git clone https://github.com/appium/appium.git
-
Configure Appium for the device
cd appium
./reset.sh --ios
node ./bin/authorize-ios.js
-
Start Appium server with
node .
###Для тестирования под Android
-
Download Android SDK
https://developer.android.com/sdk/index.html
-
Extract Android SDK to /usr/local/adt/
unzip -qo adt-bundle-*.zip -d /usr/local/adt
-
Set ANDROID_HOME and JAVA_HOME environment variables
export JAVA_HOME=$(/usr/libexec/java_home)
export ANDROID_HOME=/usr/local/adt/sdk
-
Add ANDROID_HOME and JAVA_HOME to sh profile (in order not to set them every time)
echo "export JAVA_HOME=$(/usr/libexec/java_home)" >> ~/.bash_profile
echo "export ANDROID_HOME=/usr/local/adt/sdk" >> ~/.bash_profile
-
Install Android build and platform tools
$ANDROID_HOME/tools/android update sdk --no-ui --obsolete --force
-
Goto some directory and get Appium framework
git clone https://github.com/appium/appium.git
-
Configure Appium for Android
cd appium
./reset.sh --android --selendroid --verbose
-
Start Appium server with
node .
Что-то могло измениться в последних версиях… Но будут проблемы — пишите.
По прежнему не удается установить аппиум.
обновила xcode до последней версии. Пытаюсь поставить с помощью Node.
У пользователя - права root Administrator
Merlins-Mac-mini:~ nvl$ npm install -g appium
npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/appium'
npm ERR! { [Error: EACCES, mkdir '/usr/local/lib/node_modules/appium']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/usr/local/lib/node_modules/appium',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/usr/local/lib/node_modules/appium',
npm ERR! fstream_class: 'DirWriter',
npm ERR! fstream_stack:
npm ERR! [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23',
npm ERR! '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53',
npm ERR! 'Object.oncomplete (fs.js:107:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! System Darwin 12.5.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "appium"
npm ERR! cwd /Users/nvl
npm ERR! node -v v0.10.29
npm ERR! npm -v 1.4.14
npm ERR! path /usr/local/lib/node_modules/appium
npm ERR! fstream_path /usr/local/lib/node_modules/appium
npm ERR! fstream_type Directory
npm ERR! fstream_class DirWriter
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, mkdir '/usr/local/lib/node_modules/appium'
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/nvl/npm-debug.log
npm ERR! not ok code 0
Наталья, попробуйте через sudo
:
sudo npm install -g appium
проинсталился, но с ошибкой:
error: Appium will not work if used or installed with sudo. Please rerun/install as a non-root user. If you had to install Appium using `sudo npm install -g appium`, the solution is to reinstall Node using a method (Homebrew, for example) that doesn't require sudo to install global npm packages.
Сейчас попробую сделать переинсталяцию с node и аппиума через brew
Ура! Получилось!
Главной моей ошибкой была первая инсталяция Node с сервера, а не через homebrew.
Если кто-то так же как и я, по незнанию установил сначала Node c официальной страницы, то по этим двум ссылкам можно понять как его снести полностью (uninstal или remove будет недостаточно)
[Где искать в системе файлы Node для удаления. stackoverflow][1]
[Удалить файлы Node с помощью homebrew][2]
В моем случае сработали только эти два способа вместе
[1]: javascript - How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X) - Stack Overflow
[2]: http://forums.webhook.com/t/cant-get-node-to-install-on-latest-osx-mavericks-resolved/109/17
После того как я удалила поставленный с сервера Node и переустановила Node c помощью Homebrew Appium успешно установился.
Спасибо огромное @anym0us за помощь!
Отлично!
Как альтернатива — можно поставить через node.js и права перезадать после sudo
:
cur_user=`whoami`
chown -RH $cur_user /usr/local/lib/node_modules/appium
P.S. Но я сам устанавливал и рекомендую устанавливать через brew
.
Добрый день. Подскажите пожалуйста, а возможно ли запускать тесты при помощи Appium для IOS приложений под ОС Windows?
Насколько я знаю нет.
Если только в виртуальной машине, но не рекомендую. )
Сам не пробовал, но отзывы негативные —
скорость медленная + xCode иногда падает.
Доброго времени суток!
Проблема с запуском тестов, правильнее сказать с настройкой.
iOS 10.10.1 Yosemite
Xcode 6.1
Appium 1.3.4
debug: Appium request initiated at /wd/hub/session
debug: Request received with params: {"desiredCapabilities":{"platformVersion":"8.1","browserName":"Safari","platformName":"iOS","device":"iPad Simulator","deviceName":"iPad 2 (661D5C3B-5003-49C4-A0AC-D4B5D84850C8)"}}
info: Configuring Safari session
info: Trying to use mobile safari, version 8.1
info: Looking for built in app MobileSafari
info: App is not at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.1.sdk/Applications/MobileSafari.app
info: Couldn't find original app, but found the temp Appium one so using that
info: Using mobile safari app at /tmp/Appium-MobileSafari.app
info: Cleaning mobile safari data files
info: Determining current user
info: User is JoMedia
info: Couldn't find Safari support directories in order to clear out old data
info: Creating new appium session 599a84b9-7c5c-4465-92b2-052a0bf6db67
info: Removing any remaining instruments sockets
info: Cleaned up instruments socket /tmp/instruments_sock
info: Cleaning up any tracedirs
info: No tracedirs to clean up
info: Setting Xcode folder
info: Setting Xcode version
info: Setting iOS SDK Version
info: iOS SDK Version set to 8.1
info: Detecting automation tracetemplate
error: Could not find Automation.tracetemplate in /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate
info: Cleaning up appium session
error: Failed to start an Appium session, err was: Error: Could not find Automation.tracetemplate in /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate
info: Error: Could not find Automation.tracetemplate in /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate
at null.<anonymous> (/usr/local/lib/node_modules/appium/lib/devices/ios/ios.js:660:14)
at /usr/local/lib/node_modules/appium/lib/helpers.js:514:9
at ChildProcess.exithandler (child_process.js:635:7)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:743:16)
at Socket.<anonymous> (child_process.js:956:11)
at Socket.EventEmitter.emit (events.js:95:17)
at Pipe.close (net.js:465:12)
info: Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: Could not find Automation.tracetemplate in /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate)","origValue":"Could not find Automation.tracetemplate in /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemp
Ошибка связана с изменениями в новом Xcode, Appium ещё не успел выпустить фикс.
Проверьте путь в файле appium/lib/devices/ios/ios.js, строка 749. Должно быть так:
var xcodeTraceTemplatePath = path.resolve(xcodeFolderPath,
"../Applications/Instruments.app/Contents/PlugIns",
"AutomationInstrument.xrplugin/Contents/Resources",
"Automation.tracetemplate");
Теперь другая ошибка
POST /wd/hub/session 500 35ms - 252b
debug: Appium request initiated at /wd/hub/session
debug: Request received with params: {“desiredCapabilities”:{“platformVersion”:“8.1”,“browserName”:“Safari”,“platformName”:“iOS”,“device”:“iOS Simulator”,“deviceName”:“iPad 2”}}
info: Configuring Safari session
info: Trying to use mobile safari, version 8.1
info: Looking for built in app MobileSafari
info: App is not at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.1.sdk/Applications/MobileSafari.app
warn: App is also not at /tmp/Appium-MobileSafari.app
error: Could not prepare mobile safari with version ‘8.1’: Error: Couldn’t find built in app in its home or temp dir!
info: Got configuration error, not starting session
info: Cleaning up appium session
error: Failed to start an Appium session, err was: Error: Couldn’t find built in app in its home or temp dir!
info: Error: Couldn’t find built in app in its home or temp dir!
at /usr/local/lib/node_modules/appium/lib/helpers.js:164:23
at Object.oncomplete (fs.js:107:15)
info: Responding to client with error: {“status”:33,“value”:{“message”:“A new session could not be created. (Original error: Couldn’t find built in app in its home or temp dir!)”,“origValue”:“Couldn’t find built in app in its home or temp dir!”},“sessionId”:null}POST /wd/hub/session 500 35ms - 252b
debug: Appium request initiated at /wd/hub/session
debug: Request received with params: {“desiredCapabilities”:{“platformVersion”:“8.1”,“browserName”:“Safari”,“platformName”:“iOS”,“device”:“iOS Simulator”,“deviceName”:“iPad 2”}}
info: Configuring Safari session
info: Trying to use mobile safari, version 8.1
info: Looking for built in app MobileSafari
info: App is not at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.1.sdk/Applications/MobileSafari.app
warn: App is also not at /tmp/Appium-MobileSafari.app
error: Could not prepare mobile safari with version ‘8.1’: Error: Couldn’t find built in app in its home or temp dir!
info: Got configuration error, not starting session
info: Cleaning up appium session
error: Failed to start an Appium session, err was: Error: Couldn’t find built in app in its home or temp dir!
info: Error: Couldn’t find built in app in its home or temp dir!
at /usr/local/lib/node_modules/appium/lib/helpers.js:164:23
at Object.oncomplete (fs.js:107:15)
info: Responding to client with error: {“status”:33,“value”:{“message”:“A new session could not be created. (Original error: Couldn’t find built in app in its home or temp dir!)”,“origValue”:“Couldn’t find built in app in its home or temp dir!”},“sessionId”:null}
Похоже, изменился не один путь… Вот это может помочь — выполните в Терминале, если используете консольную версию Appium (сам не могу сейчас проверить):
cd path/to/appium
git checkout ios8
Только замените path/to/appium
на свой путь, куда установлен Appium
Вот такая беда, может кто-то сталкивался?
`
Запускаю вот такую команду: ~/Android/appium $ ./reset.sh --android --selendroid --verbose В ответ получаю: * Determining platform * Platform is linux ---- Resetting / Initializing Appium ---- RESETTING NPM * Installing new or updated NPM modules (including devDeps) npm WARN package.json assert@1.3.0 assert is also the name of a node core module. npm WARN package.json md5calculator@0.0.3 No repository field. npm WARN package.json node-idevice@0.1.5 No repository field. npm WARN package.json path@0.11.14 path is also the name of a node core module. npm WARN package.json vargs@0.1.0 No repository field. npm WARN package.json utf7@1.0.0 No repository field. npm WARN optional dep failed, continuing udidetect@1.0.7 RESETTING GENERAL * Setting git revision data Loading "Gruntfile.js" tasks...ERROR Warning: Task "setGitRev" not found. Use --force to continue.
`
Ребята, подскажите пожалуйста используя Appium, можно заставить девайс отправлять текстовые сообщения на другой девайс, или открыть калькулятор и в нем сделать подсчеты, в общем работать со встроенными в Android, iOS приложениями. Имитировать звонки, сообщения, будильник и прочие вещи?
На Андроиде - это по сути это такие же приложения нативные. Так что да, вы просто указываете имя приложения аппиуму и работаете с ним, как с вашим тестируемым приложением