Macaca 用 macaca 进行 ui 自动化测试的时候,如何同时进行 screenrecord?

Aaron · 2019年07月18日 · 最后由 Aaron 回复于 2019年08月16日 · 1526 次阅读

目前 Macaca-wd 官方未支持 screenrecord,尝试在跑自动化测试的时候 adb shell screenrecord -p 进行录屏操作,但是会导致自动化测试的中断,猜测开启录屏时中断自测用例的 adb 进程导致,有什么好的方案可以在跑自测用例的同时进行 screenrecord 操作?

共收到 11 条回复 时间 点赞

通过调用 macaca-adb 配合测试呢?

Aaron #11 · 2019年07月19日 Author

我试试看,不过 macaca-adb 未包含 adb screenrecord 功能,macaca-adb 使用示例有么?

12楼 已删除

用例里可以 require('macaca-adb') 然后执行 bin

macaca-adb 为何不集成 adb 的 screenrecord 功能呢?

Aaron 回复

macaca 是有截图功能的 screenshot。不够通用的逻辑在外围做啊

嗯嗯 操作动作录屏的逻辑尝试用 macaca-adb 做是可以的,感谢提供的方案,下面是用例代码中插入屏幕录制的示例代码

const ADB = require('macaca-adb')
const adb = new ADB()
....
it('这是一个测试用例', function () {
    adb.setDeviceId('e98c6ab9')
    return driver
      .waitForElementById('xxx')
      .click()
      .then(() => {
        // 下面是录制视频的逻辑
        return new Promise(resolve => {
          adb.shell('screenrecord --time-limit 5 /sdcard/demo.mp4', () => {
            adb.pull('/sdcard/demo.mp4', './', () => {
              resolve()
            })
          })
        })
      })
      .sleep(3 * 1000)
  })
....
Aaron 回复

就是这个思路,期待你做好后来个分享哦

为什么 macaca-adb 就不会中断 macaca 的 UI 自动化进程,但是直接使用 adb 指令就会中断 macaca 的 ui 自动化进程,这个里面的原理能简单说下么?

Aaron 回复

找到原因了,我本地装了两个版本的 adb,两个 adb 调用冲突造成的

Aaron 回复

能否分享下这个思路?来一篇文章?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册