掌桥专利:专业的专利平台
掌桥专利
首页

一种自动化测试方法、装置、电子设备和可读存储介质

文献发布时间:2023-06-19 09:32:16


一种自动化测试方法、装置、电子设备和可读存储介质

技术领域

本申请涉及软件领域,特别是涉及一种自动化测试方法、装置、电子设备和可读存储介质。

背景技术

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。

在相关技术中,自动化测试往往是通过将多个测试脚本进行固定分组,然后按照这个固定分组并发执行完成测试。这种方法不能充分的利用测试资源,从而导致自动化测试的整体效率较低。

目前针对相关技术中自动化测试的整体效率较低的问题,尚未提出有效的解决方案。

发明内容

本申请实施例提供了一种自动化测试方法、装置、电子设备和可读存储介质,以至少解决相关技术中自动化测试的执行速度慢,不能充分的利用测试资源,影响自动化测试的整体效率的问题。

第一方面,本申请实施例提供了一种自动化测试方法,该方法包括以下步骤:

根据执行机支持并发的能力和用户对自动化测试执行速度的需求,对测试脚本进行分组,并控制该测试脚本的所有分组并发执行,记录执行结果;

根据前一轮测试的该执行结果,调整该测试脚本在后一轮测试中的分组方案。

在其中一些实施例中,该根据执行机支持并发的能力和用户对自动化测试执行速度的需求,对测试脚本进行分组,并控制该测试脚本的所有分组并发执行,记录执行结果,包括以下步骤:

获取多个测试脚本;

根据该执行机支持并发的能力和用户对自动化测试执行速度的需求确定该测试脚本的分组数量;

根据该分组数量,对该测试脚本进行分组;

根据分组结果,并发执行该测试脚本,并记录每个该测试脚本的执行时长。

在其中一些实施例中,该根据该分组数量,对该测试脚本进行分组,包括:

对于首轮测试,在该测试脚本的数量小于或等于该分组数量时,将该测试脚本随机分组且单个该分组中只有一个测试脚本;在该测试脚本数量大于该分组数量时,将该多个测试脚本随机分组且该单个分组不为空。

在其中一些实施例中,该根据前一轮测试的该执行结果,调整该测试脚本在后一轮测试中的分组方案,包括:

根据前一轮测试记录的每个该测试脚本的执行时长、测试脚本个数和该分组数量,调整该测试脚本在后一轮测试中的分组方案。

在其中一些实施例中,在并发测试的执行过程中,在一部分分组中的测试脚本已经执行完毕且另一部分分组中还有未开始执行的测试脚本的情况下,对于首轮测试,在未开始执行的该测试脚本中随机选取一个该测试脚本开始执行;对于不是首轮测试的测试,在未开始执行的该测试脚本中选择执行时长最短的该测试脚本开始执行。

第二方面,本申请实施例提供了一种自动化测试装置,该装置包括分组模块和调整模块;

该分组模块,用于根据执行机支持并发的能力和用户对自动化测试执行速度的需求,对测试脚本进行分组,并控制该测试脚本的所有分组并发执行,记录执行结果;

该调整模块,用于根据前一轮测试的该执行结果,调整该测试脚本在后一轮测试中的分组方案。

在其中一些实施例中,该分组模块包括获取单元、分组单元、执行单元和计算单元;

该获取单元,用于获取多个测试脚本和根据该执行机支持并发的能力和用户对自动化测试执行速度的需求确定该测试脚本的分组数量;

该分组单元,用于对该测试脚本进行分组;

该执行单元,用于根据分组结果,并发执行该测试脚本,并记录每个该测试脚本的执行时长。

在其中一些实施例中,该分组单元还用于在首轮测试中,在该测试脚本的数量小于或等于该分组数量时,将该测试脚本随机分组且单个该分组中只有一个测试脚本;在该测试脚本数量大于该分组数量时,将该多个测试脚本随机分组且该单个分组不为空。

在其中一些实施例中,该调整模块还用于根据前一轮测试记录的每个该测试脚本的执行时长、测试脚本个数和该分组数量,调整该测试脚本在后一轮测试中的分组方案。

在其中一些实施例中,该分组模块还用于在并发测试的执行过程中,在一部分分组中的测试脚本已经执行完毕且另一部分分组中还有未开始执行的测试脚本的情况下,对于首轮测试,在未开始执行的该测试脚本中随机选取一个该测试脚本开始执行;对于不是首轮测试的测试,在未开始执行的该测试脚本中选择执行时长最短的该测试脚本开始执行。

第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器以及存储在该存储器上并可在该处理器上运行的计算机程序,该处理器执行该计算机程序时实现如上述第一方面该的自动化测试方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面该的自动化测试方法。

相比于相关技术,本申请实施例提供的一种自动化测试方法、装置、电子设备和可读存储介质,通过根据执行机支持并发的能力和用户对自动化测试执行速度的需求,对测试脚本进行分组,并控制该测试脚本的所有分组并发执行,记录执行结果;再根据前一轮测试的该执行结果,调整该测试脚本在后一轮测试中的分组,在不断的优化分组方案的过程中,能够更加充分的利用测试资源,同时也提高了自动化测试的整体效率。

本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例一提供的一种自动化测试方法的流程图;

图2是根据本申请实施例二的一种自动化测试方法的流程图;

图3是根据本申请实施例三的一种自动化测试方法的流程图;

图4是根据本申请实施例四的一种自动化测试装置的示意图;

图5是根据本申请实施例五的一种自动化测试装置的示意图;

图6是根据本申请实施例的电子设备的内部结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。

除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。本申请可以应用于自动化测试中。

本申请实施例一提供了一种自动化测试方法,可用于自动化测试,图1是根据本申请实施例一提供的一种自动化测试方法的流程图,如图1所示,该方法包括:

步骤S101,根据执行机支持并发的能力和用户对自动化测试执行速度的需求,对测试脚本进行分组,并控制该测试脚本的所有分组并发执行,记录执行结果。

上述执行机可以是执行自动化测试的机器,包括计算机、服务器等。根据执行机支持并发的能力和用户对自动化测试执行速度的实际需求,设定该执行机的分组数量,再对测试脚本进行分组,然后并发执行分组后的脚本,并记录每个测试脚本的执行时长。其中,每个执行机能够负载的同时执行测试脚本的数量是有限的,然后根据客户对给这次项目的时间限度去确定这个具体的分组数量。

步骤S102,根据前一轮测试的该执行结果,调整该测试脚本在后一轮测试中的分组方案。

上述执行结果中可以包括根据前一轮测试中的执行时长计算出的分组方案。假设有三轮测试,在进行第二轮测试时,则根据第一轮测试中得到的分组方案进行分组,同时在第二轮测试中也会得到新的执行时长,也会根据该执行时长计算出新的分组方案,该新的方案将应用到第三轮测试当中。

作为一种可实施方式,前一轮测试的执行结果中包含每个测试脚本的执行时长、分组数量和脚本数量,利用分组算法根据该执行结果中的数据计算出测试效率最高的分组方案。除首次分组外,后一轮的测试分组都根据前一轮测试的执行结果进行分组。

通过上述步骤S101至步骤S102,根据执行机的性能和用户的实际需求,设置分组数量,对多个测试脚本分组后,并发执行测试脚本,并记录每个测试脚本的执行时长,后一轮测试再根据前一轮测试的执行结果调整分组。在自动化测试过程中,通常在涉及到并发执行多个脚本执行的情况下,不会根据实际情况具体调整分组方案,但在本实施一中,通过根据前一轮测试的执行结果调整分组,充分利用测试资源,提高了自动化测试的整理效率。

本申请实施例二提供了一种自动化测试方法,可用于自动化测试,图2是根据本申请实施例二的一种自动化测试方法的流程图,如图2所示,该方法包括:

步骤S201,获取多个测试脚本。

步骤S202,根据该执行机支持并发的能力和用户对自动化测试执行速度的需求确定该测试脚本的分组数量。

该执行机为具体执行的脚本测试的设备,包括服务器和计算机等,根据该执行机的具体性能和用户的实际需求设计分组数量,该分组数量同时也表示同一时间测试的最大测试脚本数量。

步骤S203,根据该分组数量,对该测试脚本进行分组。

具体地,该步骤S203包括:在首轮测试中,根据分组数量和脚本个数进行分组,在脚本数量小于或等于分组数量时,则随机分组且每个分组中只能有一个脚本;在脚本数量大于分组数量时,可以将测试脚本随机分组且每个分组不为空或将测试脚本按照数量平均分配给不同分组。

需要说明的是,在对于不是首轮测试的测试中根据前一轮测试中计算出的分组方案去分组。

步骤S204,根据分组结果,并发执行该测试脚本,并记录每个该测试脚本的执行时长。

在并发执行测试脚本的过程中,可能会存在一部分分组中的测试脚本已经执行完毕且另一部分分组中还有开设执行的脚本,在首轮测试中时,则在未开始执行的脚本中随机选择一个测试脚本开始执行;若在不是首轮测试的测试中,则在未开始执行的脚本中选择执行时长最短的测试脚本开始执行。

步骤S205,根据前一轮测试的该执行结果,调整该测试脚本在后一轮测试中的分组方案。

上述执行结果中可以包括根据前一轮测试中的执行时长计算出的分组方案。假设有三轮测试,在进行第二轮测试时,则根据第一轮测试中得到的分组方案进行分组,同时在第二轮测试中也会得到新的执行时长,也会根据该执行时长计算出新的分组方案,该新的方案将应用到第三轮测试当中。

通过上述步骤S201至步骤S205,根据执行机的性能和用户的实际需求,设置分组数量,对多个测试脚本分组后,并发执行测试脚本,并记录每个测试脚本的执行时长,后一轮测试再根据前一轮测试的执行结果调整分组。在自动化测试过程中,通常在涉及到并发执行多个脚本执行的情况下,不会根据实际情况具体调整分组方案,但在本实施二中,通过根据前一轮测试的执行结果调整分组,充分利用测试资源,提高了自动化测试的整理效率。

实施例三中提供了一种自动化测试方法,可用于自动化测试,图3是根据本申请实施例三的一种自动化测试方法的流程图,如图3所示,该方法包括:

S301,获得多个测试脚本和确定分组数量。

S302,判断本次测试是否为首轮测试。

S303,本次测试首轮测试,随机分组。根据分组数量和脚本个数进行分组,在脚本数量小于或等于分组数量时,则随机分组且每个分组中只能有一个脚本;在脚本数量大于分组数量时,可以将测试脚本随机分组且每个分组不为空或将测试脚本按照数量平均分配给不同分组。

S304,本次测试不是首轮测试,根据前一轮获得的执行结果进行分组。根据前一轮测试的该执行结果,调整该测试脚本在后一轮测试中的分组。

前一轮测试的执行结果中包含每个测试脚本的执行时长、分组数量和脚本数量,利用分组算法根据该执行结果中的数据计算出测试效率最高的分组方案。

S305,并发执行多个脚本并记录每个脚本的执行时长。

S306,根据该执行时长、测试脚本数量和该分组数量确定后一轮分组。

除首次分组外,后一轮的测试分组都根据前一轮测试的执行效果进行分组。分组结束后,并发执行多个脚本并记录每个脚本的执行时长,然后根据该执行时长、测试脚本数量和该分组数量确定后一轮分组。下面,提供了一种自动化测试方法的应用实例,包括:

获取14个测试脚本,根据执行机所支持的并发脚本数量和用于的实际需求确定分组数量为3,将14个脚本随机分为3组。

在执行机上执行3个工程:API_01_TMS_test、API_01_WMS_test、API_01_BMS_test,每个工程分别包括的脚本个数、每个脚本的执行时长、每个工程的执行时长等数据如下表1:

表1

如表1所示,随机分组的情况下,并发执行全部测试脚本需要花费1343秒。

将该表1中的执行结果使用分组算法案进行分组,得到新的分组方案,如表2所示;

表2

使用表2所示的新的分组方案后,执行全部的测试脚本只需花费708秒,执行速度相比之前约提升了1倍。由此可见,本申请通过调整分组方案,缩短了测试时间,提高了自动化测试的整体效率。

本申请实施例还提供了一种分组算法,可用于上述实施例提供的自动化测试方法,该分组算法执行步骤如下:

S401,计算出全部测试脚本的执行时长的总和。

S402,将该总和除以测试脚本数量,获得平均执行时长。

S403,将全部的t

S404,取出该元素之和最小的数组和元素之和最大的数组,计算出这两个数组和均值的总偏差。

S405,遍历元素之和最大的数组,依次取出数字后判断其是否小于0.5倍的总偏差,若小于,则将这个值移动到元素之和最小的数组;若没有发现可以移动的数字,则遍历元素之和最小的数组,将该数组中的ti从小到大开始叠加,直到叠加的数字大于0.5倍的总偏差后,将已经叠加的元素移动到元素之和最大的数组。

S406,每次交换完成后,结束当前循环,进入下一次寻找和交换,当有一次循环发生后,没有数字交换,则说明元素之和最大的数组和元素之和最小的数组已经达到了最佳状态。

S407,再次从m个数组中选出元素之和最大的数组和元素之和最小的数组,重新开始遍历和数字交换,直到数组中没有可进行交换的数字,则说明多个数组已经达到了理想状态,即每个数组的元素之和尽量相等的状态。

其中,t

本申请实施例四提供了一种自动化测试装置,可用于自动化测试,图4是根据本申请实施例四提供的一种自动化测试装置的示意图,如图4所示,该装置包括分组模块41和调整模块42。

该分组模块41,用于根据执行机支持并发的能力和用户对自动化测试执行速度的需求,对测试脚本进行分组,并控制该测试脚本的所有分组并发执行,记录执行结果。该执行机是执行自动化测试的机器,包括计算机、服务器等,根据执行机支持并发的能力和用户对自动化测试执行速度的实际需求,设定该执行机的分组数量,再对测试脚本进行分组,然后并发执行分组后的脚本,并记录每个测试脚本的执行时长。

该调整模块42,用于根据前一轮测试的该执行结果,调整该测试脚本在后一轮测试中的分组方案。前一轮测试的执行结果中包含每个测试脚本的执行时长、分组数量和脚本数量,利用分组算法根据该执行结果中的数据计算出测试效率最高的分组方案,除首次分组外,后一轮的测试分组都根据前一轮测试的执行效果进行分组。

通过上述分组模块41和调整模块42,根据执行机的性能和用户的实际需求,设置分组数量,对多个测试脚本分组后,并发执行该测试脚本,并记录每个测试脚本的执行时长,下一轮测试再根据上一轮测试的执行结果调整分组。

在自动化测试过程中,通常在涉及到并发执行多个脚本执行的情况下,不会根据实际情况具体调整分组方案。但在本实施四中会根据前一轮测试该方法充分利用测试资源,提高了自动化测试的整理效率。

图5是根据本申请实施例五提供的一种自动化测试装置的示意图,如图5所示,该装置包括获取单元51、分组单元52、执行单元53、以及调整模块42。

获取单元51,用于获取多个测试脚本和根据该服务器支持并发的能力和用户对自动化测试执行速度的需求确定该测试脚本的分组数量;该执行机就是具体执行的脚本测试的设备,包括服务器和计算机等,根据该执行机的具体性能和用户的实际需求设计分组数量,该分组数量同时也表示同一时间测试的最大测试脚本数量。

分组单元52,用于对该测试脚本进行分组;该分组单元52还用于在首轮测试中,根据分组数量和脚本个数进行分组,在脚本数量小于或等于分组数量时,则随机分组且每个分组中只能有一个脚本;在脚本数量大于分组数量时,可以将测试脚本随机分组且每个分组不为空或将测试脚本按照数量平均分配给不同分组。在不是首轮测试的测试中,则根据前一轮测试中计算出的分组方案去分组。

执行单元53,用于根据分组结果,并发执行该测试脚本,并记录每个该测试脚本的执行时长。同执行单元53还用于在并发执行测试脚本的过程中,可能会存在一部分分组中的测试脚本已经执行完毕且另一部分分组中还有开设执行的脚本,在首轮测试中时,则在未开始执行的脚本中随机选择一个测试脚本开始执行;若在不是首轮测试的测试中,则在未开始执行的脚本中选择执行时长最短的测试脚本开始执行。

调整模块42,用于根据前一轮测试的该执行结果,调整该测试脚本在后一轮测试中的分组方案;前一轮测试的执行结果中包含每个测试脚本的执行时长、分组数量和脚本数量,利用分组算法根据该执行结果中的数据计算出测试效率最高的分组方案,除首次分组外,后一轮的测试分组都根据前一轮测试的执行效果进行分组。

通过上述装置获取单元51、分组单元52、执行单元53和调整模块42,根据执行机的性能和用户的实际需求,设置分组数量,对多个测试脚本分组后,并发执行该测试脚本,并记录每个测试脚本的执行时长,下一轮测试再根据上一轮测试的执行结果调整分组方案。在自动化测试过程中,通常在涉及到并发执行多个脚本执行的情况下,不会根据实际情况具体调整分组方案,但在本实施五中,通过根据前一轮测试的执行结果调整分组,充分利用测试资源,提高了自动化测试的整理效率。

在一个实施例中,图6是根据本申请实施例的电子设备的内部结构示意图,如图6所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图6所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的数据库用于存储数据。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据库动态方法。

本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个实施例提供的一种自动化测试方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 一种自动化测试方法、装置、电子设备和可读存储介质
  • 自动化测试方法、装置、电子设备及可读存储介质
技术分类

06120112201404