从“新手引导”到“自动化测试”
先看一段视频:
在线预览体验:
http://example.creator-star.cn/demo-ui-autorun/
注意,在电脑上预览才能体验自动引导功能
Shawn 刚开始只是为了完成新手引导功能点,同时要求引导代码要做非入侵式,尽量对游戏代码零干扰。
1. 步骤指令
当引导框架完成后,发现引导的配置工作效率低下,非程序员非项目程序员,上手困难,于是又在引导框架中增加了步骤指令机制,使引导配置尽可能地JSON化,而非JS化。
引导步骤指令是由程序员编写的函数,比如 Shawn 已经在引导框架中提供了3条指令:
节点定位指令:节点定位、遮罩镂空、事件拦截
手指提示指令:在定位指令的基础上增加了手指提示动画
文本提示指令:显示一行或多行文字提示
下面配置是一条手指指令,提示用户点击某个按钮:
{
desc: '点击主界面主页按钮',
command: { cmd: 'finger', args: 'Home > main_btns > btn_home'},
delayTime: 0.5,
},
你可以根据自己的游戏业务需求,设计自己的指令,例如:
{
desc: '确认网络推送建筑数据为木材厂',
command: {
cmd: guide.command.WATCH_PUSH,
pushType: Push.BUILDING
},
onPushData: function (data) {
//建筑状态为已完成,建筑为木材厂
return data.status === 4 &&
data.BUILDING_CID === ConstantCid.BuildingCid.WOOD;
}
}
上面 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 项目:如何较为优雅地实现新手引导?》,加我微信好友伙伴的被选中的机率会更高哦!