Тест Appium даже не запускается на AWS DeviceFarm
Я выполнил некоторые тесты iOS Appium (Java TestNG) на устройствах iOS для своего приложения.
Некоторые тесты даже не устанавливают приложение на шесть или семь из 22 устройств. Все с той же самой ошибкой о не создании сеанса:
Trying to execute simple Appium Driver
Failed to invoke configuration method scenarios.ScreenshotsAppiumTest.setUp:
It is impossible to create a new session because
'createSession' which takes HttpClient,
InputStream and long was not found or it is not accessible
Тест работает и проходит на всех моих устройствах и почти на всех других устройствах в AWS Device Farm. В тех устройствах, где он выходит из строя, он ничего не делает. Приложение не устанавливается.
Я понятия не имею, как отладить этот тест или почему они не работают. Google не помогает
Я уверен, что тест работает, так как он работает на других устройствах.
Я хотел бы знать, как отладить или попытаться решить эту ошибку. Как выполнить отладку Appium без установки приложения в AWS Device Farm? Что я могу сделать? Есть ли какая-либо команда для выполнения, чтобы получить больше журналов? Что-нибудь? Я задал этот же вопрос на форуме AWS без какой-либо удачи.... Спасибо.
Ошибка у меня в логах эта:
RUNNING: Suite: "test" containing "1" Tests (config: /private/tmp/scratchudZ8pO.scratch/testng_xml93e7D5/screenshotsTest.xml)
https://forums.aws.amazon.com/ Keeping method ScreenshotsAppiumTest.setUp()pri:0, instance:scenarios.ScreenshotsAppiumTest@4e04a765 for class http://TestClass name=class scenarios.ScreenshotsAppiumTest
https://forums.aws.amazon.com/ Invoking @BeforeClass ScreenshotsAppiumTest.setUp()pri:0, instance:scenarios.ScreenshotsAppiumTest@4e04a765
INVOKING CONFIGURATION: "test" - @BeforeClass scenarios.ScreenshotsAppiumTest.setUp()
Trying to execute simple Appium Driver
Failed to invoke configuration method scenarios.ScreenshotsAppiumTest.setUp:It is impossible to create a new session because 'createSession' which takes HttpClient, InputStream and long was not found or it is not accessible
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z'
System info: host: 'prod-osx-device-host-master-v18.local', ip: 'fe80:0:0:0:82:486b:ed14:4cef%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.13.2', java.version: '1.8.0_141'
Driver info: driver.version: AppiumDriver
FAILED CONFIGURATION: "test" - @BeforeClass scenarios.ScreenshotsAppiumTest.setUp() finished in 0 ms
org.openqa.selenium.WebDriverException: It is impossible to create a new session because 'createSession' which takes HttpClient, InputStream and long was not found or it is not accessible
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z'
System info: host: 'prod-osx-device-host-master-v18.local', ip: 'fe80:0:0:0:82:486b:ed14:4cef%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.13.2', java.version: '1.8.0_141'
Driver info: driver.version: AppiumDriver
at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:182)
at io.appium.java_client.remote.AppiumCommandExecutor.createSession(AppiumCommandExecutor.java:196)
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:218)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:207)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:130)
at io.appium.java_client.DefaultGenericMobileDriver.<init>(DefaultGenericMobileDriver.java:38)
at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:84)
at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:94)
at scenarios.TestSetup.prepareDriver(TestSetup.java:117)
at scenarios.ScreenshotsAppiumTest.setUp(ScreenshotsAppiumTest.java:44)
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:84)
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.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:175)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:107)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
at org.testng.SuiteRunner.run(SuiteRunner.java:254)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.TestNG.privateMain(TestNG.java:1364)
at org.testng.TestNG.main(TestNG.java:1333)
Caused by: java.lang.reflect.InvocationTargetException
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 io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:172)
... 35 more
Caused by: java.io.IOException: unexpected end of stream on Connection{127.0.0.1:4723, proxy=DIRECT hostAddress=/127.0.0.1:4723 cipherSuite=none protocol=http/1.1}
at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:205)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:88)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:125)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)
at okhttp3.RealCall.execute(RealCall.java:77)
at org.openqa.selenium.remote.internal.OkHttpClient.execute(OkHttpClient.java:105)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:101)
... 40 more
Caused by: java.io.EOFException: \n not found: limit=0 content=…
at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:227)
at okhttp3.internal.http1.Http1Codec.readHeaderLine(Http1Codec.java:212)
at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:189)
... 57 more
INVOKING: "test" - scenarios.ScreenshotsAppiumTest.screenshotsTest()
SKIPPED: "test" - scenarios.ScreenshotsAppiumTest.screenshotsTest() finished in 0 ms
browses the page the title
https://forums.aws.amazon.com/ Keeping method ScreenshotsAppiumTest.tearDown()pri:0, instance:scenarios.ScreenshotsAppiumTest@4e04a765 for class http://TestClass name=class scenarios.ScreenshotsAppiumTest
SKIPPED CONFIGURATION: "test" - @AfterClass scenarios.ScreenshotsAppiumTest.tearDown() finished in 0 ms
1 ответ
Обновить. Я нашел устройства с этой проблемой. Похоже, это происходит на
Apple iPad 2 iOS version 9
Apple iPad Air 2 iOS version 9
Apple iPad Mini 1st Gen iOS version 9
Apple iPad Mini 3
Apple iPad Pro 9.7" iOS version 10
Apple iPhone 5s iOS version 9
Apple iPhone 7 Plus iOS version 10
На 9 версиях iOS. Я не слишком беспокоюсь об этом, потому что это похоже на проблему версии. Я принимаю мой собственный ответ до будущих исследований и проверки других версий.
Для дальнейшего использования вот журнал одного устройства:
[TestNG] RUNNING: Suite: "test" containing "1" Tests (config: /tmp/scratchK72Ot0.scratch/testng_xmlK427pl/second_login_is_much_faster.xml)
[Invoker 310656974] Keeping method LoginDurationAppiumTest.setUp()[pri:0, instance:scenarios.LoginDurationAppiumTest@64616ca2] for class [TestClass name=class scenarios.LoginDurationAppiumTest]
[Invoker 310656974] Invoking @BeforeClass LoginDurationAppiumTest.setUp()[pri:0, instance:scenarios.LoginDurationAppiumTest@64616ca2]
[TestNG] INVOKING CONFIGURATION: "test" - @BeforeClass scenarios.LoginDurationAppiumTest.setUp()
Trying to execute simple Appium Driver
Failed to invoke configuration method scenarios.LoginDurationAppiumTest.setUp:It is impossible to create a new session because 'createSession' which takes HttpClient, InputStream and long was not found or it is not accessible
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z'
System info: host: 'ip-172-31-13-65', ip: '172.31.13.65', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-139-generic', java.version: '1.8.0_151'
Driver info: driver.version: AppiumDriver
[TestNG] FAILED CONFIGURATION: "test" - @BeforeClass scenarios.LoginDurationAppiumTest.setUp() finished in 0 ms
[TestNG] org.openqa.selenium.WebDriverException: It is impossible to create a new session because 'createSession' which takes HttpClient, InputStream and long was not found or it is not accessible
[TestNG] Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z'
[TestNG] System info: host: 'ip-172-31-13-65', ip: '172.31.13.65', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-139-generic', java.version: '1.8.0_151'
[TestNG] Driver info: driver.version: AppiumDriver
[TestNG] at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:182)
[TestNG] at io.appium.java_client.remote.AppiumCommandExecutor.createSession(AppiumCommandExecutor.java:196)
[TestNG] at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:218)
[TestNG] at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
[TestNG] at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42)
[TestNG] at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
[TestNG] at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:207)
[TestNG] at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:130)
[TestNG] at io.appium.java_client.DefaultGenericMobileDriver.<init>(DefaultGenericMobileDriver.java:38)
[TestNG] at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:84)
[TestNG] at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:94)
[TestNG] at scenarios.TestSetup.prepareDriver(TestSetup.java:119)
[TestNG] at scenarios.LoginDurationAppiumTest.setUp(LoginDurationAppiumTest.java:46)
[TestNG] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[TestNG] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[TestNG] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[TestNG] at java.lang.reflect.Method.invoke(Method.java:498)
[TestNG] at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
[TestNG] at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564)
[TestNG] at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
[TestNG] at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
[TestNG] at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:175)
[TestNG] at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:107)
[TestNG] at org.testng.TestRunner.privateRun(TestRunner.java:767)
[TestNG] at org.testng.TestRunner.run(TestRunner.java:617)
[TestNG] at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
[TestNG] at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
[TestNG] at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
[TestNG] at org.testng.SuiteRunner.run(SuiteRunner.java:254)
[TestNG] at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
[TestNG] at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
[TestNG] at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
[TestNG] at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
[TestNG] at org.testng.TestNG.run(TestNG.java:1057)
[TestNG] at org.testng.TestNG.privateMain(TestNG.java:1364)
[TestNG] at org.testng.TestNG.main(TestNG.java:1333)
[TestNG] Caused by: java.lang.reflect.InvocationTargetException
[TestNG] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[TestNG] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[TestNG] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[TestNG] at java.lang.reflect.Method.invoke(Method.java:498)
[TestNG] at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:172)
[TestNG] ... 35 more
[TestNG] Caused by: java.io.IOException: unexpected end of stream on Connection{127.0.0.1:4723, proxy=DIRECT hostAddress=/127.0.0.1:4723 cipherSuite=none protocol=http/1.1}
[TestNG] at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:205)
[TestNG] at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:88)
[TestNG] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
[TestNG] at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
[TestNG] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
[TestNG] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
[TestNG] at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
[TestNG] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
[TestNG] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
[TestNG] at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
[TestNG] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
[TestNG] at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:125)
[TestNG] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
[TestNG] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
[TestNG] at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)
[TestNG] at okhttp3.RealCall.execute(RealCall.java:77)
[TestNG] at org.openqa.selenium.remote.internal.OkHttpClient.execute(OkHttpClient.java:105)
[TestNG] at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:101)
[TestNG] ... 40 more
[TestNG] Caused by: java.io.EOFException: \n not found: limit=0 content=…
[TestNG] at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:227)
[TestNG] at okhttp3.internal.http1.Http1Codec.readHeaderLine(Http1Codec.java:212)
[TestNG] at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:189)
[TestNG] ... 57 more
[TestNG] INVOKING: "test" - scenarios.LoginDurationAppiumTest.second_login_is_much_faster()
[TestNG] SKIPPED: "test" - scenarios.LoginDurationAppiumTest.second_login_is_much_faster() finished in 10 ms
[TestNG] Checks if the second time the app logs in is much faster
[Invoker 310656974] Keeping method LoginDurationAppiumTest.tearDown()[pri:0, instance:scenarios.LoginDurationAppiumTest@64616ca2] for class [TestClass name=class scenarios.LoginDurationAppiumTest]
[TestNG] SKIPPED CONFIGURATION: "test" - @AfterClass scenarios.LoginDurationAppiumTest.tearDown() finished in 0 ms
===== Invoked methods
LoginDurationAppiumTest.setUp()[pri:0, instance:scenarios.LoginDurationAppiumTest@64616ca2] 1684106402
LoginDurationAppiumTest.second_login_is_much_faster()[pri:0, instance:scenarios.LoginDurationAppiumTest@64616ca2] 1684106402
=====