共计 1889 个字符,预计需要花费 5 分钟才能阅读完成。
原文由资深游戏测试开发工程师 陈子昂,发表于 TesterHome 社区,点击原文链接可与作者交换。
导读
写这个类型文章的起因是,很多时候会写代码的很多,然而如何少走弯路,做出一些有价值工具产出奉献一点绵薄之力。
在入职第二年也打算大力发展做这块(依据过往积攒和教训写下了这个文章),然而前面平台化后,这件事会推研到 2022 年。
过来也是把这个工具开发方式小范畴共享过,在对方公司也取得了好评和认可。
导读,能够先读这个 drawcall 工具链,更有养分。
适宜类型
3D 引擎或者 2.5D 引擎,测试时锁视角(确保每次测试的准确性和摄像机文言来说所见即所得)
游戏和个别引擎互联网都适宜用。
适宜条件阶段
条件 1. 和 TA 有肯定的共识后才去做,搭配分工明确。
条件 2. 有肯定建设水平以及稳定性自动化框架,以附件的模式。
条件 3.1 有小地图雷达并且有坐标的游戏,能够点开地图主动寻路的
条件 3.2 有 GM 指令能够输出:move 场景地图 Id 坐标,进行瞬移的。
应用条件疏导
只有不满足条件 3.1 和条件 3.2 的,也能够持续看个冷落,满足条件 3.1 或者条件 3.2 就能够进行上来。
去对接 TA 单干的流程,当满足条件 1 之后,加强对条件 2 的建设。
文章外围
1. 性能测试为啥要用热点图
热点图提供了一个对整个测试的场景(色彩的深浅来标记性能哪里更重大)。
客户端性能优化是一个比服务器优化更耗时的工作,通过热点图全局的发现场景性能最差的区域。
点的起因精华在存储什么数据结构好提供前面复现和平台化。
绘制热点图和疑似问题一点是须要绑定 1.UI 自动化,2. 引擎内置自动化来做的,前者通用性比后者强,后者 unity 须要 c# 的编程能力,在很多年前的 testerhome 社区 – 游戏测试白皮书上有作者写过 unity 内置自动化。
2. 如何确定热点图的准确性
色彩深度的局部四周色彩个别会逐步变浅(大部分状况),比方这种就是例外,前面就是一面墙,齐全隔离了四周场景,游戏也只能从低往上看,啥也看不到。
热点图的存储的属性是正确的。
3. 剖析后果形式
抉择场景内热点图色彩深度的坐标,飞过去看那块区域,而后用官网 profile 去看具体问题,都是和那块区域场景间接挂钩的,比方那边有一个深陷的大峡谷和一个瀑布,瀑布后果是用齐全是用粒子成果实现的,大峡谷摄像机景深没有做解决。
能够用空白场景还原性能最差区域,新建一个空白场景,把那个区域的场景素材导入到新场景。
对场景很相熟的人,能够更快的猜到是哪里问题,来源于教训,有抱负的能够学习常识图谱,而后每个游戏一个,把屏幕坐标 –> 世界坐标存在分 type,性能偏向 (比方一些 npc 强烈战斗的场景,飞过去剖析某块资源是失常的) 存储属性图外面,这个都是后话。
UI 自动化的建设
抉择用什么框架不重要,然而须要把这部分做成插件,用 pypiserver 搭建公有 pypi,而后改源后就能够应用。
【】外面是插件名称,前面紧跟着是插件应用方,存在 –> 是指最终目标用户,上面介绍几个罕用的,其余按需来。
【untiy 坐标存储插件】 脚本编写者 -> 性能排查应用方:须要蕴含对于 Unity 引擎 Debug.log(向量) 导出日志,并且没有精度问题,坐标系解决存储到 web tracking。坐标系存储什么或者是否要转换须要和应用方沟通,来解决。
【雷达图数据存储插件】 脚本编写者:UI 自动化框架获取,雷达图和 unity 坐标如果有条件,条件是指游戏有雷达图是都须要的。
【地图坐标换算插件】 脚本编写者,如果满足下面条件 3.2 的,如果是世界坐标的须要换算成以后场景坐标(其实是能够不必 z,因为 3D 场景的地图自身也是个立体),最终会把整个场景要执行的地位以二维数组有序存储下来,在执行寻路时严格按这个来。
外面技巧是第一 UI 自动化自身看不到路点,也和 unity 内置的不一样,坐标和坐标之间的缝隙,拿其余框架拖拽用的 swipe([],[]),二个数组之间无关,如果有程序机器人能够给你录制一个整个场景按序跑的坐标系,天然更好。
每挪动一次就采集以后场景的属性 (cpu,fps, 内存),因为 UI 自动化内部采集没有方法和 profile 拿到更多信息。
举荐形式:性能差的中央对屏幕进行高精截图,屏幕上开发那边也能够打印更多的信息。
这里和【untiy 坐标存储插件】不抵触,因为看最终目标用户,所以不是一类,强调这个是因为前面文章也是和这个无关。
结尾
早晨有人问我头发还多吗,猫答复: 还有 32 位的头发。欢送有问题在原贴留言,看到就会回复。
以上是明天的分享,你学废了吗~
想学习更多干货常识和前沿技术?
想结识测试行业大咖和业界精英?
欢送关注 2022 MTSC 大会(第十届中国互联网测试开发大会)↓↓↓