Appium(Android):在设备上运行1个测试后启动时超时

Appium(Android):在设备上运行1个测试后启动时超时,android,adb,appium,Android,Adb,Appium,TL;DR:我只能对某个设备运行一次测试,然后每隔一次手动或通过Appium服务器调用将我的应用程序连接到ADB会话的尝试都会失败。如何解决此问题,以便恢复自动测试 我的设备所需的应用程序功能包括noReset=True。除设备标识符之外的所有其他所需功能在我的所有其他设备之间共享并适用于所有其他设备。 直到我将driver.reset()添加到一个测试中,才发现此错误。删除该行代码并没有解决此问题。因此,我怀疑Appium不是这个错误的根本原因,而是强调了它。我期望的能力是: ` 'platf

TL;DR:我只能对某个设备运行一次测试,然后每隔一次手动或通过Appium服务器调用将我的应用程序连接到ADB会话的尝试都会失败。如何解决此问题,以便恢复自动测试

我的设备所需的应用程序功能包括
noReset=True
。除设备标识符之外的所有其他所需功能在我的所有其他设备之间共享并适用于所有其他设备。
直到我将
driver.reset()
添加到一个测试中,才发现此错误。删除该行代码并没有解决此问题。因此,我怀疑Appium不是这个错误的根本原因,而是强调了它。我期望的能力是:

`
'platformName': 'Android',
'platformVersion': '8.0',
'deviceName': 'WVGA_API_26',
'avd': 'WVGA_API_26',
'app_package': 'com.ferly.ferly',
'app_activity': 'host.exp.exponent.experience.ShellAppActivity',
'app_wait_package': 'com.ferly.ferly',
'automationName': 'UiAutomator2',
'noReset': 'true',`
试图初始化使用受影响设备的任何驱动程序会话时,Appium中会出现以下错误:

WebDriverException:消息:处理命令时发生未知的服务器端错误。原始错误:无法启动“com.ferly.ferly”应用程序。访问进行故障排除。原始错误:执行adbExec时出错。原始错误:“命令”C:\Users\Jeff\AppData\Local\Android\sdk\platform tools\adb.exe-P 5037-s emulator-5558 shell am start-W-n com.ferly.ferly/host.exp.exponent.experience.ShellAppActivity-s“20000ms后超时”。尝试增加由“adbExecTimeout”功能表示的20000ms adb执行超时

在我的Windows shell中运行命令:
C:\Users\\AppData\Local\Android\sdk\platform tools\adb.exe-p 5037-s emulator-5556 shell am start-W-n com.ferly.ferly/host.exp.exponent.experience.ShellAppActivity-s
,其中emulator-5556是受影响的设备,将给出以下输出:

停止:com.ferly.ferly
开始:Intent{cmp=com.ferly.ferly/host.exp.exponent.experience.ShellAppActivity}
^C(等待2分钟后手动中断)

在我的emulator上,应用程序会打开,并且可以按预期使用,但adb会话无法识别应用程序是否已打开

运行相同的命令,但对于未受影响的设备(如emulator-5558),成功输出以下结果:

停止:com.ferly.ferly
开始:Intent{cmp=com.ferly.ferly/host.exp.exponent.experience.ShellAppActivity}
警告:活动未启动,其当前任务已置于最前面
状态:正常
这次:0
总时间:0
等待时间:872
完整的

解决方法:每次测试后卸载受影响设备上的Appium设置应用程序,允许在该设备上运行一个测试


我面临的核心问题是什么?如何解决?如果重要的话,我的测试脚本都是用Python编写的

我已将超时时间增加到600秒,如下所示

driver.manage().timeouts().implicitlyWait(600,TimeUnit.SECONDS)

这个问题似乎已经解决了