游戏性能的测试方法、测试装置、可读介质和电子设备与流程

文档序号:11230354阅读:1024来源:国知局
游戏性能的测试方法、测试装置、可读介质和电子设备与流程

本发明涉及性能测试技术领域,具体而言,涉及一种游戏性能的测试方法、测试装置、可读介质和电子设备。



背景技术:

在mmo(massivemultiplayeronline,大型多人在线)游戏测试中,经常需要模拟玩家的行为来对服务器的性能进行测试,以衡量服务器的负载,以及检查服务器在多人环境下可能出现的bug,保证服务器的稳定运行。

在相关技术中,玩家行为的模拟测试方案主要采用如下两种:一种是有限状态机(finitestatemachine),另一种是行为树(behaviortree)。但是这两种方式在测试中的应用效果并不好,这是由于这两种方式是沿用了游戏中的怪物ai(artificialintelligence,人工智能)实现,游戏中的ai侧重的是怪物的行为表现更加细腻,更加智能,而测试中的ai更加偏重于增强压力、增强随机性和增加覆盖面来暴露问题。除此之外,上述的两种测试方案还存在如下问题:

对于有限状态机的方案,当状态较多之后,难以组织和理清状态之间的逻辑;并且有限状态机构成的行为ai难以复用;同时有限状态机的方案维护较为困难,每个环节出错都会导致状态错误。

对于行为树的方案,由于行为树ai逻辑复杂,且逻辑与平时的思考逻辑不一致,导致分析困难;并且行为树ai没有模块化,复用性较差;同时,编写和调试行为树的时间较长,耗费大量的时间和精力;此外,行为树ai的逻辑消耗比较大,不适合作为测试机器人ai。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

本发明的目的在于提供一种游戏性能的测试方法、测试装置、可读介质和电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。

本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。

根据本发明的第一方面,提供了一种游戏性能的测试方法,包括:获取配置的多种动作执行模式;从所述多种动作执行模式中选择与待测试的游戏行为相匹配的至少一种动作执行模式;根据所述待测试的游戏行为和所述至少一种动作执行模式,生成测试用例;基于所述测试用例对游戏的性能进行测试。

在本发明的一些实施例中,基于前述方案,根据所述待测试的游戏行为和所述至少一种动作执行模式,生成测试用例的步骤,包括:将所述待测试的游戏行为所关联的动作添加至所述至少一种动作执行模式中,以生成所述测试用例。

在本发明的一些实施例中,基于前述方案,所述多种动作执行模式包括第一动作执行模式,所述第一动作执行模式的执行过程包括:执行设定的动作;若所述设定的动作执行失败,则重复执行所述设定的动作,直到所述设定的动作执行成功或达到设定的结束条件;若所述设定的动作执行成功,则确定所述第一动作执行模式执行完成。

在本发明的一些实施例中,基于前述方案,所述多种动作执行模式包括第二动作执行模式,所述第二动作执行模式的执行过程包括:按照设定的顺序依次执行设定的多个动作,其中,执行所述多个动作中的任一动作的过程包括:执行所述任一动作;若所述任一动作执行失败,则继续执行所述任一动作,直到所述任一动作执行成功或达到设定的结束条件。

在本发明的一些实施例中,基于前述方案,所述多种动作执行模式包括第三动作执行模式,所述第三动作执行模式的执行过程包括:按照固定的时间间隔重复执行设定的动作。

在本发明的一些实施例中,基于前述方案,所述多种动作执行模式包括第四动作执行模式,所述第四动作执行模式的执行过程包括:按照随机产生的时间间隔重复执行设定的动作。

在本发明的一些实施例中,基于前述方案,在生成所述测试用例时,还包括:根据所述待测试的游戏行为,设置所述至少一种动作执行模式之间的执行逻辑。

根据本发明的第二方面,提供了一种游戏性能的测试装置,包括:获取单元,用于获取配置的多种动作执行模式;选择单元,用于从所述多种动作执行模式中选择与待测试的游戏行为相匹配的至少一种动作执行模式;生成单元,用于根据所述待测试的游戏行为和所述至少一种动作执行模式,生成测试用例;处理单元,用于基于所述测试用例对游戏的性能进行测试。

根据本发明的第三方面,提供了一种可读介质,其上存储有程序,该程序被处理器执行时实现如上述第一方面所述的游戏性能的测试方法。

根据本发明的第四方面,提供了一种电子设备,包括:处理器和存储器,所述存储器存储有可执行指令,所述处理器用于调用所述存储器存储的可执行指令执行如上述第一方面所述的游戏性能的测试方法。

在本发明的一些实施例所提供的技术方案中,通过配置多种动作执行模式,以从中选择与待测试的游戏行为相匹配的至少一种动作执行模式,并根据待测试的游戏行为和选择出的至少一种动作执行模式,生成测试用例,进而基于生成的测试用例对游戏的性能进行测试,使得在对游戏性能进行测试时,能够基于可复用的多种动作执行模式来生成测试用例,进而能够降低测试用例的编写难度,同时能够快速生成测试用例,提高了性能测试的效率。

此外,本发明实施例的技术方案也能够减少对游戏性能测试时的逻辑消耗,减少了对系统的软硬件资源的消耗,进而能够在游戏性能测试时提高测试的模拟量,在一定程度上提高了测试质量。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1示意性示出了根据本发明的实施例的游戏性能的测试方法的流程图;

图2示意性示出了根据本发明的实施例的第一动作执行模式的执行过程图;

图3示意性示出了根据本发明的实施例的第二动作执行模式的执行过程图;

图4示意性示出了根据本发明的实施例的第三动作执行模式的执行过程图;

图5示意性示出了根据本发明的实施例的第四动作执行模式的执行过程图;

图6示出了根据本发明的实施例的通过单次动作执行模式添加动作的示意图;

图7示出了根据本发明的实施例的通过顺序动作执行模式添加动作的示意图;

图8示出了根据本发明的实施例的通过重复动作执行模式和随机动作执行模式添加动作的示意图;

图9示出了根据本发明的实施例的通过多种动作执行模式构成测试方案的示意图;

图10示意性示出了根据本发明的一个实施例的游戏性能的测试装置的框图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

在本发明实施例的一种游戏性能的测试方案中,可以通过有限状态机的方案来进行测试。有限状态机用于表示有限多个状态以及在这些状态之间转移和动作的数学模型。一般情况下,有限状态机主要分为以下几个部分:

1、状态:主要用于存储过去的信息,并描述现在的状态;

2、转移条件:用于描述状态间相互转移的条件;

3、进入动作:用于表示在进入状态时的动作;

4、退出动作:用于表示在退出状态时的动作;

5、转移动作:用于表示在进行状态转移的动作。

有限状态机是很多游戏ai算法的基础,可以为更深奥的游戏ai算法提供支持,有限状态机编程快速简单,易于图形化表示逻辑,并且易于调试。

在本发明实施例的另一种游戏性能的测试方案中,可以通过行为树的方案来进行测试。

行为树就是一棵节点层次分明的树,其是以树的层次逻辑来表示执行控制。从树延伸出的叶子节点执行控制ai物体的指令,各种工具节点组成树的分支,并控制ai指令的走向以形成一系列的指令。

其中,行为树主要包括合成节点、修饰节点和叶子节点,以下分别进行说明:

合成节点可以有一个或多个子节点,它们处理子节点的顺序可以是从第一个到最后一个,或者某些特定的合成节点的随机顺序,在某一阶段会根据它的子节点的处理结果向它的父节点返回success(成功)或者failure(失败),通常这取决于它的子节点的success或者failure。当它在处理子节点时,会向它的父节点持续发送running(运行)信息。最常用的合成节点是sequence(顺序)节点,它按照顺序运行每一个子节点,如果任何一个子节点返回了failure,它返回failure;如果所有子节点返回成功状态,它才返回成功。

修饰节点同合成节点相似,可以拥有子节点,与合成节点的不同点在于,修饰节点有且只有一个子节点。修饰节点的功能就是将子节点的结果传递给父节点,停止子节点;或者重复执行子节点,这取决于具体的修饰节点类型。一个常用的修饰节点的用法就是inverter(反相器),它只是把子节点的结果反相,当它的子节点返回了失败,它给它的父节点返回成功,反之亦反。

叶子节点是最底层的节点类型,不能拥有子节点。但叶子节点是最强大的节点类型,因为它在游戏中被定义和实现具体游戏或具体角色的检测或者动作。举例而言,一个walk节点(该walk节点为叶子节点)会让角色行走到指定的地点,然后根据行走的结果来返回成功或者失败。

上述介绍了在进行游戏性能测试时使用的有限状态机的方案和行为树的方案,以下介绍本发明实施例的另一种游戏性能的测试方案。

如图1所示,根据本发明的实施例的游戏性能的测试方法,包括:

步骤s102,获取配置的多种动作执行模式。

在本发明的实施例中,所述的多种动作执行模式可以根据实际的测试需求来进行配置,以下列举几种优选的动作执行模式:

(1)上述的多种动作执行模式包括第一动作执行模式,所述第一动作执行模式的执行过程包括:

执行设定的动作;

若所述设定的动作执行失败,则重复执行所述设定的动作,直到所述设定的动作执行成功或达到设定的结束条件;

若所述设定的动作执行成功,则确定第一动作执行模式执行完成。

根据本发明的示例性实施例,如图2所示,该实施例中设定的结束条件是超时,具体地,若动作执行失败,则判断是否超时,如果没有超时,则等待x秒后继续执行动作,直到动作执行成功或超时。其中,x可以为0秒。

需要说明的是,第一动作执行模式可以是单次动作执行模式。即在执行时会不断重试直到成功或者超时(超时时间可以为无限)。这种动作可以用于对ai的环境进行初始化,或者设定ai的起始状态,比如设置游戏中人物的等级、技能水平、金钱、经验等等。

(2)上述的多种动作执行模式包括第二动作执行模式,所述第二动作执行模式的执行过程包括:

按照设定的顺序依次执行设定的多个动作,其中,执行所述多个动作中的任一动作的过程包括:执行所述任一动作;若所述任一动作执行失败,则继续执行所述任一动作,直到所述任一动作执行成功或达到设定的结束条件。

根据本发明的示例性实施例,如图3所示,该实施例中设定的结束条件是超时,若任一动作执行失败,则判断该动作的执行时长是否超时,如果没有超时,则等待一定时长(可以为0)后继续执行动作,直到动作执行成功或超时之后,再按顺序执行下一动作。

需要说明的是,第二动作执行模式可以是顺序动作执行模式。这种动作模式会按照顺序(可以插入和删除)依次执行动作,每个动作执行完毕后才会按照定义的时间间隔(可以为0)执行下一个动作,在动作执行时会不断重试直到成功或者超时(超时时间可以为无限)。同时,当所有动作执行完毕后可以选择循环执行,这个动作模式可以用于对流程化的方法进行测试处理。

(3)上述的多种动作执行模式包括第三动作执行模式,所述第三动作执行模式的执行过程包括:按照固定的时间间隔重复执行设定的动作。

根据本发明的示例性实施例,如图4所示,在动作执行完毕之后,等待x秒(x可以为0)后重复执行动作。

需要说明的是,第三动作执行模式可以是重复动作执行模式。这种动作模式会按照定义的时间间隔不断执行某个动作,其主要用于定时触发一些动作,比如游戏中人物技能的释放、操作方式的切换等等。

(4)上述的多种动作执行模式包括第四动作执行模式,所述第四动作执行模式的执行过程包括:按照随机产生的时间间隔重复执行设定的动作。

根据本发明的示例性实施例,如图5所示,在动作执行完毕之后,随机等待一定时长后重复执行动作。

需要说明的是,第四动作执行模式可以是随机动作执行模式。这种动作模式会按照定义的随机时间范围,产生随机时间间隔以不断地执行动作。可见,这种动作执行模式可以针对动作的执行引入很强的随机性,进而能够易于暴露游戏中的bug,这种动作执行模式可以用于测试技能的释放、玩法的切换和怪物切换等等。

需要说明的是,本发明实施例的动作执行模式并不限于上述所列举的四种动作执行模式,本领域技术人员在实际测试过程中,可以根据实际需要进行配置。

继续参照图1,所示的游戏性能的测试方法还包括:

步骤s104,从所述多种动作执行模式中选择与待测试的游戏行为相匹配的至少一种动作执行模式。

具体来说,比如在测试参加竞技比赛的场景时,需要玩家等级60级,并需要100个游戏币,那么可以选择上述的第一动作执行模式(即单次动作执行模式)来设置玩家等级60,并增加100游戏币。

再比如,在测试参加竞技比赛的流程时,由于整个流程包括:报名、等待匹配、进入竞技场、等待竞技结束、退出竞技场,因此可以选择上述的第二动作执行模式(即顺序动作执行模式)。

步骤s106,根据所述待测试的游戏行为和所述至少一种动作执行模式,生成测试用例。

根据本发明的示例性实施例,步骤s106包括:将所述待测试的游戏行为所关联的动作添加至所述至少一种动作执行模式中,以生成所述测试用例。

在本发明的一些实施例中,基于前述方案,在生成所述测试用例时,还包括:根据所述待测试的游戏行为,设置所述至少一种动作执行模式之间的执行逻辑。比如,在基于上述的第三动作执行模式进行测试的过程中,可以通过设置的执行逻辑来调用第一动作执行模式来进行辅助测试。

步骤s108,基于所述测试用例对游戏的性能进行测试。

在图1所示的游戏性能的测试方案中,并没有沿用游戏开发中的有限状态机和行为树机制,而是设计了新的测试方案,使得测试方案中的测试用例的逻辑更简单,调试更方便,复用性更强,使用成本更低。

具体来说,上述的游戏性能测试方案是通过预定动作执行模式的组合来模拟玩家行为,进而实现对游戏服务器的性能、压力,以及对游戏的各个玩法的综合测试。本发明实施例的测试方案容易引发和暴露游戏中的bug,从而达到提高测试质量的目的。

在本发明实施例的技术方案中,当进行玩家行为模拟测试时,具体由如下步骤完成:

首先是测试的初始化,所有的测试都需要制造测试环境,或者说测试的起点,当需要对测试点进行测试时,这个测试点并不一定是可以直接执行的,往往测试点都是有执行前提的,这个执行前提多种多样。比如,游戏设定了只有玩家等级达到10级以后才能进行玩家之间的交易,那么在测试玩家交易时,就需要将玩家的等级设置在十级以上,然后制造交易物品,增加交易所需的金币,才能进行交易测试,这一步骤可以通过上述的单次动作执行模式来完成。

然后是进行测试的流程控制。当进行玩家模拟测试时,往往需要模拟玩家进行某项玩法的完整流程,因此在测试时,需要对玩家进行流程控制,以保证测试能顺利走完也能顺利重复。比如在进行副本玩法测试的时候,需要玩家组队,然后申请副本,然后通关副本a点再通关b点直到通关成功,最后退出副本重新申请。这个流程的控制可以使用上述的顺序动作执行模式来完成。

接下来是模拟行为控制。进行多玩家模拟测试的时候,为了尽量遍历到多种组合,需要让玩家具有不断重复的或随机重复的行为,比如玩家按一定的频率进行世界聊天,而世界聊天是会在整个服务器进行广播的,这个可以用来测试服务器的消息通讯能力,同时玩家可以进行随机技能释放,技能释放信息是在副本内广播的,副本广播是服务器的部分信息广播,这样就可以测试同时在整个服务器的消息广播和部分消息广播时的服务器压力、负载和表现情况,然后可以控制玩家随机地进行一些意外操作,以检测服务器在玩家进行一些非法操作时是否能够正常工作。这个流程可以用上述的重复动作执行模式和随机动作执行模式,以及顺序动作执行模式来完成。

最后是测试结束。在测试结束时需要进行测试结算,所有模拟玩家需要随机或定时地停止行为状态,并等待服务器进行结算,然后统计结算结果,观察服务器是否有错误或者模拟玩家身上是否发生了异常的状态,并输出测试结果。这个流程可以使用上述的顺序动作执行模式来进行顺序测试状态结算清点控制。

需要说明的是,本发明实施例中的多种动作执行模式是并行执行的,如果某一动作执行模式没有对其他动作执行模式进行调用(即不同动作执行模式之间不存在调用逻辑调用),则这多种动作执行模式之间是独立的,这种独立性也带来了逻辑的简化和设计的方便。在进行实际的模拟测试时,只需要往这多种动作模式中增添删改动作就可以实现一个完整的玩家行为模拟。此外,在动作执行的过程中,也可以对其他动作模式进行操作从而实现更高级的动作行为,比如在通过一个动作执行模式进行模拟测试的过程中,可以调用另一个动作执行模式来进行辅助测试。

以下以具体的测试场景对本发明实施例的技术方案进行详细说明:

在本发明的实施例中,如要进行一个玩法测试时,首先需要根据这个玩法的需求门槛对模拟的机器人进行初始化。如图6所示,比如参加竞技比赛的时候,需要玩家等级60级,且需要100个游戏币,那么测试用例可以通过单次动作执行模式设置玩家等级60,并增加100游戏币。

接下来,需要进行游戏流程的模拟,由于参加竞技比赛的游戏流程是:报名、等待匹配、进入竞技场、等待竞技结束、退出竞技场,因此可以在顺序动作执行模式中依次添加这些动作,具体如图7所示。

再接下进行战斗行为的模拟,玩家的行为模拟比较简单,只需要跳到敌人身边,进行技能释放即可。技能分为两种,一种是连招技能,需要固定时间内释放,可以采用重复动作执行模式;另一种是带冷却的技能,进行随机时间释放,可以采用随机动作执行模式,具体如图8所示。

如此能够快速地构成一个竞技比赛的测试方案,具体如图9所示,进而能够进行高效率的游戏性能测试。

图10示意性示出了根据本发明的一个实施例的游戏性能的测试装置的框图。

参照图10,根据本发明的一个实施例的游戏性能的测试装置1000,包括:获取单元1002、选择单元1004、生成单元1006和处理单元1008。

具体地,获取单元1002用于获取配置的多种动作执行模式;选择单元1004用于从所述多种动作执行模式中选择与待测试的游戏行为相匹配的至少一种动作执行模式;生成单元1006用于根据所述待测试的游戏行为和所述至少一种动作执行模式,生成测试用例;处理单元1008用于基于所述测试用例对游戏的性能进行测试。

需要说明的是,上述游戏性能的测试装置中各模块/单元的具体细节已经在对应的游戏性能的测试方法中进行了详细的描述,因此此处不再赘述。

此外,本发明的实施方式还提供一种电子设备,可以包括:处理器和存储器,其中,所述存储器存储有可执行指令,所述处理器用于调用所述存储器存储的可执行指令执行如本发明上述实施例中所述的游戏性能的测试方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由电子设备的处理器执行以完成在示例性实施例中的上述技术方案。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

本发明上述实施例的技术方案能够实现如下的技术效果:

1、本发明的实施例在进行游戏性能测试时,游戏行为的模拟方案是由多种定义明确的动作模式组成,逻辑清晰,编写简单方便。

2、本发明实施例中的动作模式相互之间都是独立的,调试方便,开发成本较低。

3、本发明实施例中的动作模式包括随机动作执行模式,通过这种动作模式进行测试的随机性较强,能更好地引发和暴露游戏问题。

4、本发明实施例中的游戏性能测试在模拟玩家的游戏行为时,简化了ai的逻辑,开发门槛低,更方便测试人员设计测试用例。

5、本发明实施例中的动作模式可以模拟定时行为,执行效率高,ai上的消耗更低。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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