Appium APPIUM 的截图的速率感觉比较慢,大概需要 30s 的时间,请问大侠们有没有办法压缩这个时间?多谢!

magicyang · 2015年03月30日 · 最后由 Stepthen 回复于 2017年06月21日 · 1750 次阅读

代码中有大量的 location,size 获取的操作。这两个操作会每次驱动截屏,然后延时?
info: [debug] [INST] 2015-03-30 08:00:21 +0000 Debug: target.captureRectOnScreenWithName("{origin:{x:0.00,y:0.00}, size:{height:667.00,width:375.00}}", UIScreen, "screenshotcbae0805-6e56-4cb3-8e26-5941505ab22f")
info: [debug] Socket data received (25 bytes)
info: [debug] Socket data being routed.
info: [debug] Got result from instruments: {"status":0,"value":""}
info: [debug] Waiting 10000 ms for screenshot to ge generated.
截个控件大概要 30s 的时间,appium 有大量的延时截屏的操作。
请问有没有办法压缩这个时间?

共收到 13 条回复 时间 点赞

这是 ios 的压缩时间吧?

是的,恒温,iOS 平台的,我一个页面有 800 多个图。
速度成瓶颈了。android 的话,用 robotium 没那么慢。

#2 楼 @yangchengtest 嗯这个事情其实最早我们就提出过,先不说 OS 本身的一些限制。Appium 本身(一部分 log 可以去掉)其实 CS 模式中 json 的传输,到调用工具到结果的 return 本身就是一种消耗

@lihuazhang @monkey 谢谢两位,其实开销是可以理解的。
Waiting 10000 ms for screenshot to ge generated.应该是 screenshotWaitTimeout 这个参数吧。明天试试改改这参数,看看有没有速度提升。
PS:从这个参数的字面上的意思来理解,改太小很有可能用都没法用了。~

#4 楼 @yangchengtest 怕影响本身功能。。= =

不仅仅是截图,其它一些定位或者其它操作,一来一回,花费的时间也不短,如果能更快点就更好了!

screenshotWaitTimeout 参数改到 2 了(貌似最小就是 2,填 1 不生效),目前看 1 幅图还要 10 几秒,也就只能这样了。

截屏这个问题可以试试这样解决:直接 adb 命令截图保存到本机。。。构建系统在指令间隙循环截屏,最终形成视频不更好?

@pighero001 IOS 的有命令可以截屏?
ANDROID 可以直接取到 IMAGEVIEW 的 VIEW。直接转成 BITMAP。
IOS 的貌似只能通过坐标定位来截全图中的控件图。

#9 楼 @yangchengtest ios 应该有命令截图的,不知道直接发送 home+ 关机键,这两个可不可以截屏。。。你可以再搜搜资料,来分享一下啊

@yangchengtest ,请问楼主有没有解决截图慢的问题,我这边 IOS 也有时后会遇到截图太慢的情况,会超过 10 秒截图失败;虽然修改源码超时时间截图成功了,但是测试速度还是没解决。

@happystone 我记得快速截图可以用 STF 的框架来做,社区有分享。我没有实践过,你可以试试看。

magicyang 回复

好的,多谢,记得之前只支持 Android,我主要是想解决 IOS 方面的问题,抽时间我也研究一下。

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