01 场景
在测试战斗的过程中经常需要调数值来方便测试。比如要测某张卡牌的法术技能,直接测要等这张卡牌满蓝了放法术看效果,这样不是很方便,因为它可能在放法术之前被杀了,又或者放法术的时机不是自己想要的时机,等下次放法术时 CD 又比较长,遇到这类情况都是通过改配置表后重启游戏再进行测试。
这样会有两个问题:一是改配置后需要重启游戏才能生效比较耗时;二是改了配置表测完后又必须改回去不然 svn 会有冲突,如果忘了改回又会出莫名奇妙的 BUG。
02 解决方案
游戏启动后工程会把配置表读取过来并赋值给对应配置对象中的各属性(对应着配置表中的各字段),之后进入战斗后又会取对应的值进行战斗计算,我在项目中找到了开发写的可以 get 和修改各属性的方法,基于这两点在 unity 里写了一个工具可以即时修改各卡牌的属性并在下一场战斗中生效(部分属性可以立即生效),重启游戏后当前修改失效,也不用改动配置表,这样可以提升测试团队的效率。
03 效果展示
用 EditorWindow GUI 实现的最终效果图,左边列表显示的是所有的英雄,右边显示的是对应卡牌的所有属性列表,后面的输入框中可以修改,点击上面 “应用修改” 按钮就可生效。
04 应用举例
比如我要测试蝙蝠的技能,我希望它能一直放技能,只需要修改 magicRestore(法力恢复)改成 100 点击 “应用修改” 即可。
再比如,我把 summonCost(召唤费用) 和 summonCd(召唤 CD) 都改成 0,这样就可以无限放蝙蝠这张卡牌。
假设蝙蝠的普通技能 normalSkill 每次攻击有 0.1 的概率让敌人中毒,这个参数会以 string 形式写在 normalSkill 这个字段中(类似:101001;0.1),只需要把 0.1 改成 1 就可以让敌人 100% 中毒方便测试。
05 工具拓展
▎拓展 1
基于这套思路,把一些通用的方法封装在一个基类中,然后把建筑、装备、Buff、技能等等继承自这个基类也做出上述的工具,这样很多地方的测试都方便了很多。
▎拓展 2
遍历所有的卡牌做相同的属性修改,可以实现另外一套比较方便的战斗测试工具,如:
所有卡牌血量很大(这样基本不会死);
所有卡牌攻击=100(方便测试一些按比例增加攻击的道具或 BUFF);
所有卡牌攻击=0(这样可以排除掉普通攻击的效果,方便直接看技能打了多少伤害);
不一一举例,大致如图:
最后: 可以在公众号:伤心的辣条 ! 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
我推荐一个【Python自动化测试交流群:746506216】,大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,助你快速进阶Python自动化测试/测试开发,走向高薪之路。
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!