Appium 1.4.8., MacOS 10.10.4
I have two emulators:
adb devices
List of devices attached
emulator-5554 device
emulator-5556 device
I start two Appium servers
$cd /Applications/Appium.app/Contents/Resources/node_modules/appium/bin
$ node appium --port 4725 --udid emulator-5554
info: Welcome to Appium v1.4.8 (REV c8179bd8352d3c62d98fa58b324491230df9342a)
info: Appium REST http interface listener started on 0.0.0.0:4725
info: [debug] Non-default server args: {"udid":"emulator-5554","port":4725}
info: Console LogLevel: debug
info: --> POST /wd/hub/session {"desiredCapabilities":{"app":"/Users/filippterekhov/Downloads/latest-QA-rkey-15.apk","appium-version":"1.0","platformName":"Android","deviceName":"Nexus S API 19","platformVersion":"4.4.2"}}
$ cd /Applications/Appium.app/Contents/Resources/node_modules/appium/bin
$ node appium --port 4727 --udid emulator-5556
info: Welcome to Appium v1.4.8 (REV c8179bd8352d3c62d98fa58b324491230df9342a)
info: Appium REST http interface listener started on 0.0.0.0:4727
info: [debug] Non-default server args: {"udid":"emulator-5556","port":4727}
info: Console LogLevel: debug
info: --> POST /wd/hub/session {"desiredCapabilities":{"app":"/Users/filippterekhov/Downloads/latest-QA-rkey-15.apk","appium-version":"1.0","platformName":"Android","deviceName":"Nexus S API 21","platformVersion":"5.0.1"}}
Sometimes both tests are running great (and thanks for your great work, guys)
But sometimes one instance of Appium hangs on preparing device to work:
info: --> POST /wd/hub/session {"desiredCapabilities":{"app":"/Users/filippterekhov/Downloads/latest-QA-rkey-15.apk","appium-version":"1.0","platformName":"Android","deviceName":"Nexus S API 19","platformVersion":"4.4.2"}}
info: Client User-Agent string: Apache-HttpClient/4.4.1 (Java/1.8.0_40)
info: [debug] The following desired capabilities were provided, but not recognized by appium. They will be passed on to any other services running on this server. : appium-version
info: [debug] No appActivity desired capability or server param. Parsing from apk.
info: [debug] No appPackage desired capability or server param. Parsing from apk.
info: [debug] Using local app from desired caps: /Users/filippterekhov/Downloads/latest-QA-rkey-15.apk
info: [debug] Creating new appium session 8055d2d7-732d-442d-a105-68f7a28111c5
info: Starting android appium
info: [debug] Getting Java version
info: Java version is: 1.8.0_40
info: [debug] Checking whether adb is present
info: [debug] Using adb from /Users/filippterekhov/Library/Android/sdk/platform-tools/adb
info: [debug] Parsing package and activity from app manifest
info: [debug] Checking whether aapt is present
info: [debug] Using aapt from /Users/filippterekhov/Library/Android/sdk/build-tools/21.1.2/aapt
info: [debug] Extracting package and launch activity from manifest.
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/build-tools/21.1.2/aapt dump badging /Users/filippterekhov/Downloads/latest-QA-rkey-15.apk
info: [debug] badging package: me.selfish.android.beta
info: [debug] badging act: null
info: [debug] Parsed package and activity are: me.selfish.android.beta/me.selfish.android.auth.activity.LoginActivity
info: [debug] Using fast reset? true
info: [debug] Preparing device for session
info: [debug] Checking whether app is actually present
info: Retrieving device
info: [debug] Trying to find a connected android device
info: [debug] Getting connected devices...
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb devices
info: [debug] 3 device(s) connected
info: Found device emulator-5554
info: [debug] Setting device id to emulator-5554
info: [debug] Waiting for device to be ready and to respond to shell commands (timeout = 5)
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb -s emulator-5554 wait-for-device
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell "echo 'ready'"
info: [debug] Starting logcat capture
info: [debug] Getting device API level
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell "getprop ro.build.version.sdk"
info: [debug] Device is at API Level 19
info: Device API level is: 19
info: [debug] Extracting strings for language: default
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell "getprop persist.sys.language"
info: [debug] Current device persist.sys.language: en
info: [debug] java -jar "/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-adb/jars/appium_apk_tools.jar" "stringsFromApk" "/Users/filippterekhov/Downloads/latest-QA-rkey-15.apk" "/tmp/me.selfish.android.beta" en
info: [debug] No strings.xml for language 'en', getting default strings.xml
info: [debug] java -jar "/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-adb/jars/appium_apk_tools.jar" "stringsFromApk" "/Users/filippterekhov/Downloads/latest-QA-rkey-15.apk" "/tmp/me.selfish.android.beta"
info: [debug] Reading strings from converted strings.json
info: [debug] Setting language to default
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb -s emulator-5554 push "/tmp/me.selfish.android.beta/strings.json" /data/local/tmp
info: [debug] Checking whether aapt is present
info: [debug] Using aapt from /Users/filippterekhov/Library/Android/sdk/build-tools/21.1.2/aapt
info: [debug] Retrieving process from manifest.
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/build-tools/21.1.2/aapt dump xmltree /Users/filippterekhov/Downloads/latest-QA-rkey-15.apk AndroidManifest.xml
info: [debug] Set app process to: me.selfish.android.beta
info: [debug] Not uninstalling app since server not started with --full-reset
info: [debug] Checking app cert for /Users/filippterekhov/Downloads/latest-QA-rkey-15.apk.
info: [debug] executing cmd: java -jar /Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-adb/jars/verify.jar /Users/filippterekhov/Downloads/latest-QA-rkey-15.apk
info: [debug] App already signed.
info: [debug] Zip-aligning /Users/filippterekhov/Downloads/latest-QA-rkey-15.apk
info: [debug] Checking whether zipalign is present
info: [debug] Using zipalign from /Users/filippterekhov/Library/Android/sdk/build-tools/21.1.2/zipalign
info: [debug] Zip-aligning apk.
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/build-tools/21.1.2/zipalign -f 4 /Users/filippterekhov/Downloads/latest-QA-rkey-15.apk /var/folders/dl/gl9gp7_s3jdfd23mlpzgm3r80000gp/T/115622-3850-u9hddn/appium.tmp
info: [debug] MD5 for app is c20f53f78fa0a7d68f98f1012cd8e1ef
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell "ls /data/local/tmp/c20f53f78fa0a7d68f98f1012cd8e1ef.apk"
info: [debug] Getting install status for me.selfish.android.beta
info: [debug] Getting device API level
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell "getprop ro.build.version.sdk"
info: [debug] Device is at API Level 19
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell "pm list packages -3 me.selfish.android.beta"
info: [debug] App is installed
info: App is already installed, resetting app
info: [debug] Running fast reset (stop and clear)
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell "am force-stop me.selfish.android.beta"
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell "pm clear me.selfish.android.beta"
info: [debug] Forwarding system:4724 to device:4724
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb -s emulator-5554 forward tcp:4724 tcp:4724
info: [debug] Pushing appium bootstrap to device...
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb -s emulator-5554 push "/Applications/Appium.app/Contents/Resources/node_modules/appium/build/android_bootstrap/AppiumBootstrap.jar" /data/local/tmp/
info: [debug] Pushing settings apk to device...
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb -s emulator-5554 install "/Applications/Appium.app/Contents/Resources/node_modules/appium/build/settings_apk/settings_apk-debug.apk"
info: [debug] Pushing unlock helper app to device...
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb -s emulator-5554 install "/Applications/Appium.app/Contents/Resources/node_modules/appium/build/unlock_apk/unlock_apk-debug.apk"
info: Starting App
info: [debug] Attempting to kill all 'uiautomator' processes
info: [debug] Getting all processes with 'uiautomator'
info: [debug] executing cmd: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell "ps 'uiautomator'"
info: [debug] No matching processes found
info: [debug] Running bootstrap
info: [debug] spawning: /Users/filippterekhov/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell uiautomator runtest AppiumBootstrap.jar -c io.appium.android.bootstrap.Bootstrap -e pkg me.selfish.android.beta -e disableAndroidWatchers false
info: [debug] [UIAUTOMATOR STDOUT] WARNING: linker:
info: [debug] [UIAUTOMATOR STDOUT] libdvm.so
info: [debug] [UIAUTOMATOR STDOUT] has text relocations. This is wasting memory and is a security risk. Please fix.
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: numtests=1
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: stream=
info: [debug] [UIAUTOMATOR STDOUT] io.appium.android.bootstrap.Bootstrap:
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: id=UiAutomatorTestRunner
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: test=testRunServer
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: class=io.appium.android.bootstrap.Bootstrap
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: current=1
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS_CODE: 1
info: [debug] [BOOTSTRAP] [debug] Socket opened on port 4724
info: [debug] [BOOTSTRAP] [debug] Appium Socket Server Ready
info: [debug] [BOOTSTRAP] [debug] Loading json...
info: [debug] Waking up device if it's not alive
info: [debug] Pushing command to appium work queue: ["wake",{}]
info: [debug] [BOOTSTRAP] [debug] json loading complete.
info: [debug] [BOOTSTRAP] [debug] Registered crash watchers.
There are no additional errors, just nothing happens. After a long wait it looks like Appium tries to create new session but fails
info: <-- POST /wd/hub/session - - ms - -
info: --> POST /wd/hub/session {"desiredCapabilities":{"app":"/Users/filippterekhov/Downloads/latest-QA-rkey-15.apk","appium-version":"1.0","platformName":"Android","deviceName":"Nexus S API 19","platformVersion":"4.4.2"}}
info: Client User-Agent string: Apache-HttpClient/4.4.1 (Java/1.8.0_40)
error: Failed to start an Appium session, err was: Error: Requested a new session but one was in progress
info: [debug] Error: Requested a new session but one was in progress
at [object Object].Appium.start (/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/appium.js:139:15)
at exports.createSession (/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/server/controller.js:188:16)
at Layer.handle [as handle_request] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/layer.js:82:5)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:110:13)
at Route.dispatch (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:91:3)
at Layer.handle [as handle_request] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/layer.js:82:5)
at /Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/index.js:267:22
at Function.proto.process_params (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/index.js:321:12)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/index.js:261:10)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:100:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at /Applications/Appium.app/Contents/Resources/node_modules/appium/lib/server/controller.js:39:7
at Layer.handle [as handle_request] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/layer.js:82:5)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:110:13)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:104:14)
info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: Requested a new session but one was in progress)","origValue":"Requested a new session but one was in progress"},"sessionId":"8055d2d7-732d-442d-a105-68f7a28111c5"}
info: <-- POST /wd/hub/session 500 141.210 ms - 250
undefined
Also I’ve observed that info:
[debug] [BOOTSTRAP] [debug] Socket opened on port 4724
is the same for both instances. May them interfere with each other?
23.07 update. Observed the same on a instance connected to real device when testing 2 simulators + real device. Also, it looks like this issue appears on the launching the tests again. On the first run I didn’t encounter it. But when running the tests again it may appear. The obvious workaround is to close Appium servers and launch them again but it is not handy.