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
相关产品推荐
相关产品推荐

