CN109508298B - 图形化的脚本测试方法及系统 - Google Patents

图形化的脚本测试方法及系统 Download PDF

Info

Publication number
CN109508298B
CN109508298B CN201811593036.XA CN201811593036A CN109508298B CN 109508298 B CN109508298 B CN 109508298B CN 201811593036 A CN201811593036 A CN 201811593036A CN 109508298 B CN109508298 B CN 109508298B
Authority
CN
China
Prior art keywords
node
script
logic
tree
api
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
CN201811593036.XA
Other languages
English (en)
Other versions
CN109508298A (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 CN201811593036.XA priority Critical patent/CN109508298B/zh
Publication of CN109508298A publication Critical patent/CN109508298A/zh
Application granted granted Critical
Publication of CN109508298B publication Critical patent/CN109508298B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种图形化的脚本测试方法及系统。其中,该方法包括:获取以行为树节点形式呈现的逻辑树;对逻辑树进行代码解析,得到序列化的API接口和对应API接口的参数值;发送序列化的API接口和对应API接口的参数值;提取与API接口和参数值对应的游戏脚本;对游戏脚本进行测试,得到脚本测试结果。本发明解决了相关技术中由于代码层和脚本编写接口直接关联,使得代码的安全性降低,从而导致脚本测试出现异常的技术问题。

Description

图形化的脚本测试方法及系统
技术领域
本发明涉及脚本处理技术领域,具体而言,涉及一种图形化的脚本测试方法及系统。
背景技术
目标,随着移动互联网产业的迅猛发展,游戏市场也越来越趋近于手游市场的开发,手游基于其本身的便捷性,快速的开发和高效的手游迭代成为了当今游戏市场的主流趋势。对于游戏测试方向,为了适应越来越多的工作内容,和越来越宽的工作职责,降低开发成本,越来越多的外包测试被引入到测试团队中,不仅如此,越来越高的画质要求和同屏人数上限要求,也使得基于不同平台的兼容性测,压力测试等内容成为了常规的测试点。当前,在进行游戏测试时,包括两种方式:第一种是自动化搭建测试平台,完成游戏自动化脚本的跑测日志回调,能兼容移动端和PC端的测试,从而完成代码存储和前端展示等功能,但是这种方式存在很大的缺陷,由于该种测试方式是基于不同的脚本层面的代码编写,使得外包在缺少相应的代码功底和代码权限的情况下,无法自主完成脚本的编写,同时代码和接口没有完全分离,导致核心代码的安全性得不到有效的保证;而第二种是利用图像识别的方式实现自动化脚本的编写,该种方式是基于图像匹配的方式,对脚本进行编写和存储,不仅需要占用特别大的磁盘空间,而且本身的识别精度低,无法快速、准确的完成脚本的编写和存储,导致脚本的自动化测试速度降低,无法完全满足繁多的自动化测试的需求。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种图形化的脚本测试方法及系统,以至少解决相关技术中由于代码层和脚本编写接口直接关联,使得代码的安全性降低,从而导致脚本测试出现异常的技术问题。
根据本发明实施例的一个方面,提供了一种图形化的脚本测试方法,包括:获取以行为树节点形式呈现的逻辑树;对所述逻辑树进行代码解析,得到序列化的API接口和对应API接口的参数值;发送所述序列化的API接口和对应API接口的参数值;提取与所述API接口和参数值对应的游戏脚本;对所述游戏脚本进行测试,得到脚本测试结果。
可选地,所述逻辑树中包括至少一个连接节点,所述连接节点至少包含以下节点之一:入口节点:用于表示所述逻辑树的入口;选择节点:用于提供选择逻辑的节点,根据实际运行时得到的数值和节点的预设数值对比,跳转到不同的节点;动作节点:用于远程对一个函数进行调用,所述动作节点对应不同的函数的API接口;条件节点:用于实现多个条件的判断逻辑;延迟节点:用于实现时间延迟,通过调用预设函数,以对逻辑进行等待;计算节点:用于计算和存储游戏运行时的局部变量参数;出口节点:用于表示所述逻辑树的出口。
可选地,获取以行为树节点形式呈现的逻辑树包括:获取输入的所述至少一个连接节点和与每个所述连接节点对应的框图;获取每个框图之间的连接逻辑;依据所述至少一个连接节点、与每个所述连接节点对应的框图、每个框图之间的连接逻辑,以行为树节点的形式建立所述逻辑树。
可选地,对所述逻辑树进行代码解析,得到序列化的API接口和对应API接口的参数值包括:获取预先定义的每个存储字段和参数之间的字段映射关系;在解析所述逻辑树后,得到多个存储字段;依据所述字段映射关系,读取与每个存储字段所对应的参数;依据所述存储字段和所述参数,确定所述API接口和对应API接口的参数值。
可选地,提取与所述API接口和参数值对应的游戏脚本包括:获取存储所有游戏脚本的数据库;提取所述数据库中存储的与所述API接口对应的游戏脚本。
根据本发明实施例的另一方面,还提供了一种图形化的脚本测试系统,包括:前端,包括前端显示模块和前端解释器,所述前端显示模块采用框图连接的形式,形成逻辑树,所述前端解释器对所述逻辑树进行脚本解析,得到序列化的API接口和与API接口对应的参数值;服务器,接收所述前端发送的序列化的API接口和与API接口对应的参数值,提取与所述序列化的API接口和参数值对应的游戏脚本,并将所述游戏脚本发送至目标客户端,通过所述目标客户端测试所述游戏脚本。
可选地,所述前端显示模块包括:节点树,通过多个连接节点的连接,结合与每个所述连接节点对应的框图,形成所述逻辑树。
可选地,所述连接节点至少包含以下节点之一:入口节点:用于表示所述逻辑树的入口;选择节点:用于提供选择逻辑的节点,根据实际运行时得到的数值和节点的预设数值对比,跳转到不同的节点;动作节点:用于远程对一个函数进行调用,所述动作节点对应不同的函数的API接口;条件节点:用于实现多个条件的判断逻辑;延迟节点:用于实现时间延迟,通过调用预设函数,以对逻辑进行等待;计算节点:用于计算和存储游戏运行时的局部变量参数;出口节点:用于表示所述逻辑树的出口。
可选地,所述逻辑树包括下述至少之一:循环逻辑树:当所述前端解释器读取到当前运行的连接节点为条件节点时,直接跳入所述条件节点对应的解释器,对当前的变量进行条件判断,根据判断的结果,通过逻辑标识位选择子节点,以完成逻辑动作;条件逻辑树:当所述前端解释器进入到条件节点后,对当前变量进行解析判断,并根据判断结果,完成逻辑动作;选择逻辑树:当所述前端解释器进入到选择节点后,通过当前变量的标志位进行判断,选择对应的标志位的子节点,完成逻辑动作。
可选地,所述服务器包括:修改模块,用于依据网页输入的内容,对API接口进行修改;更新模块,将修改后的API接口和对应的游戏脚本存储至预设数据库,实现预设数据库中的更新。
可选地,所述目标客户端预先绑定一个预设端口,其中,所述预设端口继承了目标引擎底层的通信类接口,在测试所述预设端口收到的所述游戏脚本后,将测试结果和生成的日志返回至所述前端中。
在本发明实施例中,前端中的前端显示模块采用框图连接的形式,形成逻辑树,并利用前端解释器对逻辑树进行脚本解析,得到序列化的API接口和与API接口对应的参数值,然后利用服务器接收序列化的API接口和参数值,并提取出与该序列化的API接口和参数值对应的游戏脚本,最后将游戏脚本发送至目标客户端,通过目标客户端测试游戏脚本。在该实施例中,可以将代码转化为图形化的界面供使用者进行编辑,将编辑好的图形化逻辑树再转化为逻辑所需要的代码,这样使得即使部分人员缺乏代码权限,也可以通过图形化的编辑来自主编写自动化测试脚本,实现了代码层和界面的分离,保障了代码的安全性,这样可以使得在客户端中测试游戏脚本时,测试的安全性也会相应提高,出现异常的可能性降低,从而解决相关技术中由于代码层和脚本编写接口直接关联,使得代码的安全性降低,从而导致脚本测试出现异常的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种图形化的脚本测试系统的示意图;
图2是根据本发明实施例中的另一种可选的图形化的脚本测试系统的架构框图;
图3是根据本发明实施例的一种基于选择节点的逻辑树的示意图;
图4是根据本发明实施例的一种条件节点在前端显示部分的示意图;
图5是根据本发明实施例的一种逻辑树的逻辑走向示意图;
图6是根据本发明实施例的图形化的脚本测试方法的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于用户理解本发明,下面对本发明各实施例中涉及的部分术语或名词做出解释:
AI,Artificial Intelligence,人工智能。
API接口,Application Programming Interface,应用程序编程接口,。
RPC,Remote Procedure Call Protocol,远程方法调用。
本发明下述实施例中可以应用于各种引擎中,针对引擎在测试过程中产生的各个问题,以及当前在脚本自动测试过程中存在的问题,即由于缺乏代码权限导致脚本编写困难,或者由于图像识别技术本身局限性,导致现有的脚本回放速度过慢,而且基于图像匹配的脚本存储,不仅需要占用特别大的磁盘空间,而且本身的识别并不能完全保证准确,导致脚本测试效率低。对当前存在的各种问题,本发明通过图形化的脚本编写方式,实现代码层与编写界面分离,从而解决上述各个问题,下面结合各个实施例对本发明进行详细说明。
图1是根据本发明实施例的一种图形化的脚本测试系统的示意图,如图1所示,该脚本测试系统包括:前端11,服务器12,目标客户端13,其中,
前端11,包括前端显示模块1101和前端解释器1102,前端显示模块采用框图连接的形式,形成逻辑树,前端解释器对逻辑树进行脚本解析,得到序列化的API接口和与API接口对应的参数值;
服务器12,接收前端发送的序列化的API接口和与API接口对应的参数值,提取与序列化的API接口和参数值对应的游戏脚本,并将游戏脚本发送至目标客户端13,通过目标客户端13测试游戏脚本。
上述图形化的脚本测试系统,采用前端11中的前端显示模块1101采用框图连接的形式,形成逻辑树,并利用前端解释器1102对逻辑树进行脚本解析,得到序列化的API接口和与API接口对应的参数值,然后利用服务器12接收序列化的API接口和参数值,并提取出与该序列化的API接口和参数值对应的游戏脚本,最后将游戏脚本发送至目标客户端13,通过目标客户端测试游戏脚本。在该实施例中,可以将代码转化为图形化的界面供使用者进行编辑,将编辑好的图形化逻辑树再转化为逻辑所需要的代码,这样使得即使部分人员缺乏代码权限,也可以通过图形化的编辑来自主编写自动化测试脚本,实现了代码层和界面的分离,保障了代码的安全性,这样可以使得在客户端中测试游戏脚本时,测试的安全性也会相应提高,出现异常的可能性降低,从而解决相关技术中由于代码层和脚本编写接口直接关联,使得代码的安全性降低,从而导致脚本测试出现异常的技术问题。
下面结合各个实施方式对本发明实施例进行进一步说明。
图2是根据本发明实施例中的另一种可选的图形化的脚本测试系统的架构框图,如图2所示,该架构框图不仅包括:前端显示模块1101、前端解释器1102、服务器12、客户端13,还可以包括与服务器连接的数据库21。
由图1和图2中的内容可知,本发明实施例中的测试系统的框架主要分为三部分,即前端、服务器和客户端,下面对这三部分分别进行说明。
第一部分,前端11。
对于前端11,其包括两部分:前端显示模块1101和前端解释器1102,该前端显示模块1101和前端解释器1102可以直接连接,开发者(如游戏测试开发人员)或者外包人员等都可以在前端显示上进行操作,通过选择节点和框图,确定框图的连接关系,从而得到逻辑树,前端解释器可以直接将该逻辑树对应的代码自动化编译出来,无需人工再次编写代码了,在前端解释器将逻辑树对应的框图进行脚本层的初步解析后,可以得到相应的序列化的API接口和对应API接口的参数值,通过序列化的方式将API接口和API接口的参数值(或者脚本运行逻辑)都发送至服务器中。
本发明实施例中的前端显示部分可以采用基于NodeJS语言的开源框架Electron进行制作,用逻辑树的形式实现逻辑的运行,前端显示模块包括:节点树,通过多个连接节点的连接,结合与每个连接节点对应的框图,形成逻辑树。每个连接节点对应有框图,框图之间的连线表示了运行逻辑。
可选的,连接节点至少包含以下节点之一:
入口节点:用于表示逻辑树的入口;该入口接口可以表示逻辑树的运行逻辑开始。
选择节点:用于提供选择逻辑的节点,根据实际运行时得到的数值和节点的预设数值对比,跳转到不同的节点,其中,该选择节点的子节点个数不限定;该选择节点可以对应有不同的数值,例如,不同的数值包括:0,1,2,其中,在选择不同的数值后,将该数值与预设数值进行比较,根据比较结果,跳转到对应的子节点。
动作节点:用于远程对一个函数进行调用,动作节点对应不同的函数的API接口,其中,该动作节点可以理解为执行节点,与下述的计算节点,都是直接执行相应的动作或者计算,实现方案较为简单,往往是一步就可以达到目的;
条件节点:用于实现多个条件的判断逻辑,其中,多个条件包括等于,大于,小于,该条件节点和选择节点,循环节点可以理解为基础的逻辑节点,实现脚本运行的基本逻辑;
延迟节点:用于实现时间延迟,通过调用预设函数,以对逻辑进行等待;其中,该预设函数可以为python的time.sleep()函数,实现时间的延迟,例如,在一个程序跳转到下一节点需要执行时,可以通过该延迟节点实现时间的延迟,让下一节点的执行动作延迟相应的时间段,如延迟5秒执行;
计算节点:用于计算和存储游戏运行时的局部变量参数;
出口节点:用于表示逻辑树的出口。该出口节点可以表示逻辑树的运行逻辑结束。
对于动作节点和计算节点,前端解释器可以将对应的函数api通过建立在远程的服务器,利用RPC的方式发送给客户端进行操作。
在本发明实施例中,对逻辑树中添加的连接节点的数量不做限定,开发人员可以根据实际的脚本开发情况自行选择节点,并添加参数、表达式、变量等。
下面以一个选择节点的框图连接方式对本发明进行详细说明,图3是根据本发明实施例的一种基于选择节点的逻辑树的示意图,如图3所示,在该逻辑树中,首先从入口节点进入,然后设置一个随机整数(该处对应于ID:node_2733),其中,Random_number=rand_number(0,2),指示从0到2中随机获取一个整数;然后进入选择节点(该处对应于ID:node_2736),若随机数为0,进入最左边的节点(该处对应于ID:node_2733),执行节点对应的行为,然后弹出alert窗口(该处对应于ID:node_2739),重新进入随机获取整数节点(node_2733);若随机数为2,进入最右边的节点(该处对应于ID:node_2743),执行节点对应的行为,然后弹出alert窗口(该处对应于ID:node_2744),重新进入随机获取整数节点(node_2733);只有在随机出整数1,传送到指定坐标(该处对应于ID:node_2740),然后弹出alert窗口(该处对应于ID:node_2741),执行逻辑到达出口节点(该处对应于ID:node_2742)。
图3所示的内容中,一个完整的图形化脚本是通过各个不同的连接节点通过框图的形式连接形成逻辑树,如图3中包括了:入口节点、选择节点、出口节点、执行节点,对应有多个框图,每个框图之间会有相应的线条连接。可选的,用户在如图3示出的逻辑树中添加各种连接节点,如在图3中的选择节点后某一个节点后添加延迟节点,从而实现时间的延迟。
开发人员在使用前端显示部分时,可以对同一个选择节点直接选择需要的连接节点,在选择后,会出现关于该连接节点的ID、名称、类型、表达式、变量、提示信息等多个选择项,开发人员对选择的连接节点命名后,设置对应的表达式、变量等信息,在设置好后,反馈到逻辑树上,就是对应的逻辑树连接信息,这样后续前端解释器可以将对应的逻辑树的代码直接编译出来,得到各个API接口。
图4是根据本发明实施例的一种条件节点在前端显示部分的示意图,如图4所示,选取一个条件节点后,可以在面板的框架中填写相应的逻辑判断,例如图中所示,条件节点(如node_2000)向下个节点的逻辑条件是局部变量jinyan_2==jinyan_1+0(对应填写的整数)。对于一个条件节点,在前端解释器中代码编译部分,其基本的存储字段分别有:class:用于记录节点的类型,根据类型在前端解释器中对不同类型的节点进行解析处理;ID:用于记录节点的id编号;outputs:用于记录该节点所连接的所有子节点的信息,包括子节点的节点id,节点位置和节点的逻辑值;params:用于记录节点的参数,包括逻辑判断的类型,局部变量的类型和值等信息。
在本发明实施例中,对于逻辑树,逻辑树的类型包括:
循环逻辑树:当前端解释器读取到当前运行的连接节点为条件节点时,直接跳入条件节点对应的解释器,对当前的变量进行条件判断,根据判断的结果,通过逻辑标识位选择子节点,以完成逻辑动作;该循环逻辑树可以主要设计为执行循环逻辑,如图5中所示,在执行循环逻辑时,通过逻辑标识位选择子节点,若条件判断为是,则通过动作节点1,动作节点2,再进行条件判断,直到该条件节点判断为否,进入出口节点,完成逻辑。
条件逻辑树:当前端解释器进入到条件节点后,对当前变量进行解析判断,并根据判断结果,完成逻辑动作;该条件逻辑树可以主要设计为执行条件逻辑,如图5中所示,在执行条件逻辑时,在对当前变量进行解析判断后,若逻辑判断的结果为是,根据标志位进入动作节点2,若逻辑判断的结果为否,则进入动作节点1,动作节点1与动作节点2同时与出口节点相连,结束逻辑树。
选择逻辑树:当前端解释器进入到选择节点后,通过当前变量的标志位进行判断,选择对应的标志位的子节点,完成逻辑动作。该选择逻辑树可以主要设计为执行选择逻辑,如图5中所示,在执行选择逻辑时,通过当前变量的标志位进行判断,选择对应的标志位的子节点,同时,动作节点1,2,3均与出口节点相连,结束逻辑树。
通过上述内容,可以让前端将编辑好的逻辑树编译为代码,可以得到运行和各个API接口,然后对各个API接口进行序列化编译,通过序列化的方式发往服务器。
第二部分:服务器12。
在本发明实施例中,服务器可以作为前端和客户端的中转部分,其可以根据序列化的API接口调用数据库21中存储的脚本内容,即服务器可以实现游戏实际脚本接口的存储和编写,将前端发送过来的序列化的API接口进行整合,进而提取出与该序列化的API接口对应的游戏脚本。
服务器主要以网站和数据库交互的形式进行工作,从系统的职能角度来说,服务器主要负责脚本的存储和脚本的转发工作,作为前端和客户端的中转站,前端将API接口的名称发往服务器,服务器再根据对应的API名称将具体的脚本发往客户端。对于服务器的框架结构,可以采用python的开源框架Django进行设计,拥有网页显示和输入,同时利用数据库21进行存储和交互。
服务器包括:修改模块,用于依据网页输入的内容,对API接口进行修改;更新模块,将修改后的API接口和对应的游戏脚本存储至预设数据库,实现预设数据库中的更新。在服务器上进行API接口脚本的存储时,可以对API接口的函数存储,同时点开对应的API修改按钮进入脚本修改和存储界面,修改完毕后进行数据库的更新。当前端解释器往服务器发送对应的API接口名称时,服务器从数据库中读取相应的AI脚本。与此同时,为了使得AI脚本执行的更加便捷和准确,我们的服务器也会提供相应的脚本调试方法,服务器也可以做到与客户端相连,进行实时的调试,由此来保证脚本的正确性。可选的,服务器还可以作为前端和客户端的中转站,进行数据的远程调用和转发。
服务器作为一个远程可调用的端口,通过与前端的交互实现脚本的转发机制,对于不同的前端发送过来的信息,在分辨时,可以通过Ip和端口号进行区分,同时,前端发送过来的有效请求必须是包含目的客户端的Ip和端口号的,即在前端发送给服务器的请求中,不仅包括自身前端的IP地址和端口号,还包括测试的目的客户端的IP地址和端口号,这样在后续发送游戏脚本时,依据该目的客户端的IP地址和端口号,可以直接查询到目的客户端。
第三部分,客户端13。
客户端指示了游戏的载体,即游戏运行的环境,该客户端可以包括:PC端、移动终端、移动设备实验室等。通过客户端可以运行游戏,对游戏脚本进行跑测,并返回测试日志,该测试日志可以存储测试的时间和测试的流程,并将测试结果和测试日志回调至前端中,让测试开发者或者外包人员能知道自己通过框图的形式编写的逻辑树是否合理,从而进行相应的调整。
可选的,目标客户端预先绑定一个预设端口,其中,预设端口继承了目标引擎底层的通信类接口,在测试预设端口收到的游戏脚本后,将测试结果和生成的日志返回至前端中。
本发明实施例中,提出了一种基于图形化界面,编写游戏脚本的方式,将脚本层和界面层进行分离,可以使得完全对代码没有了解的外包测试工作人员也能轻松的进行自动化脚本的编写,解放劳动力,与此同时也解决了核心代码的权限问题。本方案通过对前端图形的解析,实现了逻辑上的循环,条件判断,选择判断等逻辑层面组成系统的基本元素,实现了图形化的脚本编辑和脚本测试,可以将图形化的逻辑树自动转化为游戏脚本,同时,利用网络通信,实现了游戏脚本的实时可调和测试日志g的实时读取功能,保证了自动化游戏脚本的质量。相对于现有的图像识别脚本编辑和脚本测试方式,可以大大提高测试人员的工作效率,而且实现的方案更加简单,符合用户的操作习惯。
下面结合另一种图形化的脚本测试方法对本发明进行说明,该脚本测试方法可以应用于上述实施例一种示出的图形化的脚本测试系统中。
根据本发明实施例,提供了一种图形化的脚本测试方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图6是根据本发明实施例的图形化的脚本测试方法的流程图,如图6所示,该方法包括如下步骤:
步骤S602,获取以行为树节点形式呈现的逻辑树;
步骤S604,对逻辑树进行代码解析,得到序列化的API接口和对应API接口的参数值;
步骤S606,发送序列化的API接口和对应API接口的参数值;
步骤S608,提取与API接口和参数值对应的游戏脚本;
步骤S610,对游戏脚本进行测试,得到脚本测试结果。
通过上述步骤,获取以行为树节点形式呈现的逻辑树,对逻辑树进行代码解析,得到序列化的API接口和对应API接口的参数值,提取与API接口和对应API接口的参数值,提取与API接口和参数值对应的游戏脚本,对游戏脚本进行测试,得到脚本测试结果。在该实施例中,可以将代码转化为图形化的界面供使用者进行编辑,将编辑好的图形化逻辑树再转化为逻辑所需要的代码,这样使得即使部分人员缺乏代码权限,也可以通过图形化的编辑来自主编写自动化测试脚本,实现了代码层和界面的分离,保障了代码的安全性,这样可以使得在客户端中测试游戏脚本时,测试的安全性也会相应提高,出现异常的可能性降低,从而解决相关技术中由于代码层和脚本编写接口直接关联,使得代码的安全性降低,从而导致脚本测试出现异常的技术问题。
下面结合各个步骤对本发明进行说明。
步骤S602,获取以行为树节点形式呈现的逻辑树。
可选的,逻辑树中包括至少一个连接节点,连接节点至少包含以下节点之一:
入口节点:用于表示逻辑树的入口;
选择节点:用于提供选择逻辑的节点,根据实际运行时得到的数值和节点的预设数值对比,跳转到不同的节点,其中,该选择节点的子节点个数不限定;该选择节点可以对应有不同的数值,例如,不同的数值包括:0,1,2;
动作节点:用于远程对一个函数进行调用,动作节点对应不同的函数的API接口;
条件节点:用于实现多个条件的判断逻辑,其中,多个条件包括等于,大于,小于,该条件节点和选择节点,循环节点可以理解为基础的逻辑节点,实现脚本运行的基本逻辑;
延迟节点:用于实现时间延迟,通过调用预设函数,以对逻辑进行等待;其中,该预设函数可以为python的time.sleep()函数,实现时间的延迟,例如,在一个程序跳转到下一节点需要执行时,可以通过该延迟节点实现时间的延迟,让下一节点的执行动作延迟相应的时间段,如延迟5秒执行;
计算节点:用于计算和存储游戏运行时的局部变量参数;
出口节点:用于表示逻辑树的出口。
在使用框图时,可以先选择出相应的连接节点,然后对框图和各种变量、表达式等进行设置,满足脚本的编写。
需要说明的是,获取以行为树节点形式呈现的逻辑树包括:根据所述游戏脚本,获取输入的至少一个连接节点和与每个连接节点对应的框图;获取每个框图之间的连接逻辑;依据至少一个连接节点、与每个连接节点对应的框图、每个框图之间的连接逻辑,以行为树节点的形式建立逻辑树。
即可以对框图、连接节点和框图连接逻辑进行确定,并以行为树节点的形式建立该逻辑树。逻辑树中包括多个连接节点和节点之间的连接逻辑,然后将逻辑树转化为程序代码,以确定出游戏脚本。
步骤S604,对逻辑树进行代码解析,得到序列化的API接口和对应API接口的参数值。
上述步骤S604可以是利用前端解释器做的,通过前端解释器可以对逻辑树进行解析,从而得到各个API接口和运行逻辑数据,然后将API接口序列化,并将序列化的API接口和与API接口对应的参数值发送给服务器。
在本发明实施例中,对逻辑树进行代码解析,得到序列化的API接口和对应API接口的参数值包括:获取预先定义的每个存储字段和参数之间的字段映射关系;在解析逻辑树后,得到多个存储字段;依据字段映射关系,读取与每个存储字段所对应的参数;依据存储字段和参数,确定API接口和对应API接口的参数值。
步骤S606,发送序列化的API接口和对应API接口的参数值;
步骤S608,提取与API接口和参数值对应的游戏脚本;
可选的,提取与API接口对应的游戏脚本包括:获取存储所有游戏脚本的数据库;提取数据库中存储的与API接口对应的游戏脚本。即可以通过数据库预先存储各个API接口对应的游戏脚本,在得到序列化的API接口后,对API接口进行整合处理,然后调取出数据库中存储的游戏脚本。
步骤S610,对游戏脚本进行测试,得到脚本测试结果。
上述方法,可以提供图形化的脚本编辑方式,然后对编辑的脚本进行测试,通过将服务器与前端完全隔离的形式,解决了在引擎相关测试过程中代码的安全性和权限问题,同时利用图形化的界面,简化了测试人员的工作难度,使得部分没有代码基础的外包测试人员也可以通过前端进行AI脚本的编写和测试,大大提高了测试部门的人力成本和测试人员的工作效率,同时,采用前端解释器对图形界面进行脚本解释的方式代替了图像识别技术,即可以解决图像识别技术耗时长,误差大,存储数据大等问题。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种图形化的脚本测试方法,其特征在于,包括:
获取以行为树节点形式呈现的逻辑树;
对所述逻辑树进行代码解析,得到序列化的API接口和对应API接口的参数值;
发送所述序列化的API接口和对应API接口的参数值;
提取与所述API接口和参数值对应的游戏脚本;
对所述游戏脚本进行测试,得到脚本测试结果;
其中,所述逻辑树中包括至少一个连接节点,所述连接节点至少包含以下节点之一:
入口节点:用于表示所述逻辑树的入口;
选择节点:用于提供选择逻辑的节点,根据实际运行时得到的数值和节点的预设数值对比,跳转到不同的节点;
动作节点:用于远程对一个函数进行调用,所述动作节点对应不同的函数的API接口;
条件节点:用于实现多个条件的判断逻辑;
延迟节点:用于实现时间延迟,通过调用预设函数,以对逻辑进行等待;
计算节点:用于计算和存储游戏运行时的局部变量参数;
出口节点:用于表示所述逻辑树的出口。
2.根据权利要求1所述的方法,其特征在于,获取以行为树节点形式呈现的逻辑树包括:
获取输入的所述至少一个连接节点和与每个所述连接节点对应的框图;
获取每个框图之间的连接逻辑;
依据所述至少一个连接节点、与每个所述连接节点对应的框图、每个框图之间的连接逻辑,以行为树节点的形式建立所述逻辑树。
3.根据权利要求1所述的方法,其特征在于,对所述逻辑树进行代码解析,得到序列化的API接口和对应API接口的参数值包括:
获取预先定义的每个存储字段和参数之间的字段映射关系;
在解析所述逻辑树后,得到多个存储字段;
依据所述字段映射关系,读取与每个存储字段所对应的参数;
依据所述存储字段和所述参数,确定所述API接口和对应API接口的参数值。
4.根据权利要求1所述的方法,其特征在于,提取与所述API接口和参数值对应的游戏脚本包括:
获取存储所有游戏脚本的数据库;
提取所述数据库中存储的与所述API接口对应的游戏脚本。
5.一种图形化的脚本测试系统,其特征在于,包括:
前端,包括前端显示模块和前端解释器,所述前端显示模块采用框图连接的形式,形成逻辑树,所述前端解释器对所述逻辑树进行脚本解析,得到序列化的API接口和与API接口对应的参数值;
服务器,接收所述前端发送的序列化的API接口和与API接口对应的参数值,提取与所述序列化的API接口和参数值对应的游戏脚本,并将所述游戏脚本发送至目标客户端,通过所述目标客户端测试所述游戏脚本;
其中,所述前端显示模块包括:
节点树,通过多个连接节点的连接,结合与每个所述连接节点对应的框图,形成所述逻辑树;
其中,所述连接节点至少包含以下节点之一:
入口节点:用于表示所述逻辑树的入口;
选择节点:用于提供选择逻辑的节点,根据实际运行时得到的数值和节点的预设数值对比,跳转到不同的节点;
动作节点:用于远程对一个函数进行调用,所述动作节点对应不同的函数的API接口;
条件节点:用于实现多个条件的判断逻辑;
延迟节点:用于实现时间延迟,通过调用预设函数,以对逻辑进行等待;
计算节点:用于计算和存储游戏运行时的局部变量参数;
出口节点:用于表示所述逻辑树的出口。
6.根据权利要求5所述的脚本测试系统,其特征在于,所述逻辑树包括下述至少之一:
循环逻辑树:当所述前端解释器读取到当前运行的连接节点为条件节点时,直接跳入所述条件节点对应的解释器,对当前的变量进行条件判断,根据判断的结果,通过逻辑标识位选择子节点,以完成逻辑动作;
条件逻辑树:当所述前端解释器进入到条件节点后,对当前变量进行解析判断,并根据判断结果,完成逻辑动作;
选择逻辑树:当所述前端解释器进入到选择节点后,通过当前变量的标志位进行判断,选择对应的标志位的子节点,完成逻辑动作。
7.根据权利要求5所述的脚本测试系统,其特征在于,所述服务器包括:
修改模块,用于依据网页输入的内容,对API接口进行修改;
更新模块,将修改后的API接口和对应的游戏脚本存储至预设数据库,实现预设数据库中的更新。
8.根据权利要求5所述的脚本测试系统,其特征在于,所述目标客户端预先绑定一个预设端口,其中,所述预设端口继承了目标引擎底层的通信类接口,在测试所述预设端口收到的所述游戏脚本后,将测试结果和生成的日志返回至所述前端中。
CN201811593036.XA 2018-12-25 2018-12-25 图形化的脚本测试方法及系统 Active CN109508298B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811593036.XA CN109508298B (zh) 2018-12-25 2018-12-25 图形化的脚本测试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811593036.XA CN109508298B (zh) 2018-12-25 2018-12-25 图形化的脚本测试方法及系统

Publications (2)

Publication Number Publication Date
CN109508298A CN109508298A (zh) 2019-03-22
CN109508298B true CN109508298B (zh) 2022-03-22

Family

ID=65754667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811593036.XA Active CN109508298B (zh) 2018-12-25 2018-12-25 图形化的脚本测试方法及系统

Country Status (1)

Country Link
CN (1) CN109508298B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110333954B (zh) * 2019-04-04 2024-02-23 平安科技(深圳)有限公司 基于django框架的接口调用记录方法、装置、设备及存储介质
CN112035373B (zh) * 2020-09-08 2022-10-28 厦门亿联网络技术股份有限公司 基本测试脚本的测试方法、装置、服务器及介质
CN113742208B (zh) * 2020-10-19 2024-05-17 北京沃东天骏信息技术有限公司 一种软件检测方法、装置、设备及计算机可读存储介质
CN112882930B (zh) * 2021-02-04 2023-09-26 网易(杭州)网络有限公司 自动化测试方法、装置、存储介质及电子设备
CN115543263A (zh) * 2021-06-29 2022-12-30 北京字跳网络技术有限公司 脚本生成方法、装置、设备及介质
CN117389569B (zh) * 2023-10-26 2024-06-14 重庆猪哥亮科技有限责任公司 一种程序解释执行方法
CN117474312B (zh) * 2023-12-28 2024-04-05 图快数字科技(杭州)有限公司 可视化业务流编排方法、系统、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761108A (zh) * 2014-02-14 2014-04-30 杭州朗和科技有限公司 一种实现行为树的方法及装置
CN104268072A (zh) * 2014-09-03 2015-01-07 武汉烽火网络有限责任公司 图形化脚本编辑器及快速开发通信设备测试脚本的方法
CN107704376A (zh) * 2016-08-11 2018-02-16 福建省天奕网络科技有限公司 游戏自动化测试方法及其系统
CN107704398A (zh) * 2017-11-01 2018-02-16 网易(杭州)网络有限公司 自动化测试方法及装置、存储介质、电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11256524B2 (en) * 2013-02-19 2022-02-22 Quick Eye Technologies Inc. Data structures for visualization of hierarchical data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761108A (zh) * 2014-02-14 2014-04-30 杭州朗和科技有限公司 一种实现行为树的方法及装置
CN104268072A (zh) * 2014-09-03 2015-01-07 武汉烽火网络有限责任公司 图形化脚本编辑器及快速开发通信设备测试脚本的方法
CN107704376A (zh) * 2016-08-11 2018-02-16 福建省天奕网络科技有限公司 游戏自动化测试方法及其系统
CN107704398A (zh) * 2017-11-01 2018-02-16 网易(杭州)网络有限公司 自动化测试方法及装置、存储介质、电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
资源受限设备的ZigBee树路由协议改进算法研究;喻先强等;《微型机与应用》;20151231(第13期);第65-68页 *

Also Published As

Publication number Publication date
CN109508298A (zh) 2019-03-22

Similar Documents

Publication Publication Date Title
CN109508298B (zh) 图形化的脚本测试方法及系统
US11107036B2 (en) Systems and methods for business processing modelling
CN107577607B (zh) 用户界面自动化测试方法、装置、电子设备、存储介质
CN105739983B (zh) 脚本程序编辑装置及其实现方法
CN112394922A (zh) 决策配置方法、业务决策方法和决策引擎系统
CN110244942B (zh) 一种页面生成方法、装置及系统
CN110457218A (zh) 游戏引擎测试方法、装置、存储介质及电子设备
US11455150B2 (en) Accelerating application modernization
Marchetto et al. Reajax: a reverse engineering tool for ajax web applications
Soliman et al. Enriching architecture knowledge with technology design decisions
CN110944048A (zh) 业务逻辑配置方法及装置
CN112732576B (zh) 基于用户界面的自动化测试方法、装置及设备
CN111831542B (zh) Api应用调测方法及装置、存储介质
Bajammal et al. Generating reusable web components from mockups
CN112882930B (zh) 自动化测试方法、装置、存储介质及电子设备
CN112947914A (zh) 一种基于模型的代码生成方法、装置、计算机设备及介质
Garcia Mastering Software Testing with JUnit 5: Comprehensive guide to develop high quality Java applications
Oliveira Junior et al. SMartySPEM: a SPEM-based approach for variability management in software process lines
CN115757100A (zh) 面向用户界面的自动化测试框架以及方法、设备、介质
US20130007697A1 (en) Program creation support apparatus, program, and information system
US20220075710A1 (en) System and method for improved unit test creation
CN117215661A (zh) 一种事件处理的方法、装置以及存储介质
CN111459774A (zh) 一种应用程序的流量的获取方法、装置、设备及存储介质
CN115454702A (zh) 日志故障分析方法、装置、存储介质及电子设备
CN114880239A (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