一种性能测试的方法、相关装置及存储介质与流程

文档序号:23260841发布日期:2020-12-11 18:49阅读:162来源:国知局
一种性能测试的方法、相关装置及存储介质与流程

本申请实施例涉及性能测试领域,尤其涉及一种性能测试的方法、相关装置及存储介质。



背景技术:

unity3d是由“unitytechnologies”开发的一个可创建诸如三维视频游戏、建筑可视化、实时三维动画等类型的互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎,当前的市场上出现了越来越多的基于unity3d开发的手机游戏。

在开发过程中,需要对游戏进行深度性能测试,进而得到深度性能数据。深度性能数据可以帮助游戏测试人员有针对性地对游戏进行优化,其中,深度性能数据包括内存的管理统计数据、垃圾回收gc数据以及渲染数据等。

然而,在现有的测试方法中,往往需要测试人员手动获取深度性能数据,整个过程较为繁琐,在一定程度上,增加了性能测试的时间成本和人力成本。



技术实现要素:

本申请实施例提供了一种性能测试的方法、相关装置及存储介质,能够通过自动化测试获取一个或多个维度的深度性能数据,很大程度上节省了性能测试的时间成本和人力成本。

有鉴于此,本申请一方面提供一种性能测试的方法,包括:

获取性能测试数据,其中,性能测试数据包括目标游戏所对应的n帧测试数据,n为大于或等于1的整数;

针对于n帧测试数据中的每帧测试数据,获取每帧测试数据所对应的深度性能数据集合,其中,深度性能数据集合包括垃圾回收gc数据、内存数据、渲染数据以及渲染线程数据中的至少一种;

当获取到n帧测试数据中每帧测试数据所对应的深度性能数据集合时,根据每帧测试数据所对应的深度性能数据集合,生成深度性能信息文件;

展示深度性能信息文件。

本申请另一方面提供一种性能测试装置,包括:

获取模块,用于获取性能测试数据,其中,性能测试数据包括目标游戏所对应的n帧测试数据,n为大于或等于1的整数;

获取模块,还用于针对于n帧测试数据中的每帧测试数据,获取每帧测试数据所对应的深度性能数据集合,其中,深度性能数据集合包括垃圾回收gc数据、内存数据、渲染数据以及渲染线程数据中的至少一项;

生成模块,用于当获取到n帧测试数据中每帧测试数据所对应的深度性能数据集合时,根据每帧测试数据所对应的深度性能数据集合,生成深度性能信息文件;

展示模块,用于展示深度性能信息文件。

在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,深度性能数据集合包括gc数据;

获取模块,具体用于针对n帧测试数据中的每帧测试数据,获取m个函数所对应的gc子数据,其中,每个函数对应于一个gc子数据,m为大于或等于1的整数;

生成模块,具体用于针对于n帧测试数据中的每帧测试数据,根据m个函数所对应的gc子数据,生成所述gc数据。

在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,深度性能数据集合包括内存数据;

获取模块,还用于针对n帧测试数据中的每帧测试数据,获取内存分布总信息、堆内存分布信息、贴图内存分布信息以及网格内存分布信息中的至少一种;

生成模块,还用于针对n帧测试数据中的每帧测试数据,根据内存分布总信息、堆内存分布信息、贴图内存分布信息以及网格内存分布信息中的至少一种,生成内存数据。

在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,深度性能数据集合包括渲染数据;

获取模块,还用于针对n帧测试数据中的每帧测试数据,获取绘制调用数据、动态合批数据以及静态合批数据中的至少一种;

生成模块,还用于针对n帧测试数据中的每帧测试数据,根据绘制调用数据、动态静态合批数据以及静态合批数据中的至少一种,生成渲染数据。

在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,深度性能数据集合包括渲染线程数据;

获取模块,还用于针对n帧测试数据中的每帧测试数据,获取渲染线程处理图像的时间;

生成模块,还用于针对n帧测试数据中的每帧测试数据,根据渲染线程处理图像的时间,生成渲染线程数据。

在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,

获取模块,具体用于启动目标游戏;

当目标游戏运行于目标测试场景时,获取性能测试数据,其中,目标测试场景属于测试场景集合中的一个测试场景,测试场景集合包括至少一类测试场景;

接收第一终端设备发送的性能测试数据,其中,性能测试数据为目标游戏运行于目标测试场景时,通过第一终端设备获取到的。

在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,

展示模块,具体用于向第二终端设备发送深度性能信息文件,以使第二终端设备展示深度性能信息文件;

通过信息展示平台展示深度性能信息文件,其中,信息展示平台包括电子邮件、网页、小程序、短消息以及应用程序中的至少一种。

本申请另一方面提供一种终端设备,包括:存储器、收发器、处理器以及总线系统;

其中,存储器用于存储程序;

处理器用于执行存储器中的程序,处理器用于根据程序代码中的指令执行上述各方面所提供的方法;

总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。

本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。

本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方面所提供的方法。

从以上技术方案可以看出,本申请实施例具有以下优点:

本申请实施例中,提供了一种性能测试的方法,首先获取性能测试数据,然后针对于n帧测试数据中的每帧测试数据,获取每帧测试数据所对应的深度性能数据集合,当获取到n帧测试数据中每帧测试数据所对应的深度性能数据集合时,根据每帧测试数据所对应的深度性能数据集合,生成深度性能信息文件,最后可展示深度性能信息文件。通过上述方式,对性能测试数据中每帧测试数据进行解析后可以获取不同维度上的深度性能数据,这些深度性能数据被整合到一个深度性能信息文件,再以可视化的方式直接展示给用户,整个过程可自动化实现,很大程度上节省了性能测试的时间成本和人力成本。

附图说明

图1a为本申请实施例中性能测试系统的一个架构示意图;

图1b为本申请实施例中性能测试系统的一个流程示意图;

图2a为本申请实施例中性能测试系统的另一架构示意图;

图2b为本申请实施例中性能测试系统的另一流程示意图;

图3为本申请实施例中生成深度性能信息文件的一个流程示意图;

图4为本申请实施例中获取深度测试性能数据集合的流程示意图;

图5为本申请实施例中生成深度性能信息文件的界面示意图;

图6a为本申请实施例中通过邮件展示深度性能信息文件的界面示意图;

图6b为本申请实施例中第一终端设备获取性能测试数据的一个流程示意图;

图7为本申请实施例中第一终端设备生成性能测试数据文件的界面示意图;

图8为本申请实施例中第三终端设备的一个结构示意图;

图9为本申请实施例中与终端设备相关的手机的部分结构的框图。

具体实施方式

本申请实施例提供了一种性能测试的方法、相关装置及存储介质,能够通过自动化测试获取一个或多个维度的深度性能数据,很大程度上节省了性能测试的时间成本和人力成本。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应理解,本申请提供的性能测试方法可以应用于对游戏进行深度性能测试的场景,具体可以应用于基于unity3d引擎开发的手机游戏的深度性能测试。

应理解,目前在对基于unity3d开发的手机游戏进行深度性能测试的方式中,往往需要测试人员手动获取深度性能数据,整个过程较为繁琐,在一定程度上,增加了性能测试的时间成本和人力成本。本申请能解决的问题是,第三终端设备获取第一终端设备在目标游戏运行在目标测试场景时获取到的性能测试数据,在获取到性能测试数据之后,第三终端设备获取性能测试数据中每一帧的测试数据所对应的深度性能数据集合,其中,深度性能数据集合包括垃圾回收gc数据、内存数据、渲染数据以及渲染线程数据中的至少一种,这之后,第三终端根据每一帧的测试数据所对应的深度性能数据集合,生成深度性能信息文件,最后将深度性能信息文件进行展示,整个过程可自动化实现,很大程度上节省了性能测试的时间成本和人力成本。

为了便于理解,本申请提出了一种性能测试的方法,该方法应用于图1a所示的性能测试系统,请参阅图1a,图1a为本申请实施例中性能测试系统的一个架构示意图,如图所示,第三终端设备103与第一终端设备101以及第二终端设备102建立通信连接,第三终端设备103接收第一终端设备101发送的性能测试数据,第三终端设备103获取性能测试数据中的深度性能数据集合,并根据获取到的深度性能数据集合生成深度性能信息文件,随后第三终端设备103将深度性能信息文件发送给第二终端设备102,使得第二终端设备102对深度性能信息文件进行展示。

为了便于理解,请参阅图1b,图1b为本申请实施例中性能测试系统的一个流程示意图,如图所示,具体地:

在步骤a1中,第一终端设备根据第三终端设备的自动化脚本安装目标游戏;

在步骤a2中,第一终端设备根据第三终端设备的自动化脚本启动目标游戏;

在步骤a3中,第一终端设备根据第三终端设备的自动化脚本令目标游戏运行在目标测试场景中;

在步骤a4中,第一终端设备根据第三终端设备的自动化脚本获取目标游戏在目标测试场景运行时的性能测试数据;

在步骤a5中,第三终端设备判断第一终端设备是否完成了对性能测试数据的获取,若第三终端设备判断第一终端设备完成了对性能测试数据的获取,则第三终端设备执行步骤a6,若第三终端设备判断第一终端设备未完成对性能测试数据的获取,则第三终端设备等待第一终端设备获取性能测试数据;

在步骤a6中,第三终端设备从第一终端设备获取性能测试数据,并从性能测试数据中获取深度性能数据集合;

在步骤a7中,第三终端设备根据深度性能数据集合生成深度性能信息文件;

在步骤a8中,第二终端设备接收第三终端设备发送的深度性能信息文件,并展示该深度性能信息文件。

其中,上述自动化脚本可以为gautomator,或者也可以为其他程序,具体此处不做限定。

其中,图1a中所示的第一终端设备101可以为手机、台式电脑、平板电脑、笔记本电脑以及掌上电脑中的任意一种,类似地,第二终端设备102也可以为手机、台式电脑、平板电脑、笔记本电脑以及掌上电脑中的任意一种,第三终端设备103也可以为手机、台式电脑、平板电脑、笔记本电脑以及掌上电脑中的任意一种,此处不做限定。

可以理解的是,第三终端设备也可以从本地获取目标游戏运行在目标测试场景时获取到的性能测试数据,在获取到性能测试数据之后,第三终端设备获取性能测试数据中每一帧的测试数据所对应的深度性能数据集合,其中,深度性能数据集合包括垃圾回收gc数据、内存数据、渲染数据以及渲染线程数据中的至少一种,这之后,第三终端根据每一帧的测试数据所对应的深度性能数据集合,生成深度性能信息文件,最后将深度性能信息文件进行展示。为了便于理解,本申请提出了一种性能测试的方法,该方法应用于图2a所示的性能测试系统,请参阅图2a,图2a为本申请实施例中性能测试系统的另一架构示意图,如图所示,第三终端设备201从本地获取性能测试数据,第三终端设备201获取性能测试数据中的深度性能数据集合,并根据获取到的深度性能数据集合生成深度性能信息文件,随后第三终端设备201将深度性能信息文件发送给第二终端设备202,使得第二终端设备202对深度性能信息文件进行展示。

为了便于理解,请参阅图2b,图2b为本申请实施例中性能测试系统的一个流程示意图,如图所示,具体地:

在步骤b1中,第三终端设备根据自动化脚本安装目标游戏;

在步骤b2中,第三终端设备根据自动化脚本启动目标游戏;

在步骤b3中,第三终端设备根据自动化脚本令目标游戏运行在目标测试场景中;

在步骤b4中,第三终端设备根据自动化脚本获取目标游戏在目标测试场景运行时的性能测试数据;

在步骤b5中,第三终端设备判断是否完成了对性能测试数据的获取,若第三终端设备判断完成了对性能测试数据的获取,则第三终端设备执行步骤b6,若第三终端设备判断未完成对性能测试数据的获取,则第三终端设备等待获取性能测试数据完成;

在步骤b6中,第三终端设备从本地获取性能测试数据,并从性能测试数据中获取深度性能数据集合;

在步骤b7中,第三终端设备根据深度性能数据集合生成深度性能信息文件;

在步骤b8中,第二终端设备接收第三终端设备发送的深度性能信息文件,并展示该深度性能信息文件。

其中,上述自动化脚本可以为基于gautomator的程序,或者也可以为其他程序,具体此处不做限定。

其中,图2a中所示的第三终端设备201可以为手机、台式电脑、平板电脑、笔记本电脑以及掌上电脑中的任意一种,类似地,第二终端设备202也可以为手机、台式电脑、平板电脑、笔记本电脑以及掌上电脑中的任意一种,此处不做限定。

结合上述介绍,下面将从第三终端设备的角度,对本申请中性能测试的方法进行介绍,请参阅图3,本申请中性能测试方法的一个实施例包括:

301、第三终端设备获取性能测试数据;

本实施例中,第三终端设备首先获取性能测试数据,游戏测试人员可以基于性能测试数据对游戏进行针对性地优化,其中,性能测试数据可以包括帧率数据、中央处理器数据以及内存数据等。

302、第三终端设备获取深度性能数据集合;

在获取到性能测试数据之后,第三终端设备针对于每一帧的测试数据,获取每一帧的测试数据所对应的深度性能数据集合,其中,深度性能数据集合包括垃圾回收(garbagecollection,gc)数据、内存数据、渲染数据以及渲染线程数据中的至少一种。

具体的,第三终端设备获取深度性能数据集合的方式如图4所示,请参见图4,如图所示:

在步骤c1中,第三终端设备调用解析程序,解析程序会读进包含性能测试数据的文件,具体的,文件为未经加工(raw)格式;

在步骤c2中,解析程序会创建一个针对raw格式文件的读写器;

在步骤c3中,解析程序根据反射获取分析器的类型;

在步骤c4中,解析程序分块读取文件中的每帧测试数据;

在步骤c5中,解析程序判断性能测试数据是否为空,若性能测试数据为空,则执行步骤c6。若判断不为空,则获取该帧性能测试数据的深度性能数据集合。

在步骤c6中,结束获取流程。

在步骤c7中,解析程序调用gc数据分析器;

在步骤c8中,解析程序针对每帧的性能测试数据,根据gc数据分析器获取每个函数所对应的gc子数据;

在步骤c9中,解析程序调用内存数据分析器;

在步骤c10中,解析程序针对每帧的性能测试数据,根据内存数据分析器获取内存分布总信息、堆内存分布信息、贴图内存分布信息以及网格内存分布信息中至少一种的内存信息;

在步骤c11中,解析程序调用渲染数据分析器;

在步骤c12中,解析程序针对每帧的性能测试数据,根据渲染数据分析器获取绘制调用数据、动态合批数据以及静态合批数据中至少一种的渲染数据;

在步骤c13中,解析程序调用渲染线程数据分析器;

在步骤c14中,解析程序针对每帧的性能测试数据,根据渲染线程数据分析器获取获取渲染线程处理图像的时间。

需要说明的是,步骤c8,步骤c10,步骤c12,步骤c14也可以同时执行,或者同时执行其中的多个步骤,或者按照其他的顺序执行,具体此处不做限定。

具体的代码如下:

303、第三终端设备生成深度性能信息文件;

第三终端设备根据每一帧的测试数据所对应的深度性能数据集合,生成深度性能信息文件,如图5所示,生成的深度性能信息文件包括gc数据文件、内存数据文件、渲染数据文件以及渲染线程数据文件中的至少一种。

304、第三终端设备展示深度性能信息文件。

第三终端设备展示生成的深度性能信息文件,该深度性能信息文件为逗号分隔值(csv)格式。

本申请实施例中,提供了一种性能测试的方法,首先获取性能测试数据,然后针对于每帧测试数据,获取每帧测试数据所对应的深度性能数据集合,当获取到每帧测试数据所对应的深度性能数据集合时,根据每帧测试数据所对应的深度性能数据集合,生成深度性能信息文件,最后可展示深度性能信息文件。通过上述方式,对性能测试数据中每帧测试数据进行解析后可以获取不同维度上的深度性能数据,这些深度性能数据被整合到一个深度性能信息文件,再以可视化的方式直接展示给用户,整个过程可自动化实现,很大程度上节省了性能测试的时间成本和人力成本。

可选地,在上图3对应的实施例的基础上,本申请实施例提供的性能测试的方法另一个可选实施例中,深度性能数据集合包括gc数据;

第三终端设备针对于n帧测试数据中的每帧测试数据,获取每帧测试数据所对应的深度性能数据集合,可以包括:

第三终端设备针对于n帧测试数据中的每帧测试数据,获取m个函数所对应的gc子数据,其中,每个函数对应于一个gc子数据,m为大于或等于1的整数;

第三终端设备针对于n帧测试数据中的每帧测试数据,根据m个函数所对应的gc子数据,生成gc数据。

本实施例中,提供了一种获取gc数据的方法。可以理解的是,当计算机设备上的动态内存不再需要时,就应该予以释放,以让出内存,这种内存资源管理,称为gc数据。基于此,本申请将以深度性能数据集合包括gc数据为例进行介绍。

具体地,gc数据包括多个gc子数据,每个gc子数据对应于一类函数,具体地,这类函数包含但不仅限于强引用(strongreference)类函数、软引用(softreference)类函数、弱引用(weakreference)类函数和虚引用(phantomreference)类函数,此处不做限定。

为了便于理解,请再次参阅图4,如图所示,在对每帧测试数据进行分析时,可以获取相应的深度性能数据集合,具体地,在步骤c7中,调用gc数据分析器对该帧性能测试数据进行分析。在步骤c8中,基于gc数据分析器的分析结果,获取gc数据。

其次,本申请实施例中,提供了一种获取gc数据的方法,通过上述方式,利用每帧性能测试数据可以分别获取每个函数对应的gc子数据,再根据各个gc子数据生成对应的gc数据,基于gc机制能够有效地反映在游戏中对内存进行回收的情况,由此,得到更全面的深度性能数据。

可选地,在上图3对应的实施例的基础上,本申请实施例提供的性能测试的方法另一个可选实施例中,深度性能数据集合包括内存数据;

第三终端数设备针对于n帧测试数据中的每帧测试数据,获取每帧测试数据所对应的深度性能数据集合,可以包括:

针对于n帧测试数据中的每帧测试数据,获取内存分布总信息、堆内存分布信息、贴图内存分布信息以及网格内存分布信息中的至少一种;

针对于n帧测试数据中的每帧测试数据,根据内存分布总信息、堆内存分布信息、贴图内存分布信息以及网格内存分布信息中的至少一种,生成内存数据。

本实施例中,提供了一种获取内存数据的方法,可以理解的是,游戏在运行的过程中需要占用内存,不同的游戏场景对内存的占用大小也不同,例如,对于建模比较多或者贴图比较精细的场景,所需要的内存就比较大,对内存进行统计管理是游戏优化过程中一个重要步骤。基于此,本申请将以深度性能数据集合包括内存数据为例进行介绍。

具体地,内存数据可以包括内存分布总信息、堆内存(mono)分布信息、贴图内存分布信息以及网格内存分布信息中的至少一种,具体此处不做限定。

为了便于理解,请再次参阅图4,如图所示,在对每帧测试数据进行分析时,可以获取相应的深度性能数据集合,具体地,在步骤c9中,调用内存数据分析器对该帧性能测试数据进行分析。在步骤c10中,基于内存数据分析器的分析结果,获取内存数据。

其次,本申请实施例中,提供了一种获取内存数据的方法,通过上述方式,利用每帧性能测试数据可以分别获取内存分布总信息、堆内存分布信息、贴图内存分布信息以及网格内存分布信息,生成对应的内存数据,其中,内存分布总信息为总体的内存分布信息,有效地反映目标游戏在目标测试场景运行时占用内存的情况,由此,得到更全面的深度性能数据。

可选地,在上图3对应的实施例的基础上,本申请实施例提供的性能测试的方法另一个可选实施例中,深度性能数据集合包括渲染数据;

第三终端设备针对于n帧测试数据中的每帧测试数据,获取每帧测试数据所对应的深度性能数据集合,可以包括:

针对于n帧测试数据中的每帧测试数据,获取绘制调用数据、动态合批数据以及静态合批数据中的至少一种;

针对于n帧测试数据中的每帧测试数据,根据绘制调用数据、动态静态合批数据以及静态合批数据中的至少一种,生成渲染数据。

本实施例中,提供了一种获取渲染数据的方法,可以理解的是,渲染即是把游戏中的模型所有点的数据取出来,经过空间转换到二维屏幕上,然后根据各项参数与数据在绘制到屏幕上,其中,上述各项参数与数据称为渲染数据。基于此,本申请将以深度性能数据集合包括渲染数据为例进行介绍。

具体地,渲染数据包括绘制调用数据、动态静态合批数据以及静态合批数据中的至少一种,具体此处不做限定。

为了便于理解,请再次参阅图4,如图所示,在对每帧测试数据进行分析时,可以获取相应的深度性能数据集合,具体地,在步骤c11中,调用渲染数据分析器对该帧性能测试数据进行分析。在步骤c12中,基于渲染数据分析器的分析结果,获取渲染数据。

其次,本申请实施例中,提供了一种获取渲染数据的方法,通过上述方式,利用每帧性能测试数据可以分别获取绘制调用数据、动态静态合批数据以及静态合批数据,再根据绘制调用数据、动态静态合批数据以及静态合批数据生成对应的内存数据,有效地反映目标游戏在目标测试场景运行时进行渲染的情况,由此,得到更全面的深度性能数据。

可选地,在上图3对应的实施例的基础上,本申请实施例提供的性能测试的方法另一个可选实施例中,深度性能数据集合包括渲染线程数据;

第三终端设备针对于n帧测试数据中的每帧测试数据,获取每帧测试数据所对应的深度性能数据集合,可以包括:

针对于n帧测试数据中的每帧测试数据,获取渲染线程处理图像的时间;

针对于n帧测试数据中的每帧测试数据,根据渲染线程处理图像的时间,生成渲染线程数据。

本实施例中,提供了一种获取渲染线程数据的方法,可以理解的是,图像处理器对图像进行处理需要一定的时间,这段时间也称之为渲染线程数据。基于此,本申请将以深度性能数据集合包括渲染数据为例进行介绍。

具体地,渲染数据包括绘制调用数据、动态静态合批数据以及静态合批数据中的至少一种,具体此处不做限定。

为了便于理解,请再次参阅图4,如图所示,在对每帧测试数据进行分析时,可以获取相应的深度性能数据集合,具体地,在步骤c13中,调用渲染线程数据分析器对该帧性能测试数据进行分析。在步骤c14中,基于渲染线程数据分析器的分析结果,获取渲染线程数据。

其次,本申请实施例中,提供了一种获取渲染数据的方法,通过上述方式,利用每帧性能测试数据可以获取渲染线程处理图像的时间,再根据渲染线程处理图像的时间生成对应的渲染线程数据,有效地反映图像处理器对图像进行处理所花费的时间的情况,由此,得到更全面的深度性能数据。

可选地,在上图3对应的实施例的基础上,本申请实施例提供的性能测试的方法另一个可选实施例中,第三终端设备获取性能测试数据,可以包括:

第三终端设备启动目标游戏;

当目标游戏运行于目标测试场景时,第三终端设备获取性能测试数据,其中,目标测试场景属于测试场景集合中的一个测试场景,测试场景集合包括至少一类测试场景;

或者,第三终端设备获取性能测试数据,可以包括:

第三终端设备接收第一终端设备发送的性能测试数据,其中,性能测试数据为目标游戏运行于目标测试场景时,通过第一终端设备获取到的。

本实施例中,第三终端设备可以在目标游戏运行于目标测试场景时,通过自动化脚本获取性能测试数据,其中,目标测试场景属于测试场景集合中的一个测试场景,测试场景集合包括至少一类测试场景,例如,以目标游戏为赛车游戏为例,目标测试场景可以是简单难度下的一张赛道地图,该赛道地图属于多张简单难度的赛道地图中的其中一张,多张简单难度的赛道地图即为一个测试场景集合。或者,第三终端设备通过自动化脚本也可以接收第一终端设备发送的性能测试数据,其中,该性能测试数据为目标游戏运行于目标测试场景时,通过第一终端设备获取到的。

再次,本申请实施例中,提供了一种获取性能测试数据的方法,通过上述方式,第三终端设备从本地获取目标游戏在目标测试场景运行时的性能测试数据,或者第三终端设备接收第一终端设备发送的性能测试数据,由于获取性能测试数据的过程是通过自动化脚本实现的,因此提高了游戏测试的效率。

可选地,在上图3对应的实施例的基础上,本申请实施例提供的性能测试的方法另一个可选实施例中,第三终端设备展示深度性能信息文件,具体包括:

第三终端设备向第二终端设备发送深度性能信息文件,以使第二终端设备展示深度性能信息文件;

或者,第三终端设备展示深度性能信息文件,具体包括:

第三终端设备通过信息展示平台展示深度性能信息文件,其中,信息展示平台包括电子邮件、网页、小程序、短消息以及应用程序中的至少一种。

本实施例中,第三终端设备可以向第二终端设备发送深度性能信息文件,以使第二终端设备展示深度性能信息文件,其中,第二终端设备的使用者可以是游戏开发公司的测试员、主管或者领导等,便于相关人员及时了解游戏测试的情况,第三终端设备也可以通过信息展示平台展示深度性能信息文件,其中,信息展示平台包括电子邮件、网页、小程序、短消息以及应用程序中的至少一种,请参阅图6a,图6a为通过电子邮件展示深度性能信息文件的形式。

再次,本申请实施例中,提供了一种深度性能信息文件展示的方法,通过上述方式,第三终端设备向第二终端设备发送深度性能信息文件,或者通过信息展示平台对深度性能信息文件进行展示,使得相关人员可以及时了解到游戏测试的情况,从而有针对性地对游戏进行优化。

结合上述描述,下面从第一终端设备的角度,对本申请中性能测试的方法进行介绍,请参阅图6b,本申请实施例中性能测试的一个实施例包括:

601、第一终端设备获取性能测试数据;

当目标游戏运行在目标测试场景时,第一终端设备获取相应的性能测试数据。

602、第一终端设备生成性能测试数据文件;

第一终端设备在获取到性能测试数据之后,根据性能测试数据在本地生成性能测试数据文件,具体的,第一终端设备调用unity3d提供的profiler接口,通过profiler类指定生成文件的路径和名字,代码如下:

stringfile=application.persistentdatapath+“/profiler_”+datetime.now.tostring(“yyymmddhhmmss”)+“.log”;

profiler.logfile=file;

profiler.enabe=ture;

profiler.enablebinarylog=ture;//profiler.enablebinarylog字段设置为true,即可开始将profiler信息写入到指定的文件中;

通过设置profiler.enablebinarylog字段设置为false,即可结束profiler数据获取,代码如下:

profiler.enablebinarylog=false;

//profiler.enable=false;

m_debuginfo=string.format(“保存ok”,file);

yieldreturenewwaitforseconds(15);

请参阅图7,通过将上述两段代码进行封装成两个方法,在目标游戏开始在目标测试场景开始运行时调用第一段代码,当目标游戏结束在目标测试场景的运行时调用第二段代码,即可在第一终端设备本地生成性能测试数据文件。

603、第一终端设备向第三终端设备发送性能测试数据。

第一终端设备在本地生成了包含性能测试数据的性能测试数据文件之后,向第三终端设备发送该性能测试数据文件。

本申请实施例中,提供了一种性能测试的方法,首先由第一终端设备在目标游戏运行于目标测试场景时,获取性能测试数据,然后第一终端设备根据获取到的性能测试数据生成性能测试数据文件,最后第一终端设备将性能测试数据文件发送给第一终端设备,使得第一终端设备可以从性能测试数据中获取深度性能数据集合。

下面对本申请实施例中的性能测试装置进行详细描述,请参阅图8,图8为本申请实施例中性能测试装置一个实施例示意图,性能测试装置800包括获取模块801,生成模块802,展示模块803。

获取模块801,用于获取性能测试数据,其中,性能测试数据包括目标游戏所对应的n帧测试数据,n为大于或等于1的整数;

获取模块801,还用于针对于n帧测试数据中的每帧测试数据,获取每帧测试数据所对应的深度性能数据集合,其中,深度性能数据集合包括垃圾回收gc数据、内存数据、渲染数据以及渲染线程数据中的至少一项;

生成模块802,用于当获取到n帧测试数据中每帧测试数据所对应的深度性能数据集合时,根据每帧测试数据所对应的深度性能数据集合,生成深度性能信息文件;

展示模块803,用于展示深度性能信息文件。

可选地,在上述图8所对应的实施例的基础上,本申请实施例提供的性能测试装置800的另一实施例中,深度性能数据集合包括gc数据;

获取模块801,具体用于针对n帧测试数据中的每帧测试数据,获取m个函数所对应的gc子数据,其中,每个函数对应于一个gc子数据,m为大于或等于1的整数;

生成模块802,具体用于针对于n帧测试数据中的每帧测试数据,根据m个函数所对应的gc子数据,生成所述gc数据。

可选地,在上述图8所对应的实施例的基础上,本申请实施例提供的性能测试装置800的另一实施例中,深度性能数据集合包括内存数据;

获取模块801,还用于针对n帧测试数据中的每帧测试数据,获取内存分布总信息、堆内存分布信息、贴图内存分布信息以及网格内存分布信息中的至少一种;

生成模块802,还用于针对n帧测试数据中的每帧测试数据,根据内存分布总信息、堆内存分布信息、贴图内存分布信息以及网格内存分布信息中的至少一种,生成内存数据。

可选地,在上述图8所对应的实施例的基础上,本申请实施例提供的性能测试装置800的另一实施例中,深度性能数据集合包括渲染数据;

获取模块801,还用于针对n帧测试数据中的每帧测试数据,获取绘制调用数据、动态合批数据以及静态合批数据中的至少一种;

生成模块802,还用于针对n帧测试数据中的每帧测试数据,根据绘制调用数据、动态静态合批数据以及静态合批数据中的至少一种,生成渲染数据。

可选地,在上述图8所对应的实施例的基础上,本申请实施例提供的性能测试装置800的另一实施例中,深度性能数据集合包括渲染线程数据;

获取模块801,还用于针对n帧测试数据中的每帧测试数据,获取渲染线程处理图像的时间;

生成模块802,还用于针对n帧测试数据中的每帧测试数据,根据渲染线程处理图像的时间,生成渲染线程数据。

可选地,在上述图8所对应的实施例的基础上,本申请实施例提供的性能测试装置800的另一实施例中,

获取模块801,具体用于启动目标游戏;

获取模块801,还用于当目标游戏运行于目标测试场景时,获取性能测试数据,其中,目标测试场景属于测试场景集合中的一个测试场景,测试场景集合包括至少一类测试场景;

获取模块801,还用于接收第一终端设备发送的性能测试数据,其中,性能测试数据为目标游戏运行于目标测试场景时,通过第一终端设备获取到的。

可选地,在上述图8所对应的实施例的基础上,本申请实施例提供的性能测试装置800的另一实施例中,

展示模块,具体用于向第二终端设备发送深度性能信息文件,以使第二终端设备展示深度性能信息文件;

展示模块,还用于通过信息展示平台展示深度性能信息文件,其中,信息展示平台包括电子邮件、网页、小程序、短消息以及应用程序中的至少一种。

本申请实施例还提供了另一种性能测试装置,如图9所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端设备可以为包括手机、平板电脑、个人数字助理(personaldigitalassistant,pda)、销售终端设备(pointofsales,pos)、车载电脑等任意终端设备,以终端设备为手机为例:

图9示出的是与本申请实施例提供的终端设备相关的手机的部分结构的框图。参考图9,手机包括:射频(radiofrequency,rf)电路910、存储器920、输入单元930、显示单元940、传感器950、音频电路960、无线保真(wirelessfidelity,wifi)模块970、处理器980、以及电源990等部件。本领域技术人员可以理解,图9中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图9对手机的各个构成部件进行具体的介绍:

rf电路910可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器980处理;另外,将设计上行的数据发送给基站。通常,rf电路910包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(lownoiseamplifier,lna)、双工器等。此外,rf电路910还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystemofmobilecommunication,gsm)、通用分组无线服务(generalpacketradioservice,gprs)、码分多址(codedivisionmultipleaccess,cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、长期演进(longtermevolution,lte)、电子邮件、短消息服务(shortmessagingservice,sms)等。

存储器920可用于存储软件程序以及模块,处理器980通过运行存储在存储器920的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器920可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元930可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元930可包括触控面板931以及其他输入设备932。触控面板931,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板931上或在触控面板931附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板931可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器980,并能接收处理器980发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板931。除了触控面板931,输入单元930还可以包括其他输入设备932。具体地,其他输入设备932可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元940可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元940可包括显示面板941,可选的,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板941。进一步的,触控面板931可覆盖显示面板941,当触控面板931检测到在其上或附近的触摸操作后,传送给处理器980以确定触摸事件的类型,随后处理器980根据触摸事件的类型在显示面板941上提供相应的视觉输出。虽然在图9中,触控面板931与显示面板941是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板931与显示面板941集成而实现手机的输入和输出功能。

手机还可包括至少一种传感器950,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板941的亮度,接近传感器可在手机移动到耳边时,关闭显示面板941和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路960、扬声器961,传声器962可提供用户与手机之间的音频接口。音频电路960可将接收到的音频数据转换后的电信号,传输到扬声器961,由扬声器961转换为声音信号输出;另一方面,传声器962将收集的声音信号转换为电信号,由音频电路960接收后转换为音频数据,再将音频数据输出处理器980处理后,经rf电路910以发送给比如另一手机,或者将音频数据输出至存储器920以便进一步处理。

wifi属于短距离无线传输技术,手机通过wifi模块970可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图9示出了wifi模块970,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器980是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器920内的软件程序和/或模块,以及调用存储在存储器920内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器980可包括一个或多个处理单元;可选的,处理器980可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器980中。

手机还包括给各个部件供电的电源990(比如电池),可选的,电源可以通过电源管理系统与处理器980逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。

在本申请实施例中,该终端设备所包括的处理器980还具有以下功能:

获取性能测试数据,其中,性能测试数据包括目标游戏所对应的n帧测试数据,n为大于或等于1的整数;

针对于n帧测试数据中的每帧测试数据,获取每帧测试数据所对应的深度性能数据集合,其中,深度性能数据集合包括垃圾回收gc数据、内存数据、渲染数据以及渲染线程数据中的至少一种;

当获取到n帧测试数据中每帧测试数据所对应的深度性能数据集合时,根据每帧测试数据所对应的深度性能数据集合,生成深度性能信息文件;

展示深度性能信息文件。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1