2017-02-16 3 views
4

Ich habe Probleme mit dem Ausführen von Tests auf Android 7.0 reales Gerät (Nexus 6) Appium Version ausgeführt wird: 1.6.3 OS: Windows 10 Sprache: Java Java-Client: 4.1.2Unable appium Tests auf Android 7.0

Was ist interessant, wenn ich jedes Android 6-Gerät einstecke (Einstellung platformVersion auf 6.0) - die Tests laufen ohne Probleme. Aber wenn ich versuche, sie auf Android 7.0-Gerät auszuführen, erhalte ich den Fehler.

Hier sind meine Fähigkeiten für auf Android 7.0:

DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setCapability("deviceName", "Android"); 
capabilities.setCapability("browserName", "Android"); 
capabilities.setCapability("platformName", "Android"); 
capabilities.setCapability("platformVersion", "7.0"); 
capabilities.setCapability("fullReset", true); 
capabilities.setCapability("autoAcceptAlerts", true); 
capabilities.setCapability("newCommandTimeout", 0); 
capabilities.setCapability("app", "C:\Apk\xxx-release.apk"); 
capabilities.setCapability("appPackage", "com.xxx.android.vvm"); 
capabilities.setCapability("appActivity", "com.xxx.android.vvm.activity.Splash"); 

Hier sind die Protokolle von IDE-Konsole Ausgabe:

Feb 14, 2017 4:21:19 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end 
Feb 14, 2017 4:21:24 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
INFO: Falling back to original OSS JSON Wire Protocol. 
Feb 14, 2017 4:21:29 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
INFO: Falling back to straight W3C remote end connection 

org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{app=C:\Apk\xxx-release.apk, appPackage=com.xxx.android.vvm, appActivity=com.xxx.android.vvm.activity.Splash, newCommandTimeout=0, platformVersion=7.0, browserName=Android, platformName=Android, deviceName=Android, fullReset=true, autoAcceptAlerts=true}], required capabilities = Capabilities [{}] 
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:48:19 -0700' 
System info: host: 'TAC-45', ip: '10.3.184.68', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_111' 
Driver info: driver.version: AndroidDriver 

at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:91) 

Und hier sind die Server-Logs:

[debug] [AndroidDriver] Not cleaning generated files. Add clearSystemFiles capability if wanted. 
[MJSONWP] Encountered internal error running command: Error: Error executing adbExec. Original error: 'Command 'C\:\Android\sdk\platform-tools\adb.exe -P 5037 -s ZX1G22D7HJ install C\:\Users\user\AppData\Roaming\npm\node_modules\appium\node_modules\io.appium.settings\bin\settings_apk-debug.apk' exited with code 1'; Stderr: 'Failed to install C:\Users\user\AppData\Roaming\npm\node_modules\appium\node_modules\io.appium.settings\bin\settings_apk-debug.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package io.appium.settings signatures do not match the previously installed version; ignoring!]'; Code: '1' 
at ADB.execFunc$ (../../../lib/tools/system-calls.js:195:13) 
at tryCatch (C:\Users\user\AppData\Roaming\npm\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:67:40) 
at GeneratorFunctionPrototype.invoke as _invoke 
at GeneratorFunctionPrototype.prototype.(anonymous function) as throw 
at GeneratorFunctionPrototype.invoke (C:\Users\user\AppData\Roaming\npm\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:136:37) 
at process.tickCallback (internal/process/nexttick.js:103:7) 
[HTTP] <-- POST /wd/hub/session 500 4879 ms - 754 
[HTTP] --> POST /wd/hub/session {"capabilities":{"desiredCapabilities":{"app":"C:\Apk\xxx-release.apk","appPackage":"com.xxx.android.vvm","appActivity":"com.xxx.android.vvm.activity.Splash","newCommandTimeout":0,"platformVersion":"7.0","browserName":"Android","platformName":"Android","deviceName":"Android","fullReset":true,"autoAcceptAlerts":true},"requiredCapabilities":{}}} 
[debug] [MJSONWP] Bad parameters: BadParametersError: Parameters were incorrect. We wanted {"required":["desiredCapabilities"],"optional":["requiredCapabilities","capabilities","sessionId","id","sessionId","id","sessionId","id"]} and you sent ["capabilities"] 

Es scheint, dass ein Fehler bei den Funktionen vorliegt. Wenn ich jedoch ein Telefon mit Android 6 anschließe und platformVersion auf 6.0 setze, laufen alle Tests ohne Probleme!

Ich würde jede Hilfe zu schätzen wissen.

Antwort

5

Entfernen Sie "Entsperren" und "Appium Einstellungen" -Apps vom Gerät - Appium installiert diese Apps automatisch. (In meinem Fall waren diese Apps nach der Aktualisierung von Android von Version 6 auf Version 7 nicht kompatibel.

+0

Es hat funktioniert! Vielen Dank! – APC551

+0

Dies verdient mehr "Pfeil nach oben". Hat mir ganz sicher geholfen – Dmitry

0

Entfernen Sie die "App" -Fähigkeit, die jedes Mal auf dem Gerät zu installieren versucht. Installieren Sie stattdessen die App manuell einmal auf dem Gerät und versuchen Sie es. Wenn es nicht funktioniert, lassen Sie mich wissen, dass es noch eine Lösung gibt, aber ich schlage vor, dass Sie das zuerst versuchen.

+0

die „App“ -Fähigkeit Entfernen nicht helfen es zeigt die gleiche Fehler – APC551

0

Als Fehlerprotokolle zeigen

[INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package io.appium.settings signatures do not match the previously installed version; 

Normalerweise wird diese Fehler aufgrund kommen eine unterzeichnete Release-Version auf dem Gerät zu haben, dann versucht die Debug-Version auf einzusetzen. Es bleibt in einem ungültigen Zustand hängen, in dem es nicht vollständig deinstalliert ist.

Aus diesen Gründen wird Ihre Sitzung nicht erstellt und um diese zu vermeiden, deinstallieren Sie die Anwendung, die auf dem Gerät vorhanden ist, und führen Sie das Skript aus. Es sollte funktionieren.

Hoffe, dass diese Ihnen helfen.

+0

Leider hat es nicht funktioniert und ich konnte Tests auf Android 6 durchführen, egal ob die App installiert war oder nicht.Ich denke, das Problem liegt darin: 'Ungültige Parameter: BadParametersError: Parameter waren falsch. Wir wollten {"required": ["sinedCapabilities"], "optional": ["requiredCapabilities", "capabilities", "sessionId", "id", "sessionId", "id", "sessionId", "id"] } und Sie gesendet ["Fähigkeiten"] ' Aber ich konnte nicht die Antwort finden, was genau falsch ist – APC551

+0

okey dann sollten Sie versuchen mit minimalen Parameter versuchen mit minimalen Fähigkeiten, die Sie haben Zweifel und führen Sie das Skript –

0

Wenn dieser Fehler auftritt, deinstallieren Sie alle Artefakte von Ihrem Testgerät mit Android Studio. Öffnen Sie die Gradle-Ansicht auf der rechten Seite Android Studio

geöffnet:.. app> Aufgaben> installieren und die uninstallAll Aufgabe durch einen Doppelklick auf sie