一种基于配置文件进行测试的方法与设备与流程

文档序号:13876225阅读:148来源:国知局
一种基于配置文件进行测试的方法与设备与流程

本申请涉及计算机领域,尤其涉及一种基于配置文件进行测试的技术。



背景技术:

通常对测试的自动化都比较单一,最简单的是针对一个测试场景添加一段新的测试代码支持,配置文件只是简单的配置不同的参数,基本上只是为了测试自动化而测试自动化。现有技术方案通常存在以下几个问题:

1)测试代码的复用级别很低,只有开发才能使用,而且一定要涉及到代码级别的调用。

2)无法只选择执行部分步骤,无法很好的支持断点续传。

3)配置文件只是单纯的配置参数,无法添加更多的功能。



技术实现要素:

本申请的一个目的是提供一种基于配置文件进行测试的方法与设备,以解决提高测试代码可复用性的问题。

根据本申请的一个方面,提供了一种基于配置文件进行测试的方法,其中,该方法包括:

解析配置文件,以获得待执行的若干个测试实例,其中,所述测试实例包括至少一个测试步骤,所述测试步骤包括至少一个基础功能单元;

按所述测试实例在所述配置文件中的顺序依次执行所述若干个测试实例。

根据本申请的另一个方面,提供了一种基于配置文件进行测试的设备,其中,该设备包括:

解析装置,用于解析配置文件,以获得待执行的若干个测试实例,其中,所述测试实例包括至少一个测试步骤,所述测试步骤包括至少一个基础功能单元;

执行装置,用于按所述测试实例在所述配置文件中的顺序依次执行所述若干个测试实例。

根据本申请的又一个方面,还提供了一种基于配置文件进行测试的设备,该设备包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:解析配置文件,以获得待执行的若干个测试实例,其中,所述测试实例包括至少一个测试步骤,所述测试步骤包括至少一个基础功能单元;按所述若干个测试实例在所述配置文件中的顺序依次执行所述测试实例。

与现有技术相比,本申请解析配置文件,以获得待执行的若干个测试实例,其中,所述测试实例包括至少一个测试步骤,所述测试步骤包括至少一个基础功能单元,然后,按所述若干个测试实例在所述配置文件中的顺序依次执行所述测试实例;本申请通过基础功能单元级别的复用,提高了测试代码的可复用性。进一步地,本申请每当执行完一个所述测试步骤,存储所述测试步骤对应的执行结果,实现更低粒度的断点继续进行。进一步地,本申请在所述测试实例中添加逻辑控制关键词,控制所述测试实例的执行逻辑,从而可以描述更复杂的测试场景。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出根据本申请的一种配置文件的结构示意图;

图2示出根据本申请一个方面的一种基于配置文件进行测试的设备示意图;

图3示出根据本申请一个优选实施例的一种基于配置文件进行测试的设备示意图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本申请作进一步详细描述。

在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

根据本申请一个方面,提供了一种基于配置文件进行测试的方法,所述方法包括步骤s11和步骤s12。

具体地,在步骤s11中,设备1解析配置文件,以获得待执行的若干个测试实例,其中,所述测试实例包括至少一个测试步骤,所述测试步骤包括至少一个基础功能单元;在步骤s12中,设备1按所述测试实例在所述配置文件中的顺序依次执行所述若干个测试实例。

在此,所述设备1包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、ios操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(asic)、可编程门阵列(fpga)、数字处理器(dsp)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(cloudcomputing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、vpn网络、无线自组织网络(adhoc网络)等。优选地,设备1还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述设备1仅为举例,其他现有的或今后可能出现的设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

在步骤s11中,设备1解析配置文件,以获得待执行的若干个测试实例,其中,参照图1,所述测试实例包括至少一个测试步骤,所述测试步骤包括至少一个基础功能单元。

例如,所述配置文件用于描述测试的执行内容和逻辑。在测试系统中,由解析器解析配置文件,并按照配置描述的逻辑执行。在一次测试中,有若干个测试实例(case)被执行。所述基础功能单元(processor)是测试中的最小功能模块,可以直接使用配置文件的方式描述,并被解析器执行。所述测试步骤(step)是所述测试实例(case)的执行步骤,可以由多个所述基础功能单元(processor)描述,即一个step被多个最小功能模块(processor)组合。

与现有技术相比,本申请通过基础功能单元(processor)级别的复用,可以直接在配置文件中使用功能模块来描述测试的场景。使得测试代码可复用性极高,同时也降低了对测试系统的使用要求。

优选地,所述测试步骤包括以下至少任一种类:当执行失败,跳过当前所述测试实例,继续执行下一个所述测试实例;准备测试环境;检查测试环境是否符合预期;执行测试;清理测试环境。

例如,所述测试步骤(step)可以有以下几种:1)valid_case_running:特殊的步骤,如果执行失败则会跳过当前的case,继续执行下一个case;2)pre_env:环境准备工作;3)check_pre:检查环境是否符合预期;4)run:执行测试;5)clean_env:清理环境。在一个所述测试实例(case)中,不是上述每种step都必须存在,但至少得有一个step。

优选地,所述基础功能单元包括执行方法及执行参数。

例如,每个所述基础功能单元(processor)的描述包含两个部分:执行方法和执行参数。假设有一个所述基础功能单元(processor)为:“testrunarg1=arg11111arg2=arg2222xx_key=xxx_val”;其中,“testrun”表示在./processor/test文件中存在一个ctest类,里面有一个run(执行)方法,该方法只有一个map(映射)参数;“arg1=arg11111arg2=arg2222xx_key=xxx_val”会组合成一个map(映射):{‘arg1:’arg11111’arg2:’arg2222’xx_key:’xxx_val’},该map(映射)会作为前述run(执行)的方法;在本例中,所述执行方法即run方法,所述执行参数即map参数。

优选地,所述测试实例还包括逻辑控制关键词。

例如,可以在测试实例(case)中添加exception关键词来设置该测试实例(case)的执行控制逻辑。

更优选地,所述逻辑控制关键词包括以下至少任一种:忽略当前执行失败,继续执行;执行下一个所述测试步骤;转到清理测试环境的所述测试步骤;停止执行,退出测试。

例如,接上例,exception关键词可以有以下几种:1)continue:(默认值)忽略当前失败,继续执行;2)break:执行下一个测试步骤;3)clean:转到clean_env;4)exit:停止所有的测试,退出测试。

在步骤s12中,设备1按所述测试实例在所述配置文件中的顺序依次执行所述若干个测试实例。

例如,假设所述配置文件的格式如下:

[case_prepare_env]

pre_env=envprepare

exception=exit

[cluster_info]

valid_case_running=testisrun

run=clusterinfo|clusterbuild

[case_test_run]

#run-step

pre_env=testpreenvaa=111bb=11|testexecutexx=aayy=2

check_pre=testcheckpreparam1=aaa

run=testrunarg1=arg11111arg2=arg2222xx_key=xxx_val

clean_env=testcleanenvxx=xxx

exception=break

其中,包括三个测试实例,即“case_prepare_env”、“cluster_info”和“case_test_run”。按所述测试实例在所述配置文件中的顺序,从上往下依次执行“case_prepare_env”、“cluster_info”、“case_test_run”。

优选地,在步骤s12中,设备1当所述测试实例包括多个测试步骤时,按照每个测试步骤的执行顺序依次执行所述测试实例中的所述多个测试步骤。

例如,一个测试实例(case)若包括多个测试步骤(step),需按照特定的顺序依次执行各测试步骤(step)。

更优选地,每个测试步骤的执行顺序按以下类型由先至后:当执行失败,跳过当前所述测试实例,继续执行下一个所述测试实例;准备测试环境;检查测试环境是否符合预期;执行测试;清理测试环境。

例如,假设valid_case_running表示:当执行失败,跳过当前所述测试实例,继续执行下一个所述测试实例;pre_env表示:准备测试环境;check_pre表示:检查测试环境是否符合预期;run表示:执行测试;clean_env表示:清理测试环境。在每个测试实例(case)中,需要按照valid_case_running、pre_env、check_pre、run、clean_env的特定顺序依次执行。若一个测试实例(case)中同时包括valid_case_running、pre_env、check_pre、run、clean_env五种测试步骤(step),则在该测试实例(case)中按照valid_case_running、pre_env、check_pre、run、clean_env的顺序依次执行各测试步骤(step);若一个测试实例(case)中包括valid_case_running、run、clean_env三种测试步骤(step),则在该测试实例(case)中按照valid_case_running、run、clean_env的顺序依次执行各测试步骤(step);若一个测试实例(case)中仅包括一个测试步骤(step):run,则在该测试实例(case)中仅执行run。

优选地,在步骤s12中,设备1当所述测试步骤包括多个基础功能单元时,参照图1,按照每个基础功能单元在所述测试步骤中顺序依次执行所述测试步骤中的所述多个基础功能单元。

例如,一个测试步骤(step)若包括多个基础功能单元(processor),其中的多个基础功能单元(processor)可以由“|”相连接,并按照从左至右的顺序依次执行,在此,“|”符号表示processor之间的间隔。

当然,本领域技术人员应能理解上述表示间隔的符号及执行顺序仅为举例,也可以用其他符号表示processor之间的间隔,而且也可以按照从右至左的顺序依次执行。

优选地,在步骤s12中,设备1根据所述测试实例中的逻辑控制关键词执行所述测试实例。

例如,可以灵活地使用exception=break、clean、exit来控制当某个测试实例(case)执行失败后是否还要继续。这样可以自由的组合特殊功能的测试场景。

优选地,在步骤s12中,设备1每当执行完一个所述测试步骤,存储所述测试步骤对应的执行结果。

例如,在每个测试步骤(step)执行结束后,都会将该测试步骤(step)对应的执行结果存储至数据中心,并持久化(例如混存到磁盘中),以便于做到测试步骤(step)级别的断点继续执行。

优选地,所述方法还包括步骤s13’;在步骤s13’中,设备1当所述测试实例中止后恢复执行时,从所述测试实例中被中止的测试步骤重新开始执行。

例如,接上例,因为在每个测试步骤(step)执行结束后,都会将该测试步骤(step)对应的执行结果存储至数据中心,当所述测试实例中止后恢复执行时,可以从数据中心加载对应的执行结果,然后继续执行。而且,还可以通过灵活地使用valid_case_running来配置是否要跳过某个测试实施(case)的执行。

图2示出根据本申请一个方面的一种基于配置文件进行测试的设备1,其中,设备1包括解析装置11和执行装置12。

具体地,所述解析装置11解析配置文件,以获得待执行的若干个测试实例,其中,所述测试实例包括至少一个测试步骤,所述测试步骤包括至少一个基础功能单元;所述执行装置12按所述测试实例在所述配置文件中的顺序依次执行所述若干个测试实例。

在此,所述设备1包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、ios操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(asic)、可编程门阵列(fpga)、数字处理器(dsp)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(cloudcomputing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、vpn网络、无线自组织网络(adhoc网络)等。优选地,设备1还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述设备1仅为举例,其他现有的或今后可能出现的设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

所述解析装置11解析配置文件,以获得待执行的若干个测试实例,其中,所述测试实例包括至少一个测试步骤,所述测试步骤包括至少一个基础功能单元。

例如,所述配置文件用于描述测试的执行内容和逻辑。在测试系统中,由解析器解析配置文件,并按照配置描述的逻辑执行。在一次测试中,有若干个测试实例(case)被执行。所述基础功能单元(processor)是测试中的最小功能模块,可以直接使用配置文件的方式描述,并被解析器执行。所述测试步骤(step)是所述测试实例(case)的执行步骤,可以由多个所述基础功能单元(processor)描述,即一个step被多个最小功能模块(processor)组合。

与现有技术相比,本申请通过基础功能单元(processor)级别的复用,可以直接在配置文件中使用功能模块来描述测试的场景。使得测试代码可复用性极高,同时也降低了对测试系统的使用要求。

优选地,所述测试步骤包括以下至少任一种类:当执行失败,跳过当前所述测试实例,继续执行下一个所述测试实例;准备测试环境;检查测试环境是否符合预期;执行测试;清理测试环境。

例如,所述测试步骤(step)可以有以下几种:1)valid_case_running:特殊的步骤,如果执行失败则会跳过当前的case,继续执行下一个case;2)pre_env:环境准备工作;3)check_pre:检查环境是否符合预期;4)run:执行测试;5)clean_env:清理环境。在一个所述测试实例(case)中,不是上述每种step都必须存在,但至少得有一个step。

优选地,所述基础功能单元包括执行方法及执行参数。

例如,每个所述基础功能单元(processor)的描述包含两个部分:执行方法和执行参数。假设有一个所述基础功能单元(processor)为:“testrunarg1=arg11111arg2=arg2222xx_key=xxx_val”;其中,“testrun”表示在./processor/test文件中存在一个ctest类,里面有一个run(执行)方法,该方法只有一个map(映射)参数;“arg1=arg11111arg2=arg2222xx_key=xxx_val”会组合成一个map(映射):{‘arg1:’arg11111’arg2:’arg2222’xx_key:’xxx_val’},该map(映射)会作为前述run(执行)的方法;在本例中,所述执行方法即run方法,所述执行参数即map参数。

优选地,所述测试实例还包括逻辑控制关键词。

例如,可以在测试实例(case)中添加exception关键词来设置该测试实例(case)的执行控制逻辑。

更优选地,所述逻辑控制关键词包括以下至少任一种:忽略当前执行失败,继续执行;执行下一个所述测试步骤;转到清理测试环境的所述测试步骤;停止执行,退出测试。

例如,接上例,exception关键词可以有以下几种:1)continue:(默认值)忽略当前失败,继续执行;2)break:执行下一个测试步骤;3)clean:转到clean_env;4)exit:停止所有的测试,退出测试。

所述执行装置12按所述测试实例在所述配置文件中的顺序依次执行所述若干个测试实例。

例如,假设所述配置文件的格式如下:

[case_prepare_env]

pre_env=envprepare

exception=exit

[cluster_info]

valid_case_running=testisrun

run=clusterinfo|clusterbuild

[case_test_run]

#run-step

pre_env=testpreenvaa=111bb=11|testexecutexx=aayy=2

check_pre=testcheckpreparam1=aaa

run=testrunarg1=arg11111arg2=arg2222xx_key=xxx_val

clean_env=testcleanenvxx=xxx

exception=break

其中,包括三个测试实例,即“case_prepare_env”、“cluster_info”和“case_test_run”。按所述测试实例在所述配置文件中的顺序,从上往下依次执行“case_prepare_env”、“cluster_info”、“case_test_run”。

优选地,所述执行装置12当所述测试实例包括多个测试步骤时,按照每个测试步骤的执行顺序依次执行所述测试实例中的所述多个测试步骤。

例如,一个测试实例(case)若包括多个测试步骤(step),需按照特定的顺序依次执行各测试步骤(step)。

更优选地,每个测试步骤的执行顺序按以下类型由先至后:当执行失败,跳过当前所述测试实例,继续执行下一个所述测试实例;准备测试环境;检查测试环境是否符合预期;执行测试;清理测试环境。

例如,假设valid_case_running表示:当执行失败,跳过当前所述测试实例,继续执行下一个所述测试实例;pre_env表示:准备测试环境;check_pre表示:检查测试环境是否符合预期;run表示:执行测试;clean_env表示:清理测试环境。在每个测试实例(case)中,需要按照valid_case_running、pre_env、check_pre、run、clean_env的特定顺序依次执行。若一个测试实例(case)中同时包括valid_case_running、pre_env、check_pre、run、clean_env五种测试步骤(step),则在该测试实例(case)中按照valid_case_running、pre_env、check_pre、run、clean_env的顺序依次执行各测试步骤(step);若一个测试实例(case)中包括valid_case_running、run、clean_env三种测试步骤(step),则在该测试实例(case)中按照valid_case_running、run、clean_env的顺序依次执行各测试步骤(step);若一个测试实例(case)中仅包括一个测试步骤(step):run,则在该测试实例(case)中仅执行run。

优选地,所述执行装置12当所述测试步骤包括多个基础功能单元时,按照每个基础功能单元在所述测试步骤中顺序依次执行所述测试步骤中的所述多个基础功能单元。

例如,一个测试步骤(step)若包括多个基础功能单元(processor),其中的多个基础功能单元(processor)可以由“|”相连接,并按照从左至右的顺序依次执行,在此,“|”符号表示processor之间的间隔。

当然,本领域技术人员应能理解上述表示间隔的符号及执行顺序仅为举例,也可以用其他符号表示processor之间的间隔,而且也可以按照从右至左的顺序依次执行。

优选地,所述执行装置12根据所述测试实例中的逻辑控制关键词执行所述测试实例。

例如,可以灵活地使用exception=break、clean、exit来控制当某个测试实例(case)执行失败后是否还要继续。这样可以自由的组合特殊功能的测试场景。

优选地,所述执行装置12每当执行完一个所述测试步骤,存储所述测试步骤对应的执行结果。

例如,在每个测试步骤(step)执行结束后,都会将该测试步骤(step)对应的执行结果存储至数据中心,并持久化(例如混存到磁盘中),以便于做到测试步骤(step)级别的断点继续执行。

优选地,所述设备1还包括中止恢复装置13’(如图3所示);所述中止恢复装置13’当所述测试实例中止后恢复执行时,从所述测试实例中被中止的测试步骤重新开始执行。

例如,接上例,因为在每个测试步骤(step)执行结束后,都会将该测试步骤(step)对应的执行结果存储至数据中心,当所述测试实例中止后恢复执行时,可以从数据中心加载对应的执行结果,然后继续执行。而且,还可以通过灵活地使用valid_case_running来配置是否要跳过某个测试实施(case)的执行。

根据本申请的又一个方面,还提供了一种基于配置文件进行测试的设备,该设备包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:解析配置文件,以获得待执行的若干个测试实例,其中,所述测试实例包括至少一个测试步骤,所述测试步骤包括至少一个基础功能单元;按所述若干个测试实例在所述配置文件中的顺序依次执行所述测试实例。

与现有技术相比,本申请解析配置文件,以获得待执行的若干个测试实例,其中,所述测试实例包括至少一个测试步骤,所述测试步骤包括至少一个基础功能单元,然后,按所述若干个测试实例在所述配置文件中的顺序依次执行所述测试实例;本申请通过基础功能单元级别的复用,提高了测试代码的可复用性。进一步地,本申请每当执行完一个所述测试步骤,存储所述测试步骤对应的执行结果,实现更低粒度的断点继续进行。进一步地,本申请在所述测试实例中添加逻辑控制关键词,控制所述测试实例的执行逻辑,从而可以描述更复杂的测试场景。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

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