首页
/ Appium中XCUITest驱动实现屏幕录制文件清理的正确方式

Appium中XCUITest驱动实现屏幕录制文件清理的正确方式

2025-05-10 04:38:32作者:邬祺芯Juliet

在iOS自动化测试过程中,使用Appium的XCUITest驱动进行屏幕录制时,生成的视频文件在模拟器上会自动删除,但在真机设备上需要手动清理。本文详细介绍如何通过正确调用WebDriverAgent接口实现录制文件的清理。

问题背景

当使用Appium 2.17.1和XCUITest驱动9.2.1版本进行屏幕录制时,真机设备上录制的视频文件不会自动删除。官方文档提到需要通过调用POST /wda/shutdown接口或设备恢复出厂设置来清理这些文件。

正确调用方式

实际上,正确的调用方式应该是:

  1. 直接向WebDriverAgent(WDA)实例发送GET请求
  2. 请求地址应为WDA服务运行的地址(默认8100端口)
  3. 请求方法应为GET而非POST

示例Python代码:

import requests
response = requests.get('http://localhost:8100/wda/shutdown')

验证方法

为确保视频文件确实被删除,可以使用以下终端命令检查:

xcrun devicectl device info files --device [设备UUID] \
--domain-type appDataContainer \
--domain-identifier com.apple.testmanagerd \
--username mobile \
--subdirectory Attachments

实际测试结果

通过对比测试发现:

  1. 仅调用driver.quit()时,视频文件会保留在设备上
  2. 调用GET /wda/shutdown后,视频文件会被正确删除

技术原理

WebDriverAgent在收到shutdown请求后,会清理其工作目录下的所有临时文件,包括屏幕录制生成的视频文件。这一过程是通过iOS的testmanagerd服务实现的,该服务管理着所有测试相关的临时文件。

最佳实践建议

  1. 对于真机测试,建议在测试完成后主动调用shutdown接口
  2. 可以封装一个清理函数在测试用例的teardown阶段调用
  3. 定期检查设备存储空间,确保没有残留的测试文件

通过遵循这些实践,可以有效避免测试过程中产生的临时文件占用设备存储空间的问题。

登录后查看全文
热门项目推荐
相关项目推荐