CN112882930B - 自动化测试方法、装置、存储介质及电子设备 - Google Patents
自动化测试方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN112882930B CN112882930B CN202110156724.5A CN202110156724A CN112882930B CN 112882930 B CN112882930 B CN 112882930B CN 202110156724 A CN202110156724 A CN 202110156724A CN 112882930 B CN112882930 B CN 112882930B
- Authority
- CN
- China
- Prior art keywords
- test
- node
- tree
- behavior tree
- behavior
- 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
-
- 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/3684—Test management for test design, e.g. generating new test cases
-
- 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/3696—Methods or tools to render software testable
Abstract
本公开涉及一种自动化测试方法、装置、存储介质及电子设备。该自动化测试方法包括:配置测试脚本,并将所述测试脚本挂载至行为树的目标节点以生成测试行为树;建立与测试对象之间的通信连接,以使所述测试对象运行所述测试行为树并执行所述测试脚本;实时接收所述测试对象运行所述测试行为树的运行数据直至测试结束。本公开提供的自动化测试方法能够实现自动化测试时对待测对象无侵入,拓宽了自动化测试场景的应用范围。
Description
技术领域
本公开涉及计算机领域,具体涉及一种自动化测试方法、装置、存储介质及电子设备。
背景技术
行为树凭借其大量的流程控制方法,以及这种控制结构在配置、调试、复用之上的便利,成为了游戏的主流AI配置方式之一,策划可以通过行为树编辑器设计各种触发事件,NPC状态等。
目前常见的行为树编辑器依赖于游戏或开发引擎和平台,节点行为的设计需要配置游戏或引擎对应的接口来实现,或者在游戏或引擎中内置不同语言版本的SDK(软件开发工具包),对待测对象有侵入,配置繁琐,因此适用面比较窄,自由度偏低,不适合通用的自动化测试场景。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种自动化测试方法、装置、存储介质及电子设备,旨在解决自动化测试对待测对象有侵入,以及适用场景窄的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的一个方面,提供了一种自动化测试方法,包括:配置测试脚本,并将所述测试脚本挂载至行为树的目标节点以生成测试行为树;建立与测试对象之间的通信连接,以使所述测试对象运行所述测试行为树并执行所述测试脚本;实时接收所述测试对象运行所述测试行为树的运行数据直至测试结束。
根据本公开的一些实施例,基于前述方案,所述配置测试脚本,包括:配置与所述测试对象对应的测试用例;根据所述测试用例和预设测试框架的应用程序接口配置所述测试脚本。
根据本公开的一些实施例,基于前述方案,所述方法还包括创建行为树,包括:确定行为树中的第一节点,并获取第二节点的类型信息;其中,所述类型信息包括行为节点类型、非行为节点类型、辅助节点类型和装饰节点类型中的任意一种;根据所述类型信息获取所述第一节点和所述第二节点之间的关联关系,并根据所述关联关系创建所述第二节点;重复上述创建节点的步骤直至所述行为树创建完成。
根据本公开的一些实施例,基于前述方案,所述目标节点的类型信息包括行为节点类型或装饰节点类型,所述将所述测试脚本挂载至行为树的目标节点,包括:在创建目标节点之后,将所述测试脚本挂载至所述目标节点;或者在创建行为树之后,基于所述节点的类型信息提取所述目标节点,并将所述测试脚本挂载至所述目标节点。
根据本公开的一些实施例,基于前述方案,所述方法还包括:配置所述节点的重试参数,以用于在所述节点接收到返回数据为失败时重新测试。
根据本公开的一些实施例,基于前述方案,在生成所述测试行为树之后,所述方法还包括:根据所述目标节点挂载的所述测试脚本生成节点信息;以及根据所述行为树中节点之间的关联关系生成逻辑信息;将所述节点信息和所述逻辑信息存储为第一数据结构的测试行为树。
根据本公开的一些实施例,基于前述方案,所述建立与测试对象之间的通信连接,以使所述测试对象运行所述测试行为树并执行所述测试脚本,包括:建立与测试对象之间的通信连接;响应于测试运行指令,将第一数据结构的测试行为树解析为第二数据结构的测试行为树以发送至所述测试对象;通过所述测试对象按照所述第二数据结构的测试行为树从根节点开始遍历所有节点以执行所述测试脚本。
根据本公开实施例的第二个方面,提供了一种自动化测试装置,包括:配置模块,用于配置测试脚本,并将所述测试脚本挂载至行为树的目标节点以生成测试行为树;连接模块,用于建立与测试对象之间的通信连接,以使所述测试对象按照所述测试行为树执行所述测试脚本;测试模块,用于实时接收所述测试对象运行所述测试行为树的运行数据直至测试结束。
根据本公开实施例的第三个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中的自动化测试方法。
根据本公开实施例的第四个方面,提供了一种电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中的自动化测试方法。
本公开示例性实施例可以具有以下部分或全部有益效果:
在本公开的一些实施例所提供的技术方案中,一方面将可配置的测试脚本挂载至行为树进行测试,可以实现将行为树节点的测试行为开放至脚本定义,扩大了行为树测试的适用范围;另一方面,建立测试端与测试对象之间的通信连接后即可实现对测试对象的测试,而无需在测试对象提前置入配置文件,将测试集成在测试端,实现对测试对象的无侵害,不降低测试对象的性能,同时也不需要额外的网络连接。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出本公开示例性实施例中一种自动化测试方法的流程示意图;
图2示意性示出本公开示例性实施例中一种自动化测试系统的结构图;
图3示意性示出本公开示例性实施例中一种创建行为节点的创建界面示意图;
图4示意性示出本公开示例性实施例中一种自动化测试装置的组成示意图;
图5示意性示出本公开示例性实施例中一种计算机可读存储介质的示意图;
图6示意性示出本公开示例性实施例中一种电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
以下对本公开实施例的技术方案的实现细节进行详细阐述。
图1示意性示出本公开示例性实施例中一种自动化测试方法的流程示意图。如图1所示,该自动化测试方法包括步骤S1至步骤S3:
步骤S1,配置测试脚本,并将所述测试脚本挂载至行为树的目标节点以生成测试行为树;
步骤S2,建立与测试对象之间的通信连接,以使所述测试对象运行所述测试行为树并执行所述测试脚本;
步骤S3,实时接收所述测试对象运行所述测试行为树的运行数据直至测试结束。
在本公开的一些实施例所提供的技术方案中,一方面将可配置的测试脚本挂载至行为树进行测试,可以实现将行为树节点的测试行为开放至脚本定义,扩大了行为树测试的适用范围;另一方面,建立测试端与测试对象之间的通信连接后即可实现对测试对象的测试,而无需在测试对象提前置入配置文件,将测试集成在测试端,实现对测试对象的无侵害,不降低测试对象的性能,同时也不需要额外的网络连接。
图2示意性示出本公开示例性实施例中一种自动化测试系统的结构图。如图2所示,该系统结构包括测试对象201和测试端202。其中,测试端202包括编辑模块203、逻辑模块204、报告模块205。
编辑模块203可以用于编辑测试行为树。编辑模块为用户提供可视化的行为树图形编辑界面,负责实现前端编辑界面的操作响应以及画布的渲染,例如展示行为树以及展示测试报告等。
逻辑模块204可以用于存储编辑的行为树文件,以及运行行为树文件,由EDIT2XML,XML2TREE和Runner三个子模块组成。EDIT2XML负责将编辑模块中的图形操作转换为XML字符串的修改,XML2TREE将XML转化成树的结构进行存储,Runner将树的结构进行解析完成最终的执行,同时,在运行行为树的过程中Runner还会记录每个节点的运行信息。
报告模块205用于将运行信息生成运行报告,并将运行报告发送至行为树报告界面以用于展示。
下面,将结合附图及实施例对本示例实施方式中的自动化测试方法的各个步骤进行更详细的说明。
步骤S1,配置测试脚本,并将所述测试脚本挂载至行为树的目标节点以生成测试行为树。
需要说明的是,可以在测试前端的编辑模块中配置测试脚本和配置测试行为树,也可以在其他终端配置好测试脚本后,再在编辑模块中将测试脚本挂载来配置测试行为树。
编辑模块为用户提供简单易用的可视化行为树图形编辑界面,用户可以在编辑界面中配置测试脚本和配置测试行为树,也可以在其他终端配置好测试脚本后,再在编辑模块中将测试脚本挂载来配置测试行为树。
在编辑界面中包括文件操作、编辑操作、运行操作、视图操作、报告操作、节点操作、配置操作等功能对应的按钮,用户点击按钮即可实现相应的功能,编辑界面可以选用PyQt5来实现。现将编辑界面的具体内容介绍如下:
(1)文件操作
创建文件:将自动创建一个编辑界面,行为树中包含根节点Root;
打开文件:读取相应的XML文件获取行为树,再新建一个子页面用于编辑其行为树;
保存:保存当前的XML文件。
(2)编辑操作
拷贝:复制被选中节点,将同时复制其子树;
剪切:剪切被选中节点,及其子树;
粘贴:粘贴到被选中节点后,被选中节点需要能够添加子树;
删除:删除节点,不含子树;
清空:清空当前页面;
撤销:撤销刚做的操作;
重做:重做被撤销的操作。
(3)运行操作
实时刷新:在运行时将运行情况实时展示到编辑界面上,开启这个功能后,在运行的行为树将禁止被编辑;
循环:开启时,行为树会无限循环运行,否则仅运行一次;
粘贴:粘贴到被选中节点后,被选中节点能够添加子树;
清空黑板:当循环开启时,开启清空黑板将在每次运行行为树前清空黑板的内容;
运行:运行行为树,运行结束后Root节点将显示FINISH;
终止:强制立即停止行为树的运行;
停止:安全的停止行为树的运行,会等待当前节点的正常结束;
(4)视图操作
重置画面:开启实时刷新功能后,行为树运行结束会保留运行画面,点击重置画面可以恢复到正常状态;
全称:显示文件的地址;
LOG面板:开启或关闭LOG面板;
紧缩布局/发散布局:两种行为树的展示方式,默认为发散布局。
(5)报告操作
打开报告:开启上一个运行结束的行为树的报告。
载入JSON:行为树运行会保存一份JSON文件,载入该文件可以恢复运行结束的状态,包括节点信息,运行结果,网页版报告等。
(6)节点操作
创建子节点:创建一个节点作为当前节点的子节点或父节点;
替换节点:将节点替换为顺序节点,组合节点,选择节点。
(7)配置操作
用于编写和存储测试脚本。
在本公开的一个实施例中,步骤S1的执行过程如下:
步骤S11,配置测试脚本;以及
步骤S12,创建行为树;
步骤S13,将测试脚本挂载至行为树的目标节点以生成测试行为树。
需要说明的是,本公开对步骤S11和步骤S12的顺序不做限定,可以先执行步骤S11,也可以先执行步骤S12。
在本公开的一个实施例中,步骤S11中配置测试脚本的具体过程包括:配置与所述测试对象对应的测试用例;根据所述测试用例和预设测试框架的应用程序接口配置所述测试脚本。
具体而言,首先,测试人员根据测试对象所要测试的内容编写测试用例。测试用例通常根据它们所关联关系的测试类型或测试需求来分类,而且将随类型和需求进行相应地改变。测试用例可以是正面测试用例,也可以是负面测试用例。
然后,测试人员使用预设的测试框架中提供的各类api(应用程序接口),根据测试用例的要求来编写测试对象对应的自动化测试脚本。测试脚本可以是不同的脚本类型,例如Airtest脚本、Python脚本,也可以是扩展逻辑模块使用其他的测试框架编写不同的测试脚本,例如appium或selenium等,可扩展性好,本公开对此不作具体限定。
其中,测试框架中封装了一些常见的功能api,例如安装app,启动app,点击、双击、滑动、摇杆控制、多指手势等屏幕触控操作,图像匹配算法以及控件识别算法等功能。测试框架的使用依赖于通信连接。
该测试框架能够支持Android和ios两大平台所有的测试对象,包括游戏和普通app,因此,本公开的自动化测试方法中测试对象的类型更多,测试方法的应用更加广泛。
在本公开的一个实施例中,步骤S12中创建行为树的具体过程包括:确定行为树中的第一节点,并获取第二节点的类型信息;其中,所述类型信息包括行为节点类型、非行为节点类型、辅助节点类型和装饰节点类型中的任意一种;根据所述类型信息获取所述第一节点和所述第二节点之间的关联关系,并根据所述关联关系创建所述第二节点;重复上述创建节点的步骤直至所述行为树创建完成。
需要说明的是,行为树中节点有不同的类型,包括行为节点、非行为节点、辅助节点和装饰节点。其中,行为节点例如动作节点、条件节点;非行为节点例如顺序节点、选择节点、组合节点、筛选节点、概率节点、并行节点;辅助节点例如退出节点,重运行节点。现将各类型节点详细介绍如下:
动作节点是行为树的核心,负责具体动作的执行,动作节点不允许有子节点。动作节点可以用于挂载测试脚本,在执行动作节点就是执行该节点挂载的测试脚本,如游戏中的开枪、行走、追击、躲避等。
条件节点用于判断去子树的动作是否需要执行,条件节点允许有多个子节点。条件节点与动作节点类似,也可以挂载测试脚本,可以实现判断角色是否残血,是否有枪等。在Airtree测试脚本中,条件节点以挂载在节点上的脚本的返回值作为判定依据。
顺序节点是常见的行为树节点,该节点会依次执行其子节点,只要子节点运行结果返回成功,就继续执行后续的子节点,直到有一个子节点运行结果返回失败,则停止执行后续的子节点,并且向父节点返回失败的运行结果,如果所有子节点运行结果都返回成功,则向父节点返回成功。
选择节点是常见的行为树节点,该节点会依次执行其子节点,只要子节点运行结果返回失败,就继续执行后续的子节点,直到有一个子节点运行结果返回成功,则停止执行后续的子节点,并且向父节点返回运行结果。
由于选择节点和顺序节点都有一定的结束运行条件,为了丰富行为树的流程,本公开设置了组合节点。组合节点不设置任何退出条件,将顺序运行所有子节点,如果所有子节点运行结果都返回失败,则向父节点返回失败,否则返回成功。
筛选节点只允许添加一个子节点,此节点可用于定义对子节点做不同的特殊处理,如让子节点执行多次,x秒后再执行子节点等。
概率节点为其子节点设置执行的比例,比如有两个子节点,默认两个子节点被执行的概率是相同的1:1,用户可根据实际需求修改比例。例如两个子节点执行的概率为1:1,则为第一个子节点设置区间[1,50],第二个子节点设置区间[51,100],每次执行到概率节点时,随机生成一个1-100内的数,落在哪个区间就执行对应的子节点。
并行节点可以同时执行所有的节点,然后根据所有节点的返回值判断最终返回的结果。
辅助节点中,退出节点用于对退出行为树,重运行节点用于重新开始行为树。
装饰节点在行为树中负责判断对子节点的情况进行实时监测,发生异常时可以强制停止子节点运行。装饰节点也可以挂载测试脚本,可例如在追击敌人时,装饰器可以用于实时监测敌人是否在视野范围内,其子节点可以设计为追击敌人,这样当敌人离开视野就会立刻停止追击。装饰节点以挂载在节点上的脚本的返回值作为执行结果向上传递。装饰节点有且仅有一个直接相连的子节点。
基于上述描述,动作节点、条件节点和装饰节点可以挂载测试脚本。另外,在创建装饰节点时,创建的节点将被插入到被选节点的前方,作为其父节点,而在创建其他节点时,创建的节点将被插入到被选节点的后方,作为其子节点。
本公开提供了例如组合节点、筛选节点、概率节点、并行节点、辅助节点等更为丰富的行为树节点类型,可以用于实现复杂的流程控制需求。
在本公开的一个实施例中,创建行为树时,行为树的第一节点是用户在创建行为树过程中选择的节点。在初始创建行为树时,编辑界面会提供一个行为树的根节点ROOT,用户点击选中Root节点,此时将Root节点作为行为树的第一节点;而在创建过程中,行为树中已经有了节点,则将用户选中的节点确定为第一节点。
行为树的第二节点是用户在确定第一节点后,创建的下一节点。第二节点是相对于第一节点而言的。创建的第二节点也可以作为下一次创建的第一节点。
具体而言,将用户选中的节点确定为第一节点,用户点击右键选择下一节点的类型即可获取第二节点的类型信息。根据不同节点类型,确定将第二节点插入到被选节点的前方或后方以确定第二节点。重复上述创建节点的步骤直至行为树创建完成。
在本公开的一个实施例中,步骤S13中所述将所述测试脚本挂载至行为树的目标节点,包括:在创建目标节点之后,将所述测试脚本挂载至所述目标节点;或者在创建行为树之后,基于所述节点的类型信息提取所述目标节点,并将所述测试脚本挂载至所述目标节点。
由于动作节点、条件节点和装饰节点可以挂载测试脚本,因此目标节点就是指这三种类型的行为树节点。
挂载测试脚本可以由两种方法实现,具体而言,第一种方法是在创建这些目标类型的目标节点时,会弹出创建界面提示用户进行测试脚本的挂载,边创建节点,边挂载脚本。第二种方法是,在创建完成行为树之后,再从行为树中所有的节点中筛选目标类型的目标节点,再依次完成目标节点的测试脚本挂载。需要说明的是,测试脚本也可以直接调用游戏或引擎的接口。
图3示意性示出本公开示例性实施例中一种创建行为节点的创建界面示意图,如图3所示,创建行为节点时需要配置以下信息:
名称:名称是标识一个节点的关键信息,会在节点上显示;
描述:当名称不足以说明节点用途时,描述信息可以用来给写节点详细的功能描述;
文件地址:也就是测试脚本文件的地址,可以选则一个测试脚本;
脚本名:在选择了文件地址后,将自动生成;
调用函数名:选择了文件地址后,创建界面会自动给出所有函数名供选择。这里可以在函数名后用空格隔开并键入字符作为函数的简单输入,如Move 5执行时5将作为参数传入Move函数中;
重试次数:如果节点执行失败,将重试的次数,默认为0,只有每次重试都执行失败,节点返回值才为假;
重复次数:允许将一个节点执行多次。当需要重复执行多次时,只有每次重复都执行成功,节点返回值才为真;
使用黑板:黑板是一个各个节点公用的信息板,选择使用黑板后,脚本函数输入的第一个参数就会是黑板。节点可以在执行时查看黑板的信息,修改黑板的内容等,修改后的内容对所有使用黑板的节点都是可见的。
基于上述方法,在配置节点信息时,配置了节点的重试参数,以用于在所述节点接收到返回数据为失败时重新测试,支持各个树节点失败后的自动重试。因此,在测试过程中出错机率更小,测试方法更具有健壮性。
同时还添加了辅助节点类型的重运行节点,支持整个行为树自动重复执行,能够实现对一批测试用例不断的进行重复测试,扩大了测试场景的应用范围。
需要说明的是,创建装饰节点与创建行为节点有一些细微的差别,创建装饰节点不需要配置重复次数,而是增加了配置监测间隔时间,由于装饰节点需要反复运行监测间隔时间为两次运行的间隔时间,单位是秒,其他与创建行为节点相同。
基于上述方法,可以将行为树节点的行为与行为树的编辑模块剥离开,编辑模块只负责流程控制,节点的行为开放由脚本定义,使得编辑模块的适用范围扩大到了脚本的适用范围。如果在脚本中直接调用游戏或引擎的接口,则行为树在执行效果上与常见的行为树编辑器接近。如果将测试脚本挂载在行为树的节点上,则可以根据行为树的流程控制方法和挂载的脚本来对测试对象进行自动化测试。
在生成所述测试行为树之后,所述方法还包括:根据所述目标节点挂载的所述测试脚本生成节点信息;以及根据所述行为树中节点之间的关联关系生成逻辑信息;将所述节点信息和所述逻辑信息存储为第一数据结构的测试行为树。
在用户使用编辑模块编辑完测试行为树后,需要有一个载体来保存测试行为树的内容,将其存储为第一数据结构。测试行为树的内容主要包括各个节点的节点信息,以及行为树中各节点之间的逻辑信息。
优选的,为了能清晰的展现树的格式,第一数据结构可以是XML文件。具体而言,利用逻辑模块中的EDIT2XML子模块将编辑模块中的图形操作转换为XML字符串的修改,最后再使用XML文件作为测试行为树存储文件格式,将节点信息和逻辑信息进行存储得到测试行为树XML文件。
步骤S2,建立与测试对象之间的通信连接,以使所述测试对象运行所述测试行为树并执行所述测试脚本。
在本公开的一个实施例中,步骤S12的具体过程如下:建立与测试对象之间的通信连接;响应于测试运行指令,将第一数据结构的测试行为树解析为第二数据结构的测试行为树以发送至所述测试对象;通过所述测试对象按照所述第二数据结构的测试行为树从根节点开始遍历所有节点以执行所述测试脚本。
首先,需要建立与测试对象之间的通信连接。具体而言,是建立测试端和测试对象的通信连接,通信连接可以是USB连接,例如有线USB和无线USB连接。
由于测试脚本是基于测试框架构建的,建立通信连接之后就可以利用测试框架,进而利用测试脚本来实现自动化测试,一方面无需在测试对象中置入不同语言版本的SDK,配置简单方便,通用性强;另一方面也不需要在SDK中编写对行为树各个节点发送指令的响应逻辑,对测试对象无任何侵入,不影响测试对象的性能;再一方面能够在无网络的情况下也实现对测试对象进行自动化测试,进一步扩大了测试方法的使用范围。
然后,响应于测试运行指令,将第一数据结构的测试行为树解析为第二数据结构的测试行为树以发送至所述测试对象。
用户在编辑模块的编辑界面中点击运行按钮,编辑模块生成一测试运行指令,并将测试运行指令发送至逻辑模块以运行测试行为树。
在运行行为树时,XML文件是不能直接被程序理解的,因此,逻辑模块需要要将XML转换回树的结构,将节点信息和逻辑信息用字典进行存储,才能在执行时用深度遍历算法来依次解析各个节点的内容。
优选的,第二数据结构可以是TreeView。逻辑模块在执行时,先利用XML2TREE将测试行为树XML文件转化成树的结构,再把树送入负责运行的Runner子模块中运行。
最后,通过所述测试对象按照所述第二数据结构的测试行为树从根节点开始遍历所有节点以执行所述测试脚本。
Runner子模块负责测试行为树的运行,从测试行为树的根节点开始遍历所有节点以执行测试脚本。树的叶子节点在运行时会记录下返回值,将返回值作为节点的运行结果送回上层节点。非叶子节点则根据下层节点的返回值和自身执行逻辑决定节点的运行结果。
节点间采用全局字典数据结构,也就是“黑板”进行通讯,节点可以根据需要获得“黑板”的内容并修改。因此们可以将各个节点执行指令所生成的数据保存在同一数据库以达到各个节点共享数据的目的,不仅降低了整个系统的复杂性,同时也降低了维护成本。
需要说明的是,逻辑模块支持自动解析测试脚本中的函数名,在执行挂载的测试脚本时可指定特定的运行函数。
另外,在节点运行时也对测试对象毫无侵入。例如测试脚本可以模拟人的点击、滑动等操作,以验证操作是否生效为例,会截取当前手机屏幕图像来与测试脚本中的所要判断的图像进行匹配或者获取待测对象的控件对象和测试脚本中所要验证的控件对象进行匹配,从而完成验证。整个测试的运行过程都是在测试端完成,而无需对测试对象集成其他SDK,因此对测试对象完全没有任何侵入,也就不会影响测试对象的性能。
步骤S3,实时接收所述测试对象运行所述测试行为树的运行数据直至测试结束。
在本公开的一个实施例中,逻辑模块在运行测试行为树时,可以实时接收所述测试对象运行所述测试行为树的运行数据,并且会记录每个节点的运行数据,例如运行的起止时间,有效运行次数等。
在测试过程中,测试是按照行为树的逻辑信息有规律地执行各节点,为了直观地展示行为树的运行过程,可以在编辑界面中将行为树中已运行和未运行的节点区别显示,也可以将正在运行的节点高亮显示,将行为树的运行过程动态渲染在编辑界面的画布中,能够将测试过程可视化,进行清晰直观的展示。
同时,在测试过程中,由于测试端可以实时接收测试对象的运行数据,在展示行为树的运行过程中,还可以将运行数据实时展示在画布中,能够实时查看各个节点的变量变化情况,方便调试。
在本公开的一个实施例中,在测试运行完成之后,还会生成本册测试的测试报告。具体而言,在测试过程后,逻辑模块将所有节点的运行数据发送至报告模块。测试结束后,可以由用户在编辑界面中点击打开报告后,编辑模块生成一报告生成指令并发送至报告模块以生成测试报告,也可以是报告模块监听到测试完成之后生成测试报告。
具体而言,测试报告中会展示包括运行起止时间、每一个节点的运行数据、测试行为树的运行结果、测试行为树的文件信息、运行截图或视频等信息。对使用Airtest脚本的节点还支持跳转到测试脚本的独立报告。本公开提供清晰详细的报告展示功能,方便用户查看行为树的整体运行情况,实现对整个测试过程的回溯,提升用户体验。
基于上述描述,本公开提供的自动化测试方法,在创建测试行为树时,提供了简单易用的图形化行为树编辑模块供用户编写行为树,提供了丰富的行为树节点类型以应对各种复杂的流程控制需求,并且提供测试脚本挂载的功能,使节点的具体行为与测试脚本绑定,将行为与逻辑分开,避免了将复杂的流程控制逻辑写在脚本里,降低了复杂度,测试灵活度和通用性高,可应对游戏或APP的各种复杂的测试场景。
测试过程无需在测试对象中置入SDK,配置简单方便,且对测试对象的性能不会造成影响,同时也无需网络连接,只需用USB连接即可,支持在无网络情况下进行自动化测试。
在测试过程中,支持自动解析测试脚本中的函数名,在挂载脚本时可指定特定的运行函数。并且支持节点的重试,当某个节点运行失败时,可以通过设置重试次数来让该节点重新运行,同时也支持整个行为树的自动重复执行。采用“黑板”技术实现各个节点共享数据变量,无需额外的数据库,降低系统的复杂性。
还可以将测试进行可视化展示,一方面可以在测试过程中提供行为树实时运行展示,可实时查看当前运行到哪个节点,以及可实时查看各个节点的变量变化情况,方便调试。另一方方面在测试结束后提供.清晰的报告展示,方便用户查看行为树的整体运行情况,以及运行过程中的截图,错误信息等。
图4示意性示出本公开示例性实施例中一种自动化测试装置的组成示意图,如图4所示,该自动化测试装置400可以包括配置模块401、连接模块402以及测试模块403。其中:
配置模块401,用于配置测试脚本,并将所述测试脚本挂载至行为树的目标节点以生成测试行为树;
连接模块402,用于建立与测试对象之间的通信连接,以使所述测试对象按照所述测试行为树执行所述测试脚本;
测试模块403,用于实时接收所述测试对象运行所述测试行为树的运行数据直至测试结束。
根据本公开的一些实施例,基于前述方案,所述配置模块401包括第一配置单元(图中未示出),用于配置与所述测试对象对应的测试用例;根据所述测试用例和预设测试框架的应用程序接口配置所述测试脚本。
根据本公开的一些实施例,基于前述方案,所述自动化测试装置400还包括创建行为树模块(图中未示出),所述行为树模块用于确定行为树中的第一节点,并获取第二节点的类型信息;其中,所述类型信息包括行为节点类型、非行为节点类型、辅助节点类型和装饰节点类型中的任意一种;根据所述类型信息获取所述第一节点和所述第二节点之间的关联关系,并根据所述关联关系创建所述第二节点;重复上述创建节点的步骤直至所述行为树创建完成。
根据本公开的一些实施例,基于前述方案,所述目标节点的类型信息包括行为节点类型或装饰节点类型,所述配置模块401还包括挂载单元(图中未示出),用于在创建目标节点之后,将所述测试脚本挂载至所述目标节点;或者在创建行为树之后,基于所述节点的类型信息提取所述目标节点,并将所述测试脚本挂载至所述目标节点。
根据本公开的一些实施例,基于前述方案,所述自动化测试装置400还包括重试模块(图中未示出),用于配置所述节点的重试参数,以用于在所述节点接收到返回数据为失败时重新测试。
根据本公开的一些实施例,基于前述方案,所述自动化测试装置400还包括挂载模块(图中未示出),用于在生成所述测试行为树之后,根据所述目标节点挂载的所述测试脚本生成节点信息;以及根据所述行为树中节点之间的关联关系生成逻辑信息;将所述节点信息和所述逻辑信息存储为第一数据结构的测试行为树。
根据本公开的一些实施例,基于前述方案,所述连接模块402用于建立与测试对象之间的通信连接;响应于测试运行指令,将第一数据结构的测试行为树解析为第二数据结构的测试行为树以发送至所述测试对象;通过所述测试对象按照所述第二数据结构的测试行为树从根节点开始遍历所有节点以执行所述测试脚本。
上述的自动化测试装置400中各模块的具体细节已经在对应的自动化测试方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的存储介质。图5示意性示出本公开示例性实施例中一种计算机可读存储介质的示意图,如图5所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品500,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如手机上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。图6示意性示出本公开示例性实施例中一种电子设备的计算机系统的结构示意图。
需要说明的是,图6示出的电子设备的计算机系统600仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(Central Processing Unit,CPU)601,其可以根据存储在只读存储器(Read-Only Memory,ROM)602中的程序或者从存储部分608加载到随机访问存储器(Random Access Memory,RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(Input/Output,I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本公开的系统中限定的各种功能。
需要说明的是,本公开实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (9)
1.一种自动化测试方法,其特征在于,包括:
配置与测试对象对应的测试用例,根据所述测试用例和预设测试框架的应用程序接口配置测试脚本,并将所述测试脚本挂载至行为树的目标节点以生成测试行为树;
建立与测试对象之间的通信连接,以使所述测试对象运行所述测试行为树并执行所述测试脚本;
实时接收所述测试对象运行所述测试行为树的运行数据直至测试结束。
2.根据权利要求1所述的自动化测试方法,其特征在于,所述方法还包括创建行为树,所述创建行为树包括创建节点,所述创建节点包括以下步骤:
确定行为树中的第一节点,并获取第二节点的类型信息;其中,所述类型信息包括行为节点类型、非行为节点类型、辅助节点类型和装饰节点类型中的任意一种;
根据所述类型信息获取所述第一节点和所述第二节点之间的关联关系,并根据所述关联关系创建所述第二节点;
重复上述创建节点的步骤直至所述行为树创建完成。
3. 根据权利要求2所述的自动化测试方法,其特征在于,所述目标节点的类型信息包括行为节点类型或装饰节点类型,所述将所述测试脚本挂载至行为树的目标节点,包括:
在创建目标节点之后,将所述测试脚本挂载至所述目标节点;或者
在创建行为树之后,基于所述节点的类型信息提取所述目标节点,并将所述测试脚本挂载至所述目标节点。
4.根据权利要求1所述的自动化测试方法,其特征在于,所述方法还包括:
配置所述节点的重试参数,以用于在所述节点接收到返回数据为失败时重新测试。
5.根据权利要求1所述的自动化测试方法,其特征在于,在生成所述测试行为树之后,所述方法还包括:
根据所述目标节点挂载的所述测试脚本生成节点信息;以及根据所述行为树中节点之间的关联关系生成逻辑信息;
将所述节点信息和所述逻辑信息存储为第一数据结构的测试行为树。
6.根据权利要求1所述的自动化测试方法,其特征在于,所述建立与测试对象之间的通信连接,以使所述测试对象运行所述测试行为树并执行所述测试脚本,包括:
建立与测试对象之间的通信连接;
响应于测试运行指令,将第一数据结构的测试行为树解析为第二数据结构的测试行为树以发送至所述测试对象;
通过所述测试对象按照所述第二数据结构的测试行为树从根节点开始遍历所有节点以执行所述测试脚本。
7.一种自动化测试装置,其特征在于,包括:
配置模块,用于配置与测试对象对应的测试用例,根据所述测试用例和预设测试框架的应用程序接口配置测试脚本,并将所述测试脚本挂载至行为树的目标节点以生成测试行为树;
连接模块,用于建立与测试对象之间的通信连接,以使所述测试对象按照所述测试行为树执行所述测试脚本;
测试模块,用于实时接收所述测试对象运行所述测试行为树的运行数据直至测试结束。
8.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求1至6任一项所述的自动化测试方法。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至6任一项所述的自动化测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110156724.5A CN112882930B (zh) | 2021-02-04 | 2021-02-04 | 自动化测试方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110156724.5A CN112882930B (zh) | 2021-02-04 | 2021-02-04 | 自动化测试方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112882930A CN112882930A (zh) | 2021-06-01 |
CN112882930B true CN112882930B (zh) | 2023-09-26 |
Family
ID=76057280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110156724.5A Active CN112882930B (zh) | 2021-02-04 | 2021-02-04 | 自动化测试方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112882930B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113534662B (zh) * | 2021-06-04 | 2022-12-02 | 中国人民解放军军事科学院国防科技创新研究院 | 一种基于行为树的无人系统集群控制方法 |
CN113110270B (zh) * | 2021-06-15 | 2021-09-21 | 北京德风新征程科技有限公司 | 报警信号处理方法、装置、电子设备和计算机可读介质 |
CN113468073A (zh) * | 2021-08-02 | 2021-10-01 | 在线途游(北京)科技有限公司 | 一种自动化测试方法 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068929A (zh) * | 2015-08-06 | 2015-11-18 | 网易(杭州)网络有限公司 | 测试脚本生成方法和装置、测试方法、测试装置以及测试系统 |
CN106681796A (zh) * | 2016-12-12 | 2017-05-17 | 长安大学 | 一种面向车联网的软件开发故障诊断方法 |
US9710367B1 (en) * | 2015-10-30 | 2017-07-18 | EMC IP Holding Company LLC | Method and system for dynamic test case creation and documentation to the test repository through automation |
CN107526682A (zh) * | 2017-08-16 | 2017-12-29 | 网易(杭州)网络有限公司 | 测试机器人的ai行为树的生成方法、装置及设备 |
CN107943707A (zh) * | 2017-12-19 | 2018-04-20 | 网易(杭州)网络有限公司 | 行为树的测试方法、装置和存储介质以及终端 |
CN108255727A (zh) * | 2018-01-18 | 2018-07-06 | 网易(杭州)网络有限公司 | 数据接收、发送方法及装置,测试系统,存储介质 |
CN109508298A (zh) * | 2018-12-25 | 2019-03-22 | 网易(杭州)网络有限公司 | 图形化的脚本测试方法及系统 |
CN109669363A (zh) * | 2018-10-25 | 2019-04-23 | 中国工程物理研究院计算机应用研究所 | 一种基于状态行为树的自动化仿真测试优化方法 |
CN110083541A (zh) * | 2019-04-30 | 2019-08-02 | 网易(杭州)网络有限公司 | 游戏测试方法、装置、计算机存储介质和电子设备 |
CN110263381A (zh) * | 2019-05-27 | 2019-09-20 | 南京航空航天大学 | 一种自动驾驶车辆测试仿真场景生成方法 |
CN110554962A (zh) * | 2019-08-14 | 2019-12-10 | 平安普惠企业管理有限公司 | 回归测试的流程覆盖方法、服务器及计算机可读存储介质 |
CN110891044A (zh) * | 2018-09-11 | 2020-03-17 | 中国科学院信息工程研究所 | 一种网络测试场景中的npc生成及刻画方法 |
CN111045931A (zh) * | 2019-11-22 | 2020-04-21 | 腾讯科技(深圳)有限公司 | 应用程序测试方法、装置、设备及存储介质 |
CN111143223A (zh) * | 2019-12-30 | 2020-05-12 | 珠海金山网络游戏科技有限公司 | 一种服务器压力测试方法及装置 |
CN210650758U (zh) * | 2019-09-16 | 2020-06-02 | 西门子(中国)有限公司 | 机器人示教器的测试系统 |
WO2020155778A1 (zh) * | 2019-02-03 | 2020-08-06 | 苏州市龙测智能科技有限公司 | 接口自动化测试方法、测试装置、测试设备及存储介质 |
CN112148579A (zh) * | 2019-06-26 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 一种用户界面的测试方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3214510B1 (en) * | 2016-03-03 | 2021-06-30 | Magazino GmbH | Controlling process of robots having a behavior tree architecture |
US10169215B2 (en) * | 2016-09-26 | 2019-01-01 | Cognizant Technology Solutions India Pvt. Ltd. | Method and system for analyzing test cases for automatically generating optimized business models |
US10691584B2 (en) * | 2018-09-28 | 2020-06-23 | Sap Se | Behavior driven development integration with test tool |
WO2020210675A1 (en) * | 2019-04-12 | 2020-10-15 | GameDriver, Inc. | Video game testing and automation framework |
-
2021
- 2021-02-04 CN CN202110156724.5A patent/CN112882930B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068929A (zh) * | 2015-08-06 | 2015-11-18 | 网易(杭州)网络有限公司 | 测试脚本生成方法和装置、测试方法、测试装置以及测试系统 |
US9710367B1 (en) * | 2015-10-30 | 2017-07-18 | EMC IP Holding Company LLC | Method and system for dynamic test case creation and documentation to the test repository through automation |
CN106681796A (zh) * | 2016-12-12 | 2017-05-17 | 长安大学 | 一种面向车联网的软件开发故障诊断方法 |
CN107526682A (zh) * | 2017-08-16 | 2017-12-29 | 网易(杭州)网络有限公司 | 测试机器人的ai行为树的生成方法、装置及设备 |
CN107943707A (zh) * | 2017-12-19 | 2018-04-20 | 网易(杭州)网络有限公司 | 行为树的测试方法、装置和存储介质以及终端 |
CN108255727A (zh) * | 2018-01-18 | 2018-07-06 | 网易(杭州)网络有限公司 | 数据接收、发送方法及装置,测试系统,存储介质 |
CN110891044A (zh) * | 2018-09-11 | 2020-03-17 | 中国科学院信息工程研究所 | 一种网络测试场景中的npc生成及刻画方法 |
CN109669363A (zh) * | 2018-10-25 | 2019-04-23 | 中国工程物理研究院计算机应用研究所 | 一种基于状态行为树的自动化仿真测试优化方法 |
CN109508298A (zh) * | 2018-12-25 | 2019-03-22 | 网易(杭州)网络有限公司 | 图形化的脚本测试方法及系统 |
WO2020155778A1 (zh) * | 2019-02-03 | 2020-08-06 | 苏州市龙测智能科技有限公司 | 接口自动化测试方法、测试装置、测试设备及存储介质 |
CN110083541A (zh) * | 2019-04-30 | 2019-08-02 | 网易(杭州)网络有限公司 | 游戏测试方法、装置、计算机存储介质和电子设备 |
CN110263381A (zh) * | 2019-05-27 | 2019-09-20 | 南京航空航天大学 | 一种自动驾驶车辆测试仿真场景生成方法 |
CN112148579A (zh) * | 2019-06-26 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 一种用户界面的测试方法和装置 |
CN110554962A (zh) * | 2019-08-14 | 2019-12-10 | 平安普惠企业管理有限公司 | 回归测试的流程覆盖方法、服务器及计算机可读存储介质 |
CN210650758U (zh) * | 2019-09-16 | 2020-06-02 | 西门子(中国)有限公司 | 机器人示教器的测试系统 |
CN111045931A (zh) * | 2019-11-22 | 2020-04-21 | 腾讯科技(深圳)有限公司 | 应用程序测试方法、装置、设备及存储介质 |
CN111143223A (zh) * | 2019-12-30 | 2020-05-12 | 珠海金山网络游戏科技有限公司 | 一种服务器压力测试方法及装置 |
Non-Patent Citations (7)
Title |
---|
Web系统测试用例自动执行系统;贾丽;许静;金鑫;田禾;;计算机工程与应用(第04期);全文 * |
一种非侵入的GUI自动化测试系统设计;吴立金;韩新宇;张凯;唐龙利;;计算机测量与控制(第12期);全文 * |
基于行为的软件测试过程模型及其应用研究;陆永忠;宋骏礼;谷希谦;;计算机应用(第05期);全文 * |
模型驱动的分布式测试执行自动化研究与实现;吴安怡;吴际;陈金刚;刘超;;计算机工程与应用(第10期);全文 * |
武器装备虚拟维修训练系统行为树设计与实现;徐文胜;武博;蒋坚鸿;;系统仿真学报(第07期);全文 * |
简单版行为树(BehaviorTree)实现;weixin_33711641;《https://blog.csdn.net/weixin_33711641/article/details/93467875》;全文 * |
面向WEB服务的测试用例自动化生成方法;侯俊;周红;马春燕;郑江滨;;西北工业大学学报(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112882930A (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112882930B (zh) | 自动化测试方法、装置、存储介质及电子设备 | |
US6986125B2 (en) | Method and apparatus for testing and evaluating a software component using an abstraction matrix | |
US6941546B2 (en) | Method and apparatus for testing a software component using an abstraction matrix | |
KR101881804B1 (ko) | 게임 테스트 자동화 장치 및 방법 | |
CN110554965B (zh) | 自动化模糊测试方法及相关设备、计算机可读存储介质 | |
CN110013672B (zh) | 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质 | |
US9465718B2 (en) | Filter generation for load testing managed environments | |
US20050120276A1 (en) | Modularizing a computer program for testing and debugging | |
CN111124919A (zh) | 一种用户界面的测试方法、装置、设备及存储介质 | |
CN109966742B (zh) | 游戏运行中获取渲染性能数据的方法及装置 | |
CN107480036A (zh) | iOS移动应用的自动测试方法、装置、存储介质及终端 | |
CN115422063A (zh) | 一种低代码接口自动化系统、电子设备及存储介质 | |
CN112732576A (zh) | 基于用户界面的自动化测试方法、装置及设备 | |
CN114238134A (zh) | 一种测试结果展示方法、装置、设备及存储介质 | |
CN113835700A (zh) | 活动上线方法、装置、电子设备及计算机可读存储介质 | |
CN111708712A (zh) | 用户行为测试用例的生成方法、流量回放方法及电子设备 | |
CN111488275B (zh) | Ui自动化测试方法、装置、存储介质及电子设备 | |
CN111694727A (zh) | 一种网卡固件升降级测试方法、系统、终端及存储介质 | |
US11892941B2 (en) | Self-learning application test automation | |
US20240118997A1 (en) | Automated testing of walkthroughs | |
CN115509923A (zh) | 单元测试案例生成方法、装置以及计算机存储介质 | |
CN117931632A (zh) | 一种自动化集成测试方法、装置、设备及存储介质 | |
CN117234907A (zh) | 一种图形用户界面的测试方法及系统 | |
CN115794619A (zh) | 一种基于语义匹配和录制重放的安卓应用测试方法及装置 | |
CN114461514A (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 |