android g view,一款删减版的 GAutomatorAndroid 和开源的 GAutomatorView 工具

本文介绍了在游戏自动化方案中,选择GAutomator并进行优化的过程。作者删除了不必要的功能,如remote模式和uiautomation,以提高效率,并解决了GAutomatorView工具在多设备和复杂场景下获取控件树的问题。此外,还创建了一个增强版的GAutomatorView,增加了自动复制控件路径到剪贴板的功能,并计划进一步完善其性能监控功能。

GAutomator

针对游戏的自动化方案国内有两个很流行的框架——GAutomator 和 Airtest。这两个框架各有优缺点。基于各种利弊权衡和优劣比较,我在项目中还是果断采用了 GAutomator 的方案。

GAutomator 的自动化方案很大程度上依赖于它嵌入游戏的 sdk,不过性能非常好。但是脚本有很多功能,比如 remote 模式,uiautomation,等都不是我们需要的。而且每次启动脚本,都要等将近 10 秒或者更久才能跑到真正的自动化逻辑,感觉挺烦。为此做了一些简化,也方便接下一个项目的时候可以直接用到简化之后的模板。

简化的 GAutomatorAndroid 删除了对 python 2.7 的支持(是的,都这个时候还用 python 2.7,有点过分了),删除了 remote 的支持,删除了 uiautomation 的初始化部分,简化的日志模块的初始化,修改了 Device 类的功能,添加了 minicap 的截图方式,增删了一些命令参数,等等。。。

GAutomatorView

GAutomator 的运行需要获悉游戏的控件全路径,你可以在 Unity 引擎中查看。GAutomator 提供了一个叫 GAutomatorView 的工具去获取控件路径,非常方便。但是实测的时候发现两个问题,一个多设备下 GAutomatorView 永远拿到的都是第一个设备的控件树和截图,即使你在设备下拉列表中选了其他设备序列号,第二个问题是有某种环境下,GAutomatorView 会获取不到控件树。我怀疑是因为场景控件太复杂,获取控件树本身就很耗时,而 GAutomatorView 内部的 socket 写死了超时时间,于是导致总是超时,总是获取不到控件树。

这个工具腾讯一直不开源,无奈之下五一期间抽空用 javaFX 做了一版。新添加了当控件树选中项改变的时候,自动将控件的全路径复制到剪贴板的功能,这样你就不用每次都去 Ctrl + C 了。

这个工具还是很粗糙,会抽空新加一些新功能,比如类似腾讯 PerfDog 采集性能制作图表之类的。但鄙人能力实在捉襟见肘,还是希望各位都能一起帮忙:

79450b70cb79a357ef8df8e59de46988.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值