《3-UE引擎精准测试方案-肖赟-0724.pdf》由会员分享,可在线阅读,更多相关《3-UE引擎精准测试方案-肖赟-0724.pdf(35页珍藏版)》请在三个皮匠报告上搜索。
1、UE引擎精准测试方案腾讯 肖赟肖赟IEG/魔方工作室群高级测试工程师暗区突围局内测试负责人01|背景介绍02|技术方案架构03|平台能力介绍04|精准测试实战01|背景介绍1.1 游戏工业化研发时代的挑战精准测试能力团队规模扩大生产能力提升需求管理复杂资产数量膨胀资产变更频繁1.2 基于UE引擎的精准测试资产量大,不可读 10万 uasset 1万 umapUnreal Diff Tool 不够用资产变更难以监控每个版本都需要全量测试兜底Unreal Diff Tool 不够用不支持任意两个版本比对不支持Level比对https:/ 基于UE引擎的精准测试资产变更难以监控资产自身的变更资产引用
2、关系的影响属性默认值的修改(C+)父蓝图属性值的修改1.2 基于UE引擎的精准测试1.3 精准测试平台我们需要一个什么样的方案UE资源解析工具能解析蓝图资产的CDO值和引用关系能解析Level中的Actor和引用关系多版本对比业务规则过滤规则检查02|技术方案架构Asset Registry 收集所有资产的信息,并存储在内存中。GetAllAssets()以 FAssetData 的形式获取内存中的资产。GetAsset()可以获取 FAssetData 对应的 UObject 对象,用于解析2.1 方案原理2.2 方案概述通过 UE 插件对资产进行扫描记录引擎和工程的提交号数据库存储前端页面
3、2.3 数据的提取和存储解析 BlueprintAssetRegistry 获取所有资产遍历AssetData.AssetClass=Blueprint 的资产获取 Component 列表解析 UActorComponent记录资产引用关系IAssetRegistry:GetReferencersIAssetRegistry:GetDependencies2.3 数据的提取和存储解析 LevelLoadMapWorldComposition-GetTilesList()加载所有子Level遍历Actor获取 Component 列表解析UActorComponent记录资产引用关系IAsse
4、tRegistry:GetReferencersIAssetRegistry:GetDependencies记录FolderPathAActor:GetFolderPath()本地存储Blueprint 类型file(md5).jsonActor 类型LevelPath/file(md5).jsonLevelPath可能会超过Windows长度限制,替换为索引2.3 数据的提取和存储数据库存储一个 file 对应一个 row关键列AssetReferenceDependence2.3 数据的提取和存储构建优化流水线化构建触发条件手动触发转测触发定时触发精准提取指定的umap、指定的目录2.3
5、数据的提取和存储03|平台能力介绍1.蓝图解析,可以读到蓝图内字段的详细内容,方便大量对比2.把引用关系链上任何一个资产的变更,关联到引用链的上游所有资产,这样只监控少量关键的蓝图变更即可,减轻人工查找工作量3.1 平台能力比对逻辑 新增 改动 删除 受依赖文件改动物理路径 在资源管理器中的文件路径虚拟路径 关卡编辑器中世界大纲视图的文件夹结构3.1 平台能力问题:资源总量大,针对每个业务板块,不好识别相关的变更内容,不好跟进标记进度功能迭代:提供按路径的自定义筛选功能,可以根据不同业务,定制筛选内容,聚焦到关键文件上,排除干扰效果举例:某两个版本间,变更资产共 x 个,但经过业务筛选,和枪械
6、有关的变更为 0 个,和装备有关的变更为 x 个3.2 自定义筛选模版问题:底层资产的改动,通过引用链关联,影响的文件量极大功能迭代:提供关系链的忽略功能,可以将确认无影响的文件,从引用链上忽略效果举例:某版本所有待确认的变更资产共约 x 个,忽略一个默认材质文件后,数量下降到x 个3.3 关系链忽略功能问题:基类蓝图一个属性的变更,其所有派生蓝图中,若对应属性为默认值,则都会引起变更功能迭代:提供基于 component+property:value 键值对的忽略功能,确认