Android Appium摄像头测试:如何注入视频模拟相机输入测试应用
Appium 无源码修改注入相机视频流测试方案
Android 端最优实现方案
无需修改被测应用源代码,通过系统层模拟相机输入实现,适配Android 8.0及以上系统:
- 前期准备:将测试用的目标视频转码为H.264编码的MP4文件,分辨率匹配被测设备的常用相机输出参数(比如1080P/30fps)
- 安装模拟相机应用:选择开源的系统级相机模拟工具,在设备开发者选项中开启「允许模拟相机输入」,并将该应用设置为默认模拟相机提供方
- Appium 脚本前置操作:
- 执行adb命令推送测试视频到模拟相机的指定读取目录:
adb push test_scene.mp4 /sdcard/Android/data/io.github.cameramock/files/target.mp4 - 执行系统参数配置命令开启模拟相机:
adb shell setprop debug.camera.hal.mock.enable 1
- 执行adb命令推送测试视频到模拟相机的指定读取目录:
- 启动被测应用:此时应用调用系统相机API获取到的视频流就是你提前注入的测试视频,可直接执行后续图像处理相关的自动化测试逻辑
- 测试结束后恢复配置:执行
adb shell setprop debug.camera.hal.mock.enable 0即可切回设备真实相机,不影响设备正常使用
iOS 端适配方案
iOS端同样可实现无源码修改的相机流注入,适配iOS 14及以上系统:
- 提前通过Appium的
mobile: setPermission接口给被测应用授予相机权限 - 基于XCTest框架的AVCaptureSession模拟能力,将预录制的测试视频封装为相机输入源,Appium脚本调用对应模拟接口即可完成视频流注入,全程不需要修改被测应用代码
内容的提问来源于stack exchange,提问作者Saw
相关产品推荐
相关产品推荐

