CN113157593B - 性能数据采集方法及装置、系统、电子设备、存储介质 - Google Patents

性能数据采集方法及装置、系统、电子设备、存储介质 Download PDF

Info

Publication number
CN113157593B
CN113157593B CN202110566910.6A CN202110566910A CN113157593B CN 113157593 B CN113157593 B CN 113157593B CN 202110566910 A CN202110566910 A CN 202110566910A CN 113157593 B CN113157593 B CN 113157593B
Authority
CN
China
Prior art keywords
scene
game
performance data
client
acquisition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110566910.6A
Other languages
English (en)
Other versions
CN113157593A (zh
Inventor
吴炜峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202110566910.6A priority Critical patent/CN113157593B/zh
Publication of CN113157593A publication Critical patent/CN113157593A/zh
Application granted granted Critical
Publication of CN113157593B publication Critical patent/CN113157593B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供了一种性能数据采集方法及装置、系统、电子设备、存储介质,其中,方法包括:采集客户端运行与待采集性能数据的游戏客户端匹配的目标采集用例,通过所述目标采集用例向所述游戏客户端发送执行命令,所述执行命令用于指示所述游戏客户端运行游戏,并采集游戏运行过程中的性能数据;接收所述游戏客户端采集的所述性能数据。实现在对游戏客户端的性能数据采集时,将性能数据采集逻辑与游戏客户端分离,防止性能数据采集影响游戏客户端资源,提高性能数据采集结果的准确性。

Description

性能数据采集方法及装置、系统、电子设备、存储介质
技术领域
本申请涉及数据处理技术领域,特别是涉及性能数据采集方法及装置、系统、电子设备、存储介质。
背景技术
随着网络游戏的不断发展,游戏场景复杂的网络游戏越来越多。而游戏场景复杂的网络游戏更容易出现游戏性能问题,例如,在游戏过程中表现卡顿或发热严重等。因此排查出游戏内有性能隐患的场景位置是测试人员一项重要工作。
传统的性能数据采集方法是:将性能数据采集脚本注入待采集的游戏客户端内,通过在游戏客户端内运行性能数据采集脚本控制游戏客户端的游戏对象移动至指定位置,以获取指定位置的性能数据,然后将获取的性能数据保存在游戏客户端的本地日志中。该方式需要在游戏客户端内运行额外采集逻辑,会占用游戏客户端资源,并且采集过程不稳定,容易受游戏客户端的影响,也会对游戏客户端的正常运行造成影响。
发明内容
鉴于上述问题,提出了本申请以便提供克服上述问题或者至少部分地解决上述问题的性能数据采集方法及装置、系统、电子设备、存储介质,包括:
一种性能数据采集方法,所述方法应用于采集客户端,所述方法包括:
运行与待采集性能数据的游戏客户端匹配的目标采集用例,通过所述目标采集用例向所述游戏客户端发送执行命令,所述执行命令用于指示所述游戏客户端运行游戏,并采集游戏运行过程中的性能数据;
接收所述游戏客户端采集的所述性能数据。
一种性能数据采集方法,所述方法应用于游戏客户端,所述方法包括:
接收采集客户端发送的执行命令;所述执行命令是所述采集客户端运行与所述游戏客户端匹配的目标采集用例时向所述游戏客户端发送的;
根据所述执行命令运行游戏,并采集游戏运行过程中的性能数据;
将所述性能数据发送至所述采集客户端。
一种性能数据采集装置,应用于采集客户端,所述装置包括:
目标用例运行模块,用于运行与待采集性能数据的游戏客户端匹配的目标采集用例,通过所述目标采集用例向所述游戏客户端发送执行命令,所述执行命令用于指示所述游戏客户端运行游戏,并采集游戏运行过程中的性能数据;
性能数据接收模块,用于接收所述游戏客户端采集的所述性能数据。
一种性能数据采集装置,应用于游戏客户端,所述装置包括:
执行命令接收模块,用于接收所述客户端发送的执行命令;所述执行命令是所述采集客户端运行与所述游戏客户端匹配的目标采集用例时向所述游戏客户端发送的;
游戏运行模块,用于根据所述执行命令运行游戏,并采集游戏运行过程中的性能数据;
性能数据发送模块,用于将所述性能数据发送至所述采集客户端。
一种性能数据采集系统,所述性能数据采集系统包括采集客户端和游戏客户端,所述游戏客户端和所述采集客户端通信连接;
所述采集客户端,用于运行与所述游戏客户端匹配的目标采集用例,通过所述目标采集用例向所述游戏客户端发送执行命令;
所述游戏客户端,用于接收所述执行命令;
所述游戏客户端,用于根据所述执行命令运行游戏,并采集游戏运行过程中的性能数据;
所述游戏客户端,用于将所述性能数据发送至所述采集客户端。
一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的性能数据采集方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的性能数据采集方法的步骤。
本申请具有以下优点:
在本申请的实施例中,采集客户端运行与待采集性能数据的游戏客户端匹配的目标采集用例,通过目标采集用例向游戏客户端发送执行命令,执行命令用于指示游戏客户端运行游戏,并采集游戏运行过程中的性能数据;接收游戏客户端采集的性能数据,实现对游戏客户端的性能数据采集;本申请实施例将性能数据采集逻辑与游戏客户端分离,防止性能数据采集影响游戏客户端资源,提高性能数据采集结果的准确性。
附图说明
为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的一种性能数据采集方法的步骤流程图;
图2为本申请实施例的另一种性能数据采集方法的步骤流程图;
图3为本申请一示例中的采集客户端和待采集性能数据的游戏客户端的示意图;
图4为本申请一示例中性能数据采集的步骤流程图;
图5为本申请一示例中采集用例运行过程的步骤流程图;
图6为本申请实施例的一种性能数据采集装置的结构框图;
图7为本申请实施例的另一种性能数据采集装置的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着游戏技术的不断发展,大型重度网络游戏的占比越来越高,以大型多人在线角色扮演游戏为例,通常都会在游戏中出现开放式大世界场景,而大世界场景具有广阔和复杂的特点。场景内通常都会堆叠大量建筑物、植物、怪物和广阔的地表模型;导致大型重度网络游戏更容易出现场景性能问题,对玩家游戏体验造成不良影响,因此,排查找出游戏内有性能隐患的位置是测试人员一个重要工作。而测试人员要在大型重度网络游戏中不遗漏地发现所有可能的性能热点位置是一项艰巨工作,在没有辅助工具下就需要人工用不同设备操作客户端遍历游戏内每一个场景里每个位置和镜头角度,并逐个位置采集相关场景性能数据,作为衡量该场景位置是否存在性能瓶颈的依据,工作量巨大,难以实现,或者说实现效率低下、成本高。
目前最为常用的一种性能数据采集方法是:将性能数据采集脚本注入待采集的游戏客户端内,通过在游戏客户端内运行性能数据采集脚本控制游戏客户端的游戏对象移动至指定位置,以获取指定位置的性能数据,然后将获取的性能数据保存在游戏客户端的本地日志中。
该方式需要在游戏客户端内运行额外采集逻辑,会占用游戏客户端资源,并且采集过程不稳定,容易受游戏客户端的影响,也会对游戏客户端的正常运行造成影响。
并且,同一款网络游戏一般可以支持在不同系统平台上运行,例如IOS(苹果公司开发的移动操作系统)平台、Android(安卓,美国谷歌公司开发的移动操作系统)平台和PC(Personal Computer,个人计算机)系统平台。上述现有技术的性能数据采集方案只适用于单独一个平台执行,不能适应不同的系统运行平台。
基于目前的问题,本申请实施例中提供的性能数据采集方法可以将采集逻辑与待采集性能数据的游戏客户端分离,在实现采集游戏客户端的性能数据的同时,防止性能数据采集影响游戏客户端资源,提高性能数据采集结果的准确性。
参照图1,示出了本申请一实施例提供的一种性能数据采集方法的步骤流程图,该方法应用于采集客户端,具体包括如下步骤:
步骤101,运行与待采集性能数据的游戏客户端匹配的目标采集用例,通过所述目标采集用例向所述游戏客户端发送执行命令,所述执行命令用于指示所述游戏客户端运行游戏,并采集游戏运行过程中的性能数据。
在本实施例中,采集客户端内可以存储有多个采集用例,根据实际要采集性能数据的游戏客户端确定对应的目标采集用例,然后运行目标采集用例;在目标采集用例运行过程中可以向游戏客户端发送执行命令控制游戏客户端进行场景跳转以及各个场景位置的自动化遍历,采集性能数据。性能数据可以包括内存、CPU占用、运行帧率、渲染DrawCall数、场景内模型总的顶点数和面数等其中的一项或多项。
步骤102,接收所述游戏客户端采集的所述性能数据。
本实施例中,游戏客户端根据执行命令采集性能数据后,可以将采集到的性能数据发送给采集客户端,从而实现游戏客户端性能数据的采集。采集客户端还可以对接收到的性能数据进行进一步计算整理,以便用户可以通过采集客户端查看游戏客户端的性能数据。
本申请实施例通过运行与待采集性能数据的游戏客户端匹配的目标采集用例,通过目标采集用例向游戏客户端发送执行命令,执行命令用于指示游戏客户端运行游戏,并采集游戏运行过程中的性能数据;接收游戏客户端采集的性能数据,实现对游戏客户端的性能数据采集;本申请实施例将性能数据采集逻辑与游戏客户端分离,防止性能数据采集影响游戏客户端资源,提高性能数据采集结果的准确性。
下面,将对本示例性实施例中性能数据采集方法作进一步地说明。
在步骤101中,运行与待采集性能数据的游戏客户端匹配的目标采集用例,通过所述目标采集用例向所述游戏客户端发送执行命令,所述执行命令用于指示所述游戏客户端运行游戏,并采集游戏运行过程中的性能数据。
本申请实施例中,采集客户端内预先存储有适用于不同运行平台的多种类型的网络游戏对应的采集用例,测试人员可以利用一个采集客户端实现对多个不同游戏客户端的性能数据采集。在对游戏客户端进行性能数据采集时,首先需要使采集客户端和游戏客户端建立连接。
在一个可选实施方式中,建立连接的方式可以是以采集客户端作为服务端,事先预设IP端口告知游戏客户端进行连接。
在另一个可选实施方式中,建立连接的方式可以是通过第三方服务器做中转,即第三方服务器分别连接采集客户端和游戏客户端。
在采集客户端和游戏客户端建立连接后,采集客户端可以获取游戏客户端的标识信息,该标识信息用于指示游戏客户端对应的运行平台和游戏类型,以便采集客户端可以根据该标识信息从存储的多个采集用例中确定与该游戏客户端匹配的目标采集用例。
在一个可选实施方式中,当采集客户端作为服务端与游戏客户端直接连接时,采集客户端获取游戏客户端的标识信息的过程具体可以是:游戏客户端将标识信息发送至采集客户端。
在另一个可选实施方式中,当采集客户端和游戏客户端通过服务器间接连接时,采集客户端和游戏客户端启动后都可以与服务器连接,并将各自的标识信息上传至服务器,采集客户端获取游戏客户端的标识信息的过程具体可以是:服务器将待与采集客户端连接的至少一个游戏客户端的候选标识信息发送至采集客户端,以供测试人员选择;采集客户端接收针对候选标识信息的选择操作,根据选择操作确定标识信息,并连接标识信息对应的游戏客户端。
在确定目标采集用例后,采集客户端可以运行目标采集用例,在目标采集用例运行过程中会向游戏客户端发送相应的执行命令,执行命令用于指示游戏客户端运行游戏,并采集游戏运行过程中的性能数据。
一般地,一个游戏会涉及多个游戏场景,每个游戏场景具有唯一一个对应的场景标志。在对游戏客户端的性能数据采集过程中,可以以场景为单位进行性能数据采集。在本实施例中,运行目标采集用例的过程具体可以包括:
在所述目标采集用例运行过程中,确定下一场景标志;
针对所述下一场景标志,生成对应的场景跳转命令;
发送所述场景跳转命令至所述游戏客户端;所述场景跳转命令用于指示所述游戏客户端跳转至下一游戏场景,并采集所述下一游戏场景的性能数据。
其中,下一场景标志对应的下一游戏场景是当前要采集性能数据的游戏场景。需要强调的是,当前要采集性能数据的游戏场景与当前正在采集性能数据的游戏场景是不同的,当前要采集性能数据的游戏场景是在当前正在采集性能数据的游戏场景完成性能数据采集后的下一游戏场景。
在目标采集用例运行过程中,需要确定当前要采集性能数据的游戏场景,即下一游戏场景,然后生成对应的场景跳转命令,以使游戏客户端根据场景跳转命令跳转至下一游戏场景。其中,场景跳转命令可以是控制游戏对象跳转至下一场景的实现代码逻辑文件,或者调用游戏内跳转至下一游戏场景的接口;即确定下一游戏场景后,目标采集用例可以发送控制游戏对象跳转至指定场景的实现代码逻辑文件或发送调用游戏内跳转场景的接口,使游戏客户端跳转至指定游戏场景。
具体地,上述确定下一场景标志的过程,可以包括:
获取所述目标采集用例配置的场景列表;所述场景列表包括多个场景标志;
基于所述游戏客户端的当前已完成性能数据采集的游戏场景和所述场景列表,确定所述下一场景标志。
本实施例中,目标采集用例配置有场景列表,场景列表包括至少一个需要采集性能数据的游戏场景对应的场景标志。目标采集用例运行过程中可以按照场景列表中场景标志的顺序依次进行性能数据采集。在发送场景跳转命令之前,根据游戏客户端的当前已完成性能数据采集的游戏场景和场景列表确定下一场景标志。例如,当场景列表中包含场景标志1、2、3,且当前完成性数据采集的游戏场景对应的场景标志是1时,下一场景标志即为2。
本实施例中,采集客户端可以支持用户对采集用例的采集流程进行编辑操作,包括对采集用例进行配置,配置信息会保存在本次采集用例执行运行环境中,以提高采集用例的适用性。因此,在上述获取所述目标采集用例配置的场景列表之前,该方法还可以包括:
接收针对所述目标采集用例的配置操作;
根据所述配置操作确定所述目标采集用例配置的场景列表。
其中,场景列表中可以包括游戏客户端对应的所有游戏场景的场景标志,也可以是游戏客户端的部分游戏场景的场景标志。当用户没有对目标采集用例进行场景列表的配置时,则采用默认的场景列表或者通过与游戏客户端交互获取游戏客户端对应的场景列表。
一般地,游戏客户端实现场景跳转的过程是延时过程,当目标采集用例发送完场景跳转命令后,可以阻塞当前执行线程,等待游戏客户端返回针对场景跳转命令的反馈信息;或者,当目标采集用例发送完场景跳转命令后,可以阻塞当前执行线程,按照一定时间间隔发送查询命令,查询游戏客户端是否跳转成功。针对跳转成功和跳转失败的情形进行分别处理。
因此,在上述发送场景跳转命令至游戏客户端之后,还包括:
若采集客户端接收到游戏客户端针对场景跳转命令返回的跳转成功信息,则按照下一游戏场景对应的位置点列表,生成对应的位置点遍历命令;
发送位置点遍历命令至游戏客户端;位置点遍历命令用于指示游戏客户端控制游戏对象移动到对应的位置点,并采集位置点的点性能数据。
本实施例中,当游戏客户端成功跳转至下一游戏场景后,目标采集用例可以确定该下一游戏场景对应的位置点列表,该位置点列表中包括多个位置点,针对每个位置点生成一个位置点遍历命令,依次发送至游戏客户端,以使游戏客户端控制游戏对象移动到对应的位置点,采集点性能数据。上述多个位置点遍历命令依次发送至游戏客户端,具体可以是,按照位置点列表中位置点的顺序发送对应的位置点遍历命令,并且当当前位置点遍历命令对应的点性能数据采集结束(包括采集成功和采集失败)后,再发送下一个位置点遍历命令。
在具体实现中,当游戏对象达到对应的位置点后,游戏镜头也跟随到指定区域,此时目标采集用例可以调用游戏客户端内的性能统计模块获取该位置点的性能数据,游戏客户端获取该位置点的性能数据后,将该性能数据连同位置点信息一同返回给采集客户端。当游戏场景为3D游戏场景时,位置点的性能数据还包括游戏镜头在该位置点调整不同视距角度,采集的性能数据。由于场景性能数据是该场景的所有位置点的性能数据的集合,为了方便区分,本实施例将位置点的性能数据命名为点性能数据。
在本实施例中,目标采集用例确定下一游戏场景对应的位置点列表的过程,可以包括:
获取所述下一游戏场景的场景范围信息;
根据所述场景范围信息和位置点列表生成策略,确定所述下一游戏场景对应的位置点列表。
其中,下一游戏场景的场景范围信息具体可以是下一游戏场景的场景平面左下角坐标和右上角坐标。位置点列表生成策略具体可以是预先设置的用于生成位置点列表的代码文件,该代码文件可以根据场景范围信息和目标采集用例配置信息中的采样间隔进行扫描采样生成对应的位置点列表;具体地根据场景平面左下角坐标和右上角坐标可以确定场景平面,然后按照采样间隔对场景平面进行扫描采样即可得到多个位置点,该多个位置点的集合构成了位置点列表。其中,目标采集用例配置信息中的采样间隔可以根据用户的配置操作设置确定。若用户没有对采样间隔进行配置,则可以采用默认的采样间隔。
进一步地,上述运行与待采集性能数据的游戏客户端匹配的目标采集用例,通过所述目标采集用例向所述游戏客户端发送执行命令,包括:
判断预设时间内是否接收到所述游戏客户端针对所述执行命令反馈的成功执行信息;所述执行命令包括场景跳转命令和/或位置点遍历命令;
若否,则重新向所述游戏客户端发送所述执行命令,或者,跳过所述执行命令发送下一执行命令。
游戏客户端执行过程难免会遇到一些异常情况,比如游戏客户端遇到一些执行过程报错导致无法正常响应,场景跳转不成功,或者,游戏客户端采集性能数据过程中,某个场景某个位置有问题导致游戏客户端崩溃等,这些都会阻碍性能数据的采集过程。本实施例中,目标采集用例运行时可以设置向游戏客户端发送执行命令和等待返回数据之间的等待超时时间,即预设时间,遇到执行失败或超时未回复的情形,即预设时间内没有接收到成功执行信息的反馈时,目标采集用例可以进行重试或者直接跳过出错位置或出错场景的性能数据采集,继续下一位置或场景的采集。
进一步地,针对在预设时间内收到成功执行信息的反馈的执行命令,还可以生成错误反馈信息,所述错误反馈信息包括所述场景跳转命令对应的场景标志,和/或,所述位置点遍历命令对应的位置点;将该错误反馈信息输出以提示用户有出错情况和出错情况的定位位置,方便用户后续定位问题。对于重新发送的执行命令,若在预设时间内收到成功执行信息的反馈时,可以不生成对应的错误反馈信息。
在步骤102中,接收所述游戏客户端采集的所述性能数据。
在本实施例中,采集客户端可以接收游戏客户端采集的性能数据。具体地,游戏客户端可以实时将采集到的点性能数据发送给采集客户端,并在发送点性能数据时附带该点性能数据对应的位置点和对应的场景。
为了方便后续使用,采集客户端在接收游戏客户端发送的点性能数据后,可以按照点性能数据对应的位置点和场景标志,对点性能数据进行标记和存储。
进一步地,在本实施例中,采集客户端还具有性能数据展示功能,具体包括:
接收性能数据展示指令;所述展示指令包括目标场景标志;
获取所述目标场景标志对应的目标性能数据;所述目标性能数据包括目标场景的多个位置点对应的点性能数据;
展示所述目标性能数据。
采集客户端可以在对应的展示界面中展示存储的性能数据,具体可以在展示界面中展示已存储的性能数据对应的游戏名称,每个游戏名称下展示对应的场景标志。当用户想要查看某个游戏某个场景的性能数据时,可以在展示界面中触发对应的游戏名称下的场景标志,生成展示指令;当采集客户端接收展示指令后,可以获取展示指令中的目标场景标志对应的目标性能数据,该目标性能数据即为目标游戏场景下的各个位置点的点性能数据的集合;最后在展示界面中展示目标性能数据。具体展示形式可以包括列表形式,和图形形式,或者列表和图形结合的形式。
在一个可选实施方式中,上述展示目标性能数据,具体可以包括:
生成所述目标场景标志对应的目标场景坐标图;
确定所述目标性能数据中各个点性能数据对应的目标位置点坐标;
将所述目标位置点坐标标记在所述目标场景坐标图中。
根据目标场景标志可以确定对应的目标场景,进而基于目标场景的平面坐标可以对应生成目标场景坐标图。然后从目标场景坐标图中,确定目标性能数据中各个点性能数据的目标位置点在目标场景坐标图中的目标位置点坐标,最后将目标位置点坐标标记在目标场景坐标图中;用户可以直接从目标场景坐标图中查看到有进行性能数据采集的目标位置点。为了提高用户的使用体验,可以以目标场景画面作为目标场景坐标图的背景。
当用户需要查看任意一个目标位置点的性能数据时,可以点击该目标位置点,生成针对目标位置点的触发操作,采集客户端接收该触发操作后,可以在相应位置展示该目标位置点对应的点性能数据;当点性能数据涉及的数据类型不止一个时,可以通过列表的形式展示。
在另一个可选实施方式中,上述展示目标性能数据,具体可以包括:
生成所述目标场景标志对应的目标场景坐标图;
确定所述目标性能数据中各个点性能数据对应的目标位置点坐标;
将所述目标性能数据中各个点性能数据通过图形化的形式展示在对应的目标位置点坐标处。
根据目标场景标志可以确定对应的目标场景,进而基于目标场景的平面坐标可以对应生成目标场景坐标图。然后从目标场景坐标图中,确定目标性能数据中各个点性能数据的目标位置点在目标场景坐标图中的目标位置点坐标,最后,将目标性能数据中各个点性能数据通过图形化的形式展示在对应的目标位置点坐标处。例如通过热力图的方式展示目标场景的目标性能数据。
在具体实现中,可以先根据各个点性能数据的值确定对应的展示颜色,然后在目标场景坐标图中对应的目标位置点坐标处展示该展示颜色,得到热力图。另外,还可以以目标场景画面作为目标场景坐标图的背景,辅助用户判断热力图与场景位置对应关系,用户通过热力图可以直观查看场景各区域性能数据分布情况,快速获取性能热点区域。
需要说明的是,当性能数据涉及多个数据类型时,可以针对每个数据类型性能数据生成一个对应的热力图。
进一步地,采集客户端还可以将性能数据发送至展示客户端,以使所述展示客户端根据接收的性能数据展示指令,在所述展示客户端对应的展示界面中按照预设要求展示对应的点性能数据。展示客户端展示性能数据的过程可以参考上述采集客户端展示性能数据的过程。具体地,采集客户端可以将标记的点性能数据实时发送至展示客户端,或者在一个游戏场景对应的位置点的性能数据采集完毕后,从内存中将该游戏场景相关的点性能数据发送至展示客户端。
本申请实施例通过运行与待采集性能数据的游戏客户端匹配的目标采集用例,通过目标采集用例向游戏客户端发送执行命令,执行命令用于指示游戏客户端运行游戏,并采集游戏运行过程中的性能数据;接收游戏客户端采集的性能数据,实现对游戏客户端的性能数据采集;本申请实施例将性能数据采集逻辑与游戏客户端分离,防止性能数据采集影响游戏客户端资源,提高性能数据采集结果的准确性,同时,由于采集客户端与游戏客户端分离,使得用户可以根据不同需求对采集用例进行适应性调整,以提高采集用例的复用性,使采集流程更加标准化,而不会影响游戏客户端。
此外,采集用例运行过程中,通过配置的场景列表和位置点采样间隔来生成对应的执行命令,以指示游戏客户端运行游戏和采集性能数据;该采集流程可以适用到不同游戏,实现采集用例的复用性,进而降低采集用例开发难度,提高采集用例开发调试效率。
参照图2,示出了本申请一实施例提供的一种性能数据采集方法的步骤流程图,该方法应用于游戏客户端,具体包括如下步骤:
步骤201,接收采集客户端发送的执行命令;所述执行命令是所述采集客户端运行与所述游戏客户端匹配的目标采集用例时向所述游戏客户端发送的。
在游戏客户端和采集客户端建立通信连接后,采集客户端可以运行与游戏客户端匹配的目标采集用例,在运行目标采集用例的过程中,可以向游戏客户端发送相应的执行命令。其中,游戏客户端和采集客户端建立通信连接的过程可以参见上一实施例的相关描述。
执行命令可以包括场景跳转命令、位置点遍历命令等。
上述场景跳转命令生成过程是:目标采集用例根据配置的场景列表和游戏客户端当前已完成性能数据采集的游戏场景确定下一场景标志,针对下一场景标志生成对应的场景跳转命令。
上述位置点遍历命令的生成过程是:在确定游戏客户端成功跳转至对应的游戏场景后,根据该游戏场景对应的位置点列表,生成对应的位置点遍历命令。
步骤202,根据所述执行命令运行游戏,并采集游戏运行过程中的性能数据。
游戏客户端接收执行命令后,可以按照执行命令运行游戏,并采集游戏运行过程中的性能数据。
当执行命令为场景跳转命令时,游戏客户端可以根据场景跳转命令跳转至对应的游戏场景,以在该游戏场景中,根据进一步接收的执行命令采集该游戏场景的性能数据。
当执行命令为位置点遍历命令时,游戏客户端根据位置点遍历命令,控制游戏对象移动到对应的位置点,并采集该位置点的点性能数据。
进一步地,当游戏客户端执行场景跳转命令成功跳转至对应的下一游戏场景时,向所述采集客户端返回成功执行信息;和/或;
当所述游戏客户端执行位置点遍历命令控制游戏对象成功移动到对应的位置点时,向所述采集客户端返回成功执行信息。
步骤203,将所述性能数据发送至所述采集客户端。
本实施例中,游戏客户端可以将采集到的性能数据实时发送至采集客户端,以供采集客户端进行下一步处理,实现游戏客户端性能数据的采集。
具体地,游戏客户端在发送性能数据时,还可以同时将该性能数据对应的位置点和游戏场景的信息发送至采集客户端,以便采集客户端对接收到的性能数据进行标记和处理,方便后续性能数据的展示,提高用户获取性能数据的体验。
本申请实施例,游戏客户端接收采集客户端发送的执行命令,并根据执行命令运行游戏,采集游戏过程中的性能数据,最后将采集的性能数据发送至采集客户端。实现游戏客户端的性能数据采集,在该采集过程中,采集用例与游戏客户端分离,防止性能数据采集影响游戏客户端资源,提高性能数据采集结果的准确性。
为了使本领域技术人员能够更好地理解本方案,下面将结合以下例子对本申请实施例加以示例性说明,但应当理解的是,本发明实施例并不限于此。
请参照图3,图3示出了本示例中的采集客户端和待采集性能数据的游戏客户端的示意图。本示例中,采集客户端部署在用户本地PC环境中,如图所示,采集客户端(AutoTool)包括UI界面模块、网络模块(ToolNet)、自动化采集用例管理模块(CaseMng)、用例执行线程(CaseThread)。其中,UI界面模块用于实现支持用户操作;ToolNet用于与待采集性能数据的游戏客户端建立通信连接;CaseMng用于管理执行自动化采集过程的采集用例的编写调试和保存,不同游戏不同类型场景的采集流程会有所差异,可以通过在CaseMng里维护多个采集用例分别对应采集不同游戏场景;CaseThread用于加载和运行当前指定的采集用例,CaseThread执行过程按采集用例的行为逻辑去调用AutoTool里封装好的API去命令游戏客户端执行采集命令。
待采集性能数据的游戏客户端包括采集SDK(Software Development Kit,软件开发工具包),采集SDK相关代码可以事先添加进游戏安装包中,在游戏客户端运行过程中,采集SDK用于与AutoTool采集过程的交互,采集SDK包括网络模块(SDKNet)、性能数据统计模块(Profiler)、采集辅助功能模块(DebugMod);其中,SDKNet用于与ToolNet实现通信连接;以实现信息交互;Profiler用于提供游戏客户端采集性能数据接口(API)给AutoTool调用,诸如内存、CPU、帧率、渲染DrawCall、渲染顶点数等;DebugMod用于给采集SDK提供一些辅助自动化采集过程实现的API给AutoTool调用,具体地,DebugMod可以提供GM(GameMaster,游戏管理者)指令,比如让游戏对象(玩家)实现位置瞬移、跑场景过程不被场景内怪物攻击、可以绕过条件进入场景等,与游戏客户端中已有的游戏业务接口不同的功能,通过DebugMod开发逻辑辅助实现。
请参照图4,图4示出了本示例中性能数据采集的步骤流程图。
步骤401,启动AutoTool和游戏客户端,建立通信连接。
其中,AutoTool可以运行在本地采集终端中,游戏客户端可以运行在游戏终端中,游戏终端可以是PC机、移动Android或IOS设备,且游戏客户端的安装包包含采集SDK。在AutoTool和游戏客户端均启动后,AutoTool的ToolNet和采集SDK的SDKNet之间可以建立一个独立的通信连接。
ToolNet和SDKNet建立连接方式有多种,包括,以ToolNet作为服务端,以SDKNet作为客户端建立直接网络连接;或者,ToolNet和SDKNet均作为客户端,通过服务器建立间接网络连接。
其中,以ToolNet作为服务端,以SDKNet作为客户端建立直接网络连接的具体实现过程如下:
事先获取ToolNet部署设备上的IP和设置的端口,作为配置信息文件传到游戏客户端所在设备上,游戏客户端启动后SDKNet根据配置信息文件与ToolNet连接;或者,
在后台搭建一个可以上传和查询信息的服务站点,游戏客户端以所在设备的设备名等唯一标志信息为索引,AutoTool启动后,用户通过在AutoTool上输入要建立连接的游戏客户端设备的索引,通过AutoTool将索引和ToolNet当前监听的IP端口信息发送到服务站点,游戏客户端启动后,SDKNet实时去向服务站点轮询所在设备标志作为索引记录的IP端口信息,获取到则通过IP端口与ToolNet连接。
其中,ToolNet和SDKNet均作为客户端,通过服务器建立间接网络连接的具体实现过程如下:
在后台搭建一个服务站点,ToolNet和SDKNet启动后都连接上该服务站点,并附带上传各自所在设备的标志和各自身份,服务站点会向所有连接广播各连接的信息,因此,用户通过AutoTool可以看到所有连接上服务站点的游戏客户端信息,通过AutoTool选择要进行连接通信的游戏客户端,AutoTool发送请求到站点建立和指定SDKNet的通信绑定,绑定成功后,AutoTool所有操作的通信过程都会通过站点中转发送到游戏客户端,游戏客户端返回数据也通过站点中转发送到AutoTool上,实现间接通信连接。
步骤402,开发调试采集用例。
AutoTool的CaseMng保存有多个采集用例,每个采集用例都是一份独立的执行任务,在AutoTool中有每个采集用例相应的配置文件和工作目录,并且,AutoTool的UI界面可以支持用户对采集用例的编辑、保存、执行测试等操作。AutoTool封装多种API供采集用例执行过程调用,该供采集用例执行过程调用API包括:远程调用游戏客户端内游戏业务接口的API、发送本地代码文件内容到游戏客户端内执行的API、执行本地代码文件的API、提供给用户进行交互输入信息的API。
其中,远程调用游戏客户端内游戏业务接口的API的具体功能方式如下:运行采集用例时,传入要调用的接口名、调用参数列表、返回数据保存参数等,CaseThread调用API时,接口名和附带参数列表通过ToolNet发送给游戏客户端内采集SDK,采集SDK的Profiler、DebugMod通过接口名获取接口,并调用接口,传入附带参数列表作为输入参数,执行结果通过SDKNet返回给CaseThread,CaseThread根据采集用例配置的API返回变量,在当前运行内存下保存返回数据在指定变量里,供后续运行逻辑访问使用。
其中,发送本地代码文件内容到游戏客户端内执行的API的具体功能方式如下:运行采集用例时,传入要执行的文件名、调用参数列表、返回数据保存参数等,执行代码文件保存在本地用例工作目录下,CaseThread调用API时,通过采集用例所在工作目录找到对应的调用代码文件,获取该调用代码文件的代码内容,连同附带参数列表通过ToolNet发送给游戏客户端内采集SDK,采集SDK初始化代码内容在当前游戏客户端进程下的运行环境,将附带的变量参数列表里的参数初始化设置在当前作用域中,可以供代码内容执行时使用,然后运行代码内容,代码内容执行完毕后将需要返回给AutoTool的内容按约定格式存储到指定变量里,通过SDKNet返回给CaseThread。
其中,执行本地代码文件的API的具体功能方式如下:运行采集用例时,要传入执行的文件名,CaseThread在当前运行环境下执行采集用例所在工作目录对应文件名的代码文件,调用API时可以传入参数列表,在执行代码文件时可以传入参数列表,供代码执行过程中使用,代码执行完毕后将需要返回的内容按约定格式存储到CaseThread运行环境下的指定变量里,供后续使用。为了防止本地调用代码文件执行过程有阻塞行为影响CaseThread运行,执行方式可以支持单独运行子线程或子进程的方式执行代码内容。
其中,提供给用户进行交互输入信息的API的具体功能方式如下:运行采集用例时,传入返回变量名和提示信息,CaseThread调用API时会弹出交互界面提示用户按提示信息输入运行采集用例过程需要配置的信息,等待用户成功输入信息后,CaseThread会将用户输入信息保存在返回变量内,并恢复运行采集用例后续内容。
此外,供采集用例执行过程调用API还有在采集用例执行过程中获取CaseThread运行过程中保存的变量内容、修改变量内容、判断变量内容的一些API,还有判断游戏客户端是否断开连接、执行过程暂停和恢复、日志打印、报警提示等API。
CaseMng通过用例名作为索引管理每一个采集用例,采集用例开发形式可以是脚本文件,以代码逻辑的形式组织自动化采集流程;也可以是决策树、行为树等开发用例常用的数据结构组成的树状节点来组织自动化采集流程,每种形式都会有相应的代码配置或数据结构配置在AutoTool下保存管理。
步骤403,选择采集用例,并运行。
用户可以选择与待采集性能数据的游戏客户端匹配的采集用例,通过选择的采集用例执行对游戏客户端的性能数据进行自动化采集流程。CaseThread负责按照采集用例的内容自动执行整个采集过程,采集过程的场景性能数据缓存在CaseThread运行内存中或写日志等方式保存在本地。
本示例中采集用例运行过程可以参见图5。
子步骤501,确定采集用例的配置信息,配置信息包括场景列表、采集位置的采样间隔;
CaseThread调用交互输入信息的API时在AutoTool的UI界面提示用户进行配置,配置信息会保存在CaseThread的内存变量中,采集用例执行过程会获取配置信息,配置信息可以是本次采集指定采集的场景列表,采集位置的采样间隔等数据;需要说明的是,采集过程也可以不用用户输入配置信息,由采集用例调用游戏客户端内接口获取场景信息或事先配置在采集用例里。
子步骤502,按照场景列表确定指定游戏场景,并命令游戏客户端控制玩家跳转至指定游戏场景。
CaseThread根据场景列表按顺序逐一获取当前要采集的游戏场景的场景标志,即指定场景的场景标志,并调用游戏业务接口的API或调用本地代码文件内容到游戏客户端执行的API,发送命令到游戏客户端内执行,实现游戏内玩家和镜头跳转进指定游戏场景。
CaseThread执行与游戏客户端交互的API的执行过程一般是个延时过程,CaseThread发送完命令后会阻塞当前执行线程等待游戏客户端完成返回成功标志。
如果API执行过程遇到失败情况,比如游戏客户端执行失败、网络传输过程中断等导致API调用直接返回错误或返回信息丢失,CaseThread会有错误捕获机制和超时机制去处理异常情形,同时也可以获取到失败信息,在AutoTool前端输出提示信息,AutoTool会选择进行重试或者返回API执行失败结果,由采集用例根据执行错误的条件判断下一步行动,比如跳转场景失败,则采集用例可以选择重试或者保留失败信息,跳过当前场景采集,进行下一个场景。
子步骤503,获取指定场景对应的位置点列表。
游戏客户端的玩家进入指定场景后,CaseThread继续调用API发送命令给游戏客户端获取当前场景内的待采样位置点列表。该位置点列表的获取过程如下:获取指定场景范围信息,比如场景平面左下角坐标和右上角坐标,返回给CaseThread后本地再调用API执行本地事先准备好的生成位置点列表的代码文件,代码文件根据场景左下角和右上角坐标和采样间隔进行扫描采样生成位置点列表,再返回给CaseThread。
子步骤504,在指定场景内按照对应的位置点列表逐个遍历位置点,并命令游戏客户端控制玩家移动到指定位置点。
CaseThread从位置点列表里逐个遍历位置点坐标,调用API发送命令给游戏客户端控制玩家移动到指定位置点。
玩家到达位置点后,游戏镜头也跟随到指定区域,此时CaseThread就继续调用API获取游戏客户端内的性能统计模块采集性能数据,该性能数据可以根据需要获取一个或多个不同类型的数据,性能数据连同位置点坐标打包返回给AutoTool;针对3D游戏场景的采集用例还可以命令游戏镜头在同一个位置调整不同视距角度,采集不同镜头下的性能数据,一并打包返回给AutoTool处理。
子步骤505,接收采集的性能数据,并进行标记和存储。
CaseThread获取到每个位置点的性能数据后,先保存在当前内存中或者本地日志文件中,并标记数据的场景归属,当前场景的位置点采集遍历完毕后,CaseThread继续命令游戏玩家跳转到下一个场景继续采集,当全部场景采集完毕后,采集工作就完成,CaseThread接下去就进行最后的性能数据汇总处理操作。
步骤404,性能数据上传或展示。
采集流程完成后,CaseThread最后调用API执行性能数据上传代码文件,由性能数据上传代码文件集中处理已采集的性能数据,将处理后的性能数据保存在本地,以便为后续数据展示提供数据基础;或者,将性能数据上传到数据展示平台,由数据展示平台来实现数据展示功能。
性能数据上传代码文件执行时会生成本次用例执行的任务ID,并以各个采集场景+任务ID作为联合索引处理所有采集的性能数据,生成数据结构记录本次采集的各个场景的性能数据。当由性能数据展示平台实现数据展示功能时,还需要调用数据展示平台的上传API上传性能数据到平台上展示,最后结束采集用例的执行。
本示例提供的性能数据采集方法的步骤流程中,在开发采集用例过程中将每个步骤抽象化,比如拆分成跳转场景、跳转位置、获取场景范围等一些共性行为,具体行为功能的实现都通过游戏内独立的接口开发或者独立的代码文件管理,不同游戏的上述行为功能实现即使存在差异也只需重载上述行为功能对应的API接口内容和代码文件,采集用例实现的步骤流程可以整体适用到不同游戏,提高采集用例开发调试效率和复用性;同时AutoTool通过远程网络向游戏客户端发送命令完成自动化流程,可以支持所有游戏运行平台,这也提高了AutoTool的适用性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图6,示出了本申请的一种性能数据采集装置实施例的结构框图,该装置应用于采集客户端,所述装置包括:
目标用例运行模块601,用于运行与待采集性能数据的游戏客户端匹配的目标采集用例,通过所述目标采集用例向所述游戏客户端发送执行命令,所述执行命令用于指示所述游戏客户端运行游戏,并采集游戏运行过程中的性能数据;
性能数据接收模块602,用于接收所述游戏客户端采集的所述性能数据。
可选地,所述目标用例运行模块601,包括:
场景确定模块,用于在所述目标采集用例运行过程中,确定下一场景标志;
跳转指令生成模块,用于针对所述下一场景标志,生成对应的场景跳转命令;
跳转指令发送模块,用于发送所述场景跳转命令至所述游戏客户端;所述场景跳转命令用于指示所述游戏客户端跳转至下一游戏场景,并采集所述下一游戏场景的性能数据。
可选地,所述场景确定模块,包括:
场景列表获取模块,用于获取所述目标采集用例配置的场景列表;所述场景列表包括多个场景标志;
下一场景确定模块,用于基于所述游戏客户端的当前已完成性能数据采集的游戏场景和所述场景列表,确定所述下一场景标志。
可选地,所述装置还包括:
场景列表配置模块,用于接收针对所述目标采集用例的配置操作;
场景列表确定模块,用于根据所述配置操作确定所述目标采集用例配置的场景列表。
可选地,所述装置还包括:
位置点指令生成模块,用于若接收到所述游戏客户端针对所述场景跳转命令返回的跳转成功信息,则按照所述下一游戏场景对应的位置点列表,生成对应的位置点遍历命令;
位置点指令发送模块,用于发送所述位置点遍历命令至所述游戏客户端;所述位置点遍历命令用于指示所述游戏客户端控制游戏对象移动到对应的位置点,并采集所述位置点的点性能数据。
可选地,所述装置还包括:
场景范围获取模块,用于获取所述下一游戏场景的场景范围信息;
位置点列表确定模块,用于根据所述场景范围信息和位置点列表生成策略,确定所述下一游戏场景对应的位置点列表。
可选地,所述性能数据接收模块602,包括:
数据接收模块,用于接收所述游戏客户端采集的所述位置点的点性能数据;
数据标记模块,用于按照所述点性能数据对应的位置点和场景标志,标记所述点性能数据。
可选地,所述装置还包括:
展示数据发送模块,用于将接收到的所述点性能数据发送至展示客户端,以使所述展示客户端根据接收的性能数据展示指令,在所述展示客户端对应的展示界面中按照预设要求展示对应的点性能数据。
可选地,所述装置还包括:
展示指令接收模块,用于接收性能数据展示指令;所述展示指令包括目标场景标志;
目标性能数据获取模块,用于获取所述目标场景标志对应的目标性能数据;所述目标性能数据包括目标场景的多个位置点对应的点性能数据;
目标性能数据展示模块,用于展示所述目标性能数据。
可选地,所述目标性能数据展示模块,包括:
坐标图生成模块,用于生成所述目标场景标志对应的目标场景坐标图;
点坐标确定模块,用于确定所述目标性能数据中各个点性能数据对应的目标位置点坐标;
点坐标标记模块,用于将所述目标位置点坐标标记在所述目标场景坐标图中。
可选地,所述装置还包括:
触发操作接收模块,用于接收针对所述目标位置点坐标的触发操作;
点性能数据展示模块,用于展示所述目标位置点坐标对应的点性能数据。
可选地,所述装置还包括:
第二坐标图生成模块,用于生成所述目标场景标志对应的目标场景坐标图;
第二点坐标确定模块,用于确定所述目标性能数据中各个点性能数据对应的目标位置点坐标;
图形化展示模块,用于将所述目标性能数据中各个点性能数据通过图形化的形式展示在对应的目标位置点坐标处。
可选地,所述目标用例运行模块601,包括:
判断模块,用于判断预设时间内是否接收到所述游戏客户端针对所述执行命令反馈的成功执行信息;所述执行命令包括场景跳转命令和/或位置点遍历命令;
失败处理模块,用于若否,则重新向所述游戏客户端发送所述执行命令,或者,跳过所述执行命令发送下一执行命令。
可选地,所述装置还包括:
错误反馈模块,用于若预设时间内没有接收到所述游戏客户端针对所述执行命令反馈的成功执行信息,则生成错误反馈信息,所述错误反馈信息包括所述场景跳转命令对应的场景标志,和/或,所述位置点遍历命令对应的位置点。
可选地,所述装置还包括:
标识信息获取模块,用于获取所述游戏客户端的标识信息;
目标用例确定模块,用于根据所述标识信息确定所述目标采集用例。
可选地,所述标识信息获取模块,具体用于接收所述游戏客户端发送的标识信息。
可选地,所述采集客户端和所述游戏客户端通过服务器通信连接;所述标识信息获取模块,包括:
候选标识接收模块,用于接收所述服务器发送的待与所述采集客户端连接的候选游戏客户端的候选标识信息;
候选标识选择模块,用于接收针对所述候选标识信息的选择操作;
标识信息确定模块,用于根据所述选择操作确定所述标识信息,并连接所述标识信息对应的游戏客户端。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参照图6,示出了本申请的一种性能数据采集装置实施例的结构框图,该装置应用于游戏客户端,所述装置包括:
执行命令接收模块,用于接收所述客户端发送的执行命令;所述执行命令是所述采集客户端运行与所述游戏客户端匹配的目标采集用例时向所述游戏客户端发送的;
游戏运行模块,用于根据所述执行命令运行游戏,并采集游戏运行过程中的性能数据;
性能数据发送模块,用于将所述性能数据发送至所述采集客户端。
可选地,所述执行命令包括场景跳转命令,所述游戏运行模块,包括:
场景跳转模块,用于根据所述场景跳转命令跳转至对应的下一游戏场景,并采集所述下一游戏场景的性能数据;所述场景跳转命令是所述采集客户端在所述目标采集用例运行过程中,根据下一场景标志生成的。
可选地,所述执行命令包括位置点遍历命令,所述游戏运行模块,包括:
位置点遍历模块,用于根据所述位置点遍历命令,控制游戏对象移动到对应的位置点,并采集所述位置点的点性能数据;所述位置点遍历命令是所述采集客户端根据所述场景标识对应的位置点列表生成的。
可选地,所述装置还包括:
反馈信息发送模块,用于当成功跳转至下一游戏场景时,向所述采集客户端返回成功执行信息;和/或;
当所述游戏对象成功移动到对应的位置点时,向所述采集客户端返回成功执行信息。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例还公开了一种性能数据采集系统,所述性能数据采集系统包括采集客户端和游戏客户端,所述游戏客户端和所述采集客户端通信连接;
所述采集客户端,用于运行与所述游戏客户端匹配的目标采集用例,通过所述目标采集用例向所述游戏客户端发送执行命令;
所述游戏客户端,用于接收所述执行命令;
所述游戏客户端,用于根据所述执行命令运行游戏,并采集游戏运行过程中的性能数据;
所述游戏客户端,用于将所述性能数据发送至所述采集客户端。
本实施例中,采集客户端的游戏客户端的详细描述可以参见上文,在此不再赘述。
本申请实施例还公开了电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的一种性能数据采集方法的步骤。
本申请实施例还公开了计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的一种性能数据采集方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种性能数据采集方法及装置、系统、电子设备和存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (23)

1.一种性能数据采集方法,其特征在于,所述方法应用于采集客户端,所述方法包括:
运行与待采集性能数据的游戏客户端匹配的目标采集用例,通过所述目标采集用例向所述游戏客户端发送执行命令,所述执行命令用于指示所述游戏客户端运行游戏,并采集游戏运行过程中的性能数据;
接收所述游戏客户端采集的所述性能数据;
所述执行命令包括场景跳转命令,所述方法还包括:
接收针对所述目标采集用例的配置操作;
根据所述配置操作确定所述目标采集用例配置的场景列表,所述场景列表包括多个场景标志,所述目标采集用例运行过程中按照所述场景列表中场景标志的顺序依次向所述游戏客户端发送场景跳转命令;
所述运行与待采集性能数据的游戏客户端匹配的目标采集用例,通过所述目标采集用例向所述游戏客户端发送执行命令,包括:
在所述目标采集用例运行过程中,确定下一场景标志;
针对所述下一场景标志,生成对应的场景跳转命令;
发送所述场景跳转命令至所述游戏客户端;
接收所述游戏客户端返回针对所述场景跳转命令的反馈信息;或,发送查询命令,通过所述查询命令查询所述游戏客户端是否跳转成功;
所述场景跳转命令用于指示所述游戏客户端跳转至下一游戏场景,并采集所述下一游戏场景的性能数据。
2.根据权利要求1所述的方法,其特征在于,所述在所述目标采集用例运行过程中,确定下一场景标志,包括:
获取所述目标采集用例配置的场景列表;
基于所述游戏客户端的当前已完成性能数据采集的游戏场景和所述场景列表,确定所述下一场景标志。
3.根据权利要求1或2所述的方法,其特征在于,所述发送所述场景跳转命令至所述游戏客户端之后,还包括:
若接收到所述游戏客户端针对所述场景跳转命令返回的跳转成功信息,则按照所述下一游戏场景对应的位置点列表,生成对应的位置点遍历命令;
发送所述位置点遍历命令至所述游戏客户端;所述位置点遍历命令用于指示所述游戏客户端控制游戏对象移动到对应的位置点,并采集所述位置点的点性能数据。
4.根据权利要求3所述的方法,其特征在于,所述按照所述下一游戏场景对应的位置点列表,生成对应的位置点遍历命令之前,还包括:
获取所述下一游戏场景的场景范围信息;
根据所述场景范围信息和位置点列表生成策略,确定所述下一游戏场景对应的位置点列表。
5.根据权利要求3所述的方法,其特征在于,所述接收所述游戏客户端采集的所述性能数据,包括:
接收所述游戏客户端采集的所述位置点的点性能数据;
按照所述点性能数据对应的位置点和场景标志,标记所述点性能数据。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将接收到的所述点性能数据发送至展示客户端,以使所述展示客户端根据接收的性能数据展示指令,在所述展示客户端对应的展示界面中按照预设要求展示对应的点性能数据。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收性能数据展示指令;所述展示指令包括目标场景标志;
获取所述目标场景标志对应的目标性能数据;所述目标性能数据包括目标场景的多个位置点对应的点性能数据;
展示所述目标性能数据。
8.根据权利要求7所述的方法,其特征在于,所述展示所述目标性能数据,包括:
生成所述目标场景标志对应的目标场景坐标图;
确定所述目标性能数据中各个点性能数据对应的目标位置点坐标;
将所述目标位置点坐标标记在所述目标场景坐标图中。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收针对所述目标位置点坐标的触发操作;
展示所述目标位置点坐标对应的点性能数据。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
生成所述目标场景标志对应的目标场景坐标图;
确定所述目标性能数据中各个点性能数据对应的目标位置点坐标;
将所述目标性能数据中各个点性能数据通过图形化的形式展示在对应的目标位置点坐标处。
11.根据权利要求3所述的方法,其特征在于,所述运行与待采集性能数据的游戏客户端匹配的目标采集用例,通过所述目标采集用例向所述游戏客户端发送执行命令,包括:
判断预设时间内是否接收到所述游戏客户端针对所述执行命令反馈的成功执行信息;所述执行命令包括场景跳转命令和/或位置点遍历命令;
若否,则重新向所述游戏客户端发送所述执行命令,或者,跳过所述执行命令发送下一执行命令。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
若预设时间内没有接收到所述游戏客户端针对所述执行命令反馈的成功执行信息,则生成错误反馈信息,所述错误反馈信息包括所述场景跳转命令对应的场景标志,和/或,所述位置点遍历命令对应的位置点。
13.根据权利要求1所述的方法,其特征在于,在所述运行与待采集性能数据的游戏客户端匹配的目标采集用例之前,所述方法还包括:
获取所述游戏客户端的标识信息;
根据所述标识信息确定所述目标采集用例。
14.根据权利要求13所述的方法,其特征在于,所述获取所述游戏客户端的标识信息,包括:
接收所述游戏客户端发送的标识信息。
15.根据权利要求13所述的方法,其特征在于,所述采集客户端和所述游戏客户端通过服务器通信连接;所述获取所述游戏客户端的标识信息,包括:
接收所述服务器发送的待与所述采集客户端连接的候选游戏客户端的候选标识信息;
接收针对所述候选标识信息的选择操作;
根据所述选择操作确定所述标识信息,并连接所述标识信息对应的游戏客户端。
16.一种性能数据采集方法,其特征在于,所述方法应用于游戏客户端,所述方法包括:
接收采集客户端发送的执行命令;所述执行命令是所述采集客户端运行与所述游戏客户端匹配的目标采集用例时向所述游戏客户端发送的;
根据所述执行命令运行游戏,并采集游戏运行过程中的性能数据;
将所述性能数据发送至所述采集客户端;
其中,所述执行命令包括场景跳转命令,所述场景跳转命令由所述采集客户端通过接收针对所述目标采集用例的配置操作,根据所述配置操作确定所述目标采集用例配置的包括多个场景标志的场景列表后,运行所述目标采集用例过程中按照所述场景列表中场景标志的顺序依次向所述游戏客户端发送所述场景跳转命令;
所述根据所述执行命令运行游戏,并采集游戏运行过程中的性能数据,包括:
发送针对所述场景跳转命令的反馈信息;或,接收查询命令,通过所述查询命令查询所述游戏客户端是否跳转成功;
根据所述场景跳转命令跳转至对应的下一游戏场景,并采集所述下一游戏场景的性能数据;所述场景跳转命令是所述采集客户端在所述目标采集用例运行过程中,根据下一场景标志生成的。
17.根据权利要求16所述的方法,其特征在于,所述执行命令包括位置点遍历命令,所述根据所述执行命令运行游戏,并采集游戏运行过程中的性能数据,包括:
根据所述位置点遍历命令,控制游戏对象移动到对应的位置点,并采集所述位置点的点性能数据;所述位置点遍历命令是所述采集客户端根据场景标识对应的位置点列表生成的。
18.根据权利要求17所述的方法,其特征在于,所述方法还包括:
当成功跳转至下一游戏场景时,向所述采集客户端返回成功执行信息;和/或;
当所述游戏对象成功移动到对应的位置点时,向所述采集客户端返回成功执行信息。
19.一种性能数据采集装置,其特征在于,应用于采集客户端,所述装置包括:
目标用例运行模块,用于运行与待采集性能数据的游戏客户端匹配的目标采集用例,通过所述目标采集用例向所述游戏客户端发送执行命令,所述执行命令用于指示所述游戏客户端运行游戏,并采集游戏运行过程中的性能数据;
性能数据接收模块,用于接收所述游戏客户端采集的所述性能数据;
所述执行命令包括场景跳转命令,所述装置还包括:
场景列表配置模块,用于接收针对所述目标采集用例的配置操作;
场景列表确定模块,用于根据所述配置操作确定所述目标采集用例配置的场景列表,所述场景列表包括多个场景标志,所述目标采集用例运行过程中按照所述场景列表中场景标志的顺序依次向所述游戏客户端发送场景跳转命令;
其中,所述目标用例运行模块,包括:
场景确定模块,用于在所述目标采集用例运行过程中,确定下一场景标志;跳转指令生成模块,用于针对所述下一场景标志,生成对应的场景跳转命令;跳转指令发送模块,用于发送所述场景跳转命令至所述游戏客户端;用于接收所述游戏客户端返回针对所述场景跳转命令的反馈信息;或,用于发送查询命令,通过所述查询命令查询所述游戏客户端是否跳转成功;所述场景跳转命令用于指示所述游戏客户端跳转至下一游戏场景,并采集所述下一游戏场景的性能数据。
20.一种性能数据采集装置,其特征在于,应用于游戏客户端,所述装置包括:
执行命令接收模块,用于接收所述客户端发送的执行命令;所述执行命令是采集客户端运行与所述游戏客户端匹配的目标采集用例时向所述游戏客户端发送的;
游戏运行模块,用于根据所述执行命令运行游戏,并采集游戏运行过程中的性能数据;
性能数据发送模块,用于将所述性能数据发送至所述采集客户端;
其中,所述执行命令包括场景跳转命令,所述场景跳转命令由所述采集客户端通过接收针对所述目标采集用例的配置操作,根据所述配置操作确定所述目标采集用例配置的包括多个场景标志的场景列表后,运行所述目标采集用例过程中按照所述场景列表中场景标志的顺序依次向所述游戏客户端发送所述场景跳转命令;
所述游戏运行模块,包括:用于发送针对所述场景跳转命令的反馈信息;或,用于接收查询命令,通过所述查询命令查询所述游戏客户端是否跳转成功;场景跳转模块,用于根据所述场景跳转命令跳转至对应的下一游戏场景,并采集所述下一游戏场景的性能数据;所述场景跳转命令是所述采集客户端在所述目标采集用例运行过程中,根据下一场景标志生成的。
21.一种性能数据采集系统,其特征在于,所述性能数据采集系统包括采集客户端和游戏客户端,所述游戏客户端和所述采集客户端通信连接;
所述采集客户端,用于运行与所述游戏客户端匹配的目标采集用例,通过所述目标采集用例向所述游戏客户端发送执行命令;
所述游戏客户端,用于接收所述执行命令;
所述游戏客户端,用于根据所述执行命令运行游戏,并采集游戏运行过程中的性能数据;
所述游戏客户端,用于将所述性能数据发送至所述采集客户端;
所述执行命令包括场景跳转命令,所述采集客户端还用于接收针对所述目标采集用例的配置操作;根据所述配置操作确定所述目标采集用例配置的场景列表,所述场景列表包括多个场景标志,所述目标采集用例运行过程中按照所述场景列表中场景标志的顺序依次向所述游戏客户端发送场景跳转命令;
所述采集客户端,用于在所述目标采集用例运行过程中,确定下一场景标志;所述采集客户端,用于针对所述下一场景标志,生成对应的场景跳转命令;所述采集客户端,用于发送所述场景跳转命令至所述游戏客户端;所述采集客户端,用于接收所述游戏客户端返回针对所述场景跳转命令的反馈信息;或,所述采集客户端,用于发送查询命令,通过所述查询命令查询所述游戏客户端是否跳转成功;所述采集客户端,用于指示所述游戏客户端跳转至下一游戏场景,并采集所述下一游戏场景的性能数据;
所述游戏客户端,用于发送针对所述场景跳转命令的反馈信息;或,所述游戏客户端,用于接收查询命令,通过所述查询命令查询所述游戏客户端是否跳转成功;所述游戏客户端,用于根据所述场景跳转命令跳转至对应的下一游戏场景,并采集所述下一游戏场景的性能数据;所述场景跳转命令是所述采集客户端在所述目标采集用例运行过程中,根据下一场景标志生成的。
22.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至15或16至18中任一项所述的性能数据采集方法的步骤。
23.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至15或16至18中任一项所述的性能数据采集方法的步骤。
CN202110566910.6A 2021-05-24 2021-05-24 性能数据采集方法及装置、系统、电子设备、存储介质 Active CN113157593B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110566910.6A CN113157593B (zh) 2021-05-24 2021-05-24 性能数据采集方法及装置、系统、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110566910.6A CN113157593B (zh) 2021-05-24 2021-05-24 性能数据采集方法及装置、系统、电子设备、存储介质

Publications (2)

Publication Number Publication Date
CN113157593A CN113157593A (zh) 2021-07-23
CN113157593B true CN113157593B (zh) 2024-05-10

Family

ID=76877670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110566910.6A Active CN113157593B (zh) 2021-05-24 2021-05-24 性能数据采集方法及装置、系统、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN113157593B (zh)

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002175202A (ja) * 2000-09-26 2002-06-21 Fujitsu Ltd プログラム性能情報収集装置及びコンピュータ読取可能な記録媒体
CN104572444A (zh) * 2014-12-10 2015-04-29 网易(杭州)网络有限公司 一种游戏性能云测试平台及其测试方法
CN104951375A (zh) * 2015-07-01 2015-09-30 北京博睿宏远科技发展有限公司 基于函数拦截技术的手机app性能数据采集方法
CN105426278A (zh) * 2015-11-20 2016-03-23 北京畅游天下网络技术有限公司 一种客户端设备性能测试方法及系统
CN105653451A (zh) * 2015-12-29 2016-06-08 北京金山安全软件有限公司 一种软件性能测试方法及装置
CN106055470A (zh) * 2016-05-19 2016-10-26 网易(杭州)网络有限公司 游戏程序的性能测试方法、装置及系统
US9632921B1 (en) * 2015-11-13 2017-04-25 Microsoft Technology Licensing, Llc Validation using scenario runners
CN107273124A (zh) * 2017-06-12 2017-10-20 北京奇虎科技有限公司 软件运行性能信息的处理方法、装置及系统
CN108763076A (zh) * 2018-05-22 2018-11-06 深圳乐信软件技术有限公司 一种软件自动测试方法、装置、设备及介质
CN108920355A (zh) * 2018-05-31 2018-11-30 康键信息技术(深圳)有限公司 打点事件信息采集方法、装置、计算机设备和存储介质
CN109558313A (zh) * 2018-11-09 2019-04-02 口碑(上海)信息技术有限公司 构建异常测试场景的方法及装置
CN110457229A (zh) * 2019-08-23 2019-11-15 腾讯科技(深圳)有限公司 游戏性能监测方法、装置、电子设备及存储介质
CN110866178A (zh) * 2018-08-27 2020-03-06 阿里巴巴集团控股有限公司 一种数据处理方法、装置和机器可读介质
CN111240977A (zh) * 2020-01-07 2020-06-05 网易(杭州)网络有限公司 游戏场景的性能测试方法、装置、设备及存储介质
CN112346992A (zh) * 2020-11-27 2021-02-09 成都完美天智游科技有限公司 游戏测试方法、装置、系统、电子设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9104287B2 (en) * 2005-10-27 2015-08-11 International Business Machines Corporation System and method for data collection interface creation and data collection administration
CN104780164B (zh) * 2015-03-25 2016-12-21 腾讯科技(深圳)有限公司 一种运行游戏客户端的方法和装置
CN109550246B (zh) * 2017-09-25 2022-03-25 腾讯科技(深圳)有限公司 游戏客户端的控制方法、装置、存储介质和电子装置
CN110678239B (zh) * 2017-10-10 2024-02-09 谷歌有限责任公司 利用游戏元数据和量度的分布式基于样本的游戏剖析以及支持第三方内容的游戏api平台

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002175202A (ja) * 2000-09-26 2002-06-21 Fujitsu Ltd プログラム性能情報収集装置及びコンピュータ読取可能な記録媒体
CN104572444A (zh) * 2014-12-10 2015-04-29 网易(杭州)网络有限公司 一种游戏性能云测试平台及其测试方法
CN104951375A (zh) * 2015-07-01 2015-09-30 北京博睿宏远科技发展有限公司 基于函数拦截技术的手机app性能数据采集方法
US9632921B1 (en) * 2015-11-13 2017-04-25 Microsoft Technology Licensing, Llc Validation using scenario runners
CN105426278A (zh) * 2015-11-20 2016-03-23 北京畅游天下网络技术有限公司 一种客户端设备性能测试方法及系统
CN105653451A (zh) * 2015-12-29 2016-06-08 北京金山安全软件有限公司 一种软件性能测试方法及装置
CN106055470A (zh) * 2016-05-19 2016-10-26 网易(杭州)网络有限公司 游戏程序的性能测试方法、装置及系统
CN107273124A (zh) * 2017-06-12 2017-10-20 北京奇虎科技有限公司 软件运行性能信息的处理方法、装置及系统
CN108763076A (zh) * 2018-05-22 2018-11-06 深圳乐信软件技术有限公司 一种软件自动测试方法、装置、设备及介质
CN108920355A (zh) * 2018-05-31 2018-11-30 康键信息技术(深圳)有限公司 打点事件信息采集方法、装置、计算机设备和存储介质
CN110866178A (zh) * 2018-08-27 2020-03-06 阿里巴巴集团控股有限公司 一种数据处理方法、装置和机器可读介质
CN109558313A (zh) * 2018-11-09 2019-04-02 口碑(上海)信息技术有限公司 构建异常测试场景的方法及装置
CN110457229A (zh) * 2019-08-23 2019-11-15 腾讯科技(深圳)有限公司 游戏性能监测方法、装置、电子设备及存储介质
CN111240977A (zh) * 2020-01-07 2020-06-05 网易(杭州)网络有限公司 游戏场景的性能测试方法、装置、设备及存储介质
CN112346992A (zh) * 2020-11-27 2021-02-09 成都完美天智游科技有限公司 游戏测试方法、装置、系统、电子设备及存储介质

Also Published As

Publication number Publication date
CN113157593A (zh) 2021-07-23

Similar Documents

Publication Publication Date Title
CN110928774B (zh) 一种基于节点式的自动化测试系统
US7559001B2 (en) Method and apparatus for executing commands and generation of automation scripts and test cases
CN105704166B (zh) 机器人系统及其实现方法、客户端、服务器以及游戏系统
CN106776294B (zh) 安卓手机自动化测试方法和系统
CN110781085B (zh) 一种游戏自动化测试方法、装置、终端和计算机存储介质
CN106095666A (zh) 游戏自动化测试方法及相关装置
CN109669714A (zh) 固件升级方法、装置及计算机可读存储介质
CN108763086A (zh) 基于远程真机的脚本录制方法、终端及计算机可读存储介质
CN105740154A (zh) 一种网页游戏测试脚本生成方法及装置
CN112732587B (zh) 一种自动化测试日志的获取方法、装置、电子设备及存储介质
CN110413308B (zh) 软件运维方法、装置、设备及计算机存储介质
CN110086664A (zh) 一种接入设备故障处理方法及装置
CN108399303A (zh) 一种充电桩的模拟方法和装置
CN111934953A (zh) 基于国产处理器计算机平台的批量测试方法
CN113157593B (zh) 性能数据采集方法及装置、系统、电子设备、存储介质
JP3137583B2 (ja) 通信経路設定システム及びその方法
CN111212155B (zh) 日志调试方法、电视和存储介质
CN109985387B (zh) 自动化测试方法和装置
CN113535535A (zh) 游戏服务器的测试方法、装置、系统和计算机存储介质
CN114490751B (zh) 机器人故障的确定方法、装置、设备以及可读存储介质
CN114610605A (zh) 测试方法、装置、终端设备和存储介质
CN115357258A (zh) 应用的部署方法、装置、存储介质及电子装置
CN115278016A (zh) 红外智能拍摄方法及装置、红外热成像设备、介质
CN112506729B (zh) 一种故障模拟方法及装置
CN105339974A (zh) 模拟传感器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant