目前很多公司的游戏都是基于 cocos2d 和 utility 引擎做的,对于这类 app,大家知道如何做自动化吗
目前我能想到的几个方法
不知道还有么有其他的方案,坐等高手解答
TouchTest Lite
妳会有惊喜。
#1 楼 @532589730 支持游戏吗,好像没特别说
它有个 demo video 是展示游戏的,但不是复杂的游戏。
据说,这东东对测试游戏比较在行。
#3 楼 @532589730 难道是坐标点击吗,这个其实我们公司也已经有了。除非可以识别控件。 我先去研究下看看
#4 楼 @seveniruby
这个工具好用么?
我正在按照官方的 pdf,设置范例试试。
我思路是:
最近也在研究这块,有机会交流~另外,有朋友有 Testbird sdk 和接入文档,求一份,感激~
楼上提到的 TouchTest Lite,看视频明显是坐标操作了....对象一直是 xxx.view[0]
用测试专用的 sdk 我觉得不错。
#9 楼 @lihuazhang 比如什么样子的 sdk?
应该只是针对一些小游戏吧。感觉对稍微大一点的游戏,场景比较多,做自动化的成本会比较高
按键精灵
@seveniruby 不是所有游戏都用 lua,但所有的 cocos2dx 应用都可以通过导出资源让 lua 测试,当然其他脚本也可以,说 lua 只是打个比方。
第二个思路个人感觉可行性很低,hook 响应是 callback,action 触发 hook 的 callback。自动化有 2 个主要事情:(1) 定位 element,(2) 对 element 施加 action。hook 更多是用在录制上,很多客户端的录制工具、百度 cafe 都是基于这种方式。另外 cocos2dx 底层调用 opengl 一系列函数进行绘图,调用 api 集合是固定的。但要通过 api 调用顺序去猜测应用意图也非常复杂,跟杀毒软件用 api 调用猜测软件是否病毒一样,复杂容易误报......
继续上面的讨论,如果是 hook 是的 cocos2dx 的 CCNode.create 和 setPosition 的话,会有点搞头...对象创建和定位确定了,可以通过向屏幕发消息操作 app。但还是有很多问题,比如:开发者自定义控件不遵守 cocos2dx 实现方案,没继承 ccnode,或者开发者使用 insertQuad 这种逐贞绘制的话,控件基本上就算没发 hook 了..,.另外,对动作类游戏,每秒 60 贞的刷新,你拿到对象位置,发操作时候,对象可能已经移位了.....等等等等,不举例了,要处理的异常情况相当多....另外,要运行 hook 要 root 的设备,jni 底层编码.....成本提高的,综合来说,我感觉嵌入 lua 或者实现 SDK 让开发导出更好更简单些,唯一缺点就是发布版和测试版不是一个玩意.....
另外,我不是群里的阳关,我叫群里叫 python