当前位置: 首页 > 知识库问答 >
问题:

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

滕成双
2023-03-14

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

我的设备的Appium desired_capabilities包括noreset=true。除设备标识符之外的所有其他desired_capabilities都在所有其他设备之间共享并适用于所有其他设备。
直到将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”应用程序。访问https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md进行故障排除。原始错误:执行adbexec时出错。原始错误:“command”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后超时”。尝试增加由“adb exectioneout”功能表示的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分钟后手动中断。)

在我的模拟器上,应用程序打开了,并且可以按照我的预期使用,但是adb会话并不识别应用程序已打开。

对未受影响的设备(例如emulator-5558)运行相同的命令会成功,输出如下:

正在停止:com.ferly.ferly
正在启动:Intent{cmp=com.ferly.ferly/host.exp.exponent.experience.ShellAppActivity}
警告:activity未启动,其当前任务已前置
状态:OK
此时间:0
TotalTime:0
WaitTime:872
已完成

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

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

共有1个答案

吴浩皛
2023-03-14

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

driver.manage().timeouts().implicitlyWait(600,TimeUnit.seconds);

这个问题对我来说似乎已经解决了。

 类似资料:
  • 我是一个自动测试和Appium的初学者,我正在尝试一个测试(针对android)。 我下载了: > appium-运行服务器 Android模拟器(Android虚拟设备管理器) 例外 谢了!

  • 控制台错误 有人面临这个问题吗?

  • 我已经使用Appium和Java以及TestNG为Android应用程序编写了一些测试。我的测试在模拟器上本地运行良好,但当我将它们上传到设备场时,我的测试总是失败。我已经尽可能地简化了我的测试,但它仍然不起作用。目前,我尝试运行的测试会在打开应用程序时出现的提示中找到并单击“允许权限”按钮。代码: 观看Device Farm提供的视频,我可以看到它打开并立即关闭我的应用程序。它甚至没有像应该的那

  • 线程“main”org.openqa.selenium.SessionNotCreatedException中出现异常:无法创建新会话。(原始错误:启动活动的权限被拒绝。)(警告:服务器未提供任何stacktrace信息)命令持续时间或超时:5.41秒生成信息:版本:“未知”,版本:“2aa21c1”,时间:“2016-08-02 14:59:43-0700”系统信息:主机:“粗鲁”,ip:“19

  • 我有基本的appium自动化测试,只是在移动设备上启动应用程序,并执行一些操作。同样的代码在其他机器上运行,而我在运行它时面临问题。 我得到这个错误: org.openqa.selenium.会话:无法创建新的远程会话。有关更多详细信息,请检查服务器日志。原始错误:处理命令时发生未知服务器端错误。原始错误:执行adbExec时出错。原始错误:命令/用户/xyz/库/Android/sdk/平台工具

  • 问题内容: 我在Appium面临的问题是我在下面决定的。不使用SUDO,我找不到安装Appium所需组件的方法。用SUDO安装所有组件之后,然后尝试运行Appium,我得到了错误,应该在没有SUDO的情况下安装Appium和NODE。尝试在线搜索解决方案花了我一段时间,因为在使用JAVA开发测试时,几乎没有在线教程可供Appium在MAC上运行。以下是有关如何在Mac OS上设置Appium以及如