app自动化--Android通过adb录屏

2019-01-14  本文已影响0人  CosetteQ

使用背景

使用方法

官话:

Android Developer文档

白话

白话快速上手版:

# 开始录制
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命令找不到,影响视频录制的使用

上一篇下一篇

猜你喜欢

热点阅读