CN109871308B - 自动化测试方法及装置、终端设备及计算机可读存储介质 - Google Patents
自动化测试方法及装置、终端设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109871308B CN109871308B CN201711258658.2A CN201711258658A CN109871308B CN 109871308 B CN109871308 B CN 109871308B CN 201711258658 A CN201711258658 A CN 201711258658A CN 109871308 B CN109871308 B CN 109871308B
- Authority
- CN
- China
- Prior art keywords
- type
- executed
- test
- test cases
- execution
- 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
- 238000010998 test method Methods 0.000 title claims abstract description 12
- 238000012360 testing method Methods 0.000 claims abstract description 557
- 238000000034 method Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 8
- 230000000694 effects Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 5
- 230000007613 environmental effect Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种自动化测试方法,通过终端设备获取待执行测试用例,并根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例;然后将第一类测试用例平均分配至多个执行器并行执行,并在第一类测试用例均执行完成后,将第二类测试用例分配至同一执行器串行执行,这样能够最大限度的并行执行测试用例,节省测试用例的执行时间,从而达到提高自动化测试的执行效率的目的。本发明还提供一种自动化测试装置、终端设备及计算机可读存储介质。
Description
技术领域
本发明涉及自动化测试领域,尤其涉及一种自动化测试方法及装置、终端设备及计算机可读存储介质。
背景技术
随着持续集成的推广,自动化测试的应用越来越普遍,对自动化测试的要求也越来越高,很多情况下不仅要求测试实现自动化,还要求能快速迭代,快速反馈测试结果,这就需要并行自动化测试方法。然而,现有技术的并行自动化测试通常都是简单将用例平均拆分,或者按资源占用拆分,但由于有些测试用例需求的环境配置不同,没办法直接并行执行所有测试用例。
发明内容
本发明的主要目的在于提供一种自动化测试方法及装置、终端设备及计算机可读存储介质,旨在提高自动化测试的执行效率。
为实现上述目的,本发明提供一种自动化测试方法,包括:
获取待执行测试用例,并根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例;
将所述第一类测试用例平均分配至多个执行器并行执行,并在所述第一类测试用例均执行完成后,将所述第二类测试用例分配至同一执行器串行执行。
进一步地,本发明还提供一种自动化测试装置,包括:
分类模块,用于获取待执行测试用例,并根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例;
执行模块,用于将所述第一类测试用例平均分配至多个执行器并行执行,并在所述第一类测试用例均执行完成后,将所述第二类测试用例分配至同一执行器串行执行。
进一步地,本发明还提供一种终端设备,包括:
存储有自动化测试程序的存储器;
处理器,与所述存储器通信且配置为执行所述自动化测试程序以实现以下步骤:
获取待执行测试用例,并根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例;
将所述第一类测试用例平均分配至多个执行器并行执行,并在所述第一类测试用例均执行完成后,将所述第二类测试用例分配至同一执行器串行执行。
进一步地,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有自动化测试程序,所述自动化测试程序被处理器执行时实现以下步骤:
获取待执行测试用例,并根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例;
将所述第一类测试用例平均分配至多个执行器并行执行,并在所述第一类测试用例均执行完成后,将所述第二类测试用例分配至同一执行器串行执行。
本发明方案通过终端设备获取待执行测试用例,并根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例;然后将第一类测试用例平均分配至多个执行器并行执行,并在第一类测试用例均执行完成后,将第二类测试用例分配至同一执行器串行执行,这样能够最大限度的并行执行测试用例,节省测试用例的执行时间,从而达到提高自动化测试的执行效率的目的。
附图说明
图1为本发明终端设备一个可选的硬件结构示意图;
图2为本发明自动化测试方法第一实施例的流程示意图;
图3为本发明自动化测试方法第一实施例中自动化测试系统的分布式架构示意图;
图4为本发明自动化测试方法第一实施例中自动化标签执行示意图;
图5为本发明自动化测试装置一实施例的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:通过终端设备获取待执行测试用例,并根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例;然后将第一类测试用例平均分配至多个执行器并行执行,并在第一类测试用例均执行完成后,将第二类测试用例分配至同一执行器串行执行,这样能够最大限度的并行执行测试用例,节省测试用例的执行时间,从而达到提高自动化测试的执行效率的目的。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端设备的结构示意图。
如图1所示,该终端设备可以包括:处理器1001,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口等。网络接口1004可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端设备的结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,在本发明终端设备的一实施例中,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及自动化测试程序。
在图1所示的终端设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的自动化测试程序,并执行以下操作:
获取待执行测试用例,并根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例;
将第一类测试用例平均分配至多个执行器并行执行,并在第一类测试用例均执行完成后,将第二类测试用例分配至同一执行器串行执行。
进一步地,在对各待执行测试用例进行分类还得到内部需要串行执行且外部可以并行执行的第三类测试用例时,处理器1001可以用于调用存储器1005中存储的自动化测试程序,还执行以下操作:
将第三类测试用例分配至同一执行器串行执行,同时将第一类测试用例平均分配至执行第三类测试用例的执行器之外的各其它执行器并行执行;
在第一类测试用例和第三类测试用例均执行完成后,将第二类测试用例分配至同一执行器串行执行。
进一步地,第一类测试用例包括多个子类测试用例,其中各子类测试用例所需的环境配置不同,处理器1001可以用于调用存储器1005中存储的自动化测试程序,还执行以下操作:
选中一子类测试用例,并将选中的子类测试用例平均分配至多个执行器并行执行;
在选中的子类测试用例执行完成后,继续选中一子类测试用例,直至各子类测试用例均执行完成。
进一步地,处理器1001可以用于调用存储器1005中存储的自动化测试程序,还执行以下操作:
确定第一类测试用例中各待执行测试用例的执行时长,并根据确定的各待执行测试用例的执行时长将第一类测试用例中的各待执行测试用例平均分配至多个执行器并行执行,其中,各执行器执行完成分配的待执行测试用例所消耗的总执行时长相同。
进一步地,处理器1001可以用于调用存储器1005中存储的自动化测试程序,还执行以下操作:
获取第一类测试用例中各待执行测试用例上一次被执行时的执行时长;
在获取成功时,分别将获取到的各待执行测试用例上一次被执行时的执行时长,确定为对应的各待执行测试用例的执行时长;
在获取失败时,将默认执行时长确定为第一类测试用例中各待执行测试用例的执行时长。
进一步地,处理器1001可以用于调用存储器1005中存储的自动化测试程序,还执行以下操作:
获取执行器在执行完成各类测试用例后的测试结果,并根据获取到的各测试结果生成测试报告。
进一步地,本发明还提供一种自动化测试方法,应用于图1所示的终端设备,参照图2,在本发明自动化测试方法的第一实施例中,该自动化测试方法包括:
步骤S10,获取待执行测试用例,并根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例;
步骤S20,将第一类测试用例平均分配至多个执行器并行执行,并在第一类测试用例均执行完成后,将第二类测试用例分配至同一执行器串行执行。
请参照图3,以本发明方案所涉及的持续化集成工具为Jenkins(一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能)为例,终端设备作为Master节点,监控整个测试流程,用于执行器的资源回收,用例分发等。终端设备下辖多个执行器,这些执行器创建于Slave节点上,安装有RobotFramework框架,用于实际执行测试用例,即将测试用例之中的执行指令发送至被测设备,并从被测设备接收测试执行信息。以下对本发明方案进行具体说明。
在本实施例中,Jenkins触发测试用例的SVN更新,终端设备接收SVN服务器更新的最新测试用例,将这些测试用例作为待执行测试用例。
在获取到待执行测试用例之后,终端设备首先控制备份清理各执行器的测试环境,保证执行器的可用性,并完成对被测设备的环境初始化工作。
同时,终端设备根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例。也即是说,第一类测试用例中各待执行测试用例可以分别被多个执行器同时执行,互不影响,第二类测试用例中各待执行测试用例只能按照特定顺序,逐个执行。在具体执行时,可以为待执行测试用例添加标签以表征其所属的测试用例类别,例如,本实施例中采用标签tag_P表征待执行测试用例为第一类测试用例,既可以与同属于第一类测试用例的其它待执行测试用例并行执行;采用标签TagS表征待执行测试用例为第二类测试用例,即必需与同属于第二类测试用例的其它待执行测试用例串行执行。
在完成对待执行测试用例的类型划分之后,终端设备进行待执行测试用例的分配。具体的,终端设备首先进行第一类测试用例的平均分配,即将第一类测试用例中的各待执行测试用例平均分配到多个执行器,由各执行器分别执行分配的待执行测试用例。终端设备根据第一类测试用例的分配信息生成多个argfile.txt文件,分别描述各执行器需要执行的第一类测试用例中的哪几个或哪一个待执行测试用例;然后根据分配情况将argfile.txt文件以及对应的待执行测试用例分别发送至各执行器。
另一方面,对于执行器而言,执行器在接收到来自终端设备的argfile.txt文件及待执行测试用例之后,即可根据终端设备的执行指令,通过RobotFramework调用执行接收的待执行测试用例,即终端设备分配的待执行测试用例。
在第一类测试用例均执行完成后,由于第二类测试用例为需要串行执行的待执行测试用例,终端设备将第二类测试用例中的各待执行测试用例分配至同一执行器执行,其中,对于执行第二测试用例的执行器的选择,本发明实施例不做具体限制,可由本领域技术人员根据实际需要任意选择。例如,终端设备下辖10个执行器,则终端设备首先将第一类测试用例平均分配至10个执行器分别执行,在第一类测试用例全部执行完成后,再将第二类测试用例分配至同一执行器串行执行,即由该执行器根据实际需要(如某一待执行测试用例的执行需要另一待执行测试用例的执行结果,则需要先执行完成“另一待执行测试用例”后,再执行“某一待执行测试用例”)逐个执行第二类测试用例中的各待执行测试用例。
需要说明的是,在本实施例中,在分配第一类测试用例时,终端设备将梳理待执行测试用例执行所依赖的可能变化的配置,进一步根据待执行测试用例是否能在相同的环境配置下并行执行这个条件,将第一类测试用例进一步划分为多个子类测试用例,其中各子类测试用例所需的环境配置不同。在具体实施时,可以使用TagPi表征各子类测试用例。相应的,前述将第一类测试用例平均分配至多个执行器并行执行包括:
选中一子类测试用例,并将选中的子类测试用例平均分配至多个执行器并行执行;
在选中的子类测试用例执行完成后,继续选中一子类测试用例,直至各子类测试用例均执行完成。
请参照图4,终端设备在分配执行测试用例时,首先将标签TagP1下的所有待执行测试用例平均分配至多个执行器并行执行,在标签TagP1下的所有待执行测试用例全部执行完成后,再依次将标签TagP2、TagP3……TagPi的下的所有待执行测试用例平均分配至多个执行器并行执行,最后将TagS下的所有待执行测试用例(即第二类测试用例)分配至一台执行器上串行执行。
本发明实施例提出的自动化测试方法,通过终端设备获取待执行测试用例,并根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例;然后将第一类测试用例平均分配至多个执行器并行执行,并在第一类测试用例均执行完成后,将第二类测试用例分配至同一执行器串行执行,这样能够最大限度的并行执行测试用例,节省测试用例的执行时间,从而达到提高自动化测试的执行效率的目的。
进一步地,基于第一实施例,提出本发明自动化测试方法的第二实施例,在本实施例中,在对各待执行测试用例进行分类还得到内部需要串行执行且外部可以并行执行的第三类测试用例时,步骤S20包括:
将第三类测试用例分配至同一执行器串行执行,同时将第一类测试用例平均分配至执行第三类测试用例的执行器之外的各其它执行器并行执行;
在第一类测试用例和第三类测试用例均执行完成后,将第二类测试用例分配至同一执行器串行执行。
在本发明实施例中,对于待执行测试用例执行所依赖的可能变化的配置不止一个类别的情况,在前述第一实施例的分类基础上,针对TagPi并行执行的子类测试用例,分析其他配置是否会影响其并行测试,如果不影响的话则不做处理,如果影响其测试的话,则分析这部分待执行测试用例是否需要完全单独串行执行,即和其它待执行测试用例完全互斥,还是仅这部分待执行测试用例内部需要串行,但是可以和其它待执行测试用例并行,也即是该部分待执行测试用例内部互斥。在本实施例中,将这类内部需要串行执行但外部可以并行执行的待执行测试用例定义为第三类测试用例。有鉴于此,可将第三类测试用例分配至同一台执行器串行执行,同时将第二类测试用例平均分配至执行第三类测试用例的执行器之外的各其它执行器并行执行,然后在第一类测试用例和第三类测试用例均执行完成后,将第二类测试用例分配至同一执行器串行执行。
进一步地,基于第一实施例,提出本发明自动化测试方法的第三实施例,在本实施例中,前述将第一类测试用例平均分配至多个执行器并行执行的步骤包括:
确定第一类测试用例中各待执行测试用例的执行时长,并根据确定的各待执行测试用例的执行时长将第一类测试用例中的各待执行测试用例平均分配至多个执行器并行执行,其中,各执行器执行完成分配的待执行测试用例所消耗的总执行时长相同。
本实施例为进一步提升自动化测试的执行效率,在分配第一类测试用例到多个执行器执行时,根据第一类测试用例中各待执行测试用例的执行时长进行平均分配。具体的,终端设备首先确定第一类测试用例中各待执行测试用例的执行时长,并根据确定的各待执行测试用例的执行时长将第一类测试用例中的各待执行测试用例平均分配至多个执行器并行执行,确保各执行器执行完成分配的待执行测试用例所消耗的总执行时长相同。
进一步地,在本实施例中,前述确定第一类测试用例中各待执行测试用例的执行时长的步骤包括:
获取第一类测试用例中各待执行测试用例上一次被执行时的执行时长;
在获取成功时,分别将获取到的各待执行测试用例上一次被执行时的执行时长,确定为对应的各待执行测试用例的执行时长;
在获取失败时,将默认执行时长确定为第一类测试用例中各待执行测试用例的执行时长。
具体的,在本实施例中,终端设备在确定第一类测试用例中各待执行测试用例的执行时长时,获取第一类测试用例中各待执行测试用例上一次被执行时的执行时长,在获取成功时,则分别将获取到的各待执行测试用例上一次被执行时的执行时长,确定为对应的各待执行测试用例的执行时长;在获取失败时(如待执行测试用例首次执行时,将不存在上一次被执行时的执行时长,导致获取失败),将默认执行时长确定为第一类测试用例中各待执行测试用例的执行时长。其中,对于默认执行时长的具体设置,本发明不做限制,可由本领域技术人员根据实际需要进行设置,例如本实施例将默认执行时长设置为10秒。
此外,对于第一类测试用例包括多个子类测试用例的情况,终端设备在分配执行各子类测试用例时,对于选中的子类测试用例,确定该选中的子类测试用例中各待执行测试用例的执行时长,并根据确定的各待执行测试用例的执行时长将该子类测试用例中的各待执行测试用例平均分配至多个执行器并行执行,其中,各执行器执行完成分配的待执行测试用例所消耗的总执行时长相同。在执行完成选中的子类测试用例之后,继续选中一子类测试用例执行,直至各子类测试用例均执行完成。
进一步地,基于前述任一实施例,提出本发明自动化测试方法的第四实施例,在本实施例中,还包括以下步骤:
获取执行器在执行完成各类测试用例后的测试结果,并根据各所述测试结果生成测试报告。
在本实施例中,执行器在执行完终端设备分配的各类待执行测试用例之后,生成携带测试结果的日志文件,并向终端设备上报,其中,对于日志文件的文件格式,本发明不做具体限制,可由本领域技术人员根据实际需要进行选取,例如,本实施例采用XML格式的日志文件。
另一方面,终端设备在各类待执行测试用例均执行完成,且接收到各执行器的上报的日志文件后,从各日志文件中提取出各执行器在执行完成各类测试用例后的测试结果,并根据各测试结果合成测试报告。
进一步地,在合成得到测试报告之后,终端设备还可以将测试报告展现到Jenkins上,供测试人员查看。
进一步地,本发明还提供一种自动化测试装置,应用于图1所示的终端设备,也即前述终端设备基于自动化测试装置实现功能,在本发明自动化测试装置的第一实施例中,请参照图5,该自动化测试装置包括:
分类模块10,用于获取待执行测试用例,并根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例;
执行模块20,用于将第一类测试用例平均分配至多个执行器并行执行,并在第一类测试用例均执行完成后,将第二类测试用例分配至同一执行器串行执行。
可选地,在对各待执行测试用例进行分类还得到内部需要串行执行且外部可以并行执行的第三类测试用例时,执行模块20还用于将第三类测试用例分配至同一执行器串行执行,同时将第一类测试用例平均分配至执行第三类测试用例的执行器之外的各其它执行器并行执行;还用于在第一类测试用例和第三类测试用例均执行完成后,将第二类测试用例分配至同一执行器串行执行。
可选地,第一类测试用例包括多个子类测试用例,其中各子类测试用例所需的环境配置不同,执行模块20还用于选中一子类测试用例,并将选中的子类测试用例平均分配至多个执行器并行执行;还用于在选中的子类测试用例执行完成后,继续选中一子类测试用例,直至各子类测试用例均执行完成。
可选地,执行模块20还用于确定第一类测试用例中各待执行测试用例的执行时长,并根据确定的各待执行测试用例的执行时长将第一类测试用例中的各待执行测试用例平均分配至多个执行器并行执行,其中,各执行器执行完成分配的待执行测试用例所消耗的总执行时长相同。
可选地,执行模块20还用于获取第一类测试用例中各待执行测试用例上一次被执行时的执行时长;还用于在获取成功时,分别将获取到的各待执行测试用例上一次被执行时的执行时长,确定为对应的各待执行测试用例的执行时长;还用于在获取失败时,将默认执行时长确定为第一类测试用例中各待执行测试用例的执行时长。
可选地,自动化测试装置还包括报告生成模块(图5未示出),用于获取执行器在执行完成各类测试用例后的测试结果,并根据获取到的各测试结果生成测试报告。
进一步地,本发明还提供一种计算机可读存储介质,在一实施例中,该计算机可读存储介质上存储有自动化测试程序,该自动化测试程序被处理器1001执行时实现如下操作:
获取待执行测试用例,并根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例;
将第一类测试用例平均分配至多个执行器并行执行,并在第一类测试用例均执行完成后,将第二类测试用例分配至同一执行器串行执行。
进一步地,在对各待执行测试用例进行分类还得到内部需要串行执行且外部可以并行执行的第三类测试用例时,前述自动化测试程序被处理器1001执行时,还实现如下操作:
将第三类测试用例分配至同一执行器串行执行,同时将第一类测试用例平均分配至执行第三类测试用例的执行器之外的各其它执行器并行执行;
在第一类测试用例和第三类测试用例均执行完成后,将第二类测试用例分配至同一执行器串行执行。
进一步地,第一类测试用例包括多个子类测试用例,其中各子类测试用例所需的环境配置不同,前述自动化测试程序被处理器1001执行时,还实现如下操作:
选中一子类测试用例,并将选中的子类测试用例平均分配至多个执行器并行执行;
在选中的子类测试用例执行完成后,继续选中一子类测试用例,直至各子类测试用例均执行完成。
进一步地,前述自动化测试程序被处理器1001执行时,还实现如下操作:
确定第一类测试用例中各待执行测试用例的执行时长,并根据确定的各待执行测试用例的执行时长将第一类测试用例中的各待执行测试用例平均分配至多个执行器并行执行,其中,各执行器执行完成分配的待执行测试用例所消耗的总执行时长相同。
进一步地,前述自动化测试程序被处理器1001执行时,还实现如下操作:
获取第一类测试用例中各待执行测试用例上一次被执行时的执行时长;
在获取成功时,分别将获取到的各待执行测试用例上一次被执行时的执行时长,确定为对应的各待执行测试用例的执行时长;
在获取失败时,将默认执行时长确定为第一类测试用例中各待执行测试用例的执行时长。
进一步地,前述自动化测试程序被处理器1001执行时,还实现如下操作:
获取执行器在执行完成各类测试用例后的测试结果,并根据获取到的各测试结果生成测试报告。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本发明对应实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (6)
1.一种自动化测试方法,其特征在于,包括以下步骤:
获取待执行测试用例,并根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例,所述第一类测试用例包括多个子类测试用例,其中各子类测试用例所需的环境配置不同;
将所述第一类测试用例平均分配至多个执行器并行执行,并在所述第一类测试用例均执行完成后,将所述第二类测试用例分配至同一执行器串行执行;
在对各待执行测试用例进行分类还得到内部需要串行执行且外部可以并行执行的第三类测试用例时,所述将所述第一类测试用例平均分配至多个执行器并行执行,并在所述第一类测试用例均执行完成后,将所述第二类测试用例分配至同一执行器串行执行的步骤包括:
将所述第三类测试用例分配至同一执行器串行执行,同时将所述第一类测试用例平均分配至执行第三类测试用例的执行器之外的各其它执行器并行执行;
在所述第一类测试用例和所述第三类测试用例均执行完成后,将所述第二类测试用例分配至同一执行器串行执行;
所述将所述第一类测试用例平均分配至多个执行器并行执行包括:
确定所述第一类测试用例中各待执行测试用例的执行时长,并根据确定的各所述执行时长将所述第一类测试用例平均分配至多个执行器并行执行,其中,各所述执行器执行完成分配的待执行测试用例所消耗的总执行时长相同;
所述确定所述第一类测试用例中各待执行测试用例的执行时长包括:
获取所述第一类测试用例中各待执行测试用例上一次被执行时的执行时长;
在获取成功时,分别将获取到的各所述执行时长确定为所述第一类测试用例中对应的各所述待执行测试用例的执行时长;
在获取失败时,将默认执行时长确定为所述第一类测试用例中各所述待执行测试用例的执行时长。
2.根据权利要求1所述的自动化测试方法,其特征在于,所述将所述第一类测试用例平均分配至多个执行器并行执行的步骤包括:
选中一子类测试用例,并将选中的子类测试用例平均分配至多个执行器并行执行;
在选中的子类测试用例执行完成后,继续选中一子类测试用例,直至各子类测试用例均执行完成。
3.根据权利要求1-2任一项所述的自动化测试方法,其特征在于,还包括以下步骤:
获取执行器在执行完成各类测试用例后的测试结果,并根据各所述测试结果生成测试报告。
4.一种自动化测试装置,应用于终端设备,其特征在于,包括:
分类模块,用于获取待执行测试用例,并根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例,其中,所述第一类测试用例包括多个子类测试用例,其中各子类测试用例所需的环境配置不同;
执行模块,用于将所述第一类测试用例平均分配至多个执行器并行执行,并在所述第一类测试用例均执行完成后,将所述第二类测试用例分配至同一执行器串行执行;在对各待执行测试用例进行分类还得到内部需要串行执行且外部可以并行执行的第三类测试用例时,所述将所述第一类测试用例平均分配至多个执行器并行执行,并在所述第一类测试用例均执行完成后,将所述第二类测试用例分配至同一执行器串行执行包括:将所述第三类测试用例分配至同一执行器串行执行,同时将所述第一类测试用例平均分配至执行第三类测试用例的执行器之外的各其它执行器并行执行;在所述第一类测试用例和所述第三类测试用例均执行完成后,将所述第二类测试用例分配至同一执行器串行执行;所述将所述第一类测试用例平均分配至多个执行器并行执行包括:确定所述第一类测试用例中各待执行测试用例的执行时长,并根据确定的各所述执行时长将所述第一类测试用例平均分配至多个执行器并行执行,其中,各所述执行器执行完成分配的待执行测试用例所消耗的总执行时长相同;所述确定所述第一类测试用例中各待执行测试用例的执行时长包括:获取所述第一类测试用例中各待执行测试用例上一次被执行时的执行时长;在获取成功时,分别将获取到的各所述执行时长确定为所述第一类测试用例中对应的各所述待执行测试用例的执行时长;在获取失败时,将默认执行时长确定为所述第一类测试用例中各所述待执行测试用例的执行时长。
5.一种终端设备,其特征在于,包括:
存储有自动化测试程序的存储器;
处理器,与所述存储器通信且配置为执行所述自动化测试程序以实现以下步骤:
获取待执行测试用例,并根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例,所述第一类测试用例包括多个子类测试用例,其中各子类测试用例所需的环境配置不同;
将所述第一类测试用例平均分配至多个执行器并行执行,并在所述第一类测试用例均执行完成后,将所述第二类测试用例分配至同一执行器串行执行;
在对各待执行测试用例进行分类还得到内部需要串行执行且外部可以并行执行的第三类测试用例时,所述将所述第一类测试用例平均分配至多个执行器并行执行,并在所述第一类测试用例均执行完成后,将所述第二类测试用例分配至同一执行器串行执行的步骤包括:
将所述第三类测试用例分配至同一执行器串行执行,同时将所述第一类测试用例平均分配至执行第三类测试用例的执行器之外的各其它执行器并行执行;
在所述第一类测试用例和所述第三类测试用例均执行完成后,将所述第二类测试用例分配至同一执行器串行执行;
所述将所述第一类测试用例平均分配至多个执行器并行执行包括:
确定所述第一类测试用例中各待执行测试用例的执行时长,并根据确定的各所述执行时长将所述第一类测试用例平均分配至多个执行器并行执行,其中,各所述执行器执行完成分配的待执行测试用例所消耗的总执行时长相同;
所述确定所述第一类测试用例中各待执行测试用例的执行时长包括:
获取所述第一类测试用例中各待执行测试用例上一次被执行时的执行时长;
在获取成功时,分别将获取到的各所述执行时长确定为所述第一类测试用例中对应的各所述待执行测试用例的执行时长;
在获取失败时,将默认执行时长确定为所述第一类测试用例中各所述待执行测试用例的执行时长。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有自动化测试程序,所述自动化测试程序被处理器执行时实现以下步骤:
获取待执行测试用例,并根据测试用例是否互斥将各待执行测试用例进行分类,得到可以并行执行的第一类测试用例,以及需要串行执行的第二类测试用例,所述第一类测试用例包括多个子类测试用例,其中各子类测试用例所需的环境配置不同;
将所述第一类测试用例平均分配至多个执行器并行执行,并在所述第一类测试用例均执行完成后,将所述第二类测试用例分配至同一执行器串行执行;
在对各待执行测试用例进行分类还得到内部需要串行执行且外部可以并行执行的第三类测试用例时,所述将所述第一类测试用例平均分配至多个执行器并行执行,并在所述第一类测试用例均执行完成后,将所述第二类测试用例分配至同一执行器串行执行的步骤包括:
将所述第三类测试用例分配至同一执行器串行执行,同时将所述第一类测试用例平均分配至执行第三类测试用例的执行器之外的各其它执行器并行执行;
在所述第一类测试用例和所述第三类测试用例均执行完成后,将所述第二类测试用例分配至同一执行器串行执行;
所述将所述第一类测试用例平均分配至多个执行器并行执行包括:
确定所述第一类测试用例中各待执行测试用例的执行时长,并根据确定的各所述执行时长将所述第一类测试用例平均分配至多个执行器并行执行,其中,各所述执行器执行完成分配的待执行测试用例所消耗的总执行时长相同;
所述确定所述第一类测试用例中各待执行测试用例的执行时长包括:
获取所述第一类测试用例中各待执行测试用例上一次被执行时的执行时长;
在获取成功时,分别将获取到的各所述执行时长确定为所述第一类测试用例中对应的各所述待执行测试用例的执行时长;
在获取失败时,将默认执行时长确定为所述第一类测试用例中各所述待执行测试用例的执行时长。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711258658.2A CN109871308B (zh) | 2017-12-04 | 2017-12-04 | 自动化测试方法及装置、终端设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711258658.2A CN109871308B (zh) | 2017-12-04 | 2017-12-04 | 自动化测试方法及装置、终端设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109871308A CN109871308A (zh) | 2019-06-11 |
CN109871308B true CN109871308B (zh) | 2024-03-19 |
Family
ID=66915179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711258658.2A Active CN109871308B (zh) | 2017-12-04 | 2017-12-04 | 自动化测试方法及装置、终端设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109871308B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112346952A (zh) * | 2019-08-06 | 2021-02-09 | 阿里巴巴集团控股有限公司 | 用于测试用例的回归测试的方法、设备和电子设备 |
CN110928781A (zh) * | 2019-11-20 | 2020-03-27 | 英业达科技有限公司 | 流程控制的测试方法、系统、可读存储介质及电子设备 |
CN111258891A (zh) * | 2020-01-11 | 2020-06-09 | 苏州浪潮智能科技有限公司 | 一种提高自动化测试执行效率的方法及系统 |
CN111897722B (zh) * | 2020-07-15 | 2022-11-22 | 重庆紫光华山智安科技有限公司 | 自动化测试用例处理方法、装置、服务器及存储介质 |
CN111984512B (zh) * | 2020-08-12 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 存储系统资源竞态模拟测试方法、系统、终端及存储介质 |
CN112214400A (zh) * | 2020-09-17 | 2021-01-12 | 浙江数链科技有限公司 | 一种自动化测试方法、装置、电子设备和可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609352A (zh) * | 2011-01-19 | 2012-07-25 | 阿里巴巴集团控股有限公司 | 一种并行测试方法及并行测试服务器 |
CN105373409A (zh) * | 2015-12-09 | 2016-03-02 | 上海斐讯数据通信技术有限公司 | 基于Hadoop的测试用例分布式测试方法及系统 |
CN106980571A (zh) * | 2016-01-15 | 2017-07-25 | 阿里巴巴集团控股有限公司 | 一种测试用例集的构建方法和设备 |
CN107291621A (zh) * | 2017-07-07 | 2017-10-24 | 恒生电子股份有限公司 | 测试用例的处理方法、处理装置、介质和电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5751115B2 (ja) * | 2011-09-28 | 2015-07-22 | 富士通株式会社 | 試験支援プログラム、試験支援方法および試験支援装置 |
-
2017
- 2017-12-04 CN CN201711258658.2A patent/CN109871308B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609352A (zh) * | 2011-01-19 | 2012-07-25 | 阿里巴巴集团控股有限公司 | 一种并行测试方法及并行测试服务器 |
CN105373409A (zh) * | 2015-12-09 | 2016-03-02 | 上海斐讯数据通信技术有限公司 | 基于Hadoop的测试用例分布式测试方法及系统 |
CN106980571A (zh) * | 2016-01-15 | 2017-07-25 | 阿里巴巴集团控股有限公司 | 一种测试用例集的构建方法和设备 |
CN107291621A (zh) * | 2017-07-07 | 2017-10-24 | 恒生电子股份有限公司 | 测试用例的处理方法、处理装置、介质和电子设备 |
Non-Patent Citations (1)
Title |
---|
舰船装备软件测试用例复用技术研究;王晖 等;《船舶标准化与质量》;20160831(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109871308A (zh) | 2019-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109871308B (zh) | 自动化测试方法及装置、终端设备及计算机可读存储介质 | |
CN106970880B (zh) | 一种分布式自动化软件测试方法及系统 | |
CN108959059B (zh) | 一种测试方法以及测试平台 | |
CN110597626B (zh) | 在分布式系统中资源及任务的分配方法、装置及系统 | |
CN108268372B (zh) | Mock测试处理方法、装置、存储介质和计算机设备 | |
CN106533753B (zh) | 一种分布式系统的角色配置方法及装置 | |
CN104657212A (zh) | 一种任务调度的方法及系统 | |
CN107943697B (zh) | 问题分配方法、装置、系统、服务器和计算机存储介质 | |
CN111045944A (zh) | 回归测试方法、装置、系统及计算机可读存储介质 | |
CN108984179B (zh) | 一种Linux下编译处理方法及装置 | |
CN108279976B (zh) | 一种编译资源调度方法、计算机及计算机可读存储介质 | |
CN106980571A (zh) | 一种测试用例集的构建方法和设备 | |
CN110532021B (zh) | 分布式控制系统的组态文件的处理方法、客户端及服务装置 | |
CN113254331A (zh) | 模型测试方法、设备、存储介质及程序产品 | |
CN109783284A (zh) | 信息获取方法、系统及服务器、计算机可读存储介质 | |
CN104780076A (zh) | 一种代码检查方法和设备 | |
CN112596784B (zh) | 一种迭代版本部署方法及装置 | |
CN114546588A (zh) | 任务的部署方法、装置、存储介质及电子装置 | |
CN111966597B (zh) | 测试数据生成方法及装置 | |
CN111008143B (zh) | 覆盖率调度测试方法、终端设备及计算机可读存储介质 | |
CN111125205B (zh) | 看板数据显示方法、终端及存储介质 | |
CN107784548B (zh) | 订单处理方法和装置 | |
CN104573965A (zh) | 一种基于并联的前置后置关系的流转方法及装置 | |
CN113518974A (zh) | 用于找出并标识网络中的计算节点的系统和方法 | |
CN105530140A (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 |