《4-吴颖青-游戏测试脚本自动生成系统.pdf》由会员分享,可在线阅读,更多相关《4-吴颖青-游戏测试脚本自动生成系统.pdf(60页珍藏版)》请在三个皮匠报告上搜索。
1、游戏测试脚本自动生成系统吴颖青网易雷火工作室 资深测试开发工程师吴颖青毕业后工作于网易雷火工作室至今,经历了逆水寒端游从立项至上线到目前稳定运营全流程,尤其专注于游戏自动化测试、性能测试、自动化测试工具开发等。目前带领和负责逆水寒项目的自动化测试工作。网易雷火工作室 资深测试开发工程师嘉宾照片目录CONTENTS开发背景01 系统原理02 适用场景03 总结与展望04 01开发背景逆水寒游戏据统计,有近200个玩法、200+个系统和2000+个任务。内容多迭代快模块关联性强2018年上线的武侠题材MMORPG游戏每周更新版本比如玩家升级操作,关联经验消耗、技能学习、玩法/系统/任务解锁、成就获
2、得、系统消息等=容易被误改容易被误改回归测试必要性开发目的首先:游戏为什么要做自动化测试脚本?纯手工测试的问题重复工作量大回归测试负担重一些问题发现不及时跑一遍主线要六七个小时,时间像风一样飞走了上上下下左左右右换个姿势再来一遍策划把其他任务改坏了!这功能坏了一个多星期了!玩法好多啊,每次周版本都要回归肝不完啊开发目的其次:传统自动化测试脚本怎么做的传统脚本开发流程开发目的其次:传统自动化测试脚本怎么做的传统脚本开发流程开发目的再次:传统自动化测试脚本的问题需要良好代码基础脚本纯手写,赶不上功能新增的速度。1.黑盒QA不了解脚本覆盖情况;2.黑盒QA熟悉对应功能,白盒QA需要学习成本。1.交接
3、时可读性差;2.游戏变动需重新编写。开发目的开发一个脚本自动生成系统:降低脚本编写门槛提高脚本编写速度使黑盒QA加入脚本编写工作2星期 2小时苦学编程100天 用手点就行减少脚本维护成本开发目的设想的运行步骤:1.手动执行一次测试用例,自动生成脚本;2.将脚本运行起来A.完美复制操作者行为;B.自动检查游戏状态(经验、金钱、物品等)是否与录制时一致。效果演示游戏行业主流工具(Airtest)痛点主流工具脚本容易运行失败,并且结果检验不全面。缺少自动的操作重试机制(需要手动加wait)缺少自动的游戏结果检验(需要手动写assert)游戏行业主流工具(Airtest)痛点本系统状态机+客户端状态检
4、测,解决以上痛点。02系统原理状态机有限状态机(简称状态机),是表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型。状态机寻路到NPC之后点击对话选项,非状态机版本VS状态机版本传统自动化脚本客户端定时器执行函数状态转换系统原理技术难点:1.状态机脚本如何自动生成?2.如何自动判断寻路操作目的(弹出对话框)?解决方案:将点击对话选项之前的客户端状态,与寻路之前状态做diff 得到对话框弹出 作为寻路操作的目的即:认为进行下一步操作时,前一步操作目的已达到。脚本录制时01脚本录制02脚本回放系统原理记录客户端事件和状态,自动生成状态机脚本。客户端事件:鼠标和键盘输入事件和GM指令。
5、客户端状态:界面打开状态,玩家坐标、等级和金钱等。重复执行客户端事件(寻路)并获取客户端状态,直到客户端状态与记录值(对话框打开)一致。自动重试机制自动重试机制+自动游戏结果检验自动游戏结果检验=解决传统工具痛点解决传统工具痛点客户端事件15342鼠标单击、双击、滚动、拖动鼠标键盘组合操作文本框输入GM指令键盘快捷键操作GM指令处理GM指令处理客户端事件特殊处理鼠标滚动1.判断前一次事件也是滚动,则删除。2.滚动完成时,记录界面中滚动条百分比;脚本执行时直接将对应滚动条百分比设置为记录值。两类特殊事件采用合批方式,提高录制和运行效率:文本框输入1.判断前一次事件也是文本框输入,则删除。2.输入
6、完成时,记录当前界面中文本框中内容;脚本执行时直接将对应文本框内容设置为记录值。客户端状态玩家等级经验队员数量处于打开状态的界面界面显示元素场景ID物品装备已接任务NPC对话框信息玩家所有状态信息(Moving、看动画、被眩晕、匹配状态等)等等客户端状态客户端状态玩家等级:109物品:物品a+物品b+物品c装备:装备a+装备b+装备c场景:汴京界面集合:自动寻路状态:待机客户端状态玩家等级:109物品:物品a+物品b+物品c装备:装备a+装备b+装备c场景:汴京界面集合:自动寻路+对话框状态:对话客户端状态判断点击寻路前玩家等级:109物品:物品a+物品