CN105068929B - 测试脚本生成方法和装置、测试方法、测试装置以及测试系统 - Google Patents
测试脚本生成方法和装置、测试方法、测试装置以及测试系统 Download PDFInfo
- Publication number
- CN105068929B CN105068929B CN201510478894.XA CN201510478894A CN105068929B CN 105068929 B CN105068929 B CN 105068929B CN 201510478894 A CN201510478894 A CN 201510478894A CN 105068929 B CN105068929 B CN 105068929B
- Authority
- CN
- China
- Prior art keywords
- test
- node
- test script
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了测试脚本生成方法和装置、测试方法、测试装置以及测试系统,所述测试脚本生成方法包括:根据测试人员的指示从预先设置的节点库中选取行为树节点,并构建形成对应于测试用例的行为树;将所述行为树转化成XML文件;对所述XML文件进行解析,生成测试脚本。采用本发明可简化测试过程,降低对测试人员的技术能力要求,便于测试代码的积累和复用。
Description
技术领域
本发明涉及软件测试领域,尤其涉及一种测试脚本生成方法和装置、测试方法、测试装置以及测试系统。
背景技术
现有的测试方法中较为有代表性的主要有以下两种:
一、传统的测试方法
传统的测试方法一般为根据测试需求通过将测试点和测试用例采用列举的方式罗列出来,然后在根据列出的测试用例编写测试脚本进行测试。如Xmind测试用例设计方法和Excel测试用例设计方法,Xmind测试用例设计方法通过列出一个系统需要测试的点来帮助进行用例来的设计;Excel测试用例设计方法则通过表格的形式给出测试用例的详细测试内容、测试步骤和预期结果。
然而,通过传统的测试方法编写完的测试用例难以复用,不利于测试脚本的积累。测试脚本由不同的编写人员编写时,由于编写人员的编写风格各异,容易造成代码的可读性差。测试用例设计和执行分离,可能造成实际执行者和设计者有认知上的偏差,无法做到所见即所得。
二、QTP
QTP(QuickTest Professional)提供符合应用软件环境的自动化功能测试和回归测试,采用关键字驱动的理念以简化测试用例的创建和维护,让用户可以直接录制屏幕上的操作流程,自动生成功能测试或者回归测试用例,专业的测试者也可以通过提供的内置脚本和调试环境来取得对测试和对象属性的完全控制。
然而,QTP需要测试人员编写测试脚本,对测试人员的技术能力有一定的要求,测试过程较为繁琐;测试脚本的执行过程是固定的,测试脚本的可复用性较低,当整体需求发生改变的时候,脚本往往不能适应新的测试环境,需要重新进行脚本编写;QTP只能模拟固定化的执行模式,难以适应软件多变的实际情境。
发明内容
本发明实施例的目的在于提供了一种测试脚本生成方法和装置、测试方法、测试装置以及测试系统,简化测试过程,降低对测试人员的技术能力要求,便于测试代码的积累和复用。
为了实现上述目的,本发明实施例提供了一种测试脚本生成方法,包括:
根据测试人员的指示从预先设置的节点库中选取行为树节点,并构建形成对应于测试用例的行为树;
将所述行为树转化成XML文件;
对所述XML文件进行解析,生成测试脚本。
优选地,所述节点库设置于本地或者第一服务器;
当所述节点库设置于所述第一服务器时,所述测试脚本生成方法还包括:
将选中的行为树节点加载到本地。
优选地,所述对所述XML文件进行解析,生成测试脚本,具体为:
将所述XML文件发送给第一服务器,通过所述第一服务器对所述XML文件进行解析,生成测试脚本。
优选地,所述行为树节点包括流程节点、条件节点和行为节点;
所述流程节点,用于限定所述流程节点下的叶子节点的执行流程;
所述条件节点,用于执行所述测试用例中的逻辑条件判断;
所述行为节点,用于执行所述测试用例中的逻辑行为操作。
优选地,所述根据测试人员的指示从预先设置的节点库中选取行为树节点,并构建形成对应于测试用例的行为树,具体为:
根据测试人员的指示,采用图形化的行为树编辑工具,从所述节点库中选择所述行为树节点;
根据测试人员的指示,调整所述行为树节点的参数,形成对应于测试用例的行为树。
优选地,所述将所述行为树转化成XML文件,具体为:
通过所述行为树编辑工具,将所述行为树导出为XML文件。
优选地,所述对所述XML文件进行解析,生成测试脚本,包括:
读取所述XML文件的文件内容;
将所述文件内容中的行为树节点解析为函数代码;
将所述函数代码重新排列成所述测试脚本。
优选地,所述对所述XML文件进行解析,生成测试脚本,还包括:
检查所述XML文件的文件内容是否符合预设的语法规则。
进一步地,本发明实施例还提供了一种测试方法,包括:
利用如上所述的测试脚本生成方法,获取测试脚本;
将所述测试脚本发送给测试端,通过所述测试端执行所述测试脚本进行测试。
优选地,所述测试端为游戏服务器或者游戏客户端。
相应地,本发明实施例还提供了一种测试脚本生成装置,包括:
节点库,用于存储预先设置的行为树节点;
行为树构建模块,用于根据测试人员的指示,从所述节点库中选择行为树节点,并构建形成对应于测试用例的行为树;
XML转换模块,用于将所述行为树转化成XML文件;和,
测试脚本生成模块,用于对所述XML文件进行解析,生成测试脚本。
优选地,所述节点库设置于本地或者第一服务器;
当所述节点库设置于所述第一服务器时,所述测试脚本生成装置还包括:
加载模块,用于将选中的行为树节点加载到本地。
优选地,所述测试脚本生成模块包括:
第一发送单元,用于将所述XML文件发送给第一服务器,通过所述第一服务器对所述XML文件进行解析,生成测试脚本。
优选地,所述节点库包括:
流程节点库,用于存储流程节点,所述流程节点用于限定所述流程节点下的叶子节点的执行流程;
条件节点库,用于存储条件节点,所述条件节点用于执行所述测试用例中的逻辑条件判断;和,
行为节点库,用于存储行为节点,所述行为节点用于执行所述测试用例中的逻辑行为操作。
优选地,所述行为树构建模块包括:
节点选择单元,用于根据测试人员的指示,采用图形化的行为树编辑工具,从所述节点库中选择所述行为树节点;和,
参数设置单元,用于根据测试人员的指示,调整所述行为树节点的参数,形成对应于测试用例的行为树。
优选地,所述XML转换模块包括:
导出单元,用于通过所述行为树编辑工具,将所述行为树导出为XML文件。
优选地,所述测试脚本生成模块包括:
读取单元,用于读取所述XML文件的文件内容;
解析单元,用于将所述文件内容中的行为树节点解析为函数代码;和,
排列单元,用于将所述函数代码重新排列成所述测试脚本。
优选地,所述测试脚本生成模块还包括:
语法检测单元,用于检查所述XML文件的文件内容是否符合预设的语法规则。
相应地,本发明实施例还提供了一种测试装置,包括:
脚本获取模块,用于利用如上所述的测试脚本生成方法,获取测试脚本;和,
测试模块,用于将所述测试脚本发送给测试端,通过所述测试端执行所述测试脚本进行测试。
优选地,所述测试端为游戏服务器或者游戏客户端。
本发明还提供了一种测试系统,包括测试用例设计端、第一服务器和测试端;
所述测试用例设计端,用于根据测试人员的指示从预先设置的节点库中选取行为树节点,并构建形成对应于测试用例的行为树;将所述行为树转化成XML文件,并将所述XML文件发送给所述第一服务器;
所述第一服务器,用于对所述XML文件进行解析,生成测试脚本,并将所述测试脚本发送给所述测试端;
所述测试端,用于执行所述测试脚本。
优选地,所述测试用例设计端包括:
节点选择单元,用于根据测试人员的指示,采用图形化的行为树编辑工具,从所述节点库中选择所述行为树节点;
参数设置单元,用于根据测试人员的指示,调整所述行为树节点的参数,形成对应于测试用例的行为树;
导出单元,用于通过所述行为树编辑工具,将所述行为树导出为XML文件;和,
第一发送单元,用于将所述XML文件发送给所述第一服务器。
优选地,所述第一服务器包括:
第一接收单元,用于接收所述XML文件;
读取单元,用于读取所述XML文件的文件内容;
解析单元,用于将所述文件内容中的行为树节点解析为函数代码;
排列单元,用于将所述函数代码重新排列成所述测试脚本;和,
第二发送单元,用于将所述测试脚本发送给所述测试端。
优选地,所述第一服务器还包括:
语法检测单元,用于检查所述XML文件的文件内容的是否符合预设的语法规则。
优选地,所述测试端为游戏服务器或者游戏客户端。
本发明根据测试人员的指示从预先设置的节点库中选择行为树节点,构建形成与测试用例对应的行为树,将所述行为树转化成相应的XML文件,对所述XML文件进行解析,生成测试脚本。本发明以行为树的方式进行测试用例的组织设计,测试人员无需具有代码编写以及代码阅读的能力,只需进行简单的可视化的点击选择操作就可以进行自动化测试。同时,本发明将常规的测试脚本编写思维向节点编写思维的方向转变,通过节点的积累大大提高了测试脚本的可复用性。此外,本发明的测试用例还可通过XML文件的形式展现,测试用例可读性更高,逻辑更加清晰。测试用例迭代简单快捷,只需选择不同的行为树节点并设置相应的参数,可适应需求多变的测试情境。
附图说明
图1是本发明提供的测试脚本生成方法的一个实施例的流程图;
图2是本发明提供的行为树的图形化界面的示意图;
图3是如图1所示实施例提供的步骤S13的流程图;
图4是本发明提供的测试方法的一个实施例的流程图;
图5是本发明提供的测试脚本生成装置的一个实施例的结构图;
图6是如图5所示实施例提供的节点库的结构图;
图7是如图5所示实施例提供的测试脚本生成模块的结构图;
图8是本发明提供的测试脚本生成装置的另一个实施例的结构图;
图9是本发明提供的测试脚本生成装置的又一个实施例的结构图;
图10是本发明提供的测试脚本生成装置的再一个实施例的结构图;
图11是本发明提供的测试装置的一个实施例的结构图;
图12是本发明提供的测试系统的一个实施例的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明提供的测试脚本生成方法的一个实施例的流程图。
所述测试脚本生成方法,包括步骤S11~S13:
S11,根据测试人员的指示从预先设置的节点库中选取行为树节点,并构建形成对应于测试用例的行为树。
在具体实施当中,除了可以将所述节点库设置于本地,还可以将所述节点库设置于第一服务器,以便于节点库的更新和维护。
当所述节点库设置于所述第一服务器时,所述测试脚本生成方法还包括:
将选中的行为树节点加载到本地。
其中,所述行为树节点可以是包含任何测试情景的测试节点,行为树节点由专门的技术人员预先编写并存储于所述节点库中,每个节点包括对应的XML语句和函数代码,所述行为树节点按其功能作用可分为流程节点、条件(condition)节点和行为(behavior)节点。
所述流程节点,用于限定所述流程节点下的叶子节点的执行流程。流程节点主要包括:次数限制节点、取反节点、有限次循环节点、无限循环节点、顺序节点、选择节点和概率节点。其中,次数限制节点用于限制叶子节点执行的次数,取反节点用于将叶子节点的执行结果取反,有限次循环节点用于限定叶子节点一定次数的循环直至失败,无限循环节点用于限定叶子节点一直循环直至失败。顺序节点用于限定叶子节点按顺序执行,概率节点用于模拟一些概率性的测试或者常规的monkey test。一般地,流程节点是通用的行为树架构,行为树编辑工具会自带这类节点,本领域技术人员也可以根据实际需要自行编写。
所述条件节点,用于执行所述测试用例中的逻辑条件判断。条件节点通常情况下可以描述逻辑相关的测试脚本,比如判断,选择,递归等常用的测试脚本逻辑,通过本技术提供的condition原有架构,往里面添加具体的游戏逻辑来实现判断的目的。
所述行为节点,用于执行所述测试用例中的逻辑行为操作。行为节点好比直接进行一部分的测试操作,并且通过测试的结果返回操作的结果,如果是测试通过的话就直接返回True,如果是测试不通过的话就返回False。而且还可以通过调整action参数的形式实现不同的测试目的,例如一行为节点为“在游戏商城购买物品”通过什么样的形式购买商品的,是通过游戏币或者元宝,购买的对象的ID,比如你是购买一把枪,还是一个医药包等,这些设定均可通过调整该行为节点相应属性完成。
在具体实施当中,可以采用图形化的行为树编辑工具进行测试用例的设计,所述图形化的行为树编辑工具可以为BEHAVIOR TREE EDITOR或者Behavior Designer,也可以采用其他的行为树编辑工具,本发明对此不作限制。根据测试人员的指示,采用图形化的行为树编辑工具从所述节点库中选择所述行为树节点,并调整所述行为树节点的参数,形成对应于测试用例的行为树。此外,当所述节点库设置于所述第一服务器时,在选择所述行为树节点后,需要先将选中的行为树节点加载到本地,再对所述行为树节点的参数属性进行调整。
应当说明的是,通过图形化的行为树编辑工具组建行为树仅仅是本发明的一种优选实施方式,本发明不管在有没有图形化的行为树编辑工具的情况下,均通过选择树节点组建行为树,区别仅在于:有图形化的行为树编辑工具时,行为树通过图形表现。而没有图形化工具时,行为树直接通过XML表现,当使用图形化行为树编辑工具时,可以通过行为树编辑工具的图形化界面将设计好的行为树导出为XML文件。
如图2所示,是本发明提供的行为树的图形化界面的示意图。
为了便于区分各类型的节点,图中椭圆形节点和菱形节点为所述流程节点,直角四边形节点为所述条件节点,圆角四边形节点为所述行为节点。
S12,将所述行为树转化成XML文件。
在具体实施当中,可通过行为树编辑工具,将所述行为树导出为XML文件。
图形化转化为XML文件是通过业界通用的解析方法,将图形化界面的最终设计结果通过树形的结构排列生成XML文件。
图2所示行为树对应的XML文件内容如下:
传统测试脚本的编写方法需要实现很多具体的函数,用函数的方式来组织测试脚本,只是这些函数和脚本混杂在一起,而且大量重复,使得测试用例的可用性和可读性都很差。而本发明测试用例可通过XML文件的形式展现,测试用例可读性显然更高,逻辑更加清晰。
S13,对所述XML文件进行解析,生成测试脚本。
在具体实施当中,既可以在本地直接将所述行为树的XML文件转换为可以被识别的测试脚本,也可以将所述XML文件发送给第一服务器,通过所述第一服务器对所述XML文件进行解析,生成测试脚本。本发明对此不作限定,本领域技术人员可根据实际需要进行选择。
进一步地,如图3所示所述步骤S13包括子步骤S131~S134。
S131,读取所述XML文件的文件内容。
S132,检查所述XML文件的文件内容是否符合预设的语法规则。应当说明的是此步骤仅为本实施例的一种优选实施方式,在具体实施当中也可不进行语法规则的检测而直接执行后续步骤S133。
在读取所述XML文件的文件内容后,获取所述XML文件的文件内容中各行为树节点的节点类型,所述节点类型包括但不限于上文所述的流程节点、条件节点和行为节点,根据所述节点类型判断所述XML文件的文件内容是否符合预设的语法规则,所述语法规则优选如下:(1)至少包含一个根节点。(2)条件节点不能作为最后一个节点。(3)非流程节点(即条件节点和行为节点)不能有叶子节点。(4)流程节点必须要有叶子节点。
通过对生成的XML文件进行语法检测,可自动识别部分测试用例中的错误,当出现错误时,及时提醒用户进行更正。
S133,将所述文件内容中的行为树节点解析为函数代码。
S134,将所述函数代码重新排列成所述测试脚本。
在具体实施当中,可依次读取每个行为树节点的代码把他们放到公共缓存区,然后通过前序遍历行为树的方法依次读取行为树中每个流程节点,通过下面规则来连接之前放到公共缓存区的节点代码。
(1)如果所述流程节点为有限次循环节点,则先设定一个定时器和计数器,然后顺序连接该流程节点下的所有叶子节点,把他们都放到一个该定时器和计数器为结束条件的循环里面。
(2)如果所述流程节点为无限循环节点,则直接顺序连接该流程节点下的所有叶子节点,把他们都放到一个无限循环里面。
(3)如果所述流程节点为取反节点,则直接把该流程节点下的所有叶子节点的代码执行结果取反。
(4)如果所述流程节点为次数限制节点,则记录一个等于该有限次数的公共变量到内存里,并标记该流程节点下的所有叶子节点为这个公共变量相关特殊区域,这部分区域每被执行一次就相应公共变量计数减一。
根据上面的规则在内存中重新整理排布相应的代码。应当说明的是,还有其他类型的流程节点,如顺序执行节点和选择执行节点等,本领域技术人员可结合上面的示例,制定相应的规则,以将所述XML文件解析为相应的测试脚本,本发明对此不作限定。
基于本发明实施例提供的测试脚本生成方法,测试人员可以在不需要知道具体代码的情况下,通过可视化的方式进行测试用例的组装设计,实现特定情形的自动化测试,解决原有自动化测试技术固定不变的缺点,具有更加符合实际测试情境的特点,做到设计用例和执行可视化,大大简化了测试过程。行为树节点的编写和测试用例设计分离,让测试人员分工更加明确,工作效率更高,测试用例设计风格统一,可读性高。通过行为树节点的积累能方便地实现代码的积累和复用。测试用例迭代简单快捷,只需选择不同的节点并设置相应的参数,可适应需求多变的测试情境。
参照图4,是本发明提供的测试方法的一个实施例的流程图。
如图4所示,所述测试方法,包括:
S31,利用如图1所示实施例提供的测试脚本生成方法,获取测试脚本。
本实施例中测试脚本的获取采用如图1所示实施例提供的测试脚本生成方法,因此,本实施例中不再对该部分内容进行赘述,具体可参见图1所示实施例中的相关描述。
S32,将所述测试脚本发送给测试端,通过所述测试端执行所述测试脚本进行测试。
其中,所述测试端为游戏服务器或者游戏客户端。
本实施例提供的测试方法利用如图1所示实施例提供的测试脚本生成方法获取测试脚本,在获得测试脚本后将测试脚本发送给游戏服务器或者游戏客户端进行测试,最后将测试结果收集并展示。在具体实施当中,行为树的每个节点具有True(正确)和False(错误)的属性,而且整体root(根)节点也有True和False的判断,测试人员可以通过某个节点的执行成功与否就可以得出某个整体的用例执行成功与否。如果用例执行失败,还可以通过节点的属性进行问题的快速定位。
参照图5,是本发明提供的测试脚本生成装置的一个实施例的结构图。
所述测试脚本生成装置,包括节点库410、行为树构建模块420、XML转换模块430和测试脚本生成模块440。
节点库410,用于存储预先设置的行为树节点。
其中,如图6所示所述节点库410包括:
流程节点库411,用于存储流程节点,所述流程节点用于限定所述流程节点下的叶子节点的执行流程。
条件节点库412,用于存储条件节点,所述条件节点用于执行所述测试用例中的逻辑条件判断。
行为节点库413,用于存储行为节点,所述行为节点用于执行所述测试用例中的逻辑行为操作。
行为树构建模块420,用于根据测试人员的指示,从所述节点库410中选择行为树节点,构建形成对应于测试用例的行为树。
本实施例中所述节点库410设置于本地,所述行为树构建模块包括:
节点选择单元,用于根据测试人员的指示,采用图形化的行为树编辑工具,从所述节点库中选择所述行为树节点。
参数设置单元,用于根据测试人员的指示,调整所述行为树节点的参数,形成对应于测试用例的行为树。
XML转换模块430,用于将所述行为树转化成XML文件。
在具体实施当中,所述XML转换模块430包括:
导出单元,用于通过所述行为树编辑工具,将所述行为树导出为XML文件。
测试脚本生成模块440,用于对所述XML文件进行解析,生成测试脚本。
在具体实施当中,所述测试脚本生成模块440包括:
读取单元441,用于读取所述XML文件的文件内容。
语法检测单元442,用于检查所述XML文件的文件内容是否符合预设的语法规则。
解析单元443,用于将所述文件内容中的行为树节点解析为函数代码。
排列单元444,用于将所述函数代码重新排列成所述测试脚本。
本实施例的基本原理与图1所示测试脚本生成方法相同,本实施例中未详述之处可参见图1所示实施例中的相关描述。
参照图8,是本发明提供的测试脚本生成装置的另一个实施例的结构图。
本实施例与图5所示实施例的区别在于,本实施例中节点库410设置于第一服务器500中,所述测试脚本生成装置还设置有加载模块450;
所述加载模块450,用于将选中的行为树节点加载到本地。
本实施例中的其他模块的工作原理与图5所示实施例相同,本实施例中未详述之处可参见图5所示实施例中的相关描述。本实施例通过将节点库410设置于第一服务器500中,大大方便了节点库410的更新和维护。
参照图9,是本发明提供的测试脚本生成装置的又一个实施例的结构图。
本实施例与图5所示实施例的区别在于,本实施例中测试脚本生成模块包括第一发送单元441。所述第一发送单元441,用于将所述XML文件发送给第一服务器500,通过所述第一服务器500对所述XML文件进行解析,生成测试脚本。
所述第一服务器500上设置有脚本翻译模块510,当接收到第一发送单元441发送来的XML文件后,读取所述XML文件的文件内容,将所述文件内容中的行为树节点解析为函数代码,并将所述函数代码重新排列成所述测试脚本。
本实施例中的其他模块的工作原理与图5所示实施例相同,本实施例中未详述之处可参见图5所示实施例中的相关描述。本实施例通过将XML文件发送给第一服务器500,通过所述第一服务器500对所述XML文件进行解析,生成测试脚本,将脚本翻译解析的工作交由服务器处理,降低了对装置的性能要求。
参照图10,是本发明提供的测试脚本生成装置的再一个实施例的结构图。
如图10所示,本实施例与图5所示实施例的区别在于:
节点库410设置于第一服务器500中,所述测试脚本生成装置还设置有加载模块450;所述加载模块450,用于将选中的行为树节点加载到本地。
测试脚本生成模块包括第一发送单元441。所述第一发送单元441,用于将所述XML文件发送给第一服务器500,通过所述第一服务器500对所述XML文件进行解析,生成测试脚本。
本实施例中的其他模块的工作原理与图4所示实施例相同,本实施例中未详述之处可参见图4所示实施例中的相关描述。本实施例中在图4所示实施例的基础上结合图8和图9所示实施例的部分特征,既方便了节点库的更新和维护,也降低了对装置的性能要求。
参见图11,是本发明提供的测试装置的一个实施例的结构图。本实施例与图3所示实施例的基本原理一致,本实施例中未详述之处可参见图3所示实施例中的相关描述。
所述测试装置包括:
脚本获取模块610,用于利用如图1所示实施例提供的测试脚本生成方法,获取测试脚本。
测试模块620,用于将所述测试脚本发送给测试端,通过所述测试端执行所述测试脚本进行测试。
其中,所述测试端为游戏服务器或者游戏客户端。
参见图12,是本发明提供的测试系统测一个实施例的示意图。
所述测试系统包括测试用例设计端710、第一服务器720和测试端730;
所述测试用例设计端710,用于根据测试人员的指示从预先设置的节点库中选取行为树节点,并构建形成对应于测试用例的行为树,将所述行为树转化成XML文件,并将所述XML文件发送给所述第一服务器720;
所述第一服务器720,用于对所述XML文件进行解析,生成测试脚本,并将所述测试脚本发送给所述测试端730;
所述测试端730,用于执行所述测试脚本。
在具体实施当中,所述第一服务器是通过rpcserver的方式(例如:python的SimpleXMLRPCServer)启动,然后打开相应监听端口,并加载相应的行为树节点,测试人员通过所述测试用例设计端的行为树编辑工具从监听端口中选择节点组成行为树,并将所述行为转换成相应的XML文件发送给第一服务器,第一服务器将所述行为树的XML文件翻译成测试脚本,并发送给所述测试端,所述测试端执行所述测试脚本并收集测试结果。
具体地,所述测试用例设计端710包括:
节点选择单元,用于根据测试人员的指示,采用图形化的行为树编辑工具,从所述节点库中选择所述行为树节点;
参数设置单元,用于根据测试人员的指示,调整所述行为树节点的参数,形成对应于测试用例的行为树。
导出单元,用于通过所述行为树编辑工具,将所述行为树导出为XML文件。和,
第一发送单元,用于将所述XML文件发送给所述第一服务器。
在实际应用当中,所述第一服务器720包括:
第一接收单元,用于接收所述XML文件;
读取单元,用于读取所述XML文件的文件内容。
解析单元,用于将所述文件内容中的行为树节点解析为函数代码。
排列单元,用于将所述函数代码重新排列成所述测试脚本。和,
第二发送单元,用于将所述测试脚本发送给所述测试端。
在一种优选的实施当中,所述第一服务器720还包括:
语法检测单元,用于检查所述XML文件的文件内容是否符合预设的语法规则。
所述测试端730可以为游戏服务器或者游戏客户端。
本实施例的基本原理与前述实施例的基本原理一致,本实施例未详述之处可参见前述实施例中的相关描述。
综上所述,本发明通过从预先设置的节点库中选择行为树节点形成行为树,然后将行为树转化成相应的XML文件,对所述XML文件进行解析,生成测试脚本。本发明以行为树的方式进行测试用例的组织设计,简单高效,测试人员无需具有代码编写以及代码阅读的能力,只需进行简单的可视化的点击选择操作就可以进行自动化测试。同时,本发明将常规的测试脚本向节点的编写思维方向改写,通过节点的积累大大提高了测试脚本的复用率,有利于测试用例的迭代。此外,本发明的测试用例还可通过XML文件的形式展现,测试用例可读性更高,逻辑更加清晰。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种测试脚本生成方法,其特征在于,包括:
根据测试人员的指示从预先设置的节点库中选取行为树节点,并构建形成对应于测试用例的行为树;
将所述行为树转化成XML文件;
对所述XML文件进行解析,生成测试脚本;
其中,所述对所述XML文件进行解析,生成测试脚本,包括:读取所述XML文件的文件内容;检查所述XML文件的文件内容是否符合预设的语法规则;将所述文件内容中的行为树节点解析为函数代码;将所述函数代码重新排列成所述测试脚本。
2.如权利要求1所述的测试脚本生成方法,其特征在于,所述节点库设置于本地或者第一服务器;
当所述节点库设置于所述第一服务器时,所述测试脚本生成方法还包括:
将选中的行为树节点加载到本地。
3.如权利要求1或2所述的测试脚本生成方法,其特征在于,所述对所述XML文件进行解析,生成测试脚本,具体为:
将所述XML文件发送给第一服务器,通过所述第一服务器对所述XML文件进行解析,生成测试脚本。
4.如权利要求1所述的测试脚本生成方法,其特征在于,所述行为树节点包括流程节点、条件节点和行为节点;
所述流程节点,用于限定所述流程节点下的叶子节点的执行流程;
所述条件节点,用于执行所述测试用例中的逻辑条件判断;
所述行为节点,用于执行所述测试用例中的逻辑行为操作。
5.如权利要求1所述的测试脚本生成方法,其特征在于,所述根据测试人员的指示从预先设置的节点库中选取行为树节点,并构建形成对应于测试用例的行为树,具体为:
根据测试人员的指示,采用图形化的行为树编辑工具,从所述节点库中选择所述行为树节点;
根据测试人员的指示,调整所述行为树节点的参数,形成对应于测试用例的行为树。
6.如权利要求5所述的测试脚本生成方法,其特征在于,所述将所述行为树转化成XML文件,具体为:
通过所述行为树编辑工具,将所述行为树导出为XML文件。
7.一种测试方法,其特征在于,包括:
利用如权利要求1~6任一项所述的测试脚本生成方法,获取测试脚本;
将所述测试脚本发送给测试端,通过所述测试端执行所述测试脚本进行测试。
8.如权利要求7所述的测试方法,其特征在于,所述测试端为游戏服务器或者游戏客户端。
9.一种测试脚本生成装置,其特征在于,包括:
节点库,用于存储预先设置的行为树节点;
行为树构建模块,用于根据测试人员的指示,从所述节点库中选择行为树节点,并构建形成对应于测试用例的行为树;
XML转换模块,用于将所述行为树转化成XML文件;和,
测试脚本生成模块,用于对所述XML文件进行解析,生成测试脚本;
其中,所述测试脚本生成模块包括:
读取单元,用于读取所述XML文件的文件内容;
语法检测单元,用于检查所述XML文件的文件内容是否符合预设的语法规则;
解析单元,用于将所述文件内容中的行为树节点解析为函数代码;
排列单元,用于将所述函数代码重新排列成所述测试脚本。
10.如权利要求9所述的测试脚本生成装置,其特征在于,所述节点库设置于本地或者第一服务器;
当所述节点库设置于所述第一服务器时,所述测试脚本生成装置还包括:
加载模块,用于将选中的行为树节点加载到本地。
11.如权利要求9或10所述的测试脚本生成装置,其特征在于,所述测试脚本生成模块包括:
第一发送单元,用于将所述XML文件发送给第一服务器,通过所述第一服务器对所述XML文件进行解析,生成测试脚本。
12.如权利要求9所述的测试脚本生成装置,其特征在于,所述节点库包括:
流程节点库,用于存储流程节点,所述流程节点用于限定所述流程节点下的叶子节点的执行流程;
条件节点库,用于存储条件节点,所述条件节点用于执行所述测试用例中的逻辑条件判断;和,
行为节点库,用于存储行为节点,所述行为节点用于执行所述测试用例中的逻辑行为操作。
13.如权利要求9所述的测试脚本生成装置,其特征在于,所述行为树构建模块包括:
节点选择单元,用于根据测试人员的指示,采用图形化的行为树编辑工具,从所述节点库中选择所述行为树节点;和,
参数设置单元,用于根据测试人员的指示,调整所述行为树节点的参数,形成对应于测试用例的行为树。
14.如权利要求13所述的测试脚本生成装置,其特征在于,所述XML转换模块包括:
导出单元,用于通过所述行为树编辑工具,将所述行为树导出为XML文件。
15.一种测试装置,其特征在于,包括:
脚本获取模块,用于利用如权利要求1~6任一项所述的测试脚本生成方法,获取测试脚本;和,
测试模块,用于将所述测试脚本发送给测试端,通过所述测试端执行所述测试脚本进行测试。
16.如权利要求15所述的测试装置,其特征在于,所述测试端为游戏服务器或者游戏客户端。
17.一种测试系统,其特征在于,包括测试用例设计端、第一服务器和测试端;
所述测试用例设计端,用于根据测试人员的指示从预先设置的节点库中选取行为树节点,并构建形成对应于测试用例的行为树;将所述行为树转化成XML文件,并将所述XML文件发送给所述第一服务器;
所述第一服务器,用于对所述XML文件进行解析,生成测试脚本,并将所述测试脚本发送给所述测试端;
所述测试端,用于执行所述测试脚本;
其中,所述第一服务器包括:
第一接收单元,用于接收所述XML文件;
读取单元,用于读取所述XML文件的文件内容;
解析单元,用于将所述文件内容中的行为树节点解析为函数代码;
排列单元,用于将所述函数代码重新排列成所述测试脚本;
第二发送单元,用于将所述测试脚本发送给所述测试端;
语法检测单元,用于检查所述XML文件的文件内容是否符合预设的语法规则。
18.如权利要求17所述的测试系统,其特征在于,所述测试用例设计端包括:
节点选择单元,用于根据测试人员的指示,采用图形化的行为树编辑工具,从所述节点库中选择所述行为树节点;
参数设置单元,用于根据测试人员的指示,调整所述行为树节点的参数,形成对应于测试用例的行为树;
导出单元,用于通过所述行为树编辑工具,将所述行为树导出为XML文件;和,
第一发送单元,用于将所述XML文件发送给所述第一服务器。
19.如权利要求17或18所述的测试系统,其特征在于,所述测试端为游戏服务器或者游戏客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510478894.XA CN105068929B (zh) | 2015-08-06 | 2015-08-06 | 测试脚本生成方法和装置、测试方法、测试装置以及测试系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510478894.XA CN105068929B (zh) | 2015-08-06 | 2015-08-06 | 测试脚本生成方法和装置、测试方法、测试装置以及测试系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105068929A CN105068929A (zh) | 2015-11-18 |
CN105068929B true CN105068929B (zh) | 2018-02-13 |
Family
ID=54498306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510478894.XA Active CN105068929B (zh) | 2015-08-06 | 2015-08-06 | 测试脚本生成方法和装置、测试方法、测试装置以及测试系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105068929B (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653271B (zh) * | 2015-12-28 | 2018-12-21 | 网易(杭州)网络有限公司 | 行为树的静态解析、执行以及优化方法和装置 |
CN105739983B (zh) * | 2016-01-29 | 2019-03-15 | 腾讯科技(深圳)有限公司 | 脚本程序编辑装置及其实现方法 |
CN105893254A (zh) * | 2016-03-29 | 2016-08-24 | 乐视控股(北京)有限公司 | 测试用例导入方法及装置 |
CN106201873A (zh) * | 2016-07-01 | 2016-12-07 | 网易(杭州)网络有限公司 | 测试脚本的处理方法和装置 |
CN106445818B (zh) * | 2016-09-13 | 2019-05-10 | 郑州云海信息技术有限公司 | 一种基于模型驱动的自动化脚本调试方法和装置 |
CN106649100B (zh) * | 2016-11-16 | 2020-08-25 | 福建天晴数码有限公司 | 一种自动化测试方法及系统 |
CN108268368A (zh) * | 2016-12-30 | 2018-07-10 | 中兴通讯股份有限公司 | 一种生成测试用例脚本的方法和装置 |
CN106959850A (zh) * | 2017-03-02 | 2017-07-18 | 上海时年信息科技有限公司 | 自动生成行为树代码的方法及系统 |
CN106899441B (zh) * | 2017-03-16 | 2019-09-03 | 网易(杭州)网络有限公司 | 故障节点定位方法及系统 |
CN106933744A (zh) * | 2017-03-21 | 2017-07-07 | 网易(杭州)网络有限公司 | 节点修订状态标记方法及装置、电子设备及存储介质 |
CN107145444B (zh) * | 2017-05-04 | 2020-06-12 | 网易(杭州)网络有限公司 | 游戏性能的测试方法、测试装置、可读介质和电子设备 |
CN108804305A (zh) * | 2017-05-05 | 2018-11-13 | 北京嘀嘀无限科技发展有限公司 | 一种自动化测试的方法及装置 |
CN107080945B (zh) * | 2017-05-11 | 2020-12-22 | 网易(杭州)网络有限公司 | 测试游戏中人工智能行为的方法、装置及电子设备 |
CN107256148A (zh) * | 2017-05-24 | 2017-10-17 | 龙芯中科技术有限公司 | 界面的生成方法及系统、电子设备及存储介质 |
CN107870863B (zh) * | 2017-11-28 | 2020-10-16 | 中国电子科技集团公司第五十四研究所 | 一种基于xml的分布式自动化测试方法 |
CN107943707B (zh) * | 2017-12-19 | 2021-02-19 | 网易(杭州)网络有限公司 | 行为树的测试方法、装置和存储介质以及终端 |
CN108255727A (zh) * | 2018-01-18 | 2018-07-06 | 网易(杭州)网络有限公司 | 数据接收、发送方法及装置,测试系统,存储介质 |
CN108521350A (zh) * | 2018-03-16 | 2018-09-11 | 重庆邮电大学 | 一种基于xml驱动脚本的工业网关设备自动化测试方法 |
CN109086199B (zh) * | 2018-06-22 | 2022-06-07 | 网宿科技股份有限公司 | 一种自动化生成测试脚本的方法、终端和可存储介质 |
CN109032582A (zh) * | 2018-07-19 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种生成服务器运维脚本的方法及装置 |
CN111045917A (zh) * | 2018-10-12 | 2020-04-21 | 汉能移动能源控股集团有限公司 | 一种测试用例格式转换的方法及装置 |
CN109491901A (zh) * | 2018-11-01 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种多维度的测试执行进度度量系统及设备 |
CN110008304A (zh) * | 2019-04-03 | 2019-07-12 | 网易(杭州)网络有限公司 | 行为树的差异可视化处理方法和装置 |
CN110928763A (zh) * | 2019-09-29 | 2020-03-27 | 京东数字科技控股有限公司 | 测试方法、装置、存储介质及计算机设备 |
CN110990294B (zh) * | 2019-12-19 | 2023-07-14 | 支付宝知识产权控股公司 | 一种软件缺陷检测规则确定方法、装置、设备和存储介质 |
CN112925296B (zh) * | 2021-01-29 | 2022-06-14 | 华南理工大学 | 一种基于人工智能的图形化车载网络诊断方法 |
CN112882930B (zh) * | 2021-02-04 | 2023-09-26 | 网易(杭州)网络有限公司 | 自动化测试方法、装置、存储介质及电子设备 |
WO2023142077A1 (zh) * | 2022-01-29 | 2023-08-03 | 西门子股份公司 | 工作流生成方法、装置、系统、介质及程序产品 |
WO2023142075A1 (zh) * | 2022-01-29 | 2023-08-03 | 西门子股份公司 | 工作流创建方法、装置、平台和计算机可读介质 |
CN115203057B (zh) * | 2022-08-16 | 2023-03-28 | 北京永洪商智科技有限公司 | 低代码测试自动化方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079004A (zh) * | 2007-06-22 | 2007-11-28 | 中兴通讯股份有限公司 | 一种实现测试脚本管理和分发的方法及装置 |
CN101894058A (zh) * | 2010-05-31 | 2010-11-24 | 北京航空航天大学 | 针对自动测试系统的测试覆盖性自动分析方法及其装置 |
US7908550B1 (en) * | 2000-12-12 | 2011-03-15 | Oracle International Corporation | Dynamic tree control system |
-
2015
- 2015-08-06 CN CN201510478894.XA patent/CN105068929B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7908550B1 (en) * | 2000-12-12 | 2011-03-15 | Oracle International Corporation | Dynamic tree control system |
CN101079004A (zh) * | 2007-06-22 | 2007-11-28 | 中兴通讯股份有限公司 | 一种实现测试脚本管理和分发的方法及装置 |
CN101894058A (zh) * | 2010-05-31 | 2010-11-24 | 北京航空航天大学 | 针对自动测试系统的测试覆盖性自动分析方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105068929A (zh) | 2015-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105068929B (zh) | 测试脚本生成方法和装置、测试方法、测试装置以及测试系统 | |
US9465718B2 (en) | Filter generation for load testing managed environments | |
CN109857668A (zh) | Ui自动化功能测试方法、测试装置、测试设备及存储介质 | |
CN105608258B (zh) | 一种基于模型的系统设计及信息流可视化仿真系统及方法 | |
CN109508298B (zh) | 图形化的脚本测试方法及系统 | |
CN109948345A (zh) | 一种智能合约漏洞检测的方法、系统 | |
US11650799B2 (en) | Remote application modernization | |
CN104268079B (zh) | 一种pos应用程序测试的方法及系统 | |
CN104182347B (zh) | 一种基于自动化测试平台的测试需求自动分析方法 | |
CN107741903A (zh) | 应用程序兼容性测试方法、装置、计算机设备和存储介质 | |
CN109726105A (zh) | 测试数据构造方法、装置、设备及存储介质 | |
CN104035873A (zh) | 测试代码生成方法及生成装置 | |
CN107080945B (zh) | 测试游戏中人工智能行为的方法、装置及电子设备 | |
CN103761189A (zh) | 一种测试用例管理方法及系统 | |
CN106682036A (zh) | 一种数据交换系统及其交换方法 | |
CN107896173A (zh) | 自动化测试方法、测试设备、自动化测试系统及存储介质 | |
CN117370203B (zh) | 自动化测试方法、系统、电子设备及存储介质 | |
CN108628734A (zh) | 一种功能程序调试方法和终端 | |
CN108829389A (zh) | 基于Appium的安卓应用自动化触发执行方法 | |
CN103678116A (zh) | 用于促进自动化程序测试的方法和系统 | |
CN106528429A (zh) | 一种ui界面测试方法及装置 | |
CN105242958B (zh) | 一种虚拟试验系统与hla仿真系统数据交换方法 | |
CN109522179B (zh) | 服务器运行状态的监控方法、装置、处理器及服务器 | |
CN108021431A (zh) | 基于Web数据交互管理Hive的方法及其系统 | |
US20170277710A1 (en) | Data comparison |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |