本发明属于自动化测试技术领域,尤其涉及一种提高自动化测试执行效率的方法及系统。
背景技术:
自动化在测试中比重越来越大,而测试任务随着测试项目越来越多也变得也来越大。对测试的时效性上也提出了新的要求,一些紧急项目、紧急问题在测试以及回归过程中需要测试更快更高效的反应,一些物料紧缺的项目,也需要在有限的测试资源上以更高效的测试完成测试任务。利用自动化测试技术,摆脱人工测试可以很大程度上提高测试效率。但是随着自动化程度的提高,大量的测试脚本如何调度执行才能更好更快的提高测试执行效率,在原有的效率提高基础上更近一步,这就需要从自动化更近一步,用智能化的手段提高自动化测试执行效率。
目前,由于测试之间关系复杂,有很多测试会互相影响,例如测内存的测试,如果对内存测试数据有所改动,必然会对其他测内存的测试有很大影响。那些需要开关机的测试更是如此,例如升级测试,一个开关机会影响其他全部同一机器正在运行的测试,导致测试效率低下。
技术实现要素:
针对现有技术中的缺陷,本发明提供了一种利用智能化构建并发测试策略,提升测试执行效率的提高自动化测试执行效率的方法。
本发明所提供的技术方案是:一种提高自动化测试执行效率的方法,所述方法包括下述步骤:
在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断;
当判定待执行的测试用例与所述测试执行队列中每一个测试用例均不存在相互影响时,将待执行的测试用例加入所述测试执行队列中;
当判定待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响时,将所述待执行的测试用例加入预先配置的等候队列中;
当轮询时间到达时,对所述等候队列中的测试用例按照所述在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断的步骤进行轮询;
其中,加入所述测试执行队列中的测试用例并发执行测试。
作为一种改进的方案,所述在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断的步骤之前还包括下述步骤:
预先配置测试执行队列和等候队列,其中,所述测试执行队列和等候队列均为一个先进先出的队列;
预先设置轮询时间,所述轮询时间用于当时间达到时,对所述等候队列中的测试用例进行轮询。
作为一种改进的方案,所述在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断的步骤具体包括下述步骤:
对待执行的测试用例执行测试检测;
对测试检测的结果进行分析,判断测试检测过程中是否存在测试用例的相互影响;
当判定测试检测过程中存在测试用例的相互影响,则确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响。
作为一种改进的方案,所述当判定测试检测过程中存在测试用例的相互影响,则确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响的步骤之后还包括下述步骤:
当确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响时,记录并发的测试用例以及测试用例对应的关键词组;
对测试用例对应的关键词组之间的相互组合导致测试相互影响进行概率分析,生成测试策略。
作为一种改进的方案,所述当确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响时,记录并发的测试用例以及测试用例对应的关键词组的步骤之前还包括下述步骤:
在数据库中导入关键词组和测试用例集合;
在测试用例与关键词组之间建立一一对应关系。
本发明的另一目的在于提供一种提高自动化测试执行效率的系统,所述系统包括:
测试影响性判断模块,用于在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断;
第一加入模块,用于当判定待执行的测试用例与所述测试执行队列中每一个测试用例均不存在相互影响时,将待执行的测试用例加入所述测试执行队列中;
第二加入模块,用于当判定待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响时,将所述待执行的测试用例加入预先配置的等候队列中;
当轮询时间到达时,对所述等候队列中的测试用例按照所述在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断的步骤进行轮询;
其中,加入所述测试执行队列中的测试用例并发执行测试。
作为一种改进的方案,所述系统还包括:
队列配置模块,用于预先配置测试执行队列和等候队列,其中,所述测试执行队列和等候队列均为一个先进先出的队列;
轮询时间设置模块,用于预先设置轮询时间,所述轮询时间用于当时间达到时,对所述等候队列中的测试用例进行轮询。
作为一种改进的方案,所述测试影响性判断模块具体包括:
测试检测模块,用于对待执行的测试用例执行测试检测;
结果分析判断模块,用于对测试检测的结果进行分析,判断测试检测过程中是否存在测试用例的相互影响;
确定模块,用于当判定测试检测过程中存在测试用例的相互影响,则确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响。
作为一种改进的方案,所述系统还包括:
记录模块,用于当确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响时,记录并发的测试用例以及测试用例对应的关键词组;
测试策略生成模块,用于对测试用例对应的关键词组之间的相互组合导致测试相互影响进行概率分析,生成测试策略。
作为一种改进的方案,所述系统还包括:
导入模块,用于在数据库中导入关键词组和测试用例集合;
对应关系建立模块,用于在测试用例与关键词组之间建立一一对应关系。
在本发明实施例中,在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断;当判定不存在相互影响时,将待执行的测试用例加入测试执行队列中;当判定存在相互影响时,将待执行的测试用例加入预先配置的等候队列中;当轮询时间到达时,对等候队列中的测试用例按照在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断的步骤进行轮询;加入测试执行队列中的测试用例并发执行测试,在测试脚本数量增加的前提下,提升测试执行效率。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1是本发明提供的提高自动化测试执行效率的方法的实现流程图;
图2是本发明提供的在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断的实现流程图;
图3是本发明提供的提高自动化测试执行效率的系统的结构框图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的、技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
图1是本发明提供的提高自动化测试执行效率的方法的实现流程图,其具体包括下述步骤:
在步骤s101中,在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断;
在步骤s102中,当判定待执行的测试用例与所述测试执行队列中每一个测试用例均不存在相互影响时,将待执行的测试用例加入所述测试执行队列中;
在步骤s103中,当判定待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响时,将所述待执行的测试用例加入预先配置的等候队列中;
在步骤s104中,当轮询时间到达时,对所述等候队列中的测试用例按照所述在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断的步骤进行轮询;
其中,加入所述测试执行队列中的测试用例并发执行测试。
在该实施例中,在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断的步骤之前还包括下述步骤:
(1)预先配置测试执行队列和等候队列,其中,所述测试执行队列和等候队列均为一个先进先出的队列,队列的最大上限为每个测试服务器最大测试并发量;
(2)预先设置轮询时间,所述轮询时间用于当时间达到时,对所述等候队列中的测试用例进行轮询。
在等候队列中的测试用例,当轮询时,发现测试执行队列中不存在冲突影响的测试用例时,则加入该测试执行队列中,执行测试。
在本发明实施例中,如图2所示,在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断的步骤具体包括下述步骤:
在步骤s201中,对待执行的测试用例执行测试检测动作;
在步骤s202中,对测试检测的结果进行分析,判断测试检测过程中是否存在测试用例的相互影响;
在步骤s203中,当判定测试检测过程中存在测试用例的相互影响,则确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响。
在该实施例中,当执行完步骤s203后,还执行下述步骤:
(1)当确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响时,记录并发的测试用例以及测试用例对应的关键词组;
(2)对测试用例对应的关键词组之间的相互组合导致测试相互影响进行概率分析,生成测试策略;
在该实施例中,经过日常实际测试工作的进行,样本越来越大,分析越来越趋于准确,逐步具备智能化构建测试策略的能力。实现智能构建测试策略,智能对一批测试任务制定效率最高,最可靠的测试执行策略,智能决定哪些测试可以并发,哪些测试需要单独测试环境以免影响其他测试,如何安排执行次序以更高效率进行自动化测试等等。
在该实施例中,当确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响时,记录并发的测试用例以及测试用例对应的关键词组的步骤之前还包括下述步骤:
(1)在数据库中导入关键词组和测试用例集合;
利用辞海,中文词典等权威书籍,去除介词连词,把词组导入数据库,同时把测试用例集合导入数据库。
(2)在测试用例与关键词组之间建立一一对应关系。
图3示出了本发明提供的提高自动化测试执行效率的系统的结构框图,为了便于说明,图中仅给出了与本发明实施例相关的部分。
提高自动化测试执行效率的系统包括:
测试影响性判断模块11,用于在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断;
第一加入模块12,用于当判定待执行的测试用例与所述测试执行队列中每一个测试用例均不存在相互影响时,将待执行的测试用例加入所述测试执行队列中;
第二加入模块13,用于当判定待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响时,将所述待执行的测试用例加入预先配置的等候队列中;
当轮询时间到达时,对所述等候队列中的测试用例按照所述在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断的步骤进行轮询;
其中,加入所述测试执行队列中的测试用例并发执行测试。
在该实施例中,所述系统还包括:
队列配置模块14,用于预先配置测试执行队列和等候队列,其中,所述测试执行队列和等候队列均为一个先进先出的队列;
轮询时间设置模块15,用于预先设置轮询时间,所述轮询时间用于当时间达到时,对所述等候队列中的测试用例进行轮询。
在本发明实施例中,测试影响性判断模块11具体包括:
测试检测模块16,用于对待执行的测试用例执行测试检测;
结果分析判断模块17,用于对测试检测的结果进行分析,判断测试检测过程中是否存在测试用例的相互影响;
确定模块18,用于当判定测试检测过程中存在测试用例的相互影响,则确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响。
在本发明实施例中,所述系统还包括:
记录模块19,用于当确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响时,记录并发的测试用例以及测试用例对应的关键词组;
测试策略生成模块20,用于对测试用例对应的关键词组之间的相互组合导致测试相互影响进行概率分析,生成测试策略;
导入模块21,用于在数据库中导入关键词组和测试用例集合;
对应关系建立模块22,用于在测试用例与关键词组之间建立一一对应关系。
其中,上述各个模块的功能如上述方法实施例所记载的内容,在此不再赘述。
在本发明实施例中,在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断;当判定不存在相互影响时,将待执行的测试用例加入测试执行队列中;当判定存在相互影响时,将待执行的测试用例加入预先配置的等候队列中;当轮询时间到达时,对等候队列中的测试用例按照在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断的步骤进行轮询;加入测试执行队列中的测试用例并发执行测试,在测试脚本数量增加的前提下,提升测试执行效率。
以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
1.一种提高自动化测试执行效率的方法,其特征在于,所述方法包括下述步骤:
在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断;
当判定待执行的测试用例与所述测试执行队列中每一个测试用例均不存在相互影响时,将待执行的测试用例加入所述测试执行队列中;
当判定待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响时,将所述待执行的测试用例加入预先配置的等候队列中;
当轮询时间到达时,对所述等候队列中的测试用例按照所述在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断的步骤进行轮询;
其中,加入所述测试执行队列中的测试用例并发执行测试。
2.根据权利要求1所述的提高自动化测试执行效率的方法,其特征在于,所述在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断的步骤之前还包括下述步骤:
预先配置测试执行队列和等候队列,其中,所述测试执行队列和等候队列均为一个先进先出的队列;
预先设置轮询时间,所述轮询时间用于当时间达到时,对所述等候队列中的测试用例进行轮询。
3.根据权利要求2所述的提高自动化测试执行效率的方法,其特征在于,所述在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断的步骤具体包括下述步骤:
对待执行的测试用例执行测试检测动作;
对测试检测的结果进行分析,判断测试检测过程中是否存在测试用例的相互影响;
当判定测试检测过程中存在测试用例的相互影响,则确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响。
4.根据权利要求3所述的提高自动化测试执行效率的方法,其特征在于,所述当判定测试检测过程中存在测试用例的相互影响,则确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响的步骤之后还包括下述步骤:
当确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响时,记录并发的测试用例以及测试用例对应的关键词组;
对测试用例对应的关键词组之间的相互组合导致测试相互影响进行概率分析,生成测试策略。
5.根据权利要求4所述的提高自动化测试执行效率的方法,其特征在于,所述当确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响时,记录并发的测试用例以及测试用例对应的关键词组的步骤之前还包括下述步骤:
在数据库中导入关键词组和测试用例集合;
在测试用例与关键词组之间建立一一对应关系。
6.一种提高自动化测试执行效率的系统,其特征在于,所述系统包括:
测试影响性判断模块,用于在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断;
第一加入模块,用于当判定待执行的测试用例与所述测试执行队列中每一个测试用例均不存在相互影响时,将待执行的测试用例加入所述测试执行队列中;
第二加入模块,用于当判定待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响时,将所述待执行的测试用例加入预先配置的等候队列中;
当轮询时间到达时,对所述等候队列中的测试用例按照所述在预先配置的测试执行队列中,对待执行的测试用例进行测试影响性判断的步骤进行轮询;
其中,加入所述测试执行队列中的测试用例并发执行测试。
7.根据权利要求6所述的提高自动化测试执行效率的系统,其特征在于,所述系统还包括:
队列配置模块,用于预先配置测试执行队列和等候队列,其中,所述测试执行队列和等候队列均为一个先进先出的队列;
轮询时间设置模块,用于预先设置轮询时间,所述轮询时间用于当时间达到时,对所述等候队列中的测试用例进行轮询。
8.根据权利要求7所述的提高自动化测试执行效率的系统,其特征在于,所述测试影响性判断模块具体包括:
测试检测模块,用于对待执行的测试用例执行测试检测动作;
结果分析判断模块,用于对测试检测的结果进行分析,判断测试检测过程中是否存在测试用例的相互影响;
确定模块,用于当判定测试检测过程中存在测试用例的相互影响,则确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响。
9.根据权利要求8所述的提高自动化测试执行效率的系统,其特征在于,所述系统还包括:
记录模块,用于当确认待执行的测试用例与所述测试执行队列中至少一个测试用例存在相互影响时,记录并发的测试用例以及测试用例对应的关键词组;
测试策略生成模块,用于对测试用例对应的关键词组之间的相互组合导致测试相互影响进行概率分析,生成测试策略。
10.根据权利要求9所述的提高自动化测试执行效率的系统,其特征在于,所述系统还包括:
导入模块,用于在数据库中导入关键词组和测试用例集合;
对应关系建立模块,用于在测试用例与关键词组之间建立一一对应关系。
技术总结