CN114691494A - 测试用例的执行方法、系统及测试设备 - Google Patents
测试用例的执行方法、系统及测试设备 Download PDFInfo
- Publication number
- CN114691494A CN114691494A CN202210189832.7A CN202210189832A CN114691494A CN 114691494 A CN114691494 A CN 114691494A CN 202210189832 A CN202210189832 A CN 202210189832A CN 114691494 A CN114691494 A CN 114691494A
- Authority
- CN
- China
- Prior art keywords
- case
- test
- execution
- container
- parallel
- 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.)
- Pending
Links
Images
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/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/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/3692—Test management for test results analysis
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)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种测试用例的执行方法、系统及测试设备,其中,所述方法包括:获取最新的各个测试用例,所述测试用例具备预先分配的用例标签;创建用于执行测试用例的各个容器,并在创建所述容器的过程中,为所述容器指定用例标签;通过创建的所述容器,按照指定的用例标签执行对应的测试用例,并记录各个测试用例的执行时长;根据各个测试用例的执行时长将所述各个测试用例划分为多个并行用例集合,并为所述并行用例集合中的测试用例重新分配用例标签;其中,所述多个并行用例集合中的测试用例被各个所述容器并行执行时,所需的时长最短。本申请提供的技术方案,能够提高测试用例的执行效率。
Description
技术领域
本发明涉及测试领域,特别涉及一种测试用例的执行方法、系统及测试设备。
背景技术
健全的自动化测试是项目成功的保障,一个经过若干年开发的应用会积累大量的自动化测试用例。为了保证这些测试用例能够稳定地运行,并且对项目团队的开发活动的有效性进行及时的反馈,往往要花费大量的硬件及人力资源。因此,对于如何提高测试用例运行效率,提高硬件资源利用率,减少硬件投入成本的研究势在必行。
目前,现有的底层自动化测试流程如下:
(1)版本包提交测试后自动触发自动化测试;
(2)master机器拉取测试用例后全量推送到各执行机器;
(3)不同执行机器分别执行指定目录下的用例;
(4)各执行机器分别出具各报告。
然而,当前的测试流程存在执行效率低下的缺点。原因在于:用例需要全量打包,并发往执行机器存放。在一台机器上用例只能串行执行,若并行执行则存在测试结果相互覆盖、测试数据相互影响的情况。
发明内容
本申请的目的在于提供一种测试用例的执行方法、系统及测试设备,能够提高测试用例的执行效率。
为实现上述目的,本申请一方面提供一种测试用例的执行方法,所述方法包括:获取最新的各个测试用例,所述测试用例具备预先分配的用例标签;创建用于执行测试用例的各个容器,并在创建所述容器的过程中,为所述容器指定用例标签;通过创建的所述容器,按照指定的用例标签执行对应的测试用例,并记录各个测试用例的执行时长;根据各个测试用例的执行时长将所述各个测试用例划分为多个并行用例集合,并为所述并行用例集合中的测试用例重新分配用例标签;其中,所述多个并行用例集合中的测试用例被各个所述容器并行执行时,所需的时长最短。
在一个实施方式中,创建用于执行测试用例的各个容器包括:
读取镜像仓库中预先存储的通用环境镜像,并基于所述通用环境镜像创建用于执行测试用例的各个容器。
在一个实施方式中,在创建用于执行测试用例的各个容器之后,所述方法还包括:
将测试用例路径、预期文件路径以及测试数据路径挂载至创建的容器中,并指定各个所述容器的输出结果路径;其中,创建的容器从所述测试用例路径下读取最新的测试用例,并且将测试用例的执行结果写入所述输出结构路径中;
所述预期文件路径下存储测试用例的标准测试结果,所述测试数据路径下存储被测试用例执行的待测试数据包。
在一个实施方式中,根据各个测试用例的执行时长将所述各个测试用例划分为多个并行用例集合包括:
识别各个所述测试用例所归属的用例套,并以用例套为单位,计算各个用例套的执行时长;
按照各个用例套的执行时长,将所述各个用例套划分至多个并行用例集合中,以使得各个并行用例集合在被容器并行执行时,所需的整体时长最短。
在一个实施方式中,所述方法还包括:
所述并行用例集合中的各个测试用例被创建的各个所述容器执行完毕之后,将各个所述容器的执行结果写入同一输出结果路径下,并将所述输出结果路径下的执行结果进行合并,以汇总成预设格式的结果文件。
在一个实施方式中,各个所述容器的执行结果中包括测试用例对应的用例名称和所述测试用例的实际测试结果;将各个所述容器的执行结果写入同一输出结果路径下包括:
将所述执行结果中的用例名称与预期文件路径下的用例名称进行比对,若所述执行结果中的用例名称存在于所述预期文件路径下,将包含所述用例名称的执行结果写入同一输出结果路径下。
在一个实施方式中,所述方法还包括:
将所述用例名称对应的实际测试结果和所述预期文件路径下的标准测试结果进行对比,若两者一致,则验证通过对应的测试用例;若两者不一致,生成表征测试结果失败的异常通知。
在一个实施方式中,所述多个并行用例集合中的测试用例被各个所述容器并行执行时,所述方法还包括:
记录测试用例在执行过程中的实时日志,并在执行完毕之后,汇总测试结果中测试成功和测试失败的数量,并对汇总的数量进行合并,以生成预设格式的结果文件。
为实现上述目的,本申请另一方面还提供一种测试用例的执行系统,所述系统包括:
测试用例获取单元,用于获取最新的各个测试用例,所述测试用例具备预先分配的用例标签;
容器创建单元,用于创建用于执行测试用例的各个容器,并在创建所述容器的过程中,为所述容器指定用例标签;
时长记录单元,用于通过创建的所述容器,按照指定的用例标签执行对应的测试用例,并记录各个测试用例的执行时长;
集合划分单元,用于根据各个测试用例的执行时长将所述各个测试用例划分为多个并行用例集合,并为所述并行用例集合中的测试用例重新分配用例标签;其中,所述多个并行用例集合中的测试用例被各个所述容器并行执行时,所需的时长最短。
为实现上述目的,本申请另一方面还提供一种测试设备,所述测试设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的测试用例的执行方法。
可见,本申请提供的技术方案,至少存在以下技术效果:
(1)测试用例仅需更新到宿主机,并通过不同的用例标签分别挂载到不同容器,减少发送时间的消耗。
(2)根据每次执行结果记录的时长,可以智能地将测试用例重新进行划分,通过并行地执行并行用例集合,可以极大地提高并发效率。同时,测试用例的执行顺序可以灵活编排,可并行可串行,提升测试灵活性。
(3)每个容器输出的执行结果可以合并为预设格式的结果文件,从而形成自定义的汇总报告。
附图说明
为了更清楚地说明本发明实施方式中的技术方案,下面将对实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施方式中测试用例的执行方法步骤示意图;
图2是本发明实施方式中测试用例的执行方法流程图;
图3是本发明实施方式中重新分配用例标签的流程示意图;
图4是本发明实施方式中测试结果的比对过程示意图;
图5是本发明实施方式中实时日志和汇总报告的生成示意图;
图6是本发明实施方式中计算机终端的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施方式及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施方式仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本申请保护的范围。
请参阅图1和图2,本申请一个实施方式提供的测试用例的执行方法,可以包括以下多个步骤。
S1:获取最新的各个测试用例,所述测试用例具备预先分配的用例标签。
在本实施方式中,测试用例可以通过robotframework管理,并且robotframework可以根据测试用例所能实现的业务,为测试用例预先分配用例标签。其中,具备同一用例标签的测试用例可以视为同一类别。
测试用例在使用过程中,会不断进行更新迭代,最终,可以对最新版本的测试用例进行可行性测试。
S2:创建用于执行测试用例的各个容器,并在创建所述容器的过程中,为所述容器指定用例标签。
在本实施方式中,可以预先创建通用环境镜像,该通用环境镜像可以是将运行自动化必要的环境打包后生成的镜像文件,该通用环境镜像可以存储于镜像仓库中。
在本实施方式中,可以通过在宿主机上创建容器的方式,由创建的容器来执行各个测试用例。具体地,可以读取镜像仓库中预先存储的通用环境镜像,并基于所述通用环境镜像创建用于执行测试用例的各个容器。这样,根据一个通用环境镜像就可以创建多个容器,不需要去重复搭建环境。此外,不同的环境可以对应不同的通用环境镜像,这样,通过在一台宿主机上以虚拟机的方式,加载多份不同的通用环境镜像,可以实现在一台宿主机上运行多个不同的测试环境。
在本实施方式中,为了对测试用例进行统一管理,在创建容器时,可以为容器指定用例标签。这样,当容器创建之后,便可以执行具备指定的用例标签的测试利用。
例如,创建容器的伪代码可以如下所示:
'sudo docker run-i--rm-u root--name ana1 image1 pybot--include tag1testcase.txt'
通过上述的伪代码,可以通过通用环境镜像image1创建名为ana1的容器,并且可以为该容器指定用例标签tag1,从而使得该容器后续可以执行具备用例标签tag1的各个测试用例。
S3:通过创建的所述容器,按照指定的用例标签执行对应的测试用例,并记录各个测试用例的执行时长。
在本实施方式中,当待测试数据包被提交后,可以触发自动测试的流程,宿主机可以拉取到最新的测试用例和待测试凹,然后可以采用管线(pipeline)脚本来实现测试用例的执行过程。
具体地,在创建了容器之后,可以将测试用例路径、预期文件路径以及测试数据路径挂载至创建的容器中,并指定各个所述容器的输出结果路径。其中,创建的容器从测试用例路径下可以读取最新的测试用例,并且将测试用例的执行结果写入输出结构路径中。预期文件路径下可以存储测试用例的标准测试结果,测试数据路径下可以存储被测试用例执行的待测试数据包。
容器在执行测试用例时,可以按照指定的用例标签,从测试用例路径下读取具备该用例标签的测试用例,并按照串行的方式执行读取到的各个测试用例。在测试用例执行过程中,可以记录各个测试用例的执行时长。
具体地,可以通过重写监听类(listener)的方式来记录测试用例的执行时长。监听类本身可以获取时间戳(timestamp)、等级(level)、信息(message)等数据,通过在监听类中增加执行时长的获取功能,可以实现对执行时长的记录。
S4:根据各个测试用例的执行时长将所述各个测试用例划分为多个并行用例集合,并为所述并行用例集合中的测试用例重新分配用例标签;其中,所述多个并行用例集合中的测试用例被各个所述容器并行执行时,所需的时长最短。
在本实施方式中,当按照预先分配的用例标签,通过创建的容器完成各个测试用例的执行,并记录了各个测试用例的执行时长后,为了优化测试时长,可以根据执行时长对测试用例重新进行组合,以使得采用并行处理的方式之后,重新组合的测试用例能够具备最短的时长。
具体地,可以识别各个测试用例所归属的用例套(suite),并以用例套为单位,计算各个用例套的执行时长。例如,当前有10个测试用例,这10个测试用例可以归属于不同的6个suite,然后可以分别统计这6个suite的执行时长。通过将suite中包含的各个测试用例的执行时长进行累加,便可以得到suite对应的执行时长。
然后,可以按照各个用例套的执行时长,将各个用例套划分至多个并行用例集合中,以使得各个并行用例集合在被容器并行执行时,所需的整体时长最短。具体地,根据当前能够并行执行测试用例的容器数量,可以预先确定出并行用例集合的数量。例如,当前共有5个容器能够并行执行测试用例,那么就可以划分得到5个并行用例集合。在每个并行用例结合中,可以包含一个或者多个suite,在划分并行用例结合时,可以将各个用例套进行排列组合,最终使得各个并行用例结合的执行时长都相近。例如,当前6个suite对应的执行时长分别为1min、5min、3min、4min以及6min,那么可以将执行时长为1min和5min的两个suite划分至同一个并行用例集合中,同时将执行时长为3min和4min的两个suite划分至同一个并行用例集合中,执行时长为6min的suite就单独作为一个并行用例集合。这样就能保证每个并行用例集合的执行时长都相近,从而减少了整体的并行处理时长。
在本实施方式中,重新划分了并行用例集合后,可以对应地修改各个测试用例的用例标签。具体地,对于同一个并行用例集合中的测试用例,可以分配相同的用例标签。同时,容器的用例标签也可以同步更改,这样,容器依然可以按照用例标签来加载对应的测试用例进行测试。
在一个实施方式中,当并行用例集合中的各个测试用例被创建的各个容器执行完毕之后,可以将各个容器的执行结果写入同一输出结果路径下。该输出结果路径可以是在容器创建时挂载到容器上的。对于不同的容器而言,可以将自身独立的执行结果写入输出结果路径下。最终,为了体现测试用例的整体测试情况,可以将输出结果路径下的各个执行结果进行合并,从而汇总成用户所需的预设格式的结果文件。
在一个实施方式中,各个容器的执行结果中可以包括测试用例对应的用例名称和测试用例的实际测试结果,在生成执行结果后,可以将执行结果中的用例名称与预期文件路径下的用例名称进行比对,若执行结果中的用例名称存在于预期文件路径下,则表明该执行结果是需要被记录的,此时可以将包含所述用例名称的执行结果写入上述的输出结果路径下。而如果执行结果中的用例名称没有存在于预期文件路径下,则可以过滤到该执行结果,不进行记录。
在一个实施方式中,可以将用例名称对应的实际测试结果和预期文件路径下的标准测试结果进行对比,若两者一致,则验证通过对应的测试用例。若两者不一致,生成表征测试结果失败的异常通知。
在一个实施方式中,可以记录测试用例在执行过程中的实时日志,并在执行完毕之后,汇总测试结果中测试成功和测试失败的数量,并对汇总的数量进行合并,以生成预设格式的结果文件。
请参阅图3,在一个具体应用场景中,本申请的技术方案可以通过以下流程来实现:
(1)首次执行时,用例通过tag挂载到指定容器执行,此时用例的分配是tag随机分配的,并没有按照时长进行划分。
(2)执行过程中,通过重写listener监听类,获取执行过程中的各个测试用例的执行时长属性,并可以累加每个suite中的用例执行时长,最终汇总获取到suite级别的时长。
(3)对每个suite的执行时长进行排序,将suite按照时长平均分配成若干并行用例集合,以保证每个并行用例集合中suite的总执行时长接近,从而实现最大的并发效率。通过本步骤,可以重新确定每组测试用例的分配。
(4)管线脚本中根据以上结果对测试用例的执行进行编排。按照pipeline的语法规则,在并行(parallel)模块中,将上个步骤得到的各个并行用例集合中的用例标签分别写入不同step中,启用独立容器并通过pybot命令不同容器并行执行。
通过以上步骤,可以实现根据最新的一次执行结果,按照最短的并发时间重新分配测试用例的串并行,达到缩短测试时长的目的。
请参阅图4,在一个具体应用场景中,测试结果的比对过程可以如下所示:
(1)根据执行的用例名称获取到待测试数据包,并将该待测试数据包分发到对应的测试数据路径下,以由容器从该路径下读取。
(2)当容器执行完测试用例后,可以扫描执行结果目录中的数据,并解析这些数据的文件名,根据正则匹配与预期文件路径下的文件名进行比对,比对一致的则发往输出结果路径下。
(3)在输出结果路径下读取每个测试用例的实际测试结果,并将实际测试结果与对应的标准测试结果进行对比,对比一致则该测试用例通过,不一致则生成表征测试失败的异常通知。
请参阅图5,在一个具体应用场景中,实时日志和最终的汇总报告的生成过程可以如下所示:
(1)pipeline中通过命令(-d命令和-o命令)指定各个容器的报告名称及结果目录,每个容器报告名称独立命名为一个xml文件,结果目录则为同一个。
(2)在此过程中,实现了两类日志的获取,一类是执行时的实时日志,一类是最终留存的结果日志(汇总报告)。实时日志可以方便用例调试过程中的代码跟进,能够帮助开发者快速定位问题,可以通过重写ride的监听类实现。ride是通过-listener来监听实时数据,通过socket方式推给UI端,UI端再更新界面,而通过获取监听数据,如获取timestamp、level、message等信息,再实时进行打印,就可以实现容器中执行时打印实时日志。
(3)最终留存的结果日志,则通过解析各结果目录下的xml文件后再重新合并实现。进入结果目录,通过pyh模块进行解析,获取文件中total、tag、suite的stat节点,分别汇总其结果为pass(测试通过)、fail(测试失败)的个数,进行重新汇总合并,生成自定义的html格式结果报告。
(4)pipeline中在postalways模块中配置class为RobotPublisher,logFileName为合并后的html报告,通过此配置方式,可以使最终报告在持续集成平台获得展示。
本申请还提供一种测试用例的执行系统,所述系统包括:
测试用例获取单元,用于获取最新的各个测试用例,所述测试用例具备预先分配的用例标签;
容器创建单元,用于创建用于执行测试用例的各个容器,并在创建所述容器的过程中,为所述容器指定用例标签;
时长记录单元,用于通过创建的所述容器,按照指定的用例标签执行对应的测试用例,并记录各个测试用例的执行时长;
集合划分单元,用于根据各个测试用例的执行时长将所述各个测试用例划分为多个并行用例集合,并为所述并行用例集合中的测试用例重新分配用例标签;其中,所述多个并行用例集合中的测试用例被各个所述容器并行执行时,所需的时长最短。
本申请还提供一种测试设备,所述测试设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的测试用例的执行方法。
本申请提供的技术方案,至少存在以下技术效果:
(1)测试用例仅需更新到宿主机,并通过不同的用例标签分别挂载到不同容器,减少发送时间的消耗。
(2)根据每次执行结果记录的时长,可以智能地将测试用例重新进行划分,通过并行地执行并行用例集合,可以极大地提高并发效率。同时,测试用例的执行顺序可以灵活编排,可并行可串行,提升测试灵活性。
(3)每个容器输出的执行结果可以合并为预设格式的结果文件,从而形成自定义的汇总报告。
请参阅图6,在本申请中,上述实施例中的技术方案可以应用于如图6所示的计算机终端10上。计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图6所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为自动化测试(如Robot Framework,RF)模块,其用于通过无线方式与互联网进行通讯。
本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,针对系统和设备的实施方式来说,均可以参照前述方法的实施方式的介绍对照解释。
本领域内的技术人员应明白,本发明的实施方式可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施方式、完全软件实施方式、或结合软件和硬件方面的实施方式的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施方式的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施方式而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种测试用例的执行方法,其特征在于,所述方法包括:
获取最新的各个测试用例,所述测试用例具备预先分配的用例标签;
创建用于执行测试用例的各个容器,并在创建所述容器的过程中,为所述容器指定用例标签;
通过创建的所述容器,按照指定的用例标签执行对应的测试用例,并记录各个测试用例的执行时长;
根据各个测试用例的执行时长将所述各个测试用例划分为多个并行用例集合,并为所述并行用例集合中的测试用例重新分配用例标签;其中,所述多个并行用例集合中的测试用例被各个所述容器并行执行时,所需的时长最短。
2.根据权利要求1所述的方法,其特征在于,创建用于执行测试用例的各个容器包括:
读取镜像仓库中预先存储的通用环境镜像,并基于所述通用环境镜像创建用于执行测试用例的各个容器。
3.根据权利要求1所述的方法,其特征在于,在创建用于执行测试用例的各个容器之后,所述方法还包括:
将测试用例路径、预期文件路径以及测试数据路径挂载至创建的容器中,并指定各个所述容器的输出结果路径;其中,创建的容器从所述测试用例路径下读取最新的测试用例,并且将测试用例的执行结果写入所述输出结构路径中;
所述预期文件路径下存储测试用例的标准测试结果,所述测试数据路径下存储被测试用例执行的待测试数据包。
4.根据权利要求1所述的方法,其特征在于,根据各个测试用例的执行时长将所述各个测试用例划分为多个并行用例集合包括:
识别各个所述测试用例所归属的用例套,并以用例套为单位,计算各个用例套的执行时长;
按照各个用例套的执行时长,将所述各个用例套划分至多个并行用例集合中,以使得各个并行用例集合在被容器并行执行时,所需的整体时长最短。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述并行用例集合中的各个测试用例被创建的各个所述容器执行完毕之后,将各个所述容器的执行结果写入同一输出结果路径下,并将所述输出结果路径下的执行结果进行合并,以汇总成预设格式的结果文件。
6.根据权利要求5所述的方法,其特征在于,各个所述容器的执行结果中包括测试用例对应的用例名称和所述测试用例的实际测试结果;将各个所述容器的执行结果写入同一输出结果路径下包括:
将所述执行结果中的用例名称与预期文件路径下的用例名称进行比对,若所述执行结果中的用例名称存在于所述预期文件路径下,将包含所述用例名称的执行结果写入同一输出结果路径下。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
将所述用例名称对应的实际测试结果和所述预期文件路径下的标准测试结果进行对比,若两者一致,则验证通过对应的测试用例;若两者不一致,生成表征测试结果失败的异常通知。
8.根据权利要求1所述的方法,其特征在于,所述多个并行用例集合中的测试用例被各个所述容器并行执行时,所述方法还包括:
记录测试用例在执行过程中的实时日志,并在执行完毕之后,汇总测试结果中测试成功和测试失败的数量,并对汇总的数量进行合并,以生成预设格式的结果文件。
9.一种测试用例的执行系统,其特征在于,所述系统包括:
测试用例获取单元,用于获取最新的各个测试用例,所述测试用例具备预先分配的用例标签;
容器创建单元,用于创建用于执行测试用例的各个容器,并在创建所述容器的过程中,为所述容器指定用例标签;
时长记录单元,用于通过创建的所述容器,按照指定的用例标签执行对应的测试用例,并记录各个测试用例的执行时长;
集合划分单元,用于根据各个测试用例的执行时长将所述各个测试用例划分为多个并行用例集合,并为所述并行用例集合中的测试用例重新分配用例标签;其中,所述多个并行用例集合中的测试用例被各个所述容器并行执行时,所需的时长最短。
10.一种测试设备,其特征在于,所述测试设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210189832.7A CN114691494A (zh) | 2022-02-28 | 2022-02-28 | 测试用例的执行方法、系统及测试设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210189832.7A CN114691494A (zh) | 2022-02-28 | 2022-02-28 | 测试用例的执行方法、系统及测试设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114691494A true CN114691494A (zh) | 2022-07-01 |
Family
ID=82137082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210189832.7A Pending CN114691494A (zh) | 2022-02-28 | 2022-02-28 | 测试用例的执行方法、系统及测试设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114691494A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110765026A (zh) * | 2019-10-31 | 2020-02-07 | 北京东软望海科技有限公司 | 自动化测试方法、装置、存储介质及设备 |
-
2022
- 2022-02-28 CN CN202210189832.7A patent/CN114691494A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110765026A (zh) * | 2019-10-31 | 2020-02-07 | 北京东软望海科技有限公司 | 自动化测试方法、装置、存储介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7840944B2 (en) | Analytical regression testing on a software build | |
CN106897206B (zh) | 一种业务测试方法及装置 | |
CN111124850A (zh) | Mqtt服务器性能测试方法、系统、计算机设备及存储介质 | |
CN108959059B (zh) | 一种测试方法以及测试平台 | |
CN108897571B (zh) | 程序打包部署方法、装置、系统、电子设备及存储介质 | |
CN107491371B (zh) | 一种监控部署的方法以及装置 | |
KR102100323B1 (ko) | 머신러닝 플랫폼 서비스 방법 및 서버 | |
US20140258984A1 (en) | Software configuration control wherein containers are associated with physical storage of software application versions in a software production landscape | |
CN108804241B (zh) | 跨平台任务调度方法、系统、计算机设备和存储介质 | |
CN113111000B (zh) | 持续集成自动化测试系统和方法、电子设备、存储介质 | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN112559475A (zh) | 数据实时捕获和传输方法及系统 | |
CN111399764A (zh) | 数据存储方法、读取方法、装置、设备及存储介质 | |
CN110780882A (zh) | 代码文件的处理方法及装置、系统、电子设备、存储介质 | |
CN112540808B (zh) | 一种程序行为层级调用关系的记录方法及相关设备 | |
CN114691494A (zh) | 测试用例的执行方法、系统及测试设备 | |
EP2196901A1 (en) | Systems and methods for tracking software stands in a software production landscape | |
CN109656825B (zh) | 美术资源处理的方法及装置、电子设备、存储介质 | |
CN110968406B (zh) | 处理任务的方法、装置、存储介质和处理器 | |
CN115185825A (zh) | 接口测试的调度方法及装置 | |
CN106708721B (zh) | 代码覆盖测试的实现方法和装置 | |
CN112783791B (zh) | 接口测试案例的生成方法及装置 | |
CN115080309A (zh) | 数据备份系统、方法、存储介质以及电子设备 | |
CN109426559B (zh) | 命令下发方法和装置、存储介质、处理器 | |
CN116016158B (zh) | 一种混合云的aPaaS平台部署方法、装置、设备和计算机存储介质 |
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 |