app自动化--Android通过adb录屏
2019-01-14 本文已影响0人
CosetteQ
使用背景
- adb shell可正常使用
- 仅适用于Android4.4(API level 19)以上
- .mp4格式 支持指定时长与分辨率
使用方法
官话:
白话
白话快速上手版:
# 开始录制
adb shell screenrecord [options] filename
# 结束录制 方法一
Conntrl + C
# 结束录制 方法二
使用参数 --time-limit设置时间限制,不设置默认录制3分钟
# 从手机上传视频到PC
adb pull 录屏在手机的存储路径
举个🌰
# 切换进入adb shell
$ adb shell
# 开始视频录制 screenrecord后紧跟存储路径与视频名称
shell@ $ screenrecord /sdcard/demo.mp4
# 结束视频录制 不执行以下操作3分钟后自动停止
(press Control + C to stop)
# 退出adb shell
shell@ $ exit
# 上传视频到PC端
$ adb pull /sdcard/demo.mp4
当然也可以直接使用adb shell screenrecord命令直接开始视频录制
白话版option解读:
option | 说明 |
---|---|
- -help | 查看详细文档 |
- - size width*height | 设置视频分辨率,默认值为设备原声分辨率,若设备不支持则使用1280*720分辨率 |
- -bit-rate 数值 | 设置比特率,默认值为4Mbps,为了提升视频质量可增加比特率,对应文件较大,同理为了节省存储空间可减小比特率,例如screenrecord --bit-rate 6000000 /sdcard/demo.mp4 需注意比特率单位 |
- -time-limit time 时长 | 设置最大录制时长,单位为秒,默认值/最大值均为180s,即3分钟 |
- -rotate | 旋转90度录制视频 |
- - verbose | 在cmd中显示日志信息,不加此参数后台静默运行 |
再举个🌰
# 指定比特率为1Mpbs,分辨率为1280x720,存储路径为手机的/sdcard/demo.mp4
$ adb shell screenrecord --bit-rate 1000000 --size 1280x720 /sdcard/demo.mp4
这里没有设置视频录制时长,那么需要通过Ctrl + C手动结束,或3分钟后自动结束
封装使用
在真的的app自动化测试过程中,将视频录制封装成了可直接调用的method,监测到一个test开始时,调用start方法开始视频录制,在视频结束时调用end方法结束视频录制,以下为start方法,可供参考
/**
* <p>
* Start screen record.
* </p>
* @param path Where screen record is saved in mobile devices.
**/
public void startScreenRecord(String path){
String cmd = "adb shell screenrecord --bit-rate 1000000 --size 1280x720" + path;
try{
Runtime.getRuntime().exec(cmd);
logger.info("---------->>>> Start screen record! <<<<---------");
}catch(Exception e){
logger.error("Start screen record occurred exception:{}, please check your method!", e.getMessage(), e);
}
}
提示:如果使用Eclipse编译器,需要从terminal打开IDE,负责会提示adb命令找不到,影响视频录制的使用