budtmo / docker-android Goto Github PK
View Code? Open in Web Editor NEWAndroid in docker solution with noVNC supported and video recording
License: Other
Android in docker solution with noVNC supported and video recording
License: Other
hi @butomo1989
i have set unicodekeyboard=true in capabilities and installed UnicodeIME-debug (enable and set default) by:
adb install /media/UnicodeIME-debug.apk
adb shell ime enable io.appium.android.ime/.UnicodeIME
adb shell ime set io.appium.android.ime/.UnicodeIME
but when test my app it do not input unicode text at all with no error in appium.
do you have any idea?
@butomo1989 please clarify if I can use this for native android app automation as well ?
Or it only used for mobile browser web UI automation ?
Hi,
I cannot figure out how to get to the noVNC page of a device from a remote machine.
For example the real IP of the host is 123.45.67.89.
So Selenium Hub is located in 123.45.67.89:4444
There are 3 nodes in Selenium Hub
How can I get to noVNC stream from a remote machine?
Thanks in advance!
Hello,
I'm really amazed by idea of dockerizing Android emulators along with Appium. I managed to run the docker-compose.yml according to README. Unfortunately during the next attempts of starting emulators I'm getting unhealthy status for emulator containers but still selenium instances are visible in grid:
45cbde2532cd butomo1989/docker-android-arm-7.1.1 "/bin/sh -c '/usr/..." About an hour ago Up About an hour (unhealthy) 4723/tcp, 5554-5555/tcp, 0.0.0.0:32769->6080/tcp dockerandroid_samsung_galaxy_web_7.1.1_1
8bc4270ee96c butomo1989/docker-android-arm-5.1.1 "/bin/sh -c '/usr/..." About an hour ago Up About an hour (unhealthy) 4723/tcp, 5554-5555/tcp, 0.0.0.0:32768->6080/tcp dockerandroid_samsung_galaxy_web_5.1.1_1
159fa0d15aff butomo1989/docker-android-arm-7.1.1 "/bin/sh -c '/usr/..." About an hour ago Up About an hour (unhealthy) 4723/tcp, 5554-5555/tcp, 0.0.0.0:32770->6080/tcp dockerandroid_nexus_7.1.1_1
05480ed33c9d selenium/hub:3.4.0 "/opt/bin/entry_po..." About an hour ago Up About an hour 0.0.0.0:4444->4444/tcp dockerandroid_selenium_hub_1
When I open VNC via browser, I'm able to see emulator with loading Android but it never finish. The same situation repeats with Linux x86 image (tested on Ubuntu 16.04). Do you have any idea? I've removed all images and containers and reinstalled once again but nothing helps. I'm able to start single emulator from time to time but mostly it stays in unhealthy status.
It would be nice to connect a webcam (or fake stream) to the android device.
I thing it could be done by adding
hardware.camera.back=webcam0
hardware.camera.front=none
to the /emulator/config.ini
It seems that docker under linux will provide /webcam/video0, and I was able to make an image with fswebcam. Now also the emulator flag looks good.
root@3d6542be84eb:~# emulator -webcam-list
List of web cameras connected to the computer:
Camera 'webcam0' is connected to device '/dev/video0' on channel 0 using pixel format 'YUYV'
So when I edit the config.ini it was overwritten. My python skills are not so good, but I assume app.py is overwriting the config.ini.
with open(config_path, 'a') as file:
file.write('skin.path={sp}'.format(sp=skin_path))
logger.info('Skin was added in config.ini')
Also I was wondering, howto keep your old emulator instead of starting a new one, when docker is rebooting..
Able to record video during test.
when I docker-compose the emulators the status stayed in unhealthy and here is the log:
[46] [ INFO] app - Device: Nexus 5
[46] [ INFO] app - AVD name: nexus_5_7.1.1
[46] [ INFO] app - Preparing emulator...
[46] [ INFO] app - Command to create avd: avdmanager create avd -f -n nexus_5_7.1.1 -b google_apis/x86_64 -c /root/src/sdcard.img -k "system-images;android-25;google_apis;x86_64" -d Nexus\ 5 -p /root/android_emulator
[46] [ INFO] app - Skin was added in config.ini
[46] [ INFO] app - Run emulator...
[46] [ INFO] app - Run appium server...
[46] [ INFO] app - Connect to selenium grid? True
[46] [ INFO] app - Appium node config: {'configuration': {'register': True, 'unregisterIfStillDownAfter': 120000, 'registerCycle': 5000, 'maxSession': 6, 'host': '172.18.0.12', 'proxy': 'org.openqa.grid.selenium.proxy.DefaultRemoteProxy', 'cleanUpCycle': 2000, 'hubPort': 4444, 'url': 'http://172.18.0.12:4723/wd/hub', 'hubHost': 'selenium_hub', 'timeout': 30000, 'port': 4723}, 'capabilities': [{'deviceName': 'nexus_5_7.1.1', 'browserName': 'chrome', 'version': '7.1.1', 'platform': 'Android', 'platformName': 'Android', 'maxInstances': 1}]}
emulator: ERROR: detected a hanging thread 'Qt event loop'. No response for 15000 ms
How can I resolve this?
The number of apps compatible with the x86 emulator is very limited.
I tried the libhoudini to translate the arm apps to x86 but without success!
https://android.stackexchange.com/questions/179482/android-emulator-install-failed-no-matching-abis-failed-to-extract-native-lib
Can anyone help me with this?
I am using docker-compose to bring up 3 different devices
butomo1989/docker-android-x86-7.0
butomo1989/docker-android-x86-7.1.1
butomo1989/docker-android-x86-5.1.1
when I connect to the different noVNC windows I see my appium server (I want to automate some appium tests) and I see my device but clearly the device isn't on, if I press the ON button in the control panel this makes no difference. When I try to launch my tests and start my own APK clearly this doesn't work. When I look at the docker log I see:
docker exec -it laura_nexus_7.0_1 tail -f /var/log/supervisor/docker-android.stdout.log
Journal blocks: 1024
Label:
Blocks: 16896
Block groups: 1
Reserved block group size: 7
Created filesystem with 11/4224 inodes and 1302/16896 blocks
emulator: warning: opening audio output failed
emulator: Listening for console connections on port: 5554
emulator: Serial number of this emulator (for ADB): emulator-5554
Any help would be greatly appreciated.
Host: docker info gives:
Containers: 4
Running: 4
Paused: 0
Stopped: 0
Images: 4
Server Version: 1.12.2
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 60
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: overlay null bridge host
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.10.8-docker-1
Operating System: Ubuntu 16.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 3.857 GiB
Name: iw-qa-appium
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
provider=scaleway
Insecure Registries:
127.0.0.0/8
Mac 10.12.5 + docker Version: 17.06.0-ce
Below containers are unusable as status is always unhealthy and vnc shows emulator in starting phase always even after 5 minues
Used below command as per README
docker run --privileged -d -p 6080:6080 -p 5554:5554 -p 5555:5555 -e DEVICE="Samsung Galaxy S6" --name android-container_6 butomo1989/docker-android-arm-7.1.1
changed last value of OS to above list of failed OS.
Am I doing something wrong here ?
As per https://github.com/butomo1989/docker-android/blob/master/docker-compose.yml
Please clarify what may be going wrong here
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3a7d50b27458 butomo1989/docker-android-arm-7.1.1 "/bin/sh -c '/usr/..." 15 minutes ago Up 15 minutes (unhealthy) 4723/tcp, 5554-5555/tcp, 0.0.0.0:32769->6080/tcp downloads_samsung_galaxy_web_7.1.1_1
b498a40bb3d5 butomo1989/docker-android-arm-5.1.1 "/bin/sh -c '/usr/..." 15 minutes ago Up 15 minutes (healthy) 4723/tcp, 5554-5555/tcp, 0.0.0.0:32768->6080/tcp downloads_samsung_galaxy_web_5.1.1_1
4d89839d145b butomo1989/docker-android-arm-7.1.1 "/bin/sh -c '/usr/..." 15 minutes ago Up 15 minutes (unhealthy) 4723/tcp, 5554-5555/tcp, 0.0.0.0:32770->6080/tcp downloads_nexus_7.1.1_1
b5ca8583a2cf selenium/hub:3.4.0 "/opt/bin/entry_po..." 15 minutes ago Up 15 minutes 0.0.0.0:4444->4444/tcp downloads_selenium_hub_1
Hi,
I ran the docker compose and everything looks to be running.
But I cannot connect to noVNC to view the device.
I used the default configurations that you provided in the docker-compose.yaml
Any parameter I need to add to enable it?
Thanks.
Hi,
I have tried almost all linux and Windows images but unfortunally emulator get stuck while container is running an then I should kill its process. No matter how much resource is dedicated to Docker.
OS: Windows 10
Hi
the performance of docker especially the first time docker started is very slow and it takes about 20 minutes to start emulator
.
i have tested android 5.1 , 6 and 7.1.
my host is ubuntu 16 on digitalocean with 4cpu and 8G memory.
this is host VXT:
kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
docker ps show docker unhealthly about 20 minutes
Create gitter to provide chat room so user can ask questions and discuss those there
hi
On android 5.0 , 5.1 and 6 appium tests has random behavior and throw such a error randomly:
WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Could not find app apk at /root/tmp/myapp.apk
I have checked and Volume mounteded correctly it works some times as 60%
what is its reason?
where can I see appium logs in containers? there is no appium log in /var/log/supervisor/
https://github.com/butomo1989/docker-android/blob/master/docker-compose.yml
Here ports value as 6080, is this correct ?
How to find out which port is used by each of the containers so that I can connect via browser ?
Screen shot in README shows port number 32785 - 32787, but am not sure how these values have been derived ?
In case if this container is used in some sort of CI setup for automated test execution, tests start executing before the android in emulator is actually booted up.
It is possible to delay test execution within test set up it self but would not be so convenient if deploying multiple containers with selenium grid via docker-compose for example.
Would You consider adding a check for avd boot_complete during container start?
Hi,
Great project, just what I was looking for to support our mobile testing with emulator.
One issue is that libgconf-2.so.4 is missing for chromedriver to work. Please consider adding libgconf-2-4 to installed packages for it to work.
Hi
thanks for your great job and new video recording feautures .
How can i made build and test name so can change the test video file to be appended to test results.
I am using robot framework and python.
I use zalenium for web
Please add support of Nexus 9 and Samsung Tab S2 devices
Hi,
I am new to docker and I am trying to run the example test from https://github.com/testvagrant/AppiumDemo using docker-android.
On ubuntu 16.04LTS I run the command from tutorial to start docker with appium passing the apk.
docker run --privileged -d -p 6080:6080 -p 4723:4723 -p 5554:5554 -p 5555:5555 -v /home/vikky/flipkart.apk:/root/tmp -e DEVICE="Nexus 5" -e APPIUM=True -e CONNECT_TO_GRID=True -e APPIUM_HOST="127.0.0.1" -e APPIUM_PORT=4723 -e SELENIUM_HOST="172.17.0.1" -e SELENIUM_PORT=4444 --name android-container butomo1989/docker-android-x86-7.1.1
In the browser on localhost:6080 I can see the virtual phone and appium server. With some error, but I figured those might be caused by the phone booting.
I use docker exec -it android-container tail -f /var/log/supervisor/docker-android.stdout.log
_[29] [ INFO] app - Run appium server...
[29] [ INFO] app - Connect to selenium grid? True
[29] [ INFO] app - Appium node config: {'configuration': {'port': 4723, 'url': 'http://127.0.0.1:4723/wd/hub', 'unregisterIfStillDownAfter': 120000, 'register': True, 'hubPort': 4444, 'proxy': 'org.openqa.grid.selenium.proxy.DefaultRemoteProxy', 'hubHost': '172.17.0.1', 'maxSession': 6, 'timeout': 30000, 'registerCycle': 5000, 'cleanUpCycle': 2000, 'host': '127.0.0.1'}, 'capabilities': [{'browserName': 'android', 'platformName': 'Android', 'version': '7.1.1', 'platform': 'Android', 'deviceName': 'nexus_5_7.1.1', 'maxInstances': 1}]}
Your emulator is out of date, please update by launching Android Studio:
OK, emulator is out of date, but it could still work. So I updated the connection class in https://github.com/testvagrant/AppiumDemo to have same capabilities:
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("browserName", "android"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("version", "7.1.1"); capabilities.setCapability("platform", "Android"); capabilities.setCapability("deviceName", "nexus_5_7.1.1"); capabilities.setCapability("maxInstances", "1"); capabilities.setCapability("app", "/Users/nishant/Development/AppiumDemo/apps/flipkart.apk"); capabilities.setCapability("appPackage", "com.flipkart.android"); capabilities.setCapability("appActivity", "com.flipkart.android.SplashActivity"); driver = new AndroidDriver(new URL("hhttp://172.17.0.1:4444/wd/hub"), capabilities);
Which gives me rather uninformative error:
org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{app=/Users/nishant/Development/AppiumDemo/apps/flipkart.apk, appPackage=com.flipkart.android, appActivity=com.flipkart.android.SplashActivity, appium-version=1.0, platformVersion=5.0, platformName=Android, deviceName=Nexus}], required capabilities = Capabilities [{}]
Could you please help me locate the issue?
Request Dockerfile for the images. I did not see any Dockerfile in your github repo.
Just curious why on the run with privileged part.
Also What are ports that are exposed. Is 6080 port a VNC port?
Thanks.
Using docker-appium as base image https://github.com/appium/appium-docker-android/tree/master/Appium. It will be implemented after release of new version of docker-appium.
Use the latest update from docker-appium: https://github.com/appium/appium-docker-android/releases/tag/1.7.1-p1 as base image that contains latest Appium version and some updates
Emulator can't start with log
[2698] [ INFO] app - Android version: 5.0.1
API level: 21
Processor: x86
System image: x86_64
Image type: android
[2698] [ INFO] app - Device: Samsung Galaxy S6
[2698] [ INFO] app - AVD name: samsung_galaxy_s6_5.0.1
[2698] [ INFO] app - Preparing emulator...
[2698] [ INFO] app - Skin ressource path: /root/devices/skins
[2698] [ INFO] app - Skin destination path: /root/platforms/android-21/skins
[2698] [ INFO] app - Device name in bash: Samsung\ Galaxy\ S6, Skin name: samsung_galaxy_s6
[2698] [ INFO] app - Hardware profile resource path: /root/devices/profiles/samsung_galaxy_s6.xml
[2698] [ INFO] app - Hardware profile destination path: /root/.android/devices.xml
[2698] [ INFO] app - AVD creation command: echo no | android create avd -f -n samsung_galaxy_s6_5.0.1 -t android-21 -b x86_64 -d Samsung\ Galaxy\ S6 -s samsung_galaxy_s6
Created AVD 'samsung_galaxy_s6_5.0.1' based on Android 5.0.1, Intel Atom (x86_64) processor,
with the following hardware config:
hw.accelerometer=yes
hw.audioInput=yes
hw.battery=yes
hw.camera=yes
hw.dPad=no
hw.device.hash2=MD5:b39211a1b016d383660f0a2c143d2984
hw.device.manufacturer=User
hw.device.name=Samsung Galaxy S6
hw.gps=yes
hw.gsmModem=yes
hw.keyboard=yes
hw.keyboard.lid=yes
hw.lcd.density=240
hw.mainKeys=yes
hw.sdCard=no
hw.sensors.orientation=yes
hw.sensors.proximity=yes
hw.touchScreen=yes
hw.trackBall=no
[2698] [ INFO] app - Run emulator...
root@7fdbfe3c7615:~# emulator: WARNING: Classic qemu does not support SMP. The hw.cpu.ncore option from your config file is ignored.
Failed to open lib64EGL_translator: [lib64EGL_translator.so: cannot open shared object file: No such file or directory]
gles2_dispatch_init: Could not load lib64GLES_V2_translator [lib64GLES_V2_translator.so: cannot open shared object file: No such file or directory]
QPixmap::scaled: Pixmap is a null pixmap
QPixmap::scaled: Pixmap is a null pixmap
QPixmap::scaled: Pixmap is a null pixmap
QPixmap::scaled: Pixmap is a null pixmap
QPixmap::scaled: Pixmap is a null pixmap
QPixmap::scaled: Pixmap is a null pixmap
QPixmap::scaled: Pixmap is a null pixmap
QPixmap::scaled: Pixmap is a null pixmap
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
emulator: Warning: skin file button uses unknown key name 'T'
emulator: Warning: skin file button uses unknown key name 'NEXT'
Creating filesystem with parameters:
Size: 69206016
Block size: 4096
Blocks per group: 32768
Inodes per group: 4224
Inode size: 256
Journal blocks: 1024
Label:
Blocks: 16896
Block groups: 1
Reserved block group size: 7
Created filesystem with 11/4224 inodes and 1302/16896 blocks
ioctl(KVM_CREATE_VM) failed: 16 Device or resource busy
failed to initialize KVM
I had tried it with 5.0.1, 5.1.1 x86
Hey Budi,
I don't know if it's because of the noVnc interface or something like that, but the devices on the server got too slow, slow for any kind of task, have you handle this situation too?
I'm mounting the devices on a clean ubuntu server through docker-compose up -d and a simple yml file based on the example you gave. Machine resources were not the problem, I put some more memory and cpu but still without success.
The initialization of the device isn't the problem, it's getting ready in 4-6 minutes, or less. The delay is on the interaction with the device, I send commands from a remote app with the selenium instructions or I move the screen with the mouse on the interactive window of noVnc and the device take about 1-2 seconds to respond.
It's a VMware station with a lot of virtualized servers, this ubuntu I'm using is one of the many there and have only docker and docker-compose installed.
Intel(R) Xeon(R) CPU E5-2640 0 @ 2.50GHz, 8 cores, 8G Memory and a little bit of hard disk.
I used the butomo1989/docker-android-x86-6.0 with the Nexus 5 and Samsung Galaxy S6.
I already started a Grid individually and then used a command like this that you gave as example:
docker run --privileged -d -p 6080:6080 -p 4723:4723 -p 5554:5554 -p 5555:5555 -e DEVICE="Samsung Galaxy S6" -e APPIUM=True -e CONNECT_TO_GRID=True -e SELENIUM_HOST="172.17.0.X" -e SELENIUM_PORT=4444 -e MOBILE_WEB_TEST=True --name android-container butomo1989/docker-android-x86-6.0
But it was not the solution. :(
I made the device more soft and fast downloading inside the device container the Intel x86 Atom System Image and adjusting the config.ini file in the .android directory of the device to point to this new image. Than I could play with the device more fluidly and faster, but still couldn't get the speed of the local emulations.
Inicial docker-compose.yml (image because Markdown was messing the commands):
How would you tune up the performance of the emulation?
Best regards,
Alan Bueno
Steps:
Use butomo1989/docker-android-x86-7.0
image
Start container: docker run --privileged -d -p 6096:6080 -e DEVICE="Samsung Galaxy S6" --name android-container2 butomo1989/docker-android-x86-7.0
Go to VNC, open terminal inside container and check screen info using command: adb shell dumpsys display | grep mBaseDisplayInfo
Output: 474 x 839 and density 240
Expected: If use Nexus 5
device emulator, output would be: 1080x1920 and density 480
which is looks correct.
I launched the docker image butomo1989/docker-android-x86-7.1.1 without the options to attach to a Selenium hub yet clearly in my appium server console window it is trying to attach to a hub.
Would it be possible to update the appium images to the latest version 1.7.1?
I tried the docker image on Mac.
Emulator needs more than 15 minutes to start.
Is there any way to speed up emulator loading?
BTW locally without docker emulator starts very fast
Thanks in advance
I need to downgrade Appium version to 1.6.5 for some reasons .
How can it be done in docker-compose ?
Hi.
Is there an easy way to show current time in the recorded video? The emulator shows the hour and minute clock, but I want to see the seconds.
As per README connected to one of the android emulator container from web browser.
Later tried options Reset, Reboot but even after few minutes didn't see emulator
It will be nice if buttons can be disabled or show some message to user what's happening with emulator at present
Please review
Hi
How can i install and update google play service on emulator ?
Able to recognise real device from docker-container and mirror device screen to noVNC. this feature will be combine with #6
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1a8f82552161 butomo1989/docker-android-arm-5.0.1 "/bin/sh -c '/usr/..." 6 minutes ago Up 6 minutes (healthy) 0.0.0.0:5554-5555->5554-5555/tcp, 4723/tcp, 0.0.0.0:6080->6080/tcp android-container_1
adb connect 192.168.2.48:5555
adb devices
List of devices attached
192.168.2.48:5555 offline
I can see this particular emulator through VNC and interact with it as well.
ipa file path is been set from capabilities - app getting installed on the device but not launching
Please help me how to run appium scripts on real device using 1.6.5 ?
configurations:
mac OS: sierra 10.12.6
Xcode: 7.3.3
appium : 1.6.5 (trying in desktop version )
device : 10.3
app : Native app
Please find the log here .
[JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[XCUITest] xcodebuild exited with code ‘70’ and signal ‘null’
[BaseDriver] Event ‘wdaStartFailed’ logged at 1502705667317 (15:44:27 GMT+0530 (IST))
[XCUITest] Unable to launch WebDriverAgent because of xcodebuild failure: xcodebuild failed with code 70
[XCUITest] Quitting and uninstalling WebDriverAgent, then retrying
[XCUITest] Shutting down sub-processes
[XCUITest] Shutting down iproxy process (pid 3196)
[XCUITest] iproxy exited with code ‘null’
[XCUITest] Removing WDA application from device
[XCUITest] Error: Unable to launch WebDriverAgent because of xcodebuild failure: xcodebuild failed with code 70
at XCUITestDriver.quitAndUninstall$ (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/lib/driver.js:386:15)
at tryCatch (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
Error: Unable to launch WebDriverAgent because of xcodebuild failure: xcodebuild failed with code 70
at XCUITestDriver.quitAndUninstall$ (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/lib/driver.js:386:15)
at tryCatch (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
[XCUITest] Not clearing log files. Use clearSystemFiles capability to turn on.
[iOSLog] Stopping iOS log capture
[MJSONWP] Encountered internal error running command: Error: Unable to launch WebDriverAgent because of xcodebuild failure: xcodebuild failed with code 70
at XCUITestDriver.quitAndUninstall$ (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/lib/driver.js:386:15)
at tryCatch (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
When switching context to a embedded webview the installed chrome version is not sufficient for newer versions. Works with 5.1.1 but not with 6.x nor 7.x
Error: [context("WEBVIEW_com.eyesquare.sdktest")]
Error response status: 13, UnknownError - An unknown server-side error occurred while processing the command.
Selenium error: An unknown server-side error occurred while processing the command.
Original error: unknown error:
Chrome version must be >= 53.0.2785.0
(Driver info: chromedriver=2.26.436382 (70eb799287ce4c2208441fc057053a5b07ceabac),platform=Linux 3.16.0-4-amd64 x86_64)
This is my code for reference. Starting the app and getting the web views works. Just setting the context wont.
const wd = require('wd');
const driver = wd.promiseChainRemote("dev.eye-square.com", 4723);
driver.init({
'browserName' : '',
// 'version' : '7.1.1',
'platformName': 'Android',
'deviceName' : 'Samsung Galaxy S6',
'app' : '/root/tmp/test-app.apk',
})
.sessions(log)
.contexts(log)
.context("WEBVIEW_xxx")
.fin(() => driver.quit())
.done()
function log (err, handles) {
console.log(err, handles);
}
Additional info: It may be due to the emulator being out of date as thats in the logs when hitting
docker exec -it android-container tail -f /var/log/supervisor/docker-android.stdout.log
emulator: Listening for console connections on port: 5554
emulator: Serial number of this emulator (for ADB): emulator-5554
Your emulator is out of date, please update by launching Android Studio:
- Start Android Studio
- Select menu "Tools > Android > SDK Manager"
- Click "SDK Tools" tab
- Check "Android SDK Tools" checkbox
- Click "OK"
I need to mount sdcard and send some images for app and site tests.
How can it be done?
I shared volume to docker but can not use adb push as it return:
adb: error: failed to copy '/media/qa105.jpg' to '/storage/sdcard/qa105.jpg': remote Read-only file system
below is the output after start up of compose file
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
269f4689b2f2 butomo1989/docker-android-arm-7.1.1 "/bin/sh -c '/usr/..." About an hour ago Up About an hour (healthy) 4723/tcp, 5554-5555/tcp, 0.0.0.0:32770->6080/tcp downloads_nexus_7.1.1_1
dd9dacf8600e selenium/hub:3.4.0 "/opt/bin/entry_po..." About an hour ago Up About an hour 0.0.0.0:4444->4444/tcp downloads_selenium_hub_1
282ba472d724 butomo1989/docker-android-arm-5.1.1 "/bin/sh -c '/usr/..." About an hour ago Up About an hour (unhealthy) 4723/tcp, 5554-5555/tcp, 0.0.0.0:32769->6080/tcp downloads_samsung_galaxy_web_5.1.1_1
ab58889a898a butomo1989/docker-android-arm-7.1.1 "/bin/sh -c '/usr/..." About an hour ago Up About an hour (unhealthy) 4723/tcp, 5554-5555/tcp, 0.0.0.0:32768->6080/tcp downloads_samsung_galaxy_web_7.1.1_1
Issue 1
Issue 2
Issue 3
Please review
When the Appium server is up and running and connected to the Selenium grid we see lots of output in the server window, would it be possible to save this output to a text log file in the container so that we can access it? This would greatly help with troubleshooting when running Appium tests.
win7:
$ docker-compose up
....
amsung_galaxy_web_7.1.1_1 | 2017-07-18 02:27:20,581 INFO exited: docker-appium (exit status 1; not expected)
amsung_galaxy_web_5.1.1_1 | 2017-07-18 02:27:25,056 INFO exited: docker-appium (exit status 1; not expected)
pls help me! thank you
here's the log:
Sergey-MBP-2:fuse-box sergeyglukhov$ docker run --privileged -p 6080:6080 -p 5554:5554 -p 5555:5555 -e DEVICE="Nexus 4" --rm butomo1989/docker-android-arm-6.0
2017-06-07 09:25:20,335 CRIT Supervisor running as root (no user in config file)
2017-06-07 09:25:20,337 INFO supervisord started with pid 7
2017-06-07 09:25:21,343 INFO spawned: 'docker-appium' with pid 10
2017-06-07 09:25:21,345 INFO spawned: 'novnc' with pid 11
2017-06-07 09:25:21,347 INFO spawned: 'openbox' with pid 12
2017-06-07 09:25:21,349 INFO spawned: 'xvfb' with pid 13
2017-06-07 09:25:21,352 INFO spawned: 'x11vnc' with pid 15
2017-06-07 09:25:21,354 INFO spawned: 'port-forward' with pid 17
2017-06-07 09:25:21,959 INFO exited: docker-appium (exit status 1; not expected)
2017-06-07 09:25:22,396 INFO success: novnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2017-06-07 09:25:22,396 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2017-06-07 09:25:22,396 INFO success: xvfb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2017-06-07 09:25:22,396 INFO success: x11vnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2017-06-07 09:25:22,396 INFO success: port-forward entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2017-06-07 09:25:23,404 INFO spawned: 'docker-appium' with pid 117
2017-06-07 09:25:23,461 INFO exited: docker-appium (exit status 1; not expected)
2017-06-07 09:25:25,468 INFO spawned: 'docker-appium' with pid 119
2017-06-07 09:25:25,524 INFO exited: docker-appium (exit status 1; not expected)
2017-06-07 09:25:28,534 INFO spawned: 'docker-appium' with pid 120
2017-06-07 09:25:28,592 INFO exited: docker-appium (exit status 1; not expected)
2017-06-07 09:25:29,595 INFO gave up: docker-appium entered FATAL state, too many start retries too quickly
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.