一、前言
二、录屏操作
2.1 脚本录屏方式
#开始录制
start_recording(max_time, output, fps, mode, snapshot_sleep, orientation, bit_rate_level, bit_rate, max_size)
#结束录制
stop_recording(output=None, is_interrupted=None)
其中start_recording()
的参数包括:
max_time
: 录屏最长时间限制,默认为1800,单位是秒output
: 录屏保存文件地址, 默认为None
,将会自动保存在log目录下,自动以当前时间命名
特别注意:原先 output
参数在 stop_recording
中,现在改为在 start_recording
里!
fps=10
:输出视频的帧率,目前暂时限定不超过10fps,默认为10(仅对ffmpeg和cv2生效)mode="ffmpeg"
:保存视频的后台,可选 'ffmpeg' 'cv2' 'yosemite',三种模式的区别如下:
ffmpeg :对机型兼容较好,但cpu占用较高,第一次运行将会预先下载ffmpeg
,有一定的额外空间占用(几十M)
cv2 :无需占用额外空间,生成的视频体积比ffmpeg
更大,当前已经被舍弃了
yosemite :Android旧版本的录屏方案,假如当前设备是Android,默认会使用这个模式录屏,必须要事先安装 Yosemite.apk
,并支持旧的参数,帧率比ffmpeg
和cv2
要高,但兼容性差,有一些手机不支持
snapshot_sleep=0.001
: 截图间隔orientation=0
:视频朝向模式 1 为竖屏;模式 2 为横屏;模式 0 为方形填充,默认是0bit_rate_level
:调整录屏的清晰度,取值范围是1-5,bit_rate_level=5
清晰度最高,但是占用的硬盘空间也会更大。(只支持Yosemite
模式录屏)bit_rate
:bitrate
越高, 视频的清晰度更高(只支持Yosemite模式录屏)max_size
:能够指定录屏结果的图像大小,因为屏幕图片越大,在录屏时造成的系统负载越大(CPU和内存占用)(只支持ffmpeg
模式录屏)
大家也知道,就是从Airtest 1.2.9版本之后,我们的录屏方法升级了全面兼容了Windows、Android、iOS设备,其中只有Android需要mode
参数,默认为yosemite
模式;Window/iOS的start_recording
不再需要有mode
参数;
yosemite
:原有的默认模式,录屏清晰度和质量较高,但兼容性较差,部分机型可能有问题;支持的参数: max_time
,orientation
,bit_rate
,bit_rate_level
ffmpeg
: 在Airtest 1.2.9版本之后加入的新模式,录屏帧率和质量较低,但兼容性更好,能兼容绝大多数设备;支持的参数: max_time
,orientation
,max_size
,fps
,snapshot_sleep
2.2 命令行录屏方式
--recording
参数即可:airtest run "D:\test\Airtest_example.air" --device android:/// --log logs/ --recording
--recording
后输入自己需要自定义的名称,如:--recording test.mp4
。但如果需要指定文件名且有多台设备时,则可以输入--recording test.mp4
,但实际的文件命名会为手机序列号_test.mp4
。需要注意的是,我们传入的文件名必须以.mp4
为后缀名。三、在不同平台上的录屏演示
六、小结
start_recording()
的传入参数也逐个介绍了一遍,大家也可以根据自己的需求去编写自己所需的跑测脚本,如果有其他更好的脚本跑测录屏方式,也欢迎大家给我们投稿分享一下~