Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Appium: при паралельном запуске тестов с TestNG на одном из девайсов падает тест с zipAlignApk failed

java
maven
appium
testng
Теги: #<Tag:0x00007f7b699aa5d8> #<Tag:0x00007f7b699aa290> #<Tag:0x00007f7b699a9d90> #<Tag:0x00007f7b699a99f8>

(y0ga) #1

Столкнулся с проблемой при паралельном запуске тестов. На одном из девайсов тест при старте падает с такой ошибкой:

A new session could not be created. (Original error: zipAlignApk failed. Error: Command failed: C:\Windows\system32\cmd.exe /s /c ""C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.3\zipalign.exe" -f 4 D:\Sample.apk C:\Users\user\AppData\Local\Temp\116625-24452-r1j328\appium.tmp"
W/zip

Причем на втором девайсе тест ранится нормально.
Полный стектрейс ошибки:


org.openqa.selenium.SessionNotCreatedException: A new session could not be created. (Original error: zipAlignApk failed. Error: Command failed: C:\Windows\system32\cmd.exe /s /c ""C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.3\zipalign.exe" -f 4 D:\Sample.apk C:\Users\user\AppData\Local\Temp\116625-24452-r1j328\appium.tmp"
W/zip     (30388): copy of 'lib/x86/libopencv_java3.so' failed
) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 11.01 seconds
Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46'
System info: host: 'QA', ip: '192.168.113.1', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_91'
Driver info: io.appium.java_client.android.AndroidDriver

	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
	at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)
	at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:43)
	at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
	at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144)
	at io.appium.java_client.DefaultGenericMobileDriver.<init>(DefaultGenericMobileDriver.java:39)
	at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:69)
	at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:78)
	at io.appium.java_client.android.AndroidDriver.<init>(AndroidDriver.java:67)
	at com.paycasso.testapp.MainSuite.setupcap(MainSuite.java:29)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
	at org.testng.TestRunner.beforeRun(TestRunner.java:641)
	at org.testng.TestRunner.run(TestRunner.java:609)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

(Константин) #2

Вполне возможно ему не нравится путь - “C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.3\zipalign.exe”
Попробуйте перенести AndroidSDK в другое место, где путь не будет содержать пробелов.
Как вариант еще cкопировать папку build-tools в папку tools
И так на всякий случай спрошу. У вас же в PATH указаны пути к platform-tools и tools?


(y0ga) #3

PATHы указаны, я предполагаю что если бы ему не нравился путь то такая ошибка была бы на каждом девайсе, а у меня это происходит только с каки-то одним, при чем от девайса это никак не зависит и просиходит как-то рандомно.