CN114191822B - 一种测试方法、装置、计算机设备、存储介质和产品 - Google Patents
一种测试方法、装置、计算机设备、存储介质和产品 Download PDFInfo
- Publication number
- CN114191822B CN114191822B CN202111400091.4A CN202111400091A CN114191822B CN 114191822 B CN114191822 B CN 114191822B CN 202111400091 A CN202111400091 A CN 202111400091A CN 114191822 B CN114191822 B CN 114191822B
- Authority
- CN
- China
- Prior art keywords
- test
- data
- simulation
- game
- service
- 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
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/368—Test management for test version control, e.g. updating test cases to a new software version
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- General Business, Economics & Management (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种测试方法、装置、计算机设备、存储介质和产品;本申请实施例可以获取游戏应用的版本信息和版本测试需求信息;根据版本信息,构建游戏应用的目标模拟客户端与模拟服务,得到目标模拟客户端的客户端程序数据以及模拟服务的服务数据;根据版本测试需求信息,生成测试驱动数据;根据测试驱动数据、客户端程序数据以及服务数据,向测试服务器发送测试指令,其中,测试指令指示测试服务器根据客户端程序数据与服务数据,生成目标模拟客户端与模拟服务,并根据测试驱动数据,通过目标模拟客户端对模拟服务进行测试;接收测试服务器基于测试指令返回的测试结果。该方案可以提高对游戏应用的模拟服务的测试效率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种测试方法、装置、计算机设备、存储介质和产品。
背景技术
游戏应用提供的模拟服务可以用于对游戏应用进行业务支持,例如,可以用于对游戏对局中的游戏功能进行业务支持。对游戏应用的模拟服务进行有效的测试有助于在实际应用中进行服务部署与风险把控。
在对相关技术的研究和实践过程中,本申请的发明人发现,由于游戏应用中存在复杂的匹配逻辑以及多客户端协作等的问题,当前对游戏应用的模拟服务进行测试的方式较为低效,并且需要消耗大量资源,使得当前对游戏应用的模拟服务进行测试的方法有待改进。
发明内容
本申请实施例提供一种测试方法、装置、计算机设备、存储介质和产品,可以提高对游戏应用的模拟服务的测试效率。
本申请实施例提供一种测试方法,包括:
获取游戏应用的版本信息和版本测试需求信息;
根据所述版本信息,构建所述游戏应用的目标模拟客户端与模拟服务,得到所述目标模拟客户端的客户端程序数据以及所述模拟服务的服务数据;
根据所述版本测试需求信息,生成测试驱动数据,其中,所述测试驱动数据用于驱动所述目标模拟客户端在游戏对局中的行为;
根据所述测试驱动数据、所述客户端程序数据以及所述服务数据,向测试服务器发送测试指令,其中,所述测试指令指示所述测试服务器根据所述客户端程序数据与所述服务数据,生成所述目标模拟客户端与所述模拟服务,并根据所述测试驱动数据,通过所述目标模拟客户端对所述模拟服务进行测试;
接收所述测试服务器基于所述测试指令返回的测试结果。
相应的,本申请实施例还提供一种测试装置,包括:
获取单元,用于获取游戏应用的版本信息和版本测试需求信息;
构建单元,用于根据所述版本信息,构建所述游戏应用的目标模拟客户端与模拟服务,得到所述目标模拟客户端的客户端程序数据以及所述模拟服务的服务数据;
生成单元,用于根据所述版本测试需求信息,生成测试驱动数据,其中,所述测试驱动数据用于驱动所述目标模拟客户端在游戏对局中的行为;
发送单元,用于根据所述测试驱动数据、所述客户端程序数据以及所述服务数据,向测试服务器发送测试指令,其中,所述测试指令指示所述测试服务器根据所述客户端程序数据与所述服务数据,生成所述目标模拟客户端与所述模拟服务,并根据所述测试驱动数据,通过所述目标模拟客户端对所述模拟服务进行测试;
接收单元,用于接收所述测试服务器基于所述测试指令返回的测试结果。
在一实施例中,所述构建单元,包括:
第一确定子单元,用于确定所述模拟服务的平台属性,并获取所述游戏应用的初始模拟客户端,其中,所述初始模拟客户端包括至少一个组件;
筛选子单元,用于根据所述平台属性,对所述初始模拟客户端进行组件筛选;
构建子单元,用于基于筛选结果,构建所述游戏应用的目标模拟客户端。
在一实施例中,所述构建子单元,用于:
设置目标模拟客户端的测试启动参数;基于筛选结果与设置结果,对所述初始模拟客户端进行构建处理,得到所述游戏应用的目标模拟客户端。
在一实施例中,所述生成单元,包括:
第二确定子单元,用于根据所述版本测试需求信息,确定目标模拟角色在所述游戏应用中的模拟交互信息,其中,所述模拟交互信息包括所述目标模拟角色的游戏操作信息,所述目标模拟角色为所述目标模拟客户端在所述游戏应用中对应的游戏角色;
第一生成子单元,用于生成与所述游戏操作信息对应的操作驱动数据;
第二生成子单元,用于基于所述操作驱动数据,生成测试驱动数据。
在一实施例中,所述第一生成子单元,用于:
确定与所述游戏操作信息对应的游戏操作指令;对所述游戏操作指令进行封装处理;根据处理结果,生成与所述游戏操作信息对应的操作驱动数据。
在一实施例中,所述第二生成子单元,用于:
获取所述游戏应用的游戏地图数据;确定所述目标模拟角色的寻路组件,其中,所述寻路组件用于指示所述目标模拟角色基于所述游戏地图数据,确定所述目标模拟角色在所述游戏应用中的路径信息;根据所述游戏地图数据与所述寻路组件,生成寻路驱动数据;基于所述操作驱动数据与所述寻路驱动数据,生成测试驱动数据。
在一实施例中,所述发送单元,包括:
数据获取子单元,用于获取目标模拟角色的模拟局外数据,其中,所述模拟局外数据包括所述目标模拟角色在游戏对局以外的角色数据,所述目标模拟角色为所述目标模拟客户端在所述游戏应用中对应的游戏角色;
建立子单元,用于建立所述目标模拟客户端与所述模拟服务之间的通信连接关系;
驱动子单元,用于基于所述通信连接关系,通过所述测试驱动数据与所述模拟局外数据,驱动所述目标模拟角色在所述游戏应用中的行为,以对所述模拟服务进行测试。
在一实施例中,所述数据获取子单元,用于:
通过所述模拟服务的调度服务器,获取所述游戏应用的历史用户的用户标识信息;根据所述用户标识信息,获取所述目标模拟角色的模拟局外数据。
在一实施例中,所述测试装置,还包括:
解析单元,用于从所述测试结果中解析出所述模拟服务的性能数据;
分析单元,用于从至少一个分析维度对所述性能数据进行分析,得到所述模拟服务的性能分析结果。
在一实施例中,所述性能数据包括所述模拟服务的资源消耗数据;所述分析单元,包括:
分类子单元,用于根据所述游戏应用的版本信息,对所述资源消耗数据进行分类处理,得到各版本对应的资源消耗数据;
比对分析子单元,用于基于分类结果,对所述资源消耗数据进行比对分析,得到所述模拟服务的性能分析结果。
在一实施例中,所述性能数据包括所述模拟服务的对象创建数据;所述分析单元,包括:
划分子单元,用于对所述模拟服务的测试阶段进行划分,得到至少一个子测试阶段;
第三确定子单元,用于确定各个所述子测试阶段对应的对象创建数据;
差量分析子单元,用于对所述对象创建数据进行差量分析,得到所述模拟服务的性能分析结果。
相应的,本申请实施例还提供一种存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如本申请实施例所示的测试方法的步骤。
相应的,本申请实施例还提供一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如本申请实施例所示的测试方法的步骤。
相应的,本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现如本申请实施例所示的测试方法的步骤。
本申请实施例可以获取游戏应用的版本信息和版本测试需求信息;根据所述版本信息,构建所述游戏应用的目标模拟客户端与模拟服务,得到所述目标模拟客户端的客户端程序数据以及所述模拟服务的服务数据;根据所述版本测试需求信息,生成测试驱动数据,其中,所述测试驱动数据用于驱动所述目标模拟客户端在游戏对局中的行为;根据所述测试驱动数据、所述客户端程序数据以及所述服务数据,向测试服务器发送测试指令,其中,所述测试指令指示所述测试服务器根据所述客户端程序数据与所述服务数据,生成所述目标模拟客户端与所述模拟服务,并根据所述测试驱动数据,通过所述目标模拟客户端对所述模拟服务进行测试;接收所述测试服务器基于所述测试指令返回的测试结果。
该方案可以构建用于模拟真实客户端的目标模拟客户端,并通过该目标模拟客户端对模拟服务进行测试,这样的话,即可避免使用大量真实客户端来进行测试所导致的资源消耗与效率低下,从而提高对游戏应用的模拟服务进行测试的效率。并且,该方案能够根据游戏应用的版本测试需求信息生成测试驱动数据,以通过该测试驱动数据,驱动目标模拟客户端在游戏对局中的行为,这样的话,在实现了以目标模拟客户端模拟真实客户端的基础上,还能够通过测试驱动数据实现对目标模拟客户端的控制,例如,通过测试驱动数据实现目标模拟客户端与模拟服务之间网络同步,又如,通过测试驱动数据控制目标模拟客户端在游戏对局中的行为等等。这样的话,不仅有利于全面地对模拟服务的性能进行评估,而且大大增加了针对模拟服务进行测试的自动化程度与可靠度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的测试方法的场景示意图;
图2是本申请实施例提供的测试方法的流程图;
图3是本申请实施例提供的测试方法的测试地图示意图;
图4是本申请实施例提供的测试方法的目标模拟客户端构建示意图;
图5是本申请实施例提供的测试方法的模拟客户端分析示意图;
图6是本申请实施例提供的测试方法的目标模拟客户端构建命令示意图;
图7是本申请实施例提供的测试方法的指令封装结果示意图;
图8是本申请实施例提供的测试方法的行为驱动架构示意图;
图9是本申请实施例提供的测试方法的目标模拟客户端的行为编辑示意图;
图10是本申请实施例提供的测试方法的游戏地图数据的打包配置示意图;
图11是本申请实施例提供的测试方法的另一场景示意图;
图12是本申请实施例提供的测试方法的模拟局外数据获取示意图;
图13是本申请实施例提供的测试方法的另一模拟局外数据获取示意图;
图14是本申请实施例提供的测试方法的资源消耗示意图;
图15是本申请实施例提供的测试方法的另一资源消耗示意图;
图16是本申请实施例提供的测试方法的另一资源消耗示意图;
图17是本申请实施例提供的测试方法的资源消耗数据的分析示意图;
图18是本申请实施例提供的测试方法的另一资源消耗数据的分析示意图;
图19是本申请实施例提供的测试方法的对象创建数据的划分示意图;
图20是本申请实施例提供的测试方法的对象创建数据的差量分析示意图;
图21是本申请实施例提供的测试方法的另一流程示意图;
图22是本申请实施例提供的测试方法的工程结构示意图;
图23是本申请实施例提供的测试方法的压测流水线示意图;
图24是本申请实施例提供的测试方法的模拟服务监控示意图;
图25是本申请实施例提供的测试方法的另一模拟服务监控示意图;
图26是本申请实施例提供的测试方法的模块单帧平均耗时示意图;
图27是本申请实施例提供的测试方法的函数耗时分析示意图;
图28是本申请实施例提供的测试方法的另一函数耗时分析示意图;
图29是本申请实施例提供的测试方法的另一函数耗时分析示意图;
图30是本申请实施例提供的测试方法的毛刺点分析示意图;
图31是本申请实施例提供的测试方法的函数调用次数分析示意图;
图32是本申请实施例提供的测试方法的游戏循环次数的版本趋势示意图;
图33是本申请实施例提供的测试装置的结构示意图;
图34是本申请实施例提供的测试装置的另一结构示意图;
图35是本申请实施例提供的测试装置的另一结构示意图;
图36是本申请实施例提供的测试装置的另一结构示意图;
图37是本申请实施例提供的测试装置的另一结构示意图;
图38是本申请实施例提供的测试装置的另一结构示意图;
图39是本申请实施例提供的测试装置的另一结构示意图;
图40是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种测试方法、装置、计算机设备、存储介质和产品。具体地,本申请实施例提供适用于计算机设备的测试装置。其中,该计算机设备可以为服务器或终端等设备。具体地,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。该终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载电脑等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请实施例将以计算机设备为服务器(为了区分,可以将该服务器称为主控服务器)为例,来介绍测试方法。
参见图1,主控服务器10可以获取游戏应用的版本信息与版本测试需求信息,并且,主控服务器10可以根据版本信息,构建游戏应用的目标模拟客户端与模拟服务,得到目标模拟客户端的客户端程序数据以及模拟服务的服务数据;根据版本测试需求信息,生成测试驱动数据,其中,该测试驱动数据用于驱动目标模拟客户端在游戏对局中的行为。
进一步地,主控服务器10可以根据测试驱动数据、客户端程序数据以及服务数据,向测试服务器20发送测试指令,其中,该测试指令指示测试服务器根据客户端程序数据与服务数据,生成目标模拟客户端与模拟服务,并根据测试驱动数据,通过目标模拟客户端对模拟服务进行测试。值得注意的是,在实际应用中,测试服务器20可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
主控服务器10可以接收测试服务器基于测试指令返回的测试结果,例如,主控服务器10可以从测试结果中解析出模拟服务的性能数据,并从至少一个分析维度对该性能数据进行分析,以得到该模拟服务的性能分析结果。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本申请实施例提供的一种测试方法,该方法可以由服务器或终端执行,也可以由服务器和终端共同执行;本申请实施例以测试方法由服务器执行为例来进行说明。在本申请实施例中,该方法可以由集成在服务器中的测试装置来执行,如图2所述,该测试方法的具体流程可以如下:
101、获取游戏应用的版本信息和版本测试需求信息。
其中,应用指的是应用软件(Application,APP),是和系统软件相对应的,是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,应用可以包括应用软件包和用户程序。作为示例,应用可以为完成某项或多项特定工作的计算机程序,例如,应用可以运行在用户模式,可以和用户进行交互,具有可视的用户界面。
其中,游戏应用为实现游戏功能的应用,例如,游戏应用提供包括在线游戏与离线游戏的功能,其中,在线游戏指以互联网为传输媒介,以游戏运营商服务器和用户计算机为处理终端,以游戏客户端软件为信息交互窗口的旨在实现娱乐、休闲、交流和取得虚拟成就的具有可持续性的个体性多人游戏。
在一实施例中,游戏应用可以为基于虚拟引擎(UnrealEngine)4开发的应用,其中,UE4为游戏引擎的一种,游戏引擎具体指的是一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。在实际应用中,可以使用UE4开发第一人称射击游戏,潜行类游戏,格斗游戏,角色扮演游戏等多种不同游戏类型对应的游戏应用。
其中,游戏应用的版本信息为描述游戏应用的游戏版本的相关信息,例如,版本信息具体可以为游戏应用的版本号。
其中,游戏应用的版本测试需求信息,指的是对目标游戏版本下的游戏应用进行测试时的需求信息。在实际应用中,不同游戏版本的游戏应用可以具有不同的版本测试需求信息。作为示例,游戏应用中可以包括至少一个游戏场景,针对该游戏应用在某游戏版本的模拟服务进行测试时,版本测试需求信息具体可以包括针对该游戏应用中的目标游戏场景,所能够承载的玩家数量与能够支持的玩家行为进行测试。
在本申请中,获取游戏应用的版本信息和版本测试需求信息的方式可以有多种,例如,服务器可以通过向其他服务器请求以获取游戏应用的版本信息和版本测试需求信息;又如,可以通过向终端请求以游戏应用的版本信息和版本测试需求信息;又如,服务器可以将接收到的版本信息与版本测试需求信息存储在本地,这样的话,即可在需要的时候直接调取游戏应用的版本信息和版本测试需求信息。
102、根据版本信息,构建游戏应用的目标模拟客户端与模拟服务,得到目标模拟客户端的客户端程序数据以及模拟服务的服务数据。
其中,客户端(Client)可以称为用户端,是指与服务器相对应,为客户提供本地服务的程序。
其中,模拟客户端指的是模拟真实客户端的客户端,真实客户端指的与真实用户对应的客户端。在本申请中,目标模拟客户端指的是对模拟服务进行测试所需的模拟客户端。
其中,游戏应用的服务用于支持游戏应用的运行,例如,游戏应用的服务可以用于对游戏应用中的游戏流程进行控制,譬如,用于对游戏对局的游戏流程进行控制;又如,游戏应用的服务可以用于对游戏应用中的游戏数据进行管理,譬如,用于对游戏对局中的游戏数据进行管理;等等。
在一实施例中,可以基于UE4开发游戏应用的服务。作为示例,游戏应用可以支持多用户游戏,例如,可以基于客户端-服务器模型实现多用户游戏,并且,该游戏应用的服务具体可以为UE4中的专用服务器(DedicatedServer,DS),其中,DS作为游戏应用提供的服务,对游戏应用的游戏状态具有权威性,而连接的客户端将保持近似状态。在游戏应用中,DS能够作出对游戏产生重要影响的决定,例如可以包括权威状态,处理客户联系,访问新地图,并处理开始比赛,结束比赛等整个游戏流程。
其中,模拟服务指的是模拟游戏应用所提供的真实服务的服务,真实服务指的是将游戏应用开放给真实用户使用时所提供的服务。在本申请中,可以在将游戏应用的服务面向真实用户运行之前,通过构建与真实服务相似或相同的模拟服务,来对该服务进行测试,以便游戏用在向真实用户提供该服务之前,能够确定该服务的服务性能,从而实现在实际应用中按需进行服务部署,并更好地应用实际应用过程中出现的风险等。
作为示例,可以基于UE4开发游戏应用的服务,并且,可以基于UE4构建该服务对应的模拟服务,并在后续针对构建的模拟服务进行测试,以便可以基于测试结果确定真实服务的服务性能。
本申请可以应用于对不同游戏版本的游戏应用进行服务测试,因此,可以根据游戏应用的版本信息,构建不用游戏版本下游戏应用的目标模拟客户端与模拟服务,也就是说,本申请可以通过构建与游戏版本对应的目标模拟客户端与模拟服务,实现对该游戏版本下的游戏应用进行服务测试。
在本申请中,构建游戏应用的目标模拟客户端,指的是生成该目标模拟客户端对应的程序数据,即本申请中的客户端程序数据,以使得服务器或者终端能够基于该客户端程序数据运行该目标模拟客户端。类似地,构建游戏应用的模拟服务,指的是生成该模拟服务对应的程序数据,即本申请中的服务数据,以使得服务器或终端能够基于该服务数据运行该模拟服务。
构建游戏应用的目标模拟客户端与模拟服务的方式可以有多种,例如,可以基于游戏引擎,来构建该游戏应用的目标模拟客户端与模拟服务。值得注意的是,用于构建目标模拟客户端的游戏引擎,用于构建模拟服务的游戏引擎,以及用于开发游戏应用的游戏引擎可以相同,也可以不相同,本申请不对此作限制。
在一实施例中,可以基于UE4构建游戏应用的目标模拟客户端与模拟服务,且该服务具体可以为DS。而在传统的压测方案中,是通过实现链路层和交互逻辑来模拟前后台通信,但是在UE4的DS中,无论是实现UE4引擎完整的网络成,还是重写客户端以实现和DS的交互逻辑都是十分困难的。现有的解决方式里,包括通过人工智能(ArtificialIntelligence,AI)来对模拟服务进行测试,由于考虑到在游戏应用,尤其是多人游戏对局中网络同步对性能的消耗占比很大,而由于基于AI的测试方式缺少网络同步模块,使得基于AI的模拟服务测试方法从长期角度来评估是不可靠的。
作为示例,本申请对基于UE4开发的游戏应用制作了如图3所示的测试地图,其中,WorldTick指的是UE4对应的WorldTickTime模块,即表示该游戏应用的总TICK耗时;NetWorldTickTime指的是UE4对应的NETTick模块,即表示该游戏应用的网络TICK耗时;NetBroadcastTickTime指的是UE4对应的Net Broadcast Tick Time模块,即表示该游戏应用的网络同步耗时;TickableTickTime指的是UE4对应的GT Tickable Time模块,主要是该游戏应用的定时器相关耗时;TickTime:指的是UE4对应的GT Tickable Time模块,主要是用于每帧更新Actor的Tick系统耗时。其中,在UE4中,TICK指的是定时器,产生于游戏的每一帧,例如,在一个运行在每秒60帧的游戏中,“Tick”事件会在每一秒产生60次;Actor指的是根据UE4中的Actor类而生成的对象类型,在UE4中,Actor类是可以放到游戏场景中的游戏对象的基本类型,具体地,在本申请中,可将以大写字母A作为命名开头来的类(例如AXXXX),简称为Actor类。
参照图3可知,在该示例中,游戏应用中网络同步的性能消耗在worldTick中占比约18%,因此,若对模拟服务进行测试的过程中未将网络同步的性能消耗考虑在内,则会降低测试结果的准确度。
为了解决该问题,现有的技术方案包括了通过真实客户端来对模拟服务进行测试,例如,可以通过使用手机客户端来实现,但由于手机资源有限,使得该解决方案无法支撑大规模的容量测试。
因此,本申请通过构建模拟真实客户端的目标模拟客户端,来对所构建的模拟服务进行测试,从而解决了现有技术中未将网络同步模块考虑在内的问题,并解决了现有技术中应用真实客户端而导致的容量测试瓶颈问题。在一实施例中,可以通过游戏引擎构建游戏应用的初始模拟客户端,进而基于该初始模拟客户端生成目标模拟客户端,具体地,步骤“构建游戏应用的目标模拟客户端”,可以包括:
确定模拟服务的平台属性,并获取游戏应用的初始模拟客户端,其中,初始模拟客户端包括至少一个组件;
根据平台属性,对初始模拟客户端进行组件筛选;
基于筛选结果,构建游戏应用的目标模拟客户端。
其中,模拟服务的平台属性指的是模拟服务对应的平台类型,例如,平台类型可以包括Linux平台类型,Windows平台类型等等。
在实际应用中,可以构建与模拟服务的平台属性(为了便于描述,后文中可以将“模拟服务的平台属性”简称为“服务平台属性”)一致的目标模拟客户端,以避免后续通过目标模拟客户端对模拟服务进行测试时可能存在的平台不兼容问题。
因此,在本申请中,可以确定待测的模拟服务对应的平台属性,并获取与该平台属性一致的初始模拟客户端,其中,参见图4可知,初始模拟客户端为开发目标模拟客户端的过程中的过渡程序,具体地,初始模拟客户端可以包括至少一个组件,且每个组件对应的平台属性可以与服务平台属性一致、也可以与服务平台属性不一致。
类似地,为了避免测试过程中平台不兼容的问题,可以根据服务平台属性,对初始模拟客户端进行组件筛选,以将初始模拟客户端的组件中,与服务平台属性不一致且对测试有影响的组件筛选出来。进一步地,即可基于筛选结果,构建游戏应用的目标模拟客户端。
参见图5可知,对于构建windows类型的模拟客户端的方案,由于windows类型的模拟客户端的自动化便利性不高,且存在图形处理器(Graphics Processing Unit,GPU)资源与中央处理器(Central Processing Unit,CPU)资源消耗较高的问题,此外,该方案中性能优化已达到瓶颈,加之需要大量的服务器资源,导致基于该方案实现对游戏应用的模拟服务进行测试时,对资源的需求较大且不利于提高测试效率。
进一步地,考虑到游戏引擎跨平台的特性,因此,可以以构建Linux版本的目标模拟客户端为例。具体地,作为示例,可以以游戏引擎为UE4,且模拟服务为Linux版本的DS为例。具体地,可以确定模拟服务的平台属性为Linux平台类型,并获取游戏应用的初始模拟客户端,例如,可以基于UE4开发Linux类型的初始模拟客户端,并且,该初始模拟客户端可以包括至少一个组件。在实际应用中,由于这些组件可以包括其他项目或其他业务的可复用组件(可以将这些组件称为“外部组件”),也可以包括在开发初始模拟客户端过程中所开发的组件,例如,在游戏对局中提供功能支持的组件(对应地,可以将这些组件称为局内部分的“内部组件”),可知,对于初始模拟客户端而言,内部组件的平台属性可以与初始客户端的平台属性一致,而外部组件的平台属性则不一定与初始客户端的平台属性一致。
作为示例,在本实施例中,可以以初始客户端的外部组件没有对应Linux版本为例,因此,可以根据服务平台属性,对初始模拟客户端进行组件筛选,使得筛选后的初始模拟客户端只包括内部组件。
进一步地,即可基于筛选结果,构建游戏应用的目标模拟客户端。具体地,在该示例中,由于基于UE4构建的DS具有完整的局内逻辑(值得注意的是,在本申请中,“局内”指的是游戏应用中游戏对局内,对应地,“局外”指的是游戏应用中游戏对局外),因此,在基于初始模拟客户端构建目标模拟客户端的过程中,可以沿用与DS相同的打包方式,具体地,可以通过修改引擎代码,使得仅对Linux版本的初始模拟客户端打包局内逻辑,无需关注外部组件,避免了外部组件无Linux版本的问题,亦完成了对初始模拟客户端进行组件筛选。进一步地,还可以按照平台的打包逻辑,使得目标模拟客户端和DS打包内容一致,从而保证了局内的完整性,具体地,参见图6,找到代码目录进行更新后,并执行构建命令,参考1001可知其中构建参数选择平台为Linux。
在实际应用中,考虑到游戏应用中具有异常复杂的局外组队及匹配压测脚本逻辑,这无疑增加了对模拟服务进行测试的难度;此外,考虑到在通过目标模拟客户端对模拟服务进行测试时,如何降低目标模拟客户端的性能消耗亦是影响测试效率的重要因素,因此,在构建游戏应用的目标模拟客户端的过程中,还可以通过设置目标模拟客户端的测试启动参数,以解决上述难点,具体地,步骤“基于筛选结果,构建游戏应用的目标模拟客户端”,可以包括:
设置目标模拟客户端的测试启动参数;
基于筛选结果与设置结果,对初始模拟客户端进行构建处理,得到游戏应用的目标模拟客户端。
其中,目标模拟客户端的测试启动参数,为通过目标模拟客户端对模拟服务进行测试时,在测试启动阶段对目标模拟客户端的相关程序运行方式作出设置的参数。
在一实施例中,目标模拟客户端的测试启动参数可以包括目标模拟客户端的服务连接参数,具体地,可以基于该服务连接参数,在测试启动阶段建立目标模拟客户端与模拟服务之间的连接关系,如网络连接关系等。作为示例,目标模拟客户端的服务连接参数可以包括网际互连协议(Internet Protocol,IP)参数,端口参数等。
例如,通过对目标模拟客户端的服务连接参数中所涉及的IP参数与端口参数进行设置,可以实现在测试启动阶段,目标模拟客户端即可通过IP与端口连入模拟服务,从而直接开始单局,而无需关注游戏应用中复杂的开局流程。作为示例,在测试启动阶段,Linux版本的目标模拟客户端可以通过IP与端口连入DS,从而直接开始单局,而无需关注游戏应用中复杂的开局流程。
在另一实施例中,目标模拟客户端的测试启动参数可以包括目标模拟客户端的性能消耗参数,具体地,可以基于该性能消耗参数,在测试启动阶段对目标模拟客户端的性能消耗进行设置,从而降低测试过程中目标模拟客户端的性能消耗。作为示例,目标模拟客户端的性能消耗参数可以包括帧数设置参数,线程设置参数,渲染设置参数等,其中,帧数设置参数可以用于设置游戏应用每秒循环次数,从而实现锁帧的效果;线程设置参数可以用于设置在测试阶段以单线程的形式运行;渲染设置参数可以用于设置在测试阶段是否开启渲染,具体地,可以将渲染设置参数设置为去渲染,以实现在测试阶段去渲染。
在本申请中,设置目标模拟客户端的测试启动参数的方式可以有多种,例如,可以按需设置目标模拟客户端的服务连接参数与性能消耗参数,来设置目标模拟客户端的测试启动参数。作为示例,可以对服务连接参数所涉及到的IP参数与端口参数进行设置,目标模拟客户端即可通过IP与端口连入模拟服务,从而直接开始单局,而无需关注游戏应用中复杂的开局流程;将性能消耗参数所涉及到的帧数设置参数设置为预设帧数,从而实现锁帧功能;将性能消耗参数所涉及到的线程设置参数设置为单线程;将渲染设置参数设置为去渲染。这样的话,在测试阶段,不仅目标模拟客户端能够跳过局外逻辑,避免异常复杂的局外组队及匹配压测脚本逻辑,而且还降低了目标模拟客户端的性能消耗,从而大大提高了测试效率。
在本申请中,在对初始模拟客户端进行组件筛选,并设置了测试启动参数后,即可对初始模拟客户端进行构建处理,得到游戏应用的目标模拟客户端。
103、根据版本测试需求信息,生成测试驱动数据,其中,测试驱动数据用于驱动目标模拟客户端在游戏对局中的行为。
其中,游戏对局是指为完成某一游戏目标而参与的一段游戏过程,针对不同的游戏,上述游戏目标也有所不同,例如游戏目标可以是通过某一关卡、击杀敌方、推倒敌方大本营、击杀目标数量的怪物等,本申请实施例对此不作限定。以第一人称射击类游戏(First-person shooting game,FPS)为例,一个游戏对局的游戏目标可以是击杀目标数量的敌方角色、占领敌方大本营等,其中,FPS游戏是一种以玩家的主观视角来进行射击比赛的游戏,玩家无需再操纵屏幕中的虚拟角色来进行游戏,而是身临其境地体验整个游戏的比赛过程。
其中,目标模拟客户端在游戏对局中的行为指的是目标模拟角色在游戏对局中的行为,此处目标模拟角色指的是该目标模拟客户端对应的游戏角色,如玩家通过该目标模拟客户端在游戏过程中代入和操控的对象。根据游戏应用的不同,目标模拟角色在游戏中的行为可以有多种,例如,目标模拟角色在游戏中的行为可以包括移动,例如行走、奔跑、跳跃、匍匐等,且可以变换不同的姿态;还可以包括开火,射击等等。
在本申请中,由于游戏应用的版本测试需求信息,指的是对目标游戏版本下的游戏应用进行测试时的需求信息。因此,在本申请中,可以根据游戏应用的版本测试需求信息,生成对应的测试驱动数据,以使得能够通过测试驱动数据驱动目标模拟客户端在游戏对局中的行为,从而实现对目标游戏版本下的游戏应用进行测试。
由于测试驱动数据用于驱动目标模拟客户端在游戏对局中的行为,具体地,可以通过驱动目标模拟角色在游戏对局中的行为实现,因此,可以根据版本测试需求信息,确定目标模拟角色在游戏应用中的游戏操作信息,进而生成与该游戏操作信息对应的操作驱动数据,以使得目标模拟客户端可以基于该操作驱动数据,驱动目标模拟角色在游戏应用中遵循该游戏操作信息进行行动,具体地,步骤“根据版本测试需求信息,生成测试驱动数据”,可以包括:
根据版本测试需求信息,确定目标模拟角色在游戏应用中的模拟交互信息,其中,模拟交互信息包括目标模拟角色的游戏操作信息,目标模拟角色为目标模拟客户端在游戏应用中对应的游戏角色;
生成与游戏操作信息对应的操作驱动数据;
基于操作驱动数据,生成测试驱动数据。
其中,模拟交互信息指的目标模拟角色在游戏应用中的交互信息,例如,模拟交互信息可以包括目标模拟角色在游戏对局内的交互信息,其中,目标模拟角色在游戏对局内的交互信息表征目标模拟角色在游戏对局内的行为;又如,模拟交互信息可以包括目标模拟角色在游戏对局外的交互信息,其中,目标模拟角色在游戏对局外的交互信息表征目标模拟角色在游戏对局外的行为,例如,在游戏商店购买物资,组队,调整角色穿着,添加好友等。
其中,游戏操作信息指的是目标模拟角色在游戏对局内的操作信息,该操作信息表征目标模拟角色在游戏对局内的操作行为,值得注意的是,在本申请中,操作信息为交互信息的一种。例如,目标模拟角色在游戏对局中的操作行为可以包括行走、奔跑、跳跃、匍匐等,且可以变换不同的姿态;还可以包括开火、射击、关火等等。
在本申请中,可以根据游戏应用的版本测试需求信息,确定目标模拟角色在游戏应用中的模拟交互信息,以得到与目标游戏版本对应的模拟交互信息,以使得后续基于该模拟交互信息对模拟服务进行测试时,可以得到该目标游戏版本对应的测试结果。例如,可以通过确定目标模拟角色在游戏对局中的交互信息、以及目标模拟角色在游戏对局外的交互信息,来确定目标模拟角色在游戏应用中的模拟交互信息。
进一步地,即可生成与游戏操作信息对应的操作驱动数据,其中,操作驱动数据指的是能够驱动目标模拟角色在游戏应用中的操作行为的相关数据,其中,此处的操作行为是基于游戏操作信息确定的。
在本申请中,生成与游戏操作信息对应的操作驱动数据的方式可以有多种,例如,操作驱动数据的数据形式可以为程序数据,则可以将游戏操作信息转换为与之对应的游戏操作指令,进一步地,为了降低对系统架构的扩展时的难度、以及降低程序之间的耦合性,可以采用面向接口编程的思想来生成与游戏操作信息对应的操作驱动数据,具体地,步骤“生成与游戏操作信息对应的操作驱动数据”,可以包括:
确定与游戏操作信息对应的游戏操作指令;
对游戏操作指令进行封装处理;
根据处理结果,生成与游戏操作信息对应的操作驱动数据。
其中,游戏操作指令是用于控制目标模拟角色在游戏应用中执行对应的操作行为。例如,游戏操作信息可以指示目标模拟角色在游戏对局中执行跳跃行为,则该游戏操作信息对应的游戏操作指令可以为,实现目标模拟角色在在游戏对局中执行跳跃行为的程序指令。
进一步地,可以对游戏操作指令进行封装处理。其中,封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。
作为示例,游戏操作信息指示的游戏操作,具体可以包括:跳跃,蹲下,匍匐,跑步,行走,转身,开火与停火。参见图7,在确定各游戏操作信息对应的游戏操作指令后,可以分别对这些游戏操作指令进行封装处理,得到调用各游戏操作指令的接口。
进一步地,即可根据对游戏操作指令进行封装处理的处理结果,生成与游戏操作信息对应的操作驱动数据。
在一实施例中,游戏引擎可以为UE4,模拟服务为Linux版本的DS,目标模拟客户端亦为Linux版本的模拟客户端。参见图8,可以利用Unlua机制通过程序控制目标模拟客户端来实现基本的行为。其中,Unlua机制为UE4下特性丰富且高度优化的Lua脚本插件,它遵循UE4的编程模式,简单易上手,目前已经被应用在大量的大型项目中。其中,Lua则是脚本语言的一种,很多应用程序、游戏使用Lua作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。具体地,图8中Client指的是目标模拟客户端;PlayerController为与该目标模拟客户端对应的控制器;AutoTestComponent为挂载在PlayerController上的自动测试组件;BPC_PCAutoTestComponent则为挂载在autotestComponent上的Lua脚本,其中,在UE4中,可以通过蓝图去指导组件的行为,而蓝图所指示的行为可以通过Lua脚本逻辑来编写。值得注意的是,在本申请中,AutoTestComponent可以基于C++实现,但是这会导致无法热更新的问题,即每次脚本代码变更时都需要对应地构建新的目标模拟客户端。而为了解决这个问题,在本申请中可以通过在AutoTestComponent上挂载BPC_PCAutoTestComponent,以实现可用Lua脚本热更脚本。
在该实施例中,除了可以如图8所示地在PlayerController上挂载自动测试组件,并基于Unlua机制调用编写好的Lua脚本以外,还可以将目标模拟客户端向服务器发送的各种基础操作的远程过程调用(Remote Procedure Call,RPC)命令封装成应用程序接口(Application Programming Interface,API),得到如图7所示的各个API。进一步地,即可如图9所示,在Lua中按特定格式配置即可编辑目标模拟角色的行为,具体地,图9中设置了目标模拟角色创建后,先聚集在坐标点{47140,-5302,2212}处,再奔跑到坐标点{45979,-5253,2165}处,再进行跳跃、匍匐、跳跃,再行走到坐标点{46940,-4826,2219}处,再进行开火、闭火、跳跃。
在本申请中,在生成与游戏操作信息对应的操作驱动数据后,即可进一步地,基于该操作驱动数据,生成测试驱动数据。对于诸如开火、跳跃等目标模拟角色的操作行为,能够通过前述步骤进行控制,但是,考虑到在游戏应用中,目标模拟客户端除了需要模拟真实客户端执行游戏操作行为以外,还需要模拟真实客户端的寻路行为,此外,考虑到在复杂的关卡中调用客户端的罗盘控制方向是不现实的,因此,在本申请中可以进一步地针对目标模拟客户端实现自动寻路功能,以使得目标模拟角色能够在游戏对局中进行自动寻路,从而更好地对模拟真实客户端对模拟服务进行测试,具体地,步骤“基于操作驱动数据,生成测试驱动数据”,可以包括:
获取游戏应用的游戏地图数据;
确定目标模拟角色的寻路组件,其中,寻路组件用于指示目标模拟角色基于游戏地图数据,确定目标模拟角色在游戏应用中的路径信息;
根据游戏地图数据与寻路组件,生成寻路驱动数据;
基于操作驱动数据与寻路驱动数据,生成测试驱动数据。
其中,游戏应用的游戏地图数据的数据形式可以有多种,例如,可以导航网络的形式。
其中,寻路组件指的是能够实现在游戏应用中自动寻路的功能模块。在本申请中,目标模拟角色的寻路组件用于指示目标模拟角色基于游戏地图数据,确定目标模拟角色在游戏应用中的路径信息,以使得在测试过程中,目标模拟角色可以遵循该路径信息在游戏中移动。
确定寻路组件的方式可以有多种,例如,可以按照需求开发能够实现自动寻路功能的寻路组件。又如,可以参考游戏应用所具有的寻路组件,实现目标模拟角色的寻路组件,作为示例,游戏引擎可以为UE4,模拟服务为Linux版本的DS,目标模拟客户端亦为Linux版本的模拟客户端,可以通过获取游戏应用的导航网络来获取游戏应用的游戏地图数据,且该游戏应用具有实现自动寻路功能的寻路组件(为了区别,可以将该寻路组件简称为游戏自带寻路组件),则在生成目标模拟角色的寻路组件(为了区别,可以将该寻路组件简称为目标模拟寻路组件)时,可以参考游戏自带寻路组件的实现逻辑,在目标模拟客户端的PlayerController上增加相关逻辑,具体可以使用PathFollowingComponent和Navmesh实现,其中,PathFollowingComponent是游戏引擎提供的寻路组件,其负责寻路,并能沿着预设路线移动到目的地;Navmesh指的是导航网络。
值得注意的是,在实际应用中,在构建游戏应用的客户端时,还可以修改客户端的打包配置,使得在打包对模拟服务进行测试所需的目标模拟客户端时会包含游戏应用的游戏地图数据,如导航网络,而在打包供真实用户使用的手机客户端时则不包含游戏应用的游戏地图数据。作为示例,可以通过如图10所示的代码,设置不允许在手机客户端进行cook(构建)。
由上可知,本申请能够基于Unlua机制来控制目标模拟客户端的行为,一方面游戏本身使用Unlua脚本开发功能,开发实现便捷;另一方面,Lua脚本无需版本编译,可灵活调整压测场景以响应不同的压测需求。
在获取游戏应用的游戏地图数据,以及确定目标模拟角色的寻路组件后,即可根据游戏地图数据与寻路组件,生成寻路驱动数据。例如,可以将游戏地图数据与寻路组件作为寻路驱动数据;又如,可以在游戏地图数据与寻路组件的基础上,添加驱动目标模拟角色实现寻路所需的其他数据,从而得到寻路驱动数据。
类似地,基于操作驱动数据与寻路驱动数据,生成测试驱动数据的方式可以有多种,例如,可以将操作驱动数据与寻路驱动数据作为测试驱动数据;又如,可以在操作驱动数据与寻路驱动数据的基础上,添加对模拟服务进行测试所需的其他数据,从而得到测试驱动数据。
104、根据测试驱动数据、客户端程序数据以及服务数据,向测试服务器发送测试指令,其中,测试指令指示测试服务器根据客户端程序数据与服务数据,生成目标模拟客户端与模拟服务,并根据测试驱动数据,通过目标模拟客户端对模拟服务进行测试。
值得注意的是,在本申请中,测试服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一实施例中,参考图11,可以测试服务器具体包括施压服务器与被压服务器为例。值得注意的是,类似地,施压服务器与被压服务器均可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。本申请不对此做限制。
其中,在主控服务器随游戏版本构建出目标模拟客户端与模拟服务后,可以将目标模拟客户端分发到施压服务器,具体地,可以通过将目标模拟客户端的客户端程序数据分发到施压服务器来实现;并将模拟服务分发到被压服务器,具体地,可以通过将模拟服务的服务数据分发到被压服务器来实现。值得注意的是,在本申请中,由于是通过目标模拟客户端来对模拟服务进行压测的,因此,可以将客户端程序数据所在的服务器称为压测服务器,将服务数据所在的服务器称为被测服务器。主控服务器、压测服务器以及被测服务器之间可以通过有线或无线通信方式进行直接或间接地连接,以通过服务器之间的协作实现本申请所述的测试方式。
此外,在实际应用中,可以按需将测试驱动数据发送给测试服务器,例如,主控服务器可以响应于测试服务器的数据请求,向测试服务器发送测试驱动数据;又如,主控服务器可以在分发客户端程序数据与服务数据时,亦将测试驱动数据下发至测试服务器;等等。
类似地,根据测试驱动数据、客户端程序数据以及服务数据,向测试服务器发送测试指令的方式可以有多种,例如,主控服务器可以响应于测试服务器的测试请求,向测试服务器发送测试指令;又如,主控服务器可以在检测到测试所需的相关数据分发完成时,结合业务需求,主动向测试服务器发送测试指令;等等。
其中,测试指令用于指示测试服务器根据客户端程序数据与服务数据,生成目标模拟客户端与模拟服务,例如,指示施压服务器根据客户端程序数据生成目标模拟客户端,指示被压服务器根据服务数据生成模拟服务。
在本申请中,向测试服务器发送测试指令,可以触发测试服务器根据测试驱动数据,通过目标模拟客户端对模拟服务进行测试。在一实施例中,模拟服务具体可以为,模拟对游戏应用中的游戏对局进行统筹的服务,因为考虑到对模拟服务进行测试时,局外数据的带入是会对模拟服务的性能造成影响的,例如对于从局外带入的游戏任务数据,在局内任务模块会监控与游戏任务相关行为的全局事件,并同步给其他游戏玩家,因此,为了更好地对模拟服务进行测试,创造与真实环境相似的测试环境,在本申请中,在通过目标模拟客户端对模拟服务进行测试时,进一步地通过模拟局外数据来更好地创造与真实环境相似的测试环境,避免了测试失真的问题,具体地,步骤“根据测试驱动数据,通过目标模拟客户端对模拟服务进行测试”,可以包括:
获取目标模拟角色的模拟局外数据,其中,模拟局外数据包括目标模拟角色在游戏对局以外的角色数据,目标模拟角色为目标模拟客户端在游戏应用中对应的游戏角色;
建立目标模拟客户端与模拟服务之间的通信连接关系;
基于通信连接关系,通过测试驱动数据与模拟局外数据,驱动目标模拟角色在游戏应用中的行为,以对模拟服务进行测试。
其中,在真实游戏对局中,局外数据指的是从游戏对局外带入游戏对局内的玩家数据。因此,在本申请中,模拟局外数据指的是对真实游戏对局中的局外数据进行模拟而得到的数据,旨在对模拟服务进行测试的过程中,通过模拟局外数据使得模拟服务的测试环境与真实环境更接近。
其中,模拟局外数据包括目标模拟角色在游戏对局以外的角色数据,此处目标模拟角色指的是该目标模拟客户端在游戏应用中对应的游戏角色,此处的游戏角色对应于真实游戏对局中的游戏玩家,此处的角色数据对应于真实游戏对局中的玩家数据。
其中,通信连接关系指的是目标模拟客户端与模拟服务之间建立的关系,具体地,通过该关系,目标模拟客户端可以接入模拟服务,并进行通信。
建立目标模拟客户端与模拟服务之间的通信连接关系的方式可以有多种,例如,可以根据服务连接参数建立通信连接关系,譬如,目标模拟客户端可以通过IP与端口连入模拟服务。
进一步地,即可基于建立的通信连接关系,通过测试驱动数据与模拟局外数据,驱动目标模拟角色在游戏对局中的行为,例如,驱动目标模拟角色在游戏对局中的操作行为与寻路行为,以对模拟服务进行测试。
在本申请中,获取目标模拟角色的模拟局外数据的方式可以有多种,例如,可以根据局外数据的格式与定义,随机生成模拟局外数据;又如,可以收集历史用户在游戏对局中的真实局外数据,并将该真实局外数据作为训练样本,通过构建神经网络的模式,生成模拟局外数据;等等。
在一实施例中,可以收集历史用户在游戏对局中的真实局外数据,并将该真实局外数据作为对模拟服务进行测试时所需的模拟局外数据,具体地,步骤“获取目标模拟角色的模拟局外数据”,可以包括:
通过模拟服务的调度服务器,获取游戏应用的历史用户的用户标识信息;
根据用户标识信息,获取目标模拟角色的模拟局外数据。
其中,模拟服务的调度服务器指的是,能够对模拟服务进行调度的服务器,例如,调度服务器能够启动模拟服务,负责模拟服务的负载均衡等。可以理解的是,在本申请中,模拟服务的调度服务器可以指物理服务器,该物理服务器上运行有模拟服务的调度服务程序,该调度服务程序能够实现对该模拟服务进行调度;模拟服务的调度服务器也可以为软件层面上的调度服务程序,该调度服务程序能够实现对该模拟服务进行调度。
作为示例,在UE4中,DS对应的调度服务器(DedicatedServerAgent,DSA)可以用于拉起DS和负责DS的负载均衡。
其中,历史用户的用户标识信息能够用于唯一标识一个历史用户,因此,在游戏应用中,历史用户的用户标识信息也可以称为历史玩家(player)的用户标识信息(PlayerID,其中,ID为Identity document的缩写)。
通过模拟服务的调度服务器,获取历史用户的用户标识信息的方式可以有多种,例如,可以在该游戏应用的真实游戏对局中,收集历史玩家开启游戏对局时的完整信息,并对该信息进行存储。此外,由于在拉起模拟服务后,模拟服务会向调度服务器请求鉴权信息与玩家信息,因此,在本申请中,可以重写游戏对局开局时调度服务器拉起模拟服务的流程,具体地,可以在模拟服务向调度服务器请求鉴权信息与玩家信息时,通过调度服务器读取本地缓存的玩家数据回复给模拟服务,并记录下玩家的鉴权信息与用户标识信息以便目标模拟客户端读取。
根据用户标识信息,获取目标模拟角色的模拟局外数据的方式可以有多种,例如,目标模拟客户端可以根据用户标识信息,获取历史用户的真实模拟局外数据;将该真实模拟局外数据作为目标模拟角色的模拟局外数据。而目标模拟客户端获取用户标识信息的方式可以有多种,例如,可以在构建目标模拟客户端时,在目标模拟客户端的测试启动参数中附上用户标识信息,以使得目标模拟客户端可以从测试启动信息中解析出获取模拟局外数据所需的用户标识信息。
在一实施例中,游戏引擎可以为UE4,模拟服务可以为DS,模拟服务的调度服务器可以为DSA。可以在游戏应用的真实游戏对局中,收集历史玩家开启游戏对局时的完整信息,并对该信息进行存储。并且,可以重写DSA的游戏开局拉起流程:当DS拉起后会向DSA请求鉴权信息和玩家信息,此时DSA读取本地缓存的玩家数据回复给DS,并且在文本中记录下鉴权信息例如令牌(Token)和PlayerId以便目标模拟客户端读取。作为示例,可以参见图12,其中,MockDsa即为重写的DSA,ROOM_DS_GET_GAME_INFO(roomid)为请求玩家信息的命令,其中以房间ID(roomid)为参数。
此外,还可以在目标模拟客户端的测试启动参数中附上文本中记录的PlayerID与Token,以便目标模拟服务器能够顺利带入模拟局外数据。
在实际应用中,具体实现时,可以参照图13,其中,Zone表示局外服务器,可以用于存储历史游戏玩家的相关数据;Match表示匹配服务器,可以用于处理游戏玩家匹配逻辑;Room表示房间服务器,可以用于管理房间;ROOM_DS_GET_GAME_INFO(roomid)为请求玩家信息的命令,其中以房间ID(roomid)为参数。
可以理解的是,在本申请的具体实施方式中,涉及到用户在游戏对局中的真实外数据、以及用户标识信息等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
105、接收测试服务器基于测试指令返回的测试结果。
在本申请中,模拟服务的测试结果中可以包括模拟服务的性能数据,因此,可以进一步地对该性能数据进行分析,以得到模拟服务的性能分析结果。具体地,测试方法还可以包括:
从测试结果中解析出模拟服务的性能数据;
从至少一个分析维度对性能数据进行分析,得到模拟服务的性能分析结果。
其中,模拟服务的性能数据指的是通过对模拟服务进行测试所得到的,表征该模拟服务的服务性能的相关数据。例如,模拟服务的性能数据可以包括模拟服务的资源消耗数据,对象创建数据等等。
其中,分析维度指的是对性能数据进行分析的角度,在本申请中,由于模拟服务的性能数据中可以包括不同的数据,而即使对于相同的数据从不同方面进行分析亦可得到模拟服务在多方面的性能分析结果。因此,在本申请中,可以从至少一个分析维度对模拟服务的性能数据进行分析,以得到模拟服务的性能分析结果,以下可以对步骤“从至少一个分析维度对性能数据进行分析,得到模拟服务的性能分析结果”作具体的解释与举例。
在一实施例中,模拟服务的性能数据可以包括模拟服务的资源消耗数据,其中,模拟服务的资源消耗数据指的是,模拟服务在测试过程中所消耗的资源的相关数据。例如,模拟服务在测试过程中所消耗的资源可以包括CPU资源,内存资源等。
因此,可以从测试结果中解析出模拟服务的资源消耗数据,例如,CPU资源消耗数据与内存消耗数据。进一步地,可以对该资源消耗数据进行展示,例如,可以以折线图,饼状图,条形图等形式进行展示。此外,还可以对资源消耗数据进行统计分析,例如,可以计算资源消耗的平均数,中位数,最值等。进一步地,还可以将资源消耗数据的展示信息与统计分析数据,发送给目标用户或目标群组,例如,发送到指定企业微信群中。
作为示例,可以以游戏引擎为UE4,模拟服务为DS为例。在对DS进行测试的过程中,在游戏对局结束后,服务器可以接收测试结果,并从测试结果中解析出模拟服务的资源消耗数据。进一步地,参见图14,服务器可以将资源消耗数据推送到指定企业微信群里,以使得用户可以通过触发1002所示的点击连接查看详细数据。具体地,图14展示了DS的基本情况与性能情况,如版本号,版本类型,场景说明,CPU资源消耗平均值,内存消耗最大值,房间ID等,并且,还展示了DS的CPU资源消耗趋势与平均值、以及DS的内存消耗趋势与平均值。进一步地,用户还可以通过点击链接来查看DS运行的详细性能数据,例如,当检测到针对1001所示控件的触发操作时,可以展示如图15与图16所示的页面,其中,图15展示了DS的单进程CPU资源消耗趋势与整机CPU资源消耗趋势,图16展示了DS的单进程内存资源使用趋势与整机内存资源消耗趋势。
本申请不仅能够对同一游戏版本下模拟服务的性能数据进行分析与展示,还能够对不同游戏版本下模拟服务的性能数据进行分析,从而得到模拟服务的性能分析结果。具体地,模拟服务的性能数据可以包括模拟服务的资源消耗数据,具体地,步骤“从至少一个分析维度对性能数据进行分析,得到模拟服务的性能分析结果”,可以包括:
根据游戏应用的版本信息,对资源消耗数据进行分类处理,得到各版本对应的资源消耗数据;
基于分类结果,对资源消耗数据进行比对分析,得到模拟服务的性能分析结果。
例如,资源消耗数据可以包括CPU消耗数据,内存消耗数据等,因此,可以根据游戏应用的版本信息,分别对CPU资源消耗数据与内存资源消耗数据进行分类处理,得到各游戏版本对应的CPU资源消耗数据、以及各游戏版本对应的内存资源消耗数据。作为示例,参见图17,图17中展示了进程平均CPU比对结果与进程平均内存比对结果。
其中,比对分析指的是基于数据比对而进行的分析手段,例如,可以通过将各游戏版本对应的资源消耗数据进行比对,得到不同的资源消耗数据随游戏版本的变化趋势;又如,可以在根据游戏版本对资源消耗数据进行分类处理,得到各版本对应的资源消耗数据(为了区别,可以将版本对应的资源消耗数据简称为版本资源消耗数据)的基础上,进一步地根据测试需求信息,将不同的版本资源消耗数据进行比对,从而得到同一测试需求下,不同游戏版本的模拟服务的资源消耗情况。作为示例,参见图18,图18中不仅展示了不同的资源消耗数据在不同版本之间的横向比较,还进一步地基于测试场景,对版本资源消耗数据进行比对,得到模拟服务的性能分析结果,具体地,图18中对应的测试场景可以包括图中所示的“1人”,“8人同屏”,“8人标准场景(2个区域)”,“16人标准场景(2个区域)”,“16人同屏”,“18人同屏”,和“18人标准场景(2个区域)”。
在另一实施例中,模拟服务的性能数据可以包括模拟服务的对象创建数据,具体地,步骤“从至少一个分析维度对性能数据进行分析,得到模拟服务的性能分析结果”,可以包括:
对模拟服务的测试阶段进行划分,得到至少一个子测试阶段;
确定各个子测试阶段对应的对象创建数据;
对对象创建数据进行差量分析,得到模拟服务的性能分析结果。
其中,类是对事物的抽象描述,对象(object)是类实体或者物体的具体描述。因此,在游戏开发的过程中,可以通过对象创建游戏应用中的不同物体,例如游戏场景中的桌子,椅子等,亦可以通过对象创建游戏应用中不可见的成分。作为示例,在UE4游戏场景中所有可见的游戏物体均为Actor类型,而UE4中的Actor类型即为游戏开发中对象类型的一种。
其中,对象创建数据指的是在对模拟服务的测试过程中,创建对象的相关数据,例如,对象创建数据可以包括对象类型的数据(如该过程中创建了哪些对象类型的对象),创建对象的数据(如该过程中所创建了多少个对象)等。
例如,可以将模拟服务的测试阶段划分为如下若干个子测试阶段:初始化阶段,预处理阶段,倒数阶段,加载阶段,和游戏阶段等。作为示例,可以以游戏引擎为UE4,模拟服务为DS为例。参考图19,其中将DS的测试阶段划分为如下几个子测试阶段:Init阶段(初始化阶段),PreProcess阶段(预处理阶段),CountDown阶段(倒数阶段),Load阶段(加载阶段),以及游戏阶段(Game阶段),并确定了各子测试对应的对象创建数据,具体可以包括对象类型的数量与创建对象的数量,进一步地,如图19所示根据子测试阶段对模拟服务的对象创建数据进行展示。
其中,差量分析指的是通过计算数据之间的差量来对数据进行分析的方式。例如,对于各个子测试阶段对应的对象创建数据(为了区分,可以将子测试阶段对应的对象创建数据,简称为阶段对象创建数据),可以不同游戏版本下的阶段对象创建数据之间的差量,来对阶段对象创建数据进行分析。作为示例,参见图20,对于Init阶段对应的对象创建数据,可以计算其与上个版本之间的差量,并基于计算结果将模拟服务的性能分析结果如图20所示进行展示。类似地,还可以计算其他子测试阶段对应的对象创建数据,与上个版本之间的差量。
由上可知,本实施例可以获取游戏应用的版本信息和版本测试需求信息;根据版本信息,构建游戏应用的目标模拟客户端与模拟服务,得到目标模拟客户端的客户端程序数据以及模拟服务的服务数据;根据版本测试需求信息,生成测试驱动数据,其中,测试驱动数据用于驱动目标模拟客户端在游戏对局中的行为;根据测试驱动数据、客户端程序数据以及服务数据,向测试服务器发送测试指令,其中,测试指令指示测试服务器根据客户端程序数据与服务数据,生成目标模拟客户端与模拟服务,并根据测试驱动数据,通过目标模拟客户端对模拟服务进行测试;接收测试服务器基于测试指令返回的测试结果。
该方案可以构建用于模拟真实客户端的目标模拟客户端,并通过该目标模拟客户端对模拟服务进行测试,这样的话,即可避免使用大量真实客户端来进行测试所导致的资源消耗与效率低下,从而提高对游戏应用的模拟服务进行测试的效率。
并且,该方案能够根据游戏应用的版本测试需求信息生成测试驱动数据,以通过该测试驱动数据,驱动目标模拟客户端在游戏对局中的行为,这样的话,在实现了以目标模拟客户端模拟真实客户端的基础上,还能够通过测试驱动数据实现对目标模拟客户端的控制,例如,通过测试驱动数据实现目标模拟客户端与模拟服务之间网络同步,又如,通过测试驱动数据控制目标模拟客户端在游戏对局中的行为等等。这样的话,不仅有利于全面地对模拟服务的性能进行评估,而且大大增加了针对模拟服务进行测试的自动化程度与可靠度。
此外,本申请中压测脚本开发灵活、便捷,能快速响应大量的场景压测需求。而无需考虑复杂的局外组队和匹配、局内多客户端协作逻辑,避免了一旦对局流程发生变更则需要频繁更新测试脚本的问题。且性能自动分析方案不仅能从多个维度分析模拟服务的性能瓶颈,同时能够横向对比版本之间的差异,敏锐地发现业务逻辑带来的性能开销。
根据上面实施例所描述的方法,以下将举例进一步详细说明。
在本实施例中,将以测试装置集成在服务器为例进行说明,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。该终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载电脑等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
如图21所示,一种测试方法,具体流程如下:
201、主控服务器获取游戏应用的版本信息和版本测试需求信息。
202、主控服务器根据版本信息,构建游戏应用的目标模拟客户端与模拟服务,得到目标模拟客户端的客户端程序数据以及模拟服务的服务数据。
在一实施例中,可以以游戏引擎为UE4,模拟服务为Linux版本的DS,且目标模拟客户端为Linux版本的模拟客户端为例。具体地,参见图22,可知实现对DS进行测试的工程结构可以包括一下几个部分:目标模拟客户端(LinuxClient)的构建,目标模拟客户端的使用、自动压测、性能分析和监控。
203、主控服务器根据版本测试需求信息,生成测试驱动数据,其中,测试驱动数据用于驱动目标模拟客户端在游戏对局中的行为。
204、主控服务器根据测试驱动数据、客户端程序数据以及服务数据,向测试服务器发送测试指令,其中,测试指令指示测试服务器根据客户端程序数据与服务数据,生成目标模拟客户端与模拟服务,并根据测试驱动数据,通过目标模拟客户端对模拟服务进行测试。
在一实施例中,可以以游戏引擎为UE4,模拟服务为Linux版本的DS,且目标模拟客户端为Linux版本的模拟客户端为例。考虑到当前对模拟服务进行压测步骤是:登录服务器手动启动数据收集工具,然后根据测试目标调整启动参数以拉起DS和目标模拟客户端,等待固定的时间手动关闭各进程并清理环境,最后用Excel整理数据。而这会导致以下几个问题:如何保障每次压测的参数和环境一致;在容量测试中多台机器如何快速部署和协调;手动读取日志检查运行结果、整理大量数据耗时高。
因此,在本申请中,可以设计自动压测和分布式调度。作为示例,参见图23,在对模拟服务进行压测时只需配置好测试启动参数(例如DS版本号、目标模拟客户端个数等),即可完成整个压测流程、各项性能数据的汇总和上报。并且,最终数据可以在开发的WEB平台上展示,方便进行性能监控和版本的横向对比。
具体地,图23所示的压测流水线中,可以执行环境初始化,以清理残留的进程;拉起数据采集进程,以实时监控机器性能;通过MockDSA拉起DS,并将玩家信息分发到各台目标模拟客户端对应的服务器(即施压服务器)上;启动目标模拟客户端,并连入对应的DS单局中;在单局运行过程中,通过DS日志检查DS是否都进入游戏、且目标模拟客户端是否都连入对应的DS中;等待DS结束后,将采集的性能数据汇总存入数据库(Data Base,DB),并推送概要信息到对应的企业微信群里;自动分析采集的性能数据,并在WEB平台上展示。
205、主控服务器接收测试服务器基于测试指令返回的测试结果。
206、主控服务器从测试结果中解析出模拟服务的性能数据。
207、主控服务器从至少一个分析维度对性能数据进行分析,得到模拟服务的性能分析结果。
在一实施例中,可以以游戏引擎为UE4,模拟服务为Linux版本的DS,且目标模拟客户端为Linux版本的模拟客户端为例。具体地,可以通过机器的CPU、内存基础数据来评估DS的基本性能情况。在DS运行时,服务器会启动数据采集进程,收集和上报数据。对局结束后,对采集的数据进行归档和画图,并推送到特定的企业微信群里,以实现敏捷的性能监控。然后通过报表展示平台来展示版本详情和各版本之间的横向对比。
在另一实施例中,可以采集对象创建数据来监控DS的内存情况,具体实现步骤可以参考图24,此外,参见图25,还可以通过随版本对对象创建数据进行分析,以利于在实际应用中不断进行迭代。具体地,对象创建数直接关系到内存大小,内存使用多了,CPU的Cache命中率会下降,对于客户端而言,也会影响帧率。
在另一实施例中,性能数据可以包括函数调用数据,例如,函数调用数据可以包括函数单帧耗时数据与函数调用次数,因此,主控服务器可通过对函数调用数据进行分析,得到模拟服务的性能分析结果。
作为示例,可以以游戏引擎为UE4,模拟服务为Linux版本的DS,且目标模拟客户端为Linux版本的模拟客户端为例。具体地,可以通过在DS启动时加入Stat命令参数来采集性能统计数据,得到*.ue4stats文件。然后通过自己开发的Stat自动分析平台对性能数据进行分析,其中,是UE4中专门针对游戏统计的控制台命令,通过Stat StartFile命令启动统计数据采集,并在Profiling目录中创建一个*.ue4stats文件。
在该示例中,对性能数据进行分析具体可以包括:
(1)影响DS性能的四大项在各版本间的变化趋势,用于评估当前性能优化方向。参见图26,可知,网络同步的单帧平均耗时有所下降(经分析是合并单帧同步操作的优化所致),但是Tick Time单帧耗时三个版本呈直线上升趋势,需要进一步关注。
(2)将两个版本的*.ue4stats文件进行全量对比,以定位到具体是哪些函数的耗时增加影响了DS性能。举个例子,在相同场景下某版本相比上个版本CPU上升9%,对比.ue4stats文件发现主要是Tick Time单帧平均耗时上升了约7.5ms,具体如图27中2001所示。抛开因为图28中StatsNewTick函数所指示的,由于CPU升高导致Stat工具本身IO增加(平均上升3m),可知如图28所示,问题集中在2002所示的FTickFunctionTask(平均单帧耗时上升3.525ms)。进一步地,即可如图29所示,再往下分析从而得到具体的增长函数。
(3)毛刺点分析。其中,毛刺点指的是由于单帧耗时超过平均值的3倍而出现数据分布特征,在实际应用中,毛刺点对性能的影响较大。以图30为例,其中折线图中共有3个毛刺点,通过对图30中指示测试过程中相关函数调用的表格进行分析可知,这些毛刺点的出现皆因为ConstructObject函数相关的操作导致的,具体地,ConstructObject函数指示的是DS初始化时的某些操作。其中,EventName表示函数名;IncTimeAvg(MS)表示单帧平均耗时;Inc Time(MS)表示单帧最大耗时;Inc Time(%)表示单帧最大占比,CallCount表示函数调用次数。
(4)CallCount(Call表示函数调用,Count表示计数,因此CallCount表示函数调用次数)超过某阈值的函数信息。作为示例,参见图31,此处需要分析函数是否陷入死循环,以及是否不符合预期的同步等情况。其中,EventName表示函数名;IncTimeAvg(MS)表示单帧平均耗时;Inc Time Max(MS)表示单帧最大耗时;CallsAvg表示单帧平均调用次数;CallsMax表示单帧最大调用次数。
值得注意的是,在该示例中,由于UnrealFronted(英文缩写为UFE,UFE是UE4中用来简化和加快游戏日常开发及测试任务的工具,可用于打开通过Stat命令生成的统计文件*.ue4stats,以辅助分析DS单帧性能消耗)展示的统计数据有限,无法清晰、直接地提供当前性能问题,以及横向的版本对比情况。正是为了针对该痛点问题进行改善,因此开发了Stat自动分析平台,以解决以上两个痛点。
其中,Stat自动分析平台实现如下:在DS启动时,增加Stat启动命令(StatStartFile),以生成函数每帧的耗时和调用信息文件*.ue4stats;改造UnrealFrontend工具,解析*.ue4stats存储成Protocol Buffers(英文缩写为PB,是一种数据描述语言,用于描述一种轻便高效的结构化数据存储格式)结构。以函数为维度存储了各帧耗时/调用次数,也包含了我们需要的统计信息:平均单帧耗时/调用次数等。并且,开发Web平台,进行信息展示和版本之间的横向对比。
在另一实施例中,参见图32,还可以通过分析LoopCount的版本趋势图,以发现后续版本锁帧失效的问题,其中,“LoopCount”是UE4里的一个概念,即(整个游戏的)循环次数。
由上可知,本申请实施例可以构建用于模拟真实客户端的目标模拟客户端,并通过该目标模拟客户端对模拟服务进行测试,这样的话,即可避免使用大量真实客户端来进行测试所导致的资源消耗与效率低下,从而提高对游戏应用的模拟服务进行测试的效率。并且,该方案能够根据游戏应用的版本测试需求信息生成测试驱动数据,以通过该测试驱动数据,驱动目标模拟客户端在游戏对局中的行为,这样的话,在实现了以目标模拟客户端模拟真实客户端的基础上,还能够通过测试驱动数据实现对目标模拟客户端的控制,例如,通过测试驱动数据实现目标模拟客户端与模拟服务之间网络同步,又如,通过测试驱动数据控制目标模拟客户端在游戏对局中的行为等等。这样的话,不仅有利于全面地对模拟服务的性能进行评估,而且大大增加了针对模拟服务进行测试的自动化程度与可靠度。
此外,当游戏引擎为UE4,模拟服务为Linux版本的DS,且目标模拟客户端为Linux版本的模拟客户端时,目标模拟客户端的低消耗节省了大量的Windows服务器资源,具体地,目前一台48核、128G内存的Linux服务器,能稳定拉起110个目标模拟客户端。且性能自动分析方案不仅能从多个维度分析DS的性能瓶颈,同时能够横向对比版本之间的差异,敏锐地发现业务逻辑带来的性能开销。
为了更好地实施以上方法,相应的,本申请实施例还提供一种测试装置,其中,该测试装置可以集成在服务器或终端中。该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。该终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载电脑等,但并不局限于此。
例如,如图33所示,该测试装置可以包括获取单元301,构建单元302,生成单元303,发送单元304以及接收单元305,如下:
获取单元301,可以用于获取游戏应用的版本信息和版本测试需求信息;
构建单元302,可以用于根据所述版本信息,构建所述游戏应用的目标模拟客户端与模拟服务,得到所述目标模拟客户端的客户端程序数据以及所述模拟服务的服务数据;
生成单元303,可以用于根据所述版本测试需求信息,生成测试驱动数据,其中,所述测试驱动数据用于驱动所述目标模拟客户端在游戏对局中的行为;
发送单元304,可以用于根据所述测试驱动数据、所述客户端程序数据以及所述服务数据,向测试服务器发送测试指令,其中,所述测试指令指示所述测试服务器根据所述客户端程序数据与所述服务数据,生成所述目标模拟客户端与所述模拟服务,并根据所述测试驱动数据,通过所述目标模拟客户端对所述模拟服务进行测试;
接收单元305,可以用于接收所述测试服务器基于所述测试指令返回的测试结果。
在一实施例中,参考图34,所述构建单元302,可以包括:
第一确定子单元3021,可以用于确定所述模拟服务的平台属性,并获取所述游戏应用的初始模拟客户端,其中,所述初始模拟客户端包括至少一个组件;
筛选子单元3022,可以用于根据所述平台属性,对所述初始模拟客户端进行组件筛选;
构建子单元3023,可以用于基于筛选结果,构建所述游戏应用的目标模拟客户端。
在一实施例中,所述构建子单元,可以用于:
设置目标模拟客户端的测试启动参数;基于筛选结果与设置结果,对所述初始模拟客户端进行构建处理,得到所述游戏应用的目标模拟客户端。
在一实施例中,参考图35,所述生成单元303,可以包括:
第二确定子单元3031,可以用于根据所述版本测试需求信息,确定目标模拟角色在所述游戏应用中的模拟交互信息,其中,所述模拟交互信息包括所述目标模拟角色的游戏操作信息,所述目标模拟角色为所述目标模拟客户端在所述游戏应用中对应的游戏角色;
第一生成子单元3032,可以用于生成与所述游戏操作信息对应的操作驱动数据;
第二生成子单元3033,可以用于基于所述操作驱动数据,生成测试驱动数据。
在一实施例中,所述第一生成子单元,可以用于:
确定与所述游戏操作信息对应的游戏操作指令;对所述游戏操作指令进行封装处理;根据处理结果,生成与所述游戏操作信息对应的操作驱动数据。
在一实施例中,所述第二生成子单元,可以用于:
获取所述游戏应用的游戏地图数据;确定所述目标模拟角色的寻路组件,其中,所述寻路组件用于指示所述目标模拟角色基于所述游戏地图数据,确定所述目标模拟角色在所述游戏应用中的路径信息;根据所述游戏地图数据与所述寻路组件,生成寻路驱动数据;基于所述操作驱动数据与所述寻路驱动数据,生成测试驱动数据。
在一实施例中,参考图36,所述发送单元304,可以包括:
数据获取子单元3041,可以用于获取目标模拟角色的模拟局外数据,其中,所述模拟局外数据包括所述目标模拟角色在游戏对局以外的角色数据,所述目标模拟角色为所述目标模拟客户端在所述游戏应用中对应的游戏角色;
建立子单元3042,可以用于建立所述目标模拟客户端与所述模拟服务之间的通信连接关系;
驱动子单元3043,可以用于基于所述通信连接关系,通过所述测试驱动数据与所述模拟局外数据,驱动所述目标模拟角色在所述游戏应用中的行为,以对所述模拟服务进行测试。
在一实施例中,所述数据获取子单元,可以用于:
通过所述模拟服务的调度服务器,获取所述游戏应用的历史用户的用户标识信息;根据所述用户标识信息,获取所述目标模拟角色的模拟局外数据。
在一实施例中,参考图37,所述测试装置,还可以包括:
解析单元306,可以用于从所述测试结果中解析出所述模拟服务的性能数据;
分析单元307,可以用于从至少一个分析维度对所述性能数据进行分析,得到所述模拟服务的性能分析结果。
在一实施例中,参考图38,所述性能数据包括所述模拟服务的资源消耗数据;所述分析单元307,可以包括:
分类子单元3071,可以用于根据所述游戏应用的版本信息,对所述资源消耗数据进行分类处理,得到各版本对应的资源消耗数据;
比对分析子单元3072,可以用于基于分类结果,对所述资源消耗数据进行比对分析,得到所述模拟服务的性能分析结果。
在一实施例中,参考图39,所述性能数据包括所述模拟服务的对象创建数据;所述分析单元307,可以包括:
划分子单元3073,可以用于对所述模拟服务的测试阶段进行划分,得到至少一个子测试阶段;
第三确定子单元3074,可以用于确定各个所述子测试阶段对应的对象创建数据;
差量分析子单元3075,可以用于对所述对象创建数据进行差量分析,得到所述模拟服务的性能分析结果。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本实施例的测试装置中由获取单元301获取游戏应用的版本信息和版本测试需求信息;由构建单元302根据所述版本信息,构建所述游戏应用的目标模拟客户端与模拟服务,得到所述目标模拟客户端的客户端程序数据以及所述模拟服务的服务数据;由生成单元303根据所述版本测试需求信息,生成测试驱动数据,其中,所述测试驱动数据用于驱动所述目标模拟客户端在游戏对局中的行为;由发送单元304根据所述测试驱动数据、所述客户端程序数据以及所述服务数据,向测试服务器发送测试指令,其中,所述测试指令指示所述测试服务器根据所述客户端程序数据与所述服务数据,生成所述目标模拟客户端与所述模拟服务,并根据所述测试驱动数据,通过所述目标模拟客户端对所述模拟服务进行测试;由接收单元305接收所述测试服务器基于所述测试指令返回的测试结果。
该方案可以构建用于模拟真实客户端的目标模拟客户端,并通过该目标模拟客户端对模拟服务进行测试,这样的话,即可避免使用大量真实客户端来进行测试所导致的资源消耗与效率低下,从而提高对游戏应用的模拟服务进行测试的效率。并且,该方案能够根据游戏应用的版本测试需求信息生成测试驱动数据,以通过该测试驱动数据,驱动目标模拟客户端在游戏对局中的行为,这样的话,在实现了以目标模拟客户端模拟真实客户端的基础上,还能够通过测试驱动数据实现对目标模拟客户端的控制,例如,通过测试驱动数据实现目标模拟客户端与模拟服务之间网络同步,又如,通过测试驱动数据控制目标模拟客户端在游戏对局中的行为等等。这样的话,不仅有利于全面地对模拟服务的性能进行评估,而且大大增加了针对模拟服务进行测试的自动化程度与可靠度。
此外,本申请实施例还提供一种计算机设备,该计算机设备可以为服务器或终端等设备,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。该终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载电脑等,但并不局限于此。如图40所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,具体来讲:
该计算机设备可以包括有一个或一个以上计算机可读存储介质的存储器401、输入单元402、包括有一个或者一个以上处理核心的处理器403、以及电源404等部件。本领域技术人员可以理解,图40中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图40示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
存储器401可用于存储软件程序以及模块,处理器403通过运行存储在存储器401的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器401可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器401可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器401还可以包括存储器控制器,以提供处理器403和输入单元402对存储器401的访问。
输入单元402可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元402可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器403,并能接收处理器403发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元402还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
处理器403是计算机设备的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器401内的软件程序和/或模块,以及调用存储在存储器401内的数据,执行计算机设备的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器403可包括一个或多个处理核心;优选的,处理器403可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器403中。
计算机设备还包括给各个部件供电的电源404(比如电池),优选的,电源可以通过电源管理系统与处理器403逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源404还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,计算机设备还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,计算机设备中的处理器403会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器401中,并由处理器403来运行存储在存储器401中的应用程序,从而实现各种功能,如下:
获取游戏应用的版本信息和版本测试需求信息;根据版本信息,构建游戏应用的目标模拟客户端与模拟服务,得到目标模拟客户端的客户端程序数据以及模拟服务的服务数据;根据版本测试需求信息,生成测试驱动数据,其中,测试驱动数据用于驱动目标模拟客户端在游戏对局中的行为;根据测试驱动数据、客户端程序数据以及服务数据,向测试服务器发送测试指令,其中,测试指令指示测试服务器根据客户端程序数据与服务数据,生成目标模拟客户端与模拟服务,并根据测试驱动数据,通过目标模拟客户端对模拟服务进行测试;接收测试服务器基于测试指令返回的测试结果。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例的计算机设备可以构建用于模拟真实客户端的目标模拟客户端,并通过该目标模拟客户端对模拟服务进行测试,这样的话,即可避免使用大量真实客户端来进行测试所导致的资源消耗与效率低下,从而提高对游戏应用的模拟服务进行测试的效率。并且,该方案能够根据游戏应用的版本测试需求信息生成测试驱动数据,以通过该测试驱动数据,驱动目标模拟客户端在游戏对局中的行为,这样的话,在实现了以目标模拟客户端模拟真实客户端的基础上,还能够通过测试驱动数据实现对目标模拟客户端的控制,例如,通过测试驱动数据实现目标模拟客户端与模拟服务之间网络同步,又如,通过测试驱动数据控制目标模拟客户端在游戏对局中的行为等等。这样的话,不仅有利于全面地对模拟服务的性能进行评估,而且大大增加了针对模拟服务进行测试的自动化程度与可靠度。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种测试方法中的步骤。例如,该指令可以执行如下步骤:
获取游戏应用的版本信息和版本测试需求信息;根据版本信息,构建游戏应用的目标模拟客户端与模拟服务,得到目标模拟客户端的客户端程序数据以及模拟服务的服务数据;根据版本测试需求信息,生成测试驱动数据,其中,测试驱动数据用于驱动目标模拟客户端在游戏对局中的行为;根据测试驱动数据、客户端程序数据以及服务数据,向测试服务器发送测试指令,其中,测试指令指示测试服务器根据客户端程序数据与服务数据,生成目标模拟客户端与模拟服务,并根据测试驱动数据,通过目标模拟客户端对模拟服务进行测试;接收测试服务器基于测试指令返回的测试结果。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种测试方法中的步骤,因此,可以实现本申请实施例所提供的任一种测试方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述测试方面的各种可选实现方式中提供的方法。
以上对本申请实施例所提供的一种测试方法、装置、计算机设备、存储介质和产品进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种测试方法,其特征在于,包括:
获取游戏应用的版本信息和版本测试需求信息,所述版本测试需求信息包括对所述版本信息指示的目标游戏版本进行测试时的需求信息;
根据所述版本信息,构建所述游戏应用的模拟服务,得到所述模拟服务的服务数据,所述模拟服务包括模拟所述游戏应用所提供的真实服务的服务;
确定所述模拟服务的平台属性,并获取所述游戏应用的初始模拟客户端,其中,所述初始模拟客户端包括至少一个组件;
根据所述平台属性,对所述初始模拟客户端进行组件筛选;
基于筛选结果,构建所述游戏应用的目标模拟客户端,得到所述目标模拟客户端的客户端程序数据;
根据所述版本测试需求信息,生成测试驱动数据,其中,所述测试驱动数据用于驱动所述目标模拟客户端在游戏对局中的行为;
根据所述测试驱动数据、所述客户端程序数据以及所述服务数据,向不同的测试服务器发送测试指令,其中,所述测试指令指示接收到所述服务数据的测试服务器生成所述模拟服务,以及指示接收到所述测试驱动数据和所述客户端程序数据的测试服务器生成所述目标模拟客户端,并根据所述测试驱动数据,通过所述目标模拟客户端对所述模拟服务进行测试;
接收所述测试服务器基于所述测试指令返回的测试结果。
2.根据权利要求1所述的测试方法,其特征在于,基于筛选结果,构建所述游戏应用的目标模拟客户端,包括:
设置目标模拟客户端的测试启动参数;
基于筛选结果与设置结果,对所述初始模拟客户端进行构建处理,得到所述游戏应用的目标模拟客户端。
3.根据权利要求1所述的测试方法,其特征在于,根据所述版本测试需求信息,生成测试驱动数据,包括:
根据所述版本测试需求信息,确定目标模拟角色在所述游戏应用中的模拟交互信息,其中,所述模拟交互信息包括所述目标模拟角色的游戏操作信息,所述目标模拟角色为所述目标模拟客户端在所述游戏应用中对应的游戏角色;
生成与所述游戏操作信息对应的操作驱动数据;
基于所述操作驱动数据,生成测试驱动数据。
4.根据权利要求3所述的测试方法,其特征在于,生成与所述游戏操作信息对应的操作驱动数据,包括:
确定与所述游戏操作信息对应的游戏操作指令;
对所述游戏操作指令进行封装处理;
根据处理结果,生成与所述游戏操作信息对应的操作驱动数据。
5.根据权利要求3所述的测试方法,其特征在于,基于所述操作驱动数据,生成测试驱动数据,包括:
获取所述游戏应用的游戏地图数据;
确定所述目标模拟角色的寻路组件,其中,所述寻路组件用于指示所述目标模拟角色基于所述游戏地图数据,确定所述目标模拟角色在所述游戏应用中的路径信息;
根据所述游戏地图数据与所述寻路组件,生成寻路驱动数据;
基于所述操作驱动数据与所述寻路驱动数据,生成测试驱动数据。
6.根据权利要求1所述的测试方法,其特征在于,所述向不同的测试服务器发送测试指令之前,还包括:
获取目标模拟角色的模拟局外数据,其中,所述模拟局外数据包括所述目标模拟角色在游戏对局以外的角色数据,所述目标模拟角色为所述目标模拟客户端在所述游戏应用中对应的游戏角色;
所述测试指令用于指示接收到所述测试驱动数据、所述模拟局外数据和所述客户端程序数据的测试服务器生成所述目标模拟客户端,并建立所述目标模拟客户端与所述模拟服务之间的通信连接关系,以及基于所述通信连接关系,通过所述测试驱动数据与所述模拟局外数据,驱动所述目标模拟角色在所述游戏应用中的行为,以对所述模拟服务进行测试。
7.根据权利要求6所述的测试方法,其特征在于,获取目标模拟角色的模拟局外数据,包括:
通过所述模拟服务的调度服务器,获取所述游戏应用的历史用户的用户标识信息;
根据所述用户标识信息,获取所述目标模拟角色的模拟局外数据。
8.根据权利要求1所述的测试方法,其特征在于,所述方法还包括:
从所述测试结果中解析出所述模拟服务的性能数据;
从至少一个分析维度对所述性能数据进行分析,得到所述模拟服务的性能分析结果。
9.根据权利要求8所述的测试方法,其特征在于,所述性能数据包括所述模拟服务的资源消耗数据;
对所述性能数据进行分析,得到所述模拟服务的性能分析结果,包括:
根据所述游戏应用的版本信息,对所述资源消耗数据进行分类处理,得到各版本对应的资源消耗数据;
基于分类结果,对所述资源消耗数据进行比对分析,得到所述模拟服务的性能分析结果。
10.根据权利要求8所述的测试方法,其特征在于,所述性能数据包括所述模拟服务的对象创建数据;
对所述性能数据进行分析,得到所述模拟服务的性能分析结果,包括:
对所述模拟服务的测试阶段进行划分,得到至少一个子测试阶段;
确定各个所述子测试阶段对应的对象创建数据;
对所述对象创建数据进行差量分析,得到所述模拟服务的性能分析结果。
11.一种测试装置,其特征在于,包括:
获取单元,用于获取游戏应用的版本信息和版本测试需求信息,所述版本测试需求信息包括对所述版本信息指示的目标游戏版本进行测试时的需求信息;
构建单元,用于根据所述版本信息,根据所述版本信息,构建所述游戏应用的模拟服务,得到所述模拟服务的服务数据,所述模拟服务包括模拟所述游戏应用所提供的真实服务的服务;以及确定所述模拟服务的平台属性,并获取所述游戏应用的初始模拟客户端,其中,所述初始模拟客户端包括至少一个组件;以及根据所述平台属性,对所述初始模拟客户端进行组件筛选;以及基于筛选结果,构建所述游戏应用的目标模拟客户端,得到所述目标模拟客户端的客户端程序数据;
生成单元,用于根据所述版本测试需求信息,生成测试驱动数据,其中,所述测试驱动数据用于驱动所述目标模拟客户端在游戏对局中的行为;
发送单元,用于根据所述测试驱动数据、所述客户端程序数据以及所述服务数据,向不同的测试服务器发送测试指令,其中,所述测试指令指示接收到所述服务数据的测试服务器生成所述模拟服务,以及指示接收到所述测试驱动数据和所述客户端程序数据的测试服务器生成所述目标模拟客户端,并根据所述测试驱动数据,通过所述目标模拟客户端对所述模拟服务进行测试;
接收单元,用于接收所述测试服务器基于所述测试指令返回的测试结果。
12.一种电子设备,其特征在于,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行权利要求1至10任一项所述的测试方法中的操作。
13.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至10任一项所述的测试方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111400091.4A CN114191822B (zh) | 2021-11-19 | 2021-11-19 | 一种测试方法、装置、计算机设备、存储介质和产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111400091.4A CN114191822B (zh) | 2021-11-19 | 2021-11-19 | 一种测试方法、装置、计算机设备、存储介质和产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114191822A CN114191822A (zh) | 2022-03-18 |
CN114191822B true CN114191822B (zh) | 2023-07-25 |
Family
ID=80648743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111400091.4A Active CN114191822B (zh) | 2021-11-19 | 2021-11-19 | 一种测试方法、装置、计算机设备、存储介质和产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114191822B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116684319B (zh) * | 2023-07-28 | 2023-10-27 | 中国电信股份有限公司 | 产品测试方法、装置、计算机设备、存储介质和程序产品 |
CN117234935B (zh) * | 2023-09-28 | 2024-05-14 | 重庆赛力斯新能源汽车设计院有限公司 | 基于虚幻引擎的测试方法、装置、电子设备及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103391559A (zh) * | 2012-05-07 | 2013-11-13 | 腾讯科技(深圳)有限公司 | 测试交互数据的方法、模拟终端和系统 |
CN106095670A (zh) * | 2016-06-02 | 2016-11-09 | 网易(杭州)网络有限公司 | 测试报告的生成方法及装置 |
CN106267822A (zh) * | 2016-08-18 | 2017-01-04 | 网易(杭州)网络有限公司 | 游戏性能的测试方法和装置 |
CN107153603A (zh) * | 2017-04-19 | 2017-09-12 | 网易(杭州)网络有限公司 | 游戏的模拟测试方法、装置及系统 |
CN108183962A (zh) * | 2018-01-04 | 2018-06-19 | 上海瀚之友信息技术服务有限公司 | 一种模拟测试系统 |
CN109698771A (zh) * | 2018-12-07 | 2019-04-30 | 网易(杭州)网络有限公司 | 游戏服务器压力测试方法及装置 |
CN110141864A (zh) * | 2019-04-30 | 2019-08-20 | 深圳市腾讯网域计算机网络有限公司 | 一种游戏自动测试方法、装置及终端 |
CN111400184A (zh) * | 2020-03-17 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 游戏测试方法、装置、系统、设备及云平台 |
CN111930614A (zh) * | 2020-07-20 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 一种自动化测试方法、装置、设备和介质 |
CN112473146A (zh) * | 2020-11-27 | 2021-03-12 | 成都完美天智游科技有限公司 | 一种游戏战斗过程信息自动化测试方法、装置及系统 |
CN112742029A (zh) * | 2020-04-15 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 一种模拟操作的方法、游戏测试的方法以及相关装置 |
CN112860579A (zh) * | 2021-03-17 | 2021-05-28 | 深圳市腾讯信息技术有限公司 | 业务测试方法、装置、存储介质及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070082741A1 (en) * | 2005-10-11 | 2007-04-12 | Sony Computer Entertainment America Inc. | Scheme for use in testing software for computer entertainment systems |
-
2021
- 2021-11-19 CN CN202111400091.4A patent/CN114191822B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103391559A (zh) * | 2012-05-07 | 2013-11-13 | 腾讯科技(深圳)有限公司 | 测试交互数据的方法、模拟终端和系统 |
CN106095670A (zh) * | 2016-06-02 | 2016-11-09 | 网易(杭州)网络有限公司 | 测试报告的生成方法及装置 |
CN106267822A (zh) * | 2016-08-18 | 2017-01-04 | 网易(杭州)网络有限公司 | 游戏性能的测试方法和装置 |
CN107153603A (zh) * | 2017-04-19 | 2017-09-12 | 网易(杭州)网络有限公司 | 游戏的模拟测试方法、装置及系统 |
CN108183962A (zh) * | 2018-01-04 | 2018-06-19 | 上海瀚之友信息技术服务有限公司 | 一种模拟测试系统 |
CN109698771A (zh) * | 2018-12-07 | 2019-04-30 | 网易(杭州)网络有限公司 | 游戏服务器压力测试方法及装置 |
CN110141864A (zh) * | 2019-04-30 | 2019-08-20 | 深圳市腾讯网域计算机网络有限公司 | 一种游戏自动测试方法、装置及终端 |
CN111400184A (zh) * | 2020-03-17 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 游戏测试方法、装置、系统、设备及云平台 |
CN112742029A (zh) * | 2020-04-15 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 一种模拟操作的方法、游戏测试的方法以及相关装置 |
CN111930614A (zh) * | 2020-07-20 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 一种自动化测试方法、装置、设备和介质 |
CN112473146A (zh) * | 2020-11-27 | 2021-03-12 | 成都完美天智游科技有限公司 | 一种游戏战斗过程信息自动化测试方法、装置及系统 |
CN112860579A (zh) * | 2021-03-17 | 2021-05-28 | 深圳市腾讯信息技术有限公司 | 业务测试方法、装置、存储介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114191822A (zh) | 2022-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Du et al. | Zero latency: Real-time synchronization of BIM data in virtual reality for collaborative decision-making | |
CN114191822B (zh) | 一种测试方法、装置、计算机设备、存储介质和产品 | |
US11724191B2 (en) | Network-based video game editing and modification distribution system | |
CN109582463A (zh) | 资源配置方法、装置、终端及存储介质 | |
US8893049B2 (en) | Creation and prioritization of multiple virtual universe teleports in response to an event | |
US20100144441A1 (en) | Method and System for Rendering the Scenes of a Role Playing Game in a Metaverse | |
CN112988400B (zh) | 显存优化方法、装置、电子设备以及可读存储介质 | |
US20210031115A1 (en) | Local game execution for spectating and spectator game play | |
CN103890815A (zh) | 用于主管可被远程自动创建、主管和终止的瞬变虚拟世界的方法和系统 | |
US11789846B2 (en) | Method and system for using stacktrace signatures for bug triaging in a microservice architecture | |
CN110457200B (zh) | 一种测试用例生成方法及其设备、存储介质、电子设备 | |
WO2023142587A1 (zh) | 虚拟对象的控制方法、装置、设备、介质及程序产品 | |
CN112755534B (zh) | 一种数据处理方法、装置和存储介质 | |
CN118678991A (zh) | 基于人工智能的网络存储游戏分配 | |
CN112860579B (zh) | 业务测试方法、装置、存储介质及设备 | |
CN113138780A (zh) | 一种终端性能评测方法、装置、设备及存储介质 | |
WO2023138142A1 (zh) | 虚拟场景中的运动处理方法、装置、设备、存储介质及程序产品 | |
US9436483B2 (en) | Enhanced system and method for dynamically connecting virtual space entities | |
US20240091643A1 (en) | Method and apparatus for controlling virtual objects in game, and electronic device and storage medium | |
Faust et al. | A video game-based mobile robot simulation environment | |
CN117695623A (zh) | 虚拟世界中物理场景资源的管理方法、装置及计算机设备 | |
Kuga et al. | An automatic team evaluation system for RoboCup soccer simulation 2D | |
CN115779441A (zh) | 增益虚拟物品发送方法、装置、移动终端和存储介质 | |
CN113244625B (zh) | 游戏地形数据的编辑方法、装置、存储介质和电子装置 | |
US20100325189A1 (en) | Evidence-based virtual world visualization |
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 |