一种资源测试方法及系统
技术领域
本发明涉及一种资源测试方法及系统,属于计算机技术领域。
背景技术
随着硬件的日益发展,游戏的制作水平也水涨船高,相应的游戏项目规模也越来越庞大。开发游戏,离不开成千上万的游戏资源。目前管理游戏资源都是由程序、策划、美术的协作,但是由于大型游戏的庞大资源体系,要定位到是哪一位美术人员的资源出现问题的话,过程是相当繁琐的。一般常见的解决方法是通过测试人员反馈的bug定位相关文件,根据文件名判断归属的组别,然后把问题分发到对应的组别,例如策划组、场景组、人物组等。但是这种方法不够系统化,发现问题不及时以及效率低下,给后期的项目维护增加压力。
发明内容
为解决上述问题,本发明的目的在于提供一种资源测试方法及系统,逐一加载游戏所有资源,若资源加载失败,则记录对应资源信息;遍历游戏所有资源,完成资源的加载,若资源无法加载则生成日志文件上传到服务器并继续进行下一个资源的加载,否则进行下一个资源的加载;分析日志文件进行信息整理,得到错误资源信息;根据错误资源信息定位错误资源的存储路径以及上传源,对错误资源进行逐一修正。
本发明解决其问题所采用的技术方案一方面是:一种资源测试方法,其特征在于,包括以下步骤:
S100、逐一加载游戏所有资源,若资源加载失败,则记录对应资源信息;
S200、遍历游戏所有资源,完成资源的加载,若资源无法加载则生成日志文件上传到服务器并继续进行下一个资源的加载,否则进行下一个资源的加载;
S300、分析日志文件进行信息整理,得到错误资源信息;
S400、根据错误资源信息定位错误资源的存储路径以及上传源,对错误资源进行逐一修正。
进一步的,所述S100包括通过基于游戏引擎的制作的资源测试工具或游戏客户端,对游戏内的资源进行加载。
进一步的,所述对游戏内的资源进行加载包括Resources.Load和AssetBundle加载资源方案,其中:Resources Load:使用这种方式加载资源,首先在Asset目录下创建一个名为Resources的文件夹,然后放入资源文件进行加载;AssetBundle:将所有资源文件进行打包,并输出到StreamAssets,动态加载打包后的资源。
进一步的,所述S300包括:根据日志文件查询错误资源文件名;根据错误资源文件名查找最后一次入库的信息;根据入库的信息输出定位报告。
进一步的,所述定位报告包括错误资源、错误资源的创建者、错误资源的创建时间、错误资源的上传源以及错误资源的存储路径。
进一步的,所述S400包括根据错误信息中的上传源,分配资源修正工作。
本发明解决其问题所采用的技术方案另一方面是:一种资源测试系统,其特征在于,包括:加载模块,用于逐一加载游戏所有资源;日志模块,用于根据记录的资源信息生成日志文件并上传到服务器;分析模块,用于分析日志文件进行信息整理,得到错误资源信息;修正模块,用于根据错误资源信息定位错误资源的存储路径以及上传源,对错误资源进行逐一修正。
进一步的,所述加载模块包括:第一加载模块,用于对游戏资源使用ResourcesLoad方案进行加载;第二加载模块,用于对游戏资源使用AssetBundle方案进行加载。
进一步的,所述分析模块包括:日志文件读取模块,用于根据日志文件查询错误资源文件名并根据错误资源文件名查找最后一次入库的信息;报告生成模块,用于根据入库的信息输出定位报告。
进一步的,所述修正模块包括:定位模块,用于根据错误资源信息定位错误资源的存储路径以及上传源;修正任务分配模块,用于根据上传源分配资源修正任务。
本发明的有益效果是:本发明采用的一种资源测试方法及系统,通过自动化测试,快速定位出问题资源的发起者,然后分发问题到具体的负责人。减少了测试的人工成本,提高效率,大大降低了策划,程序,和美术的沟通成本,提高了开发的效率。
附图说明
图1所示为根据本发明较佳实施例的方法流程示意图;
图2所示为根据本发明较佳实施例的系统结构示意图;
图3所示为根据本发明较佳实施例的资源加载流程示意图;
图4所示为根据本发明较佳实施例的日志分析流程示意图;
图5所述为根据本发明较佳实施例的输出报告示意图。
具体实施方式
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。
需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
图1所示为根据本发明较佳实施例的方法流程示意图,
包括以下步骤:
S100、逐一加载游戏所有资源,若资源加载失败,则记录对应资源信息;
S200、遍历游戏所有资源,完成资源的加载,若资源无法加载则生成日志文件上传到服务器并继续进行下一个资源的加载,否则进行下一个资源的加载;
S300、分析日志文件进行信息整理,得到错误资源信息;
S400、根据错误资源信息定位错误资源的存储路径以及上传源,对错误资源进行逐一修正。
进一步的,所述S100包括通过基于游戏引擎的制作的资源测试工具或游戏客户端,对游戏内的资源进行加载。
进一步的,所述对游戏内的资源进行加载包括Resources.Load和AssetBundle加载资源方案,其中:Resources Load:使用这种方式加载资源,首先在Asset目录下创建一个名为Resources的文件夹,然后放入资源文件进行加载;AssetBundle:将所有资源文件进行打包,并输出到StreamAssets,动态加载打包后的资源。
进一步的,所述S300包括:根据日志文件查询错误资源文件名;根据错误资源文件名查找最后一次入库的信息;根据入库的信息输出定位报告。
进一步的,所述定位报告包括错误资源、错误资源的创建者、错误资源的创建时间、错误资源的上传源以及错误资源的存储路径。
进一步的,所述S400包括根据错误信息中的上传源,分配资源修正工作。
参照图2所示为根据本发明较佳实施例的系统结构示意图,包括
加载模块,用于逐一加载游戏所有资源;日志模块,用于根据记录的资源信息生成日志文件并上传到服务器;分析模块,用于分析日志文件进行信息整理,得到错误资源信息;修正模块,用于根据错误资源信息定位错误资源的存储路径以及上传源,对错误资源进行逐一修正。
进一步的,所述加载模块包括:第一加载模块,用于对游戏资源使用ResourcesLoad方案进行加载;第二加载模块,用于对游戏资源使用AssetBundle方案进行加载。
进一步的,所述分析模块包括:日志文件读取模块,用于根据日志文件查询错误资源文件名并根据错误资源文件名查找最后一次入库的信息;报告生成模块,用于根据入库的信息输出定位报告。
进一步的,所述修正模块包括:定位模块,用于根据错误资源信息定位错误资源的存储路径以及上传源;修正任务分配模块,用于根据上传源分配资源修正任务。
举一个优选的实施例加以说明,
基于svn版本管理工具,通过svn查询资源最后一次入库的记录,来定位错误关联人员。实际上基于其他版本控制系统的项目,例如git,本发明也适用。
技术流程如下:
第一步:用基于游戏引擎的资源测试工具或者游戏客户端,依次加载所有的游戏资源,引擎在加载资源过程中,如果发现资源加载失败,会记录相关资源信息日志。参照图3所示为根据本发明较佳实施例的资源加载流程示意图;
第二步:使用日志分析工具分析日志,统计出加载失败的资源文件列表,参照图4所示为根据本发明较佳实施例的日志分析流程示意图;
第三步:根据资源列表,通过svn log命令查询相关文件的日志,可以查出上传用户、上传时间、版本号等信息,定位出对应的负责人,参照图4所示。
更优选的实施例为
第一步:通过自动化测试平台,每日定时运行基于游戏引擎的测试工具,自动加载游戏资源,记录加载失败的资源文件到日志文件中。
第二步:使用日志分析工具分析日志,统计出加载失败的资源文件列表,得出100个文件的信息。
第三步:根据这100个文件,通过svn log命令和文件路径,查询到文件的上传记录,可以得出最近的上传用户,定位出这100个文件对应的负责人。
第四步:将定位结果通过内部平台(例如邮件或者bug管理平台)通知到对应的负责人。
项目中,输出报告实例参照图5所述为根据本发明较佳实施例的输出报告示意图,
第一列:File,错误资源名称。
第二列:svnAuthor,错误资源最后一次入库人员。
第三列:svnDate,错误资源最后一次入库时间。
第四列:svnRevision,错误资源的版本号。
第五列:DependFile,错误资源使用到了不存在的资源。
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。