Appium Appium 中的一个新功能——ScreenshotsBroadcaster

adfghzhang · September 21, 2018 · 3986 hits

今天浏览 Appium 中发现了一个新的用户变量——MJPEG_SERVER_PORT。这个端口具体的官方解释如下:
mjpegServerPort The port number on which WDA broadcasts screenshots stream encoded into MJPEG format from the device under test. It might be necessary to change this value if the default port is busy because of other tests running in parallel. Default value: 9100 e.g. 12000
再查阅 Appium 的发布日志,在 1.9.0 版本发布的介绍中查阅到其中一项更新正是 mjpegServerPort - port to which screenshots can be streamed.

我们可以使用这个广播服务在浏览器或其他场景中以数据流形式展示屏幕截图。
这个时候你是否想到了另外一个优秀的开源工具ios-minicap,是的这个工具是由 STF 团队提供 iOS 端的视频流显示方案。很多同学根据此做了一些二次开发来实现 iOS 设备的共享。比如iOS_Remote
ios-minicap 能够非常流畅的显示手机端的图像,甚至你看视频可能也不会觉得由多卡。但 ios-minicap 具有一定的局限性,比如只支持真机,并且同时只能支持一台设备。如果由多个 iOS 设备像要共享,那就需要多个 mac 端一对一的连接。
Appium 中的 ScreenshotsBroadcaster 经过测试真机和模拟器都是支持的,并且显示效果与 ios-minicap 相差也不大。
放一段录制的视频看看效果。是不是可以比较完美的解决 ios-minicap 不能支持多设备的问题了呢?

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 23 条回复 时间 点赞

来个 gif 看看效果

codeskyblue 回复

文章有 gif 呀

/**

  • Record the display of devices running iOS Simulator since Xcode 8.3 or real devices since iOS 8
  • (ios-minicap utility is required: https://github.com/openstf/ios-minicap).
  • It records screen activity to a MPEG-4 file. Audio is not recorded with the video file.
  • If screen recording has been already started then the command will stop it forcefully and start a new one.
  • The previously recorded video file will be deleted.

https://github.com/appium/appium-xcuitest-driver/blob/00a04a7a7cc1cccfa38e93a5fb0f51fa85f1991d/lib/commands/recordscreen.js

用的就是 minicap

66666666666
中秋还刻苦学习,点赞

恒温 回复

推荐一个 mac 视频转 gif 的工具吧,尝试了几个最终上传了一个不支持连播的 GIF😂

adfghzhang 回复

LICEcap

恒温 回复

android 这边还没带上支持吧,我看他们写了这个特性,但是 android 上没见有实现。如果他们能完成这个对后面的图片查找算法和遍历算法都会有不错的性能提升。

这玩意用来搞兼容性测试怎么样,能实现一台手机操作多台手机回放吗

chenhuipeng1 回复

😂 好像只是屏幕截图传递?

chenhuipeng1 回复

mjpeg 的视频流

adfghzhang 回复

有能实现一台手机操作,多台手机重复此手机操作的技术吗,相当于实时广播录制回放的技术吗,最近在研究这个

chenhuipeng1 回复

Appium 提供的这个功能是不能实现你这个需求的。需要你自己二次开发了

过来回顾了一下,感觉这个功能比较鸡肋吧。。。。

群主是狗 回复

为什么呢?当你自动化有录制需求的时候,当你需要做 iOS 设备共享平台的时候这个是一大利器

这个功能有没有实例啊 我在 google 和百度上并没有找到相关的介绍

adfghzhang iOS 远程真机方案整理 中提及了此贴 11 Mar 09:16

appium 的 mjpeg-server 貌似也存在屏幕旋转不对的问题

codeskyblue iOS 远程真机方案整理 中提及了此贴 11 Mar 18:05
Author only
yusunan-github 回复

如你配置的 MJPEG_SERVER_PORT 端口为 9100,那么直接在浏览器访问http://127.0.0.1:9100即可

匿名 #22 · May 10, 2019

想看多个手机,怎么设置多个端口?

Author only
Author only
匿名 #25 · August 19, 2020

请问这个支持一台 mac 连多个 iphone 设备吗?看介绍底层用的也是 mincap

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up