移动测试基础 手机游戏如何做测试

思寒_seveniruby · 2014年07月04日 · 最后由 思寒_seveniruby 回复于 2015年01月08日 · 4330 次阅读

目前很多公司的游戏都是基于 cocos2d 和 utility 引擎做的,对于这类 app,大家知道如何做自动化吗

目前我能想到的几个方法

  1. 坐标简单模拟,使用录制回放工具即可
  2. 应用自身增加接口,以调用对应的功能,发布时关闭

不知道还有么有其他的方案,坐等高手解答

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

TouchTest Lite
妳会有惊喜。

#1 楼 @532589730 支持游戏吗,好像没特别说

它有个 demo video 是展示游戏的,但不是复杂的游戏。
据说,这东东对测试游戏比较在行。

#3 楼 @532589730 难道是坐标点击吗,这个其实我们公司也已经有了。除非可以识别控件。 我先去研究下看看

#4 楼 @seveniruby
这个工具好用么?
我正在按照官方的 pdf,设置范例试试。

匿名 #16 · 2014年07月04日

我思路是:

  1. lua 脚本嵌入 app 里直接跑测试流程
  2. Testbird sdk 方式,没拿到 sdk,但猜测和 lua 方式一样,app 导出资源对象给 sdk,测试时,测试脚本通过调用 sdk 接口操作对象。

最近也在研究这块,有机会交流~另外,有朋友有 Testbird sdk 和接入文档,求一份,感激~

匿名 #15 · 2014年07月04日

楼上提到的 TouchTest Lite,看视频明显是坐标操作了....对象一直是 xxx.view[0]

#6 楼 @hyddd 不是所有游戏都用 lua 的,第二种方式跟我想的一致, 你是群里的阳光吗?
我还有一个思路是在系统底层上搞手脚,研究定制 view 的原理然后 hook

用测试专用的 sdk 我觉得不错。

#9 楼 @lihuazhang 比如什么样子的 sdk?

应该只是针对一些小游戏吧。感觉对稍微大一点的游戏,场景比较多,做自动化的成本会比较高

按键精灵

#12 楼 @kasi 它不是 pc 的吗,难道出 mobile 版本了?

匿名 #14 · 2014年07月07日

@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 让开发导出更好更简单些,唯一缺点就是发布版和测试版不是一个玩意.....

匿名 #6 · 2014年07月07日

另外,我不是群里的阳关,我叫群里叫 python

#14 楼 @hyddd 恩,说的很好。导出资源是可行的,在游戏的 sdk 引擎中嵌入接口机制。我觉得分成 2 个版本去测试,企业是可以接受的

#15 楼 @hyddd 只要基本的控件拿到了就行了。 对于移位,我的看法是只需要在 sdk 内部控制即可,比如 sdk 自己启动一个 socket 监听,发送某个对象的标记给它,他就在 app 内部定位对象直接操作就可以了,不涉及坐标。

3楼 已删除

#19 楼 @aubrey 商务合作可联系群管, 我们鼓励技术交流而不是无脑广告.

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