查看原文
其他

从“新手引导”到“自动化测试”

张晓衡 Creator星球游戏开发社区 2021-08-09

先看一段视频:


在线预览体验:

http://example.creator-star.cn/demo-ui-autorun/

注意,在电脑上预览才能体验自动引导功能


Shawn 刚开始只是为了完成新手引导功能点,同时要求引导代码要做非入侵式,尽量对游戏代码零干扰。


1. 步骤指令

当引导框架完成后,发现引导的配置工作效率低下,非程序员非项目程序员,上手困难,于是又在引导框架中增加了步骤指令机制,使引导配置尽可能地JSON化,而非JS化。


引导步骤指令是由程序员编写的函数,比如 Shawn 已经在引导框架中提供了3条指令:


  1. 节点定位指令:节点定位、遮罩镂空、事件拦截

  2. 手指提示指令:在定位指令的基础上增加了手指提示动画

  3. 文本提示指令:显示一行或多行文字提示


下面配置是一条手指指令,提示用户点击某个按钮:

  1. {

  2. desc: '点击主界面主页按钮',

  3. command: { cmd: 'finger', args: 'Home > main_btns > btn_home'},

  4. delayTime: 0.5,

  5. },

你可以根据自己的游戏业务需求,设计自己的指令,例如:

  1. {

  2. desc: '确认网络推送建筑数据为木材厂',

  3. command: {

  4. cmd: guide.command.WATCH_PUSH,

  5. pushType: Push.BUILDING

  6. },

  7. onPushData: function (data) {

  1. //建筑状态为已完成,建筑为木材厂

  2. return data.status === 4 &&

  3. data.BUILDING_CID === ConstantCid.BuildingCid.WOOD;

  4. }

  5. }

上面 Shawn 在一款SLG项目中的引导配置,指令为 WATCH_PUSH,用于监听服务器推送数据,参数是 Push.BUILDING 意思是建筑数据,只要服务器推送建筑数据,步骤中的 onPushData 函数就会响应,可以通过 data 参数,做条件判定,返回为 true 指令任务完成。

2. 自动引导

引导配置的问题解决了,又发现引导的测试工作效率低下,每次都要重头再来。于是在思考,能否让电脑自己去执行引导流程呢?当然...是可以的!


惊喜不断,在电脑浏览器上通过模拟鼠标点击的方式,Shawn 实现了自动引导功能,突然之间让 Shawn 发现了新的大陆—自动化测试


3. 流程录制与回放

引导配置不就是测试流程吗?通过引导配置指挥计算机做重复的事情,这样可以大量节省测试人员的时间,特别是做回归测试,测试人员机械、麻木地要把游戏的大多数功能都执行好几遍,想想都觉得痛苦。


于是又想到,将节点的点击操作按顺序记录下来,一是输出再加工,二是直接回放+自动引导,可以极大降低引导配置的难度,更为重要的是它不在是简单的引导功能,而是软件自动化测试!


回想曾经的工作中,测试团队为了研究自动化测试,付出了多少时间、成本但结果往往都是强差人意!希望 Shawn 无心之举能帮助更多的游戏测试人员和企业节省时间、降低成本,当然引导框架还有很多值得改进的地方,期待你的参与我们共同成长!





Shawn 的 Chat 文稿已经完成,根据本台规则7月23日出炉与大家见面,现在在做最后的校验检查,本篇教程的内容包含了 引导实现和自动引导的细节,包含以下内容:


1. 节点定位

2. 遮罩显示

3. 触摸事件的拦截与放行

4. 定位指令实现

5. 手指动画指令实现

6. 文本提示指令实现

7. 引导框架源码分析

8. 自动引导实现

9. 流程录制与回放实现

10. 引导测试工具雏形


Shawn 心愿是帮助更多的Cocos Creator 初学者快速入门,协助企业降低开发成本,做有价值的事情!同时 Shawn提供线下指导服务,有兴趣的伙伴或企业加我微信z6346289。


感谢您的阅读,如果觉得本文有用请转发给更多的人,愿我们在前进的道路上,砥砺前行,共同成长!



无套路 GitChat 赠送活动,请大家根据本文主题,在文章下面留言讨论,我会选出10位有留言较佳的伙伴免费赠与《Cocos Creator 项目:如何较为优雅地实现新手引导?》,加我微信好友伙伴的被选中的机率会更高哦!


 

  1. CreatorPrimer 30篇教程汇总

  2. KUOKUO的趣味教程 | 进击的小怪诞生(1)

  3. KUOKUO的趣味教程 | 小怪物的视野(2)

  4. KUOKUO的趣味教程 | 小怪物也思考(3)

  5. 大神驾到 |「大掌教」Cocos3D组件详解

  6. Creator MVVM方案—为人生节省时间!

  7. Creator2.x摄像跟随实现RPG地图

  8. CreatorPrimer|组件编码心得(上)

  9. CreatorPrimer|组件编码心得(中)

  10. CreatorPrimer|组件编码心得(下)

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存