iOS Appium相机测试:如何注入视频流模拟相机输入测试应用
iOS平台Appium无侵入式相机视频流注入方案
本方案全程不需要修改被测应用的任何代码,适配模拟器、真机两类测试场景:
- 模拟器场景(优先推荐,实现成本最低)
- 提前将测试用视频转码为H.264编码的MP4文件,分辨率匹配目标测试模拟器的规格
- 启动目标iOS模拟器后,通过macOS自带的
simctl工具执行系统级相机输入替换命令:xcrun simctl io <你的模拟器UDID> setCameraOverlay <测试视频文件的绝对路径> - 编写Appium测试脚本时,添加两个必要capability即可:
后续测试流程中直接正常触发应用的相机调用逻辑,应用读取到的相机流就是你注入的测试视频。"automationName": "XCUITest", "noReset": true
- 真机场景
采用MFi认证的外接视频输出外设,将预存的测试视频通过外设输出为标准相机信号,iOS真机识别到外设后会将其判定为外接相机,应用直接读取该相机输入即可,Appium侧无需做特殊适配,正常执行UI操作即可。
Android平台对应实现方案
同样支持无侵入式相机流注入,无需修改应用代码:
- 模拟器场景
启动安卓模拟器时添加启动参数,直接替换后置相机输入源:emulator -avd <你的模拟器名称> -camera-back video:<测试视频文件的绝对路径>
Appium测试脚本添加capability"automationName": "UiAutomator2",正常触发应用相机调用即可。 - 真机场景
可选择Root设备后安装系统级相机输入替换模块,或者使用外接视频采集外设输出相机信号,都可以实现无侵入的相机流替换。
内容的提问来源于stack exchange,提问作者Saw
相关产品推荐
相关产品推荐

