CN110013672A - 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质 - Google Patents
用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110013672A CN110013672A CN201910320144.8A CN201910320144A CN110013672A CN 110013672 A CN110013672 A CN 110013672A CN 201910320144 A CN201910320144 A CN 201910320144A CN 110013672 A CN110013672 A CN 110013672A
- Authority
- CN
- China
- Prior art keywords
- game
- automatic test
- test
- control keyword
- automatic
- 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.)
- Granted
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/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- 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
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/6009—Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
公开了一种机器运行的游戏的自动化测试方法,包括:加载并解析项目配置文件,所述项目配置文件指定待测的游戏和游戏的自动化测试用例文件;根据所述项目配置文件加载游戏的自动化测试用例文件,其中所述游戏的自动化测试用例文件包括流程控制关键字,所述流程控制关键字包括至少一个第一流程控制关键字,所述第一流程控制关键字是用代码实现的相应的自动化测试行为;以及根据所述游戏的自动化测试用例文件来执行游戏的自动化测试。还公开了一种游戏的自动化测试的设备、装置和计算机可读存储介质。
Description
技术领域
本申请涉及自动化测试,更具体地,涉及机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质。
背景技术
机器运行的游戏越来越多地受到用户的青睐,机器运行的游戏的开发、测试达到白热化。现有的游戏自动化测试方案主要包括基于游戏控件识别的自动化测试方案以及基于图像识别与控件识别结合的自动化测试方案。例如使用腾讯的GAutomator自动化测试框架可以完成游戏的控件识别与获取,通过编写测试脚本可以自动地操作游戏控件,进而完成游戏的自动化测试。网易的Airtest自动化测试框架较GAutomator而言,除了可以通过控件识别获取并操作游戏控件外,还支持通过图像识别技术识别并操作游戏中的控件,可以通过集成开发环境辅助游戏的自动化测试脚本的编写,如图1所示。
现有游戏自动化测试方案存在以下问题。首先,设计游戏的自动化测试用例需要测试人员编写测试代码,对测试人员要求较高,需要测试人员有一定的编程基础,否则无法胜任游戏自动化测试用例的编写工作。进而,由于游戏的自动化测试用例由代码编写,后期需要有一定编程基础的测试人员才能维护,增加了维护难度。其次,游戏的自动化测试用例与普通的自动化测试用例不同,对测试框架有较高的依赖,例如基于GAutomator自动化测试框架编写的游戏的自动化测试脚本无法在Airtest自动化测试框架下兼容运行。如果在编写好游戏的自动化测试用例后,更换测试框架,原有的自动化测试脚本需要大量重新编写。
发明内容
本发明的实施例提供了机器运行的游戏的自动化测试方法、设备、装置以及计算机可读存储介质,至少部分地解决上面提及的问题。
根据本发明的第一方面,提供了一种机器运行的游戏的自动化测试方法,包括:加载并解析项目配置文件,所述项目配置文件指定待测的游戏和游戏的自动化测试用例文件;根据所述项目配置文件加载游戏的自动化测试用例文件,其中所述游戏的自动化测试用例文件包括流程控制关键字,所述流程控制关键字包括至少一个第一流程控制关键字,所述第一流程控制关键字是用代码实现的相应的自动化测试行为;以及根据所述游戏的自动化测试用例文件来执行游戏的自动化测试。
根据一个实施例,其中,所述项目配置文件还指定游戏测试框架,所述第一流程控制关键字进一步具有游戏测试框架封装模块,所述执行游戏的自动化测试进一步包括:根据所述项目配置文件中指定的所述游戏测试框架,加载相应的游戏测试框架封装模块。
根据一个实施例,其中,所述游戏的自动化测试用例文件包括可扩展标记语言XML文件。
根据一个实施例,其中,所述游戏的自动化测试用例文件按照范围从大到小依次包括以下三个级别的元素:模块、测试场景和执行步骤。
根据一个实施例,其中,所述流程控制关键字包括用于标识执行次数的第二流程控制关键字,其用于定义对测试场景或执行步骤的执行次数,所述执行游戏的自动化测试进一步包括:响应于确定所述游戏的自动化测试用例文件包括所述第二流程控制关键字,根据与所述第二流程控制关键字有关的参数,对所述第二流程控制关键字所定义的测试场景或执行步骤执行所述参数限定的次数。
根据一个实施例,其中,所述游戏的自动化测试用例文件包括用于标识所标识的执行步骤是否可以跳过的第三流程控制关键字,所述执行游戏的自动化测试进一步包括:响应于确定所述游戏的自动化测试用例文件包括所述第三流程控制关键字并且其值为1,在所述第三流程控制关键字所定义的执行步骤执行失败时,继续向下执行;响应于确定所述游戏的自动化测试用例文件包括所述第三流程控制关键字并且其值为0时,中断所述游戏的自动化测试的执行。
根据一个实施例,其中,所述第一流程控制关键字包括以下任意一种或多种:直接点击元素、输入文字、滑动、等待场景、等待游戏组件、等待控件出现并点击、点击第几个控件,所述执行游戏的自动化测试进一步包括:响应于确定所述游戏的自动化测试用例文件包括所述第一流程控制关键字,根据所述第一流程控制关键字的取值,执行以下的一种或多种:直接点击元素、输入文字、滑动、等待场景、等待游戏组件、等待控件出现并点击、点击第几个控件。
根据一个实施例,其中,所述执行游戏的自动化测试进一步包括按照所述游戏的自动化测试用例文件记载的顺序执行游戏的自动化测试。
根据一个实施例,其中,所述游戏测试框架包括GAutomator和Airtest。
根据一个实施例,该方法进一步包括:根据游戏的自动化测试的执行结果,自动生成测试报告。
根据一个实施例,其中,所述游戏的自动化测试是自动化冒烟测试。
根据本发明的第二方面,提供了一种游戏的自动化测试设备,包括:项目配置文件载析器,其被配置来加载并解析项目配置文件,所述项目配置文件指定待测的游戏和游戏的自动化测试用例文件;游戏的自动化测试用例文件加载器,其配置来根据所述项目配置文件加载游戏的自动化测试用例文件,其中所述游戏的自动化测试用例文件包括流程控制关键字,所述流程控制关键字包括至少一个第一流程控制关键字,所述第一流程控制关键字是用代码实现的相应的自动化测试行为;以及执行器,其配置来解析所述游戏的自动化测试用例文件,并根据所述游戏的自动化测试用例文件来执行游戏的自动化测试。
根据一个实施例,其中,所述项目配置文件还指定游戏测试框架,所述第一流程控制关键字进一步具有游戏测试框架封装模块,所述执行器进一步包括游戏测试框架封装模块加载器,其配置来根据所述项目配置文件中配置的所述游戏测试框架,加载相应的游戏测试框架封装模块。
根据本发明的第三方面,提供了一种游戏的自动化测试的装置,包括:处理器;以及存储器,其配置为在其上存储有计算机可执行指令,所述指令当在所述处理器中执行时,使得所述处理器实现上述第一方面及其任一实施例的方法。
根据本发明的第四方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机实现上述第一方面及其任一实施例的方法。
根据上述实施例,由于游戏的自动化测试用例是通过独立的配置文件编写的,因此对编写或者维护自动化测试用例的人员的专业要求较低,大大降低了自动化测试用例的编写门槛,编写自动化测试用例的任务可以交给没有编程基础的测试人员完成,大幅提升了游戏的自动化测试用例的编写效率。同时,由于配置文件比自动化测试脚本更加简洁直观,因此提升了自动化测试用例的后期维护效率。替代地或附加地,还可以做到游戏的自动化测试用例与测试框架的隔离,在游戏的自动化测试用例编写完成后,更换自动化测试框架时无需修改原有的游戏的自动化测试用例,实现了游戏的自动化测试用例和测试框架的解耦,使得游戏的自动化测试用例具有较强的可移植性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为辅助游戏的自动化测试脚本的编写的集成开发环境。
图2为根据本发明实施例的游戏的自动化测试的方法的流程图。
图3a和图3b为根据本发明实施例的游戏的自动化测试用例的一个示例。
图4为根据本发明实施例的游戏的自动化测试用例的一个示例的执行顺序。
图5为根据本发明实施例的游戏的自动化测试用例的另一个示例。
图6a和图6b为根据本发明实施例的游戏的自动化测试用例的另一个示例的流程图。
图7a-n为根据本发明实施例的游戏的自动化测试用例的另一个示例的执行界面图。
图8为根据本发明实施例的游戏的自动化测试的设备的框图。
图9为根据本发明实施例的硬件实施环境示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本文所述的“游戏”均指可以在机器上运行的机器运行的游戏,机器包括但不限于移动电话、智能电话、平板、膝上型电脑、台式机、游戏控制台、车载设备、诸如电视、播放器之类的家用电器,而可以是任何可以运行游戏的设备。
由于游戏的测试通常比一般软件的测试更为复杂,所以现有技术中开发了一些游戏测试框架。图1为辅助游戏的自动化测试脚本的编写的集成开发环境的示例,它是游戏自动化测试框架Airtest所附带的集成开发环境。该环境的主界面大致分为三列,左边一列的上半部分显示常用操作快捷菜单,在编写测试脚本时可以调用。左边一列的下半部分用于显示测试对象的用户界面的树状结构。中间一列的上半部分显示测试脚本编辑区域,测试开发人员可以在此处输入编写的脚本。中间一列的下班部分是日志输出区域。右边一列显示测试对象的用户界面。并在整个主界面上方提供一些常规操作的菜单和图标(例如新建、打开、保存、另存为、运行、停止运行以及查看报告)。尽管如此,测试开发人员仍然需要编写代码来基于这些游戏的自动化测试框架实现游戏的自动化测试用例,对测试人员要求高,且维护难度大。此外,如果更换测试框架,原有的自动化测试脚本需要大量重新编写。
图2为根据本发明实施例的游戏的自动化测试的方法的流程图。需注意,以下描述的先后顺序并不代表步骤本身的执行顺序,这些步骤可以以任何合理的顺序先后或者同时执行。根据本发明实施例的游戏的自动化测试的方法开始于步骤201。在其中,初始化游戏的自动化测试环境,例如将执行该方法的游戏的自动化测试装置与待测的游戏运行于的装置进行连接,所述游戏运行于的装置包括而不限于移动电话、智能电话、平板、膝上型电脑、台式机、游戏控制台、车载设备、诸如电视、播放器之类的家用电器,而可以是任何可以运行游戏的设备。例如对于基于安卓操作系统的设备的本地测试,该连接可以是ADB(AndroidDebug Bridge,安卓测试桥)连接。该步骤可以基于人为或自动发送的外部指令而触发。也不排除由于测试常态化或者其它原因,待测的游戏运行于的装置已具备测试环境,而可以忽略该步骤。甚至该步骤可以设计到游戏的自动化测试用例中。
在步骤202,加载并解析项目配置文件,所述项目配置文件指定待测的游戏和游戏的自动化测试用例文件。在该步骤中,例如可以从项目配置文件中读取游戏安装包名称及/或其路径、游戏的自动化测试用例配置文件名称及/或其路径等。根据一个实施例,所述项目配置文件还指定游戏测试框架,例如所述游戏测试框架包括GAutomator和Airtest,二者分别是腾讯和网易的自动化测试框架。
而后就可以在步骤203中根据所述项目配置文件指定的游戏来启动游戏客户端,并且可以在步骤204中根据所述项目配置文件指定的游戏的自动化测试用例文件进行加载。其中在步骤203中,例如对于基于安卓操作系统的设备的本地测试,可以自动执行ADB指令来启动相应的游戏客户端。
游戏的自动化测试用例文件规定了对游戏执行自动化测试的流程,其可以使用多种文件格式进行配置,图3a和图3b为根据本发明实施例的游戏的自动化测试用例的示例,其中以可扩展标记语言XML文件格式为例进行说明。如图3a和图3b所示,XML文件格式的游戏的自动化测试用例按照范围从大到小依次包括以下三个级别的元素:模块(module)、测试场景(scene)和执行步骤(step)。其中:module是游戏的自动化测试用例的根节点,没有特殊含义,scene是测试场景,用于区分游戏的测试过程中的不同测试场景,例如登录场景、建造场景、战斗场景,step用测试步骤,是游戏的自动化测试用例执行过程中的最小粒度,每个测试步骤例如对应一次点击或者滑动操作等。
图3a和图3b所示的游戏的自动化测试用例文件包括流程控制关键字,例如至少一个操作类型(type)。所述操作类型是用代码实现的相应的自动化测试行为,包括以下任意一种或多种:直接点击元素、输入文字、滑动、等待场景、等待游戏组件、等待控件出现并点击、点击第几个控件。以上仅是一些常用的操作类型,显然,游戏的自动化测试用例的操作类型不限于上述这几类。具体而言,操作类型的设定例如:
操作类型(type)1代表直接点击元素(act_click);
操作类型(type)2代表输入文字(act_input);
操作类型(type)3代表滑动(act_swipe);
操作类型(type)4代表等待场景出现(act_for scene);
操作类型(type)5代表等待游戏组件出现(act_wait_for_gameobj);
操作类型(type)6代表等待控件出现并点击(act_wait_and_click);
操作类型(type)7代表点击控件idx(act_click_by_idx)。
操作类型是从自动化测试行为抽象而来的,由自动化测试的开发人员用代码事先构建好,而游戏的自动化测试用例不需要通过编写代码,只需要将抽象后的测试行为通过操作类型(type)配置到游戏的自动化测试用例文件中,便可以定义完整的游戏的自动化测试流程。
在一个实施例中,所述操作类型进一步具有游戏测试框架封装模块,对不同的游戏测试框架的自动化测试动作进行了封装,确保执行时函数调用的一致性,实现了对不同测试框架的兼容。当修改或者更换自动化测试框架时,只需修改游戏测试框架封装模块,便可以完成测试框架的更换或者修改,而不需要更改游戏的自动化测试用例文件。
可选地,流程控制关键字还可以包括用于标识执行的次数的“执行次数(times)”,其用于定义对测试场景或执行步骤的执行次数。在一个示例中,例如XML格式的游戏的自动化测试用例,如无指定,默认执行一次,即可理解为默认times=1。
可选地,流程控制关键字还可以包括用于标识所标识的执行步骤是否可以跳过的流程控制关键字“可以跳过(skippable)”。也即用来标识对是否允许所标识的执行步骤执行失败,如无指定,例如XML格式的游戏的自动化测试用例,默认执行失败即中断,即可理解为默认为0,即如果在执行过程中,某一个执行步骤执行失败,那么本次游戏的自动化测试流程将在此处中断,不再继续往下执行。skippable=1代表所标识的执行步骤可跳过,即如果在执行过程中,某一个执行步骤执行失败,并不会影响整体自动化测试流程继续向下执行。特别的,当某一个操作步骤同时包含skippable属性和times属性,如果某一次操作执行失败且执行步骤已运行的次数小于times对应的执行次数时,该执行步骤将不会继续重复多次的执行。该流程控制关键字“可以跳过(skippable)”只能用来控制执行步骤。
例如根据上面的设定,图3a的游戏的自动化测试流程分成3个步骤:
点击Btn_A控件,然后等待1秒钟;
等待launcher场景出现;
在launcher场景出现后,继续等待Btn_B控件出现,该控件出现后对Btn_B控件进行四次点击操作。
而后在步骤205,根据所述游戏的自动化测试用例文件规定的自动化测试的流程来执行游戏的自动化测试。这包括执行游戏的自动化测试用例文件中的所有测试场景的所有测试步骤。根据一个实施例,其中,所述执行游戏的自动化测试进一步包括按照所述游戏的自动化测试用例文件记载的顺序执行游戏的自动化测试。以图3b所示的游戏的自动化测试用例为例,在不考虑“times”关键字和可能出现的某个运行步骤运行失败的情况下,会按顺序依次执行“测试场景0”中的所有测试步骤,然后再依次执行“测试场景1”和“测试场景2”中的所有执行步骤,也即所有的测试场景(scene)是按照自上而下的顺序执行。细化到每个测试场景(scene)内部,同样是按照自上而下的顺序依次执行每个执行步骤(step),即先进行执行步骤1,再进行执行步骤2。图4为根据本发明实施例的游戏的自动化测试用例的一个示例的执行顺序。
更进一步的,上述执行流程会受到流程控制字段“times”和“skippable”影响。“测试场景0”没有流程关键字“times”,那么该测试场景只会执行1次。“测试场景1”的“times”等于2,那么“测试场景1”会执行2次。由于“测试场景1”包含了2个执行步骤,所以这两个执行步骤会依次执行两次,具体执行次序为:
“测试场景1-执行步骤1”;
“测试场景1-执行步骤2”;
“测试场景1-执行步骤1”;
“测试场景1-执行步骤2”。
“测试场景2”的“times”等于2,“测试场景2”的“执行步骤1”的“times”等于2,那么“测试场景2”会执行2次。在每次“测试场景2”执行过程中,“执行步骤1”会执行2次,所以最终“测试场景2”的“执行步骤1”会执行4次。具体执行次序为:
“测试场景2”的“执行步骤1”;
“测试场景2”的“执行步骤1”;
“测试场景2”的“执行步骤2”;
“测试场景2”的“执行步骤1”;
“测试场景2”的“执行步骤1”;
“测试场景2”的“执行步骤2”。
在一个实施例中,鉴于所述操作类型进一步具有游戏测试框架封装模块,步骤205进一步包括:根据所述项目配置文件中指定的所述游戏测试框架,加载相应的游戏测试框架封装模块。
根据一个实施例,在步骤206,根据游戏的自动化测试的执行结果,自动生成测试报告。在一个示例中,可以在游戏的自动化测试用例文件中指定URL以便向该指定URL发送测试报告。
图5为根据本发明实施例的游戏的自动化测试用例的另一个示例。其规定了针对腾讯的《乱世王者》游戏的安装包自动化冒烟测试流程,冒烟测试这一术语源自硬件行业。对一个硬件或硬件组件进行更改或修复后,直接给设备加电。如果没有冒烟,则该组件就通过了测试。在软件中,“冒烟测试”这一术语描述的是在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程。该游戏的自动化测试用例主要涉及以下测试行为:账号登录、关闭公告界面、删除已有测试账号、登入游戏、跳过部分新手引导流程、发送测试报告,并且包括了6种操作类型,结合它们所在的执行步骤,分析如下:
操作类型(type)0:用于完成QQ自动登录,该步骤中参数包括“qq”(QQ号码)和“passwd”(QQ密码);
操作类型(type)1:点击控件,该步骤中控件名称即为后面的文本内容;
操作类型(type)4:等待游戏场景出现,该步骤中后面的文本内容标识了场景名称,该操作类型定义了在该等待中会每隔1秒钟进行一次检测,如果指定的场景出现,则执行成功,如果超过30秒而指定的场景仍未出现,则判定执行失败;
操作类型(type)6:等待控件出现并对其点击,该步骤中后面的文本内容标识了控件名称,该操作类型定义了每隔1秒钟会进行一次检测,如果控件出现则进行点击,执行成功,如果超过30秒仍未出现,则判定执行失败;
操作类型(type)9:连续地对指定控件进行点击,直到该控件不存在,该步骤中后面的文本标识了控件名称,“times”标识了点击最大次数,“skippable”等于“1”表示当执行过程中发现指定控件不存在,则执行结束,该操作类型定义了执行间隔为1秒钟;
操作类型(type)100:向指定URL发送测试报告,该步骤中后面的文本表示了URL地址。
图6a和图6b为图5的游戏的自动化测试用例的流程图。图7a-n为图5的游戏的自动化测试用例的执行界面图。为了简明起见,图7a-n中省略了图片,并仅以简化的方式示出控件。其中图7a显示测试开始前待测试的客户端设备的用户界面。测试开始后,在第一个执行步骤(step)中:
<step type="6">QQLogin</step>。
在6011中,等待“QQ登录”按钮是否出现,如果出现,如图7b所示,则在6012中进行点击,先后呈现图7c和图7d。如果没有出现,则等待1秒(6013)再进行一次检测,直到在6014判定超过30秒,则判定执行失败。
在第二个执行步骤(step)中:
<step type="0" passwd="Test1234" q="2952014758"/>。
在图7d中自动输入用户名"2952014758"以及密码"Test1234",进行QQ登录(6021)。
在第三个执行步骤(step)中:
<step type="4" sleep="2">launcher</step>。
在6031中,等待是否进入“launcher”场景,如果出现,如图7e所示,则执行成功,在6032中等待2秒,如果没有出现,则等待1秒(6033)再进行一次检测,直到在6034判定超过30秒,则判定执行失败。
在第四个执行步骤(step)中:
<step type="9" skipable="1" times="100">Btn_Close</step>。
在6041中,等待是否出现含有关闭按钮的界面,在该游戏中指公告界面,如果存在,在6042点击关闭按钮关闭公告界面,可以持续点击直到其不存在,“times”标识了最大点击次数100,“skippable”等于“1”表示当执行过程中发现指定控件不存在,则执行结束。图7f和图7g显示了先后出现的两个公告界面,则重复执行上述步骤。
在第五个执行步骤(step)中:
<step type="6" sleep="2">Login/Btn_Confirm</step>。
在6051中等待控件出现并对其点击,在该游戏测试中“Btn_Confirm”是指用户协议面板上的“同意”按钮,如图7h所示,如果出现该按钮,则在6052中点击,并在6053中等待2秒,如果没有出现,则等待1秒(6054)再进行一次检测,直到在6055判定超过30秒,则判定执行失败。
在第六个执行步骤(step)中:
<step type="1" sleep="2">Login/Pan_Enter/Pan_Adapter/Pan_Btn1/Btn_1</step>。
在6061中点击“进入游戏”按钮,如图7i所示,并在6062中等待2秒。
在第七个执行步骤(step)中:
<step type="1" sleep="2">Acounts/Pan_Role/Btn_Delete</step>。
在6071中点击“删除”按钮,如图7j所示,删除已有账号,并在6072中等待2秒。
在第八个执行步骤(step)中:
<step type="1" sleep="2">Acounts/Pan_Popup/Btn_Confirm</step>。
6081中点击“确定”按钮完成二次确认,如图7k所示,并在6082中等待2秒。
在第九个执行步骤(step)中:
<step type="1" sleep="2">Acounts/Pan_Role/Btn_Login</step>。
在6091中点击“登录游戏”按钮,如图7l所示,并在6092中等待2秒。
在第十个执行步骤(step)中:
<step type="4">MainScene</step>。
在6101中,等待是否进入了游戏场景,如果出现,例如如图7m所示,则执行成功,如果没有出现,则等待1秒(6102)再进行一次检测,直到在6103判定超过30秒,则判定执行失败。
在第十一个执行步骤(step)中:
<step type="9" skipable="1" times="100">Desktop/Guide</step>
在6111中,等待是否出现该游戏中的新手引导界面,如果存在,例如如图7m和7n所示,在6112点击该界面,可以不断点击,“times”标识了最大点击次数100,“skippable”等于“1”表示当执行过程中发现指定界面不存在,则执行结束。
最后,在第十二个执行步骤(step)中:
<step type="100">http://10.12.234.50:8008/test_report</step>
在6121中,将测试报告发送到地址:10.12.234.50:8008,测试结束。
图8为根据本发明实施例的游戏的自动化测试的设备的框图。该设备包括项目配置文件载析器801、游戏的自动化测试用例文件加载器802以及执行器803。其中,项目配置文件载析器801被配置来加载以及解析项目配置文件,所述项目配置文件指定待测的游戏和游戏的自动化测试用例文件。游戏的自动化测试用例文件加载器802被配置来根据所述项目配置文件加载游戏的自动化测试用例文件,其中所述游戏的自动化测试用例文件规定了对游戏执行自动化测试的流程,关于所述游戏的自动化测试用例文件的具体内容参见上文所述,在此不再赘述。执行器803被配置来解析所述游戏的自动化测试用例文件,并根据所述游戏的自动化测试用例文件规定的自动化测试的流程来执行游戏的自动化测试。
根据一个实施例,鉴于所述项目配置文件还可以指定游戏测试框架,相应地,所述项目配置文件中上文所描述的操作类型进一步具有游戏测试框架封装模块,对不同的游戏测试框架的自动化测试动作进行了封装,确保执行时函数调用的一致性,实现了对不同测试框架的兼容。当修改或者更换自动化测试框架时,只需修改游戏测试框架封装模块,便可以完成测试框架的更换或者修改,而不需要更改游戏的自动化测试用例文件。从而,所述执行器803进一步包括游戏测试框架封装模块加载器,其配置来根据所述项目配置文件中配置的所述游戏测试框架,加载相应的游戏测试框架封装模块以供执行。例如动作类型1所对应的点击操作“act_click(指定控件)”,在GAutomator测试框架下对应的是“screen_shot_click(指定控件)”操作,而在Airtest测试框架对应的是“poco(指定控件).click()”操作。因此对于不同的游戏测试框架,同一操作类型具有不同的封装模块,执行时,需加载项目配置文件中指定游戏测试框架对应的封装模块。
图9为根据本发明实施例的硬件实施环境示意图。参见图9,在本发明的实施方式中,游戏的自动化测试的装置900包括处理器904,其中包括硬件原件910。处理器904例如包括一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一个或多个处理器。如本文中所使用的术语“处理器”可指上述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文描述的功能性可提供于经配置以用于游戏的自动化测试的专用硬件和/或软件模块内,或并入在组合式的硬件和/或软件模块中。并且,可将所述技术完全实施于一个或多个电路或逻辑元件中。本公开中的方法可以在各种组件、模块或单元中实现,但不一定需要通过不同硬件单元来实现。而是,如上所述,各种组件、模块或单元可组合或由互操作硬件单元(包含如上所述的一个或多个处理器)的集合结合合适软件和/或固件来提供。
在一个或多个示例中,以上结合图2-图7所描述的技术方案可以硬件、软件、固件或其任一组合来实施。如果以软件实施,那么功能可作为一个或多个指令或代码存储在计算机可读介质上或经由计算机可读介质906传输,且由基于硬件的处理器执行。计算机可读介质906可包含对应于例如数据存储介质等有形介质的计算机可读存储介质,或包含促进计算机程序例如根据通信协议从一处传送到另一处的任何介质的通信介质。以此方式,计算机可读介质906通常可对应于(1)非暂时性的有形计算机可读存储介质,或(2)例如信号或载波等通信介质。数据存储介质可为可由一个或多个计算机或者一个或多个处理器读取以检索用于实施本公开中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可包含计算机可读介质906。
举例来说且并非限制,此类计算机可读存储介质可包括RAM、ROM、EEPROM、CD_ROM或其它光盘等存储器、磁盘存储器或其它磁性存储器、快闪存储器或可用来以指令或数据结构的形式存储所要程序代码且可由计算机读取的任何其它存储器912。而且,恰当地将任何连接称作计算机可读介质906。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及微波等无线技术包含于介质的定义中。然而应了解,计算机可读存储介质和数据存储介质不包含连接、载波、信号或其它瞬时介质,而是针对非瞬时有形存储介质。如本文中所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘使用激光以光学方式再生数据。上文的组合也应包含在计算机可读介质906的范围内。
游戏的自动化测试的装置900还可以包括用于传输数据的I/O接口、以及其他功能914。游戏的自动化测试的装置900可以包括在不同的装置中,例如移动电话、智能电话、平板、膝上型电脑、台式机、游戏控制台、车载设备、诸如电视、播放器之类的家用电器任何能够运行游戏的装置,这里仅为计算机916、移动装置918和电视920。这些配置中的每个包括可以具有一般不同的构造和能力的设备,并且因此可以根据不同设备类别中的一个或多个配置游戏的自动化测试的装置900。此外本发明的技术还可以通过使用分布式系统、诸如通过如下所述的平台924在“云”922上全部或部分地实现。
云922包括和/或代表用于资源926的平台924。平台924抽象云922的硬件(例如,服务器)和软件资源的底层功能。资源926可以包括在远离计算设备902的服务器上执行计算机处理时可以使用的应用和/或数据。资源926还可以包括通过因特网和/或通过诸如蜂窝或Wi-Fi网络的订户网络提供的服务。
平台924可以抽象资源和功能以将计算设备902与其他计算设备连接。平台924还可以用于抽象资源的分级以提供遇到的对于经由平台924实现的资源926的需求的相应水平的分级。因此,在互连设备实施例中,本文描述的功能的实现可以分布在整个系统内。例如,功能可以部分地在计算设备902上以及通过抽象云922的功能的平台924来实现。
根据上述实施例,由于游戏的自动化测试用例是通过独立的配置文件编写的,因此对编写或者维护自动化测试用例的人员的专业要求较低,大大降低了自动化测试用例的编写门槛,编写自动化测试用例的任务可以交给没有编程基础的测试人员完成,大幅提升了游戏的自动化测试用例的编写效率。同时,由于配置文件比自动化测试脚本更加简洁直观,因此提升了自动化测试用例的后期维护效率。替代地或附加地,还可以做到游戏的自动化测试用例与测试框架的隔离,在游戏的自动化测试用例编写完成后,更换自动化测试框架时无需修改原有的游戏的自动化测试用例,实现了游戏的自动化测试用例和测试框架的解耦,使得游戏的自动化测试用例具有较强的可移植性。
需要说明,本公开中出现的“第一”、“第二”等表述不代表指示重要性或步骤的先后,仅是用于区分。方法步骤在没有特别说明或者没有前提约束(即一个步骤的执行需以另一个步骤的执行结果为前提)的情况下,方法步骤的描述先后不代表他们的执行先后,所描述的方法步骤可以以可能的、合理的顺序执行。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (14)
1.一种机器运行的游戏的自动化测试方法,包括:
加载并解析项目配置文件,所述项目配置文件指定待测的游戏和游戏的自动化测试用例文件;
根据所述项目配置文件加载游戏的自动化测试用例文件,其中所述游戏的自动化测试用例文件包括流程控制关键字,所述流程控制关键字包括至少一个第一流程控制关键字,所述第一流程控制关键字是用代码实现的相应的自动化测试行为;以及
根据所述游戏的自动化测试用例文件来执行游戏的自动化测试。
2.如权利要求1所述的方法,其中,所述项目配置文件还指定游戏测试框架,所述第一流程控制关键字进一步具有游戏测试框架封装模块,所述执行游戏的自动化测试进一步包括:
根据所述项目配置文件中指定的所述游戏测试框架,加载相应的游戏测试框架封装模块以供执行。
3.如权利要求1所述的方法,其中,所述游戏的自动化测试用例文件包括可扩展标记语言XML文件。
4.如权利要求1所述的方法,其中,所述游戏的自动化测试用例文件按照范围从大到小依次包括以下三个级别的元素:模块、测试场景和执行步骤。
5.如权利要求4所述的方法,其中,所述流程控制关键字包括用于标识执行次数的第二流程控制关键字,其用于定义对测试场景或执行步骤的执行次数,所述执行游戏的自动化测试进一步包括:响应于确定所述游戏的自动化测试用例文件包括所述第二流程控制关键字,根据与所述第二流程控制关键字有关的参数,对所述第二流程控制关键字所定义的测试场景或执行步骤执行所述参数限定的次数。
6.如权利要求4所述的方法,其中,所述流程控制关键字包括用于标识所标识的执行步骤是否可以跳过的第三流程控制关键字,所述执行游戏的自动化测试进一步包括:响应于确定所述游戏的自动化测试用例文件包括所述第三流程控制关键字并且其值为1,在所述第三流程控制关键字所定义的执行步骤执行失败时,继续向下执行;响应于确定所述游戏的自动化测试用例文件包括所述第三流程控制关键字并且其值为0时,中断所述游戏的自动化测试的执行。
7.如权利要求1所述的方法,其中,所述第一流程控制关键字包括以下任意一种或多种:直接点击元素、输入文字、滑动、等待场景、等待游戏组件、等待控件出现并点击、点击第几个控件,所述执行游戏的自动化测试进一步包括:响应于确定所述游戏的自动化测试用例文件包括所述第一流程控制关键字,根据所述第一流程控制关键字的取值,执行以下的一种或多种:直接点击元素、输入文字、滑动、等待场景、等待游戏组件、等待控件出现并点击、点击第几个控件。
8.如权利要求1所述的方法,其中,所述执行游戏的自动化测试进一步包括按照所述游戏的自动化测试用例文件记载的顺序执行游戏的自动化测试。
9.如权利要求1所述的方法,其中,所述游戏测试框架包括GAutomator和Airtest。
10.如权利要求1所述的方法,进一步包括:根据游戏的自动化测试的执行结果,自动生成测试报告。
11.一种游戏的自动化测试设备,包括:
项目配置文件载析器,其被配置来加载并解析项目配置文件,所述项目配置文件指定待测的游戏和游戏的自动化测试用例文件;
游戏的自动化测试用例文件加载器,其配置来根据所述项目配置文件加载游戏的自动化测试用例文件,其中所述游戏的自动化测试用例文件包括流程控制关键字,所述流程控制关键字包括至少一个第一流程控制关键字,所述第一流程控制关键字是用代码实现的相应的自动化测试行为;以及
执行器,其配置来解析所述游戏的自动化测试用例文件,并根据所述游戏的自动化测试用例文件来执行游戏的自动化测试。
12.如权利要求11所述的设备,其中,所述项目配置文件还指定游戏测试框架,所述第一流程控制关键字进一步具有游戏测试框架封装模块,所述执行器进一步包括游戏测试框架封装模块加载器,其配置来根据所述项目配置文件中配置的所述游戏测试框架,加载相应的游戏测试框架封装模块以供执行。
13. 一种游戏的自动化测试的装置,包括:
处理器;以及
存储器,其配置为在其上存储有计算机可执行指令,所述指令当在所述处理器中执行时,使得所述处理器实现如权利要求1-10中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机实现如权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910320144.8A CN110013672B (zh) | 2019-04-19 | 2019-04-19 | 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910320144.8A CN110013672B (zh) | 2019-04-19 | 2019-04-19 | 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110013672A true CN110013672A (zh) | 2019-07-16 |
CN110013672B CN110013672B (zh) | 2022-08-05 |
Family
ID=67192025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910320144.8A Active CN110013672B (zh) | 2019-04-19 | 2019-04-19 | 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110013672B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457218A (zh) * | 2019-08-07 | 2019-11-15 | Oppo广东移动通信有限公司 | 游戏引擎测试方法、装置、存储介质及电子设备 |
CN110502436A (zh) * | 2019-07-30 | 2019-11-26 | 广东分利宝金服科技有限公司 | 提高自动化测试执行效率的方法 |
CN110597593A (zh) * | 2019-09-25 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 用户引导任务的处理方法、装置、计算机设备及存储介质 |
CN112433953A (zh) * | 2020-12-11 | 2021-03-02 | 杭州电魂网络科技股份有限公司 | 基于网络游戏客户端的嵌入式自动化测试方法、装置、设备及介质 |
CN112765041A (zh) * | 2021-02-04 | 2021-05-07 | 上海硬通网络科技有限公司 | 游戏自动化测试方法、装置及电子设备 |
CN112835791A (zh) * | 2021-01-26 | 2021-05-25 | 杭州电魂网络科技股份有限公司 | 游戏兼容性自动化测试方法、装置、设备及介质 |
CN113505081A (zh) * | 2021-08-13 | 2021-10-15 | 广州博冠信息科技有限公司 | 抽奖程序的测试方法及装置、计算机存储介质、电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100100872A1 (en) * | 2008-10-22 | 2010-04-22 | Oracle International Corporation | Methods and systems for implementing a test automation framework for testing software applications on unix/linux based machines |
CN101996131A (zh) * | 2009-08-19 | 2011-03-30 | 航天信息股份有限公司 | 基于xml封装关键字的gui自动测试方法及自动测试平台 |
CN104778124A (zh) * | 2015-04-13 | 2015-07-15 | 上海新炬网络信息技术有限公司 | 一种软件应用自动化测试方法 |
CN104965790A (zh) * | 2015-07-17 | 2015-10-07 | 小米科技有限责任公司 | 基于关键字驱动的软件测试方法及系统 |
CN105721239A (zh) * | 2016-01-18 | 2016-06-29 | 网易(杭州)网络有限公司 | 游戏测试方法、装置及游戏系统 |
CN108255729A (zh) * | 2018-01-24 | 2018-07-06 | 珠海金山网络游戏科技有限公司 | 一种基于Unity平台的手机游戏自动化测试方法和系统 |
-
2019
- 2019-04-19 CN CN201910320144.8A patent/CN110013672B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100100872A1 (en) * | 2008-10-22 | 2010-04-22 | Oracle International Corporation | Methods and systems for implementing a test automation framework for testing software applications on unix/linux based machines |
CN101996131A (zh) * | 2009-08-19 | 2011-03-30 | 航天信息股份有限公司 | 基于xml封装关键字的gui自动测试方法及自动测试平台 |
CN104778124A (zh) * | 2015-04-13 | 2015-07-15 | 上海新炬网络信息技术有限公司 | 一种软件应用自动化测试方法 |
CN104965790A (zh) * | 2015-07-17 | 2015-10-07 | 小米科技有限责任公司 | 基于关键字驱动的软件测试方法及系统 |
CN105721239A (zh) * | 2016-01-18 | 2016-06-29 | 网易(杭州)网络有限公司 | 游戏测试方法、装置及游戏系统 |
CN108255729A (zh) * | 2018-01-24 | 2018-07-06 | 珠海金山网络游戏科技有限公司 | 一种基于Unity平台的手机游戏自动化测试方法和系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502436A (zh) * | 2019-07-30 | 2019-11-26 | 广东分利宝金服科技有限公司 | 提高自动化测试执行效率的方法 |
CN110457218A (zh) * | 2019-08-07 | 2019-11-15 | Oppo广东移动通信有限公司 | 游戏引擎测试方法、装置、存储介质及电子设备 |
CN110597593A (zh) * | 2019-09-25 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 用户引导任务的处理方法、装置、计算机设备及存储介质 |
CN110597593B (zh) * | 2019-09-25 | 2024-05-07 | 腾讯科技(深圳)有限公司 | 用户引导任务的处理方法、装置、计算机设备及存储介质 |
CN112433953A (zh) * | 2020-12-11 | 2021-03-02 | 杭州电魂网络科技股份有限公司 | 基于网络游戏客户端的嵌入式自动化测试方法、装置、设备及介质 |
CN112835791A (zh) * | 2021-01-26 | 2021-05-25 | 杭州电魂网络科技股份有限公司 | 游戏兼容性自动化测试方法、装置、设备及介质 |
CN112765041A (zh) * | 2021-02-04 | 2021-05-07 | 上海硬通网络科技有限公司 | 游戏自动化测试方法、装置及电子设备 |
CN112765041B (zh) * | 2021-02-04 | 2024-04-05 | 上海硬通网络科技有限公司 | 游戏自动化测试方法、装置及电子设备 |
CN113505081A (zh) * | 2021-08-13 | 2021-10-15 | 广州博冠信息科技有限公司 | 抽奖程序的测试方法及装置、计算机存储介质、电子设备 |
CN113505081B (zh) * | 2021-08-13 | 2024-02-23 | 广州博冠信息科技有限公司 | 抽奖程序的测试方法及装置、计算机存储介质、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110013672B (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110013672A (zh) | 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质 | |
US11934301B2 (en) | System and method for automated software testing | |
US20240037020A1 (en) | System and Method for Automated Software Testing | |
US20210311858A1 (en) | System and method for providing a test manager for use with a mainframe rehosting platform | |
CN103634592A (zh) | 智能电视自动化测试方法及系统 | |
CN107135390A (zh) | 一种电视应用的自动化测试方法及系统 | |
US9336126B1 (en) | Client-side event logging for heterogeneous client environments | |
CN108399132A (zh) | 一种调度测试方法、装置及存储介质 | |
US9317398B1 (en) | Vendor and version independent browser driver | |
KR20160070410A (ko) | 스마트기기용 어플리케이션의 테스트 시스템 및 그 방법 | |
CN112882930B (zh) | 自动化测试方法、装置、存储介质及电子设备 | |
CN115658529A (zh) | 用户页面的自动化测试方法以及相关设备 | |
CN115080398A (zh) | 一种接口自动化测试系统及方法 | |
CN115422063A (zh) | 一种低代码接口自动化系统、电子设备及存储介质 | |
CN115686540A (zh) | 基于鸿蒙系统的rpa控制方法及系统 | |
US8904346B1 (en) | Method and system for automated load testing of web applications | |
CN112988165A (zh) | 基于Kubernetes的交互式建模方法、装置、电子设备及存储介质 | |
CN108833005B (zh) | 光网络通信设备及其组网业务的自动化测试工具包及方法 | |
CN112241373A (zh) | 自动化测试方法、测试装置、处理器和测试系统 | |
CN113127099B (zh) | 服务器配置方法、装置、设备及存储介质 | |
CN114925516A (zh) | 一种自动建模并仿真的方法和装置 | |
KR102481254B1 (ko) | 테스트 자동화 서비스 장치 및 방법 | |
KR102567773B1 (ko) | 전투체계 시스템에서의 로그 정보 추출장치 및 그 방법 | |
KR102481527B1 (ko) | 테스트 자동화 서비스 장치 및 방법 | |
Versickas | BLE localisation automated feature testing |
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 |