You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Appium Python测试用例运行卡顿中断,需调整Android Studio的ADB设置吗?

解决Appium测试用例卡顿及运行中断问题

一、补充Desired Capabilities配置

当前配置缺少几个关键参数,建议添加或调整以下项:

  • appium:noReset:设置为True,避免每次运行用例都重装应用、清除数据,大幅减少设备资源消耗。若需每次测试用干净环境,可改用appium:fullReset,但不建议频繁使用。
  • appium:dontStopAppOnReset:设置为True,测试结束后不停止应用进程,减少重复启动应用的开销。
  • appium:skipDeviceInitialization:设置为True,跳过设备初始化步骤(如安装Appium Settings、UIAutomator2服务等),适合稳定测试环境,节省初始化时间。
  • appium:disableWindowAnimation:设置为True,关闭系统窗口动画,降低设备CPU和内存占用,提升测试执行流畅度。
  • 调整appium:newCommandTimeout:如果单条用例执行时间较长,可适当延长至600秒,避免因超时导致连接中断,但不要设置过大。

调整后的配置示例:

def __init__(self):
    caps = {
        'platformName': 'Android',
        'platformVersion': '11.0',
        'automationName': 'uiautomator2',
        'appium:ensureWebviewsHavePages': True,
        'appium:newCommandTimeout': 600,
        'appium:noReset': True,
        'appium:dontStopAppOnReset': True,
        'appium:skipDeviceInitialization': True,
        'appium:disableWindowAnimation': True
    }
    self.instance = webdriver.Remote('http://localhost:4723/wd/hub', caps)

二、ADB设置优化

无需在Android Studio中调整,直接通过终端执行以下命令即可:

  • 延长ADB连接超时:adb shell settings put global adb_timeout_ms 60000,避免长时间操作时ADB连接断开。
  • 关闭调试通知:adb shell settings put global development_settings_enabled 0,减少系统弹窗占用资源(测试完成后可执行adb shell settings put global development_settings_enabled 1恢复)。
  • 增大日志缓冲区:adb logcat -G 16M,防止日志缓冲区溢出导致设备卡顿。

三、测试用例执行层面优化

  • 每个用例执行完成后,务必调用self.instance.quit()关闭driver实例,避免多个残留进程占用设备和服务器资源。建议在测试框架的teardown方法中统一处理。
  • 使用测试框架(如pytest)的session级fixture管理driver,整个测试会话只创建一个driver实例,避免频繁创建销毁driver带来的资源消耗。
  • 减少context切换:尽量集中处理Native或Webview环境的操作,避免频繁在两者间切换,每次切换都会消耗额外资源。
  • 用显式等待替代隐式等待:使用WebDriverWait针对特定元素设置等待时间,避免全局隐式等待导致的不必要资源占用。

内容的提问来源于stack exchange,提问作者Archana Palsa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 15:36:16