Appium 测试甚至无法在 AWS DeviceFarm 上启动 [英] Appium test doesn't even start on AWS DeviceFarm

查看:24
本文介绍了Appium 测试甚至无法在 AWS DeviceFarm 上启动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经在 iOS 设备上为我的应用运行了一些 iOS Appium 测试 (Java TestNG).

I have run somel iOS Appium tests (Java TestNG) on iOS devices for my app.

有些测试甚至不会在 22 台设备中的六七台上安装该应用.所有关于不创建会话的完全相同的错误:

Some tests don't even install the app, on six or seven out of 22 devices. All with the exact same error about not creating a session:

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 上的几乎所有其他设备上运行并通过.在那些出现故障的设备中,它什么也不做.它不会安装应用程序.

The test works and passes on all my devices and almost all other devices on AWS Device Farm. In those devices where it fails, it does nothing. It doesn't install the app.

我不知道如何调试这个测试,也不知道为什么它们没有运行.谷歌没有帮助.

I have no idea how to debug this test or why they are not running. Google doesn't help.

我很肯定该测试有效,因为它适用于其他设备.

I am positive the test works, since it works on other devices.

我想知道如何调试或尝试解决此错误.调试 Appium 而不在 AWS Device Farm 上安装应用程序的步骤是什么?我能做什么?是否有任何命令可以执行以获取更多日志?任何事物?我在 AWS 论坛上问过同样的问题,但没有任何运气......谢谢.

I'd like to know how to debug or try to solve this error. What are the steps to debug Appium not installing the app on AWS Device Farm? What can I do? Is there any command to execute to get more logs? Anything? I have asked this same question on AWS Forum without any luck.... Thanks.

我在日志中遇到的错误:

The error I have in the logs this one:

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

推荐答案

更新.我发现有这个问题的设备.看起来它发生在

Update. I have found devices with this issue. It looks like it happens on

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

在 iOS 版本 9 上.我不太担心它,因为它看起来像一个版本问题.我接受我自己的答案,直到未来的研究和检查其他版本.

On versions 9 of iOS. I am not worring too much about it because it looks like a version issue. I accept my own answer until future research and checking other versions.

以下是一台设备的日志以供将来参考:

For future reference here's the log of one device:

[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
=====

这篇关于Appium 测试甚至无法在 AWS DeviceFarm 上启动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆