分布式UI测试用例的测试方法、系统及计算机存储介质与流程

文档序号:32310026发布日期:2022-11-23 11:16阅读:39来源:国知局
分布式UI测试用例的测试方法、系统及计算机存储介质与流程
分布式ui测试用例的测试方法、系统及计算机存储介质
技术领域
1.本发明涉及ui自动测试领域,特别是涉及一种分布式ui测试用例的测试方法、系统及计算机存储介质。


背景技术:

2.目前,应用代码更新换代的速度越来越快,手工测试已不能满足速度的要求,自动化测试工具也越来越丰富,但是市场上的ui自动化用例执行时间长,稳定性相对比较差。大量用例并发执行时,如何在保障成功率的基础上,尽可能缩短执行时间是目前亟需解决的问题。
3.例如,目前市场上大多是使用xunit工具基于文件名排序的调度方式,这种方式容易导致测试执行时间较长,且经常由于测试压力大导致用例执行失败。


技术实现要素:

4.基于此,有必要针对如何在保障成功率的基础上,尽可能缩短执行时间的问题,提供一种分布式ui测试用例的测试方法、系统及计算机存储介质。
5.一种分布式ui测试用例的测试方法,包括:获取需要执行的测试用例数据,所述测试用例数据包含对应所述测试用例数据的测试因子;将所述测试用例数据导入至调度模型,所述调度模型根据所述测试因子得到每个测试用例数据的优先分值;根据所述优先分值的降序将所述测试用例数据轮流依次分为若干个测试队列,并将分为若干个测试队列的测试用例数据分别导入至测试引擎的若干个节点,以由测试引擎同时对位于若干个测试队列的测试用例数据进行测试。
6.在其中一个优选实施方式中,所述将所述测试用例数据导入至调度模型,所述调度模型根据所述测试因子得到每个测试用例数据的优先分值,包括:所述调度模型获取所导入测试用例数据的测试因子,所述测试因子至少包括所述测试用例数据的预估执行时间及所属优先级数据;根据所述测试因子得到每个测试用例数据的优先分值,所述优先分值满足:上式中,e为优先分值,k1为对应预估执行时间的第一系数,t0为预估执行时间,k2为对应优先级数据的第二系数,n为优先级数据,其中n为正整数。
7.在其中一个优选实施方式中,所述测试因子包括所述测试用例数据的预估执行时间、所属测试模块及优先级数据。
8.在其中一个优选实施方式中,所述预估执行时间根据对应类型的测试用例数据的历史测试时间得到,所述所属测试模块及优先级数据由标记得到。
9.在其中一个优选实施方式中,若所述预估执行时间无法根据对应类型的测试用例
数据的历史测试时间得到,则:获取所述测试用例的代码行数;根据所述代码行数评估对应所述测试用例的执行时间,并将评估的执行时间作为所述预估执行时间。
10.在其中一个优选实施方式中,所述方法还包括:记录每个所述测试用例的执行时长。
11.在其中一个优选实施方式中,所述根据所述优先分值的降序将所述测试用例数据轮流依次分为若干个测试队列,并将分为若干个测试队列的测试用例数据分别导入至测试引擎的若干个节点,以由测试引擎同时对位于若干个测试队列的测试用例数据进行测试,包括:获取测试引擎的节点数量,以确定所需分为的若干个测试队列的数量;根据所述若干个测试队列的数量,按照所述优先级数据的降序将所述测试用例数据轮流分为对应数量的测试队列。
12.在其中一个优选实施方式中,在所述根据所述若干个测试队列的数量,按照所述优先级数据的降序将所述测试用例数据轮流分为对应数量的测试队列之后,所述方法还包括:评估每个测试队列的测试执行总时长及单个测试用例时长;若任意两个测试队列的测试执行时长的差值大于第一时长阈值,对所述两个测试队列的测试用例相互替换调整,以使所述两个测试队列的测试执行时长相近。
13.本发明上述实施方式提供的分布式ui测试用例的测试方法对大量的测试用例并发执行时,在保障成功率的基础上,通过调度模型找到最优执行组合,提高稳定性、缩短执行时间。在实际执行过程中,ui测试用例执行成功率有显著提升,对测试用例执行时间可控,测试执行时间显著减少。
14.本发明还提供一种分布式ui测试用例的测试系统,包括:测试用例获取模块,用以获取需要执行的测试用例数据,所述测试用例数据包含对应所述测试用例数据的测试因子;优先分值测算模块,用以将所述测试用例数据导入至调度模型,所述调度模型根据所述测试因子得到每个测试用例数据的优先分值;测试用例调度模块,用以根据所述优先分值的降序将所述测试用例数据轮流依次分为若干个测试队列,并将分为若干个测试队列的测试用例数据分别导入至测试引擎的若干个节点,以由测试引擎同时对位于若干个测试队列的测试用例数据进行测试。
15.本发明上述实施方式提供的分布式ui测试用例的测试系统对大量的测试用例并发执行时,在保障成功率的基础上,通过调度模型找到最优执行组合,提高稳定性、缩短执行时间。在实际执行过程中,ui测试用例执行成功率有显著提升,对测试用例执行时间可控,测试执行时间显著减少。
16.本发明还提供一种计算机存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行以上所述的方法。
17.本发明上述实施方式提供的计算机存储介质在所在的设备上执行上述分布式ui测试用例的测试方法对大量的测试用例并发执行时,在保障成功率的基础上,通过调度模
型找到最优执行组合,提高稳定性、缩短执行时间。在实际执行过程中,ui测试用例执行成功率有显著提升,对测试用例执行时间可控,测试执行时间显著减少。
附图说明
18.图1为本发明第一优选实施方式中的分布式ui测试用例的测试方法的流程示意图;图2为本发明第一优选实施方式中的分布式ui测试用例的测试方法的步骤s30的细分步骤流程示意图;图3为本发明第二优选实施方式中的分布式ui测试用例的测试系统的模块示意图。
具体实施方式
19.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
20.需要说明的是,当元件被称为“设置于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的,并不表示是唯一的实施方式。
21.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
22.如图1所示,本发明第一优选实施方式公开了一种分布式ui测试用例的测试方法,包括:s10:获取需要执行的测试用例数据,所述测试用例数据包含对应所述测试用例数据的测试因子。
23.本步骤中,上述方法可以从测试平台的数据库中获取需要执行的测试用例数据,具体地,上述测试因子可以包含对应测试用例数据的预估执行时间、所属测试模块及优先级数据等。下述步骤可以根据上述测试因子的预估执行时间、所属测试模块及优先级数据等作为下述的步骤的数据分析基础。
24.具体地,上述预估执行时间根据对应类型的测试用例数据的历史测试时间得到,所述所属测试模块及优先级数据由标记得到。
25.更详细地说,本实施方式中,数据库中存储有大量的历史测试用例数据,这些历史测试用例数据包括测试用例当时在测试时实际的执行时间、该历史测试用例数据所标记的所述所属测试模块的信息以及优先级数据,在获取当前所需执行的测试用例数据之后,本步骤可以根据当前测试用例数据所标记的所属测试模块,得到位于当前所属测试模块的历史测试用例数据的平均执行时间,进而预估当前所需测试的测试用例的执行时间。
26.若所述预估执行时间无法根据对应类型的测试用例数据的历史测试时间得到,则
可以通过获取对应所述测试用例的代码行数:并根据所述代码行数评估对应所述测试用例的执行时间,并将所评估的执行时间作为所述预估执行时间。
27.s20:将所述测试用例数据导入至调度模型,所述调度模型根据所述测试因子得到每个测试用例数据的优先分值;具体地,本实施方式中,上述调度模型可以先根据上述测试因子的优先级数据将所需测试的测试用例进行优先级分级,进而将待测的测试用例按照优先级降序分为若干个等级,接着按照优先级的降序的顺序和执行时间降序的排列组成若干测试队列,接着将该若干个测试队列导入至测试引擎的节点进行并行测试,上述若干个测试队列的数量与上述节点的数量一致,换言之,上述测试队列的数量以及测试引擎的节点的数量也就是测试用例的并发数。
28.本实施方式中,上述按照优先级的降序的顺序和执行时间降序的排列组成若干测试队列具体可以包括:上述将所述测试用例数据导入至调度模型,所述调度模型根据所述测试因子得到每个测试用例数据的优先分值,包括:所述调度模型获取所导入测试用例数据的测试因子,所述测试因子至少包括所述测试用例数据的预估执行时间及所属优先级数据;根据所述测试因子得到每个测试用例数据的优先分值,所述优先分值满足:上式中,e为优先分值,k1为对应预估执行时间的第一系数,t0为预估执行时间,k2为对应优先级数据的第二系数,n为优先级数据。
29.s30:根据所述优先分值的降序将所述测试用例数据轮流依次分为若干个测试队列,并将分为若干个测试队列的测试用例数据分别导入至测试引擎的若干个节点,以由测试引擎同时对位于若干个测试队列的测试用例数据进行测试。
30.本步骤中,结合图2所示,上述步骤s30可以包括以下细分步骤:s31:获取测试引擎的节点数量,以确定所需分为的若干个测试队列的数量;s32:根据所述若干个测试队列的数量,按照所述优先级数据的降序将所述测试用例数据轮流分为对应数量的测试队列。
31.本细分步骤中,所述方法还包括:评估每个测试队列的测试执行总时长及单个测试用例时长;若任意两个测试队列的测试执行时长的差值大于第一时长阈值,对所述两个测试队列的测试用例相互替换调整,以使所述两个测试队列的测试执行时长相近。
32.具体地,上述测试用例并发数为m个,那么上述测试队列的数量和测试引擎的节点的数量为m个,测试引擎的每个节点访问调度模型,分别从对应的测试队列的开头处取一个测试用例进行测试,在对当前的测试用例测试完成之后,对排序在后的对应队列的测试用例进行测试,这样依次往下执行。本实施方式中,当测试完每个测试用例后,本方法便记录每个所述测试用例的执行时长,便于后续对同属性模块的测试用例的执行时长的预估。
33.更详细地说,测试引擎的对应节点在执行完当前测试用例的测试后,再次访问调度模型,获取下一个需要执行的测试用例,调度模型根据此节点所有用例执行时长,对比所有节点执行时长及执行次数,计算分配给该节点执行的用例,比如用例执行时间在此批次
中执行时间最长,在用例数组下批次用例中选择1个执行时间最短的用例,对各个节点时间执行时间进行平衡。
34.本发明上述实施方式的分布式ui测试用例的测试方法对大量的测试用例并发执行时,在保障成功率的基础上,通过调度模型找到最优执行组合,提高稳定性、缩短执行时间。在实际执行过程中,ui测试用例执行成功率有显著提升,对测试用例执行时间可控,测试执行时间显著减少。
35.本发明第二优选实施方式公开了一种分布式ui测试用例的测试系统100,所述系统100包括测试用例获取模块110、优先分值测算模块120及测试用例调度模块130。
36.上述测试用例获取模块110用以获取需要执行的测试用例数据,所述测试用例数据所包含对应所述测试用例数据的测试因子。
37.具体地,上述测试用例获取模块110可以从测试平台的数据库中获取需要执行的测试用例数据,具体地,上述测试因子可以包含对应测试用例数据的预估执行时间、所属测试模块及优先级数据等。下述步骤可以根据上述测试因子的预估执行时间、所属测试模块及优先级数据等作为下述的模块的数据分析基础。
38.具体地,上述预估执行时间根据对应类型的测试用例数据的历史测试时间得到,所述所属测试模块及优先级数据由标记得到。
39.更详细地说,本实施方式中,数据库中存储有大量的历史测试用例数据,这些历史测试用例数据包括测试用例当时在测试时实际的执行时间、该历史测试用例数据所标记的所属测试模块的信息以及优先级数据,在获取当前所需执行的测试用例数据之后,本步骤可以根据当前测试用例数据所标记的所属测试模块,得到位于当前所属测试模块的历史测试用例数据的平均执行时间,进而预估当前所需测试的测试用例的执行时间。
40.若所述预估执行时间无法根据对应类型的测试用例数据的历史测试时间得到,则可以通过获取对应所述测试用例的代码行数:并根据所述代码行数评估对应所述测试用例的执行时间,并将所评估的执行时间作为所述预估执行时间。
41.上述优先分值测算模块120用以将所述测试用例数据导入至调度模型,所述调度模型根据所述测试因子得到每个测试用例数据的优先分值;具体地,上述优先分值测算模块120通过上述调度模型可以先根据上述测试因子的优先级数据将所需测试的测试用例进行优先级分级,进而将待测的测试用例按照优先级降序分为若干个等级,接着按照优先级的降序的顺序和执行时间降序的排列组成若干测试队列,接着将该若干个测试队列导入至测试引擎的节点进行并行测试,上述若干个测试队列的数量与上述节点的数量一致,换言之,上述测试队列的数量以及测试引擎的节点的数量也就是测试用例的并发数。
42.本实施方式中,上述按照优先级的降序的顺序和执行时间降序的排列组成若干测试队列具体可以包括:上述将所述测试用例数据导入至调度模型,所述调度模型根据所述测试因子得到每个测试用例数据的优先分值,包括:所述调度模型获取所导入测试用例数据的测试因子,所述测试因子至少包括所述测试用例数据的预估执行时间及所属优先级数据;根据所述测试因子得到每个测试用例数据的优先分值,所述优先分值满足:
上式中,e为优先分值,k1为对应预估执行时间的第一系数,t0为预估执行时间,k2为对应优先级数据的第二系数,n为优先级数据。
43.上述测试用例调度模块130用以根据所述优先分值的降序将所述测试用例数据轮流分为若干个测试队列,并将分为若干个测试队列的测试用例数据分别导入至测试引擎的若干个节点,以由测试引擎同时对位于若干个测试队列的测试用例数据进行测试。
44.本步骤中,测试用例调度模块可以包括:测试队列确定单元,用以获取测试引擎的节点数量,以确定所需分为的若干个测试队列的数量;测试执行单元,用以根据所述若干个测试队列的数量,按照所述优先级数据的降序将所述测试用例数据轮流分为对应数量的测试队列。
45.测试执行单元用以评估每个测试队列的测试执行总时长及单个测试用例时长;并且,测试执行单元用以当若任意两个测试队列的测试执行时长的差值大于第一时长阈值时,对所述两个测试队列的测试用例相互替换调整,以使所述两个测试队列的测试执行时长相近。
46.具体地,上述测试用例并发数为m个,那么上述测试队列的数量和测试节点的数量为n个,测试引擎的每个节点访问调度模型,分别从对应的测试队列的开头处取一个测试用例进行测试,在对当前的测试用例测试完成之后,对排序在后的对应队列的测试用例进行测试,这样依次往下执行。本实施方式中,当测试完每个测试用例的后,本方法便记录每个所述测试用例的执行时长,便于后续对同属性模块的测试用例的执行时长的预估。
47.更详细地说,测试引擎的对应节点在执行完当前测试用例的测试后,再次访问调度模型,获取下一个需要执行的测试用例,调度模型根据此节点所有用例执行时长,对比所有节点执行时长及执行次数,计算分配给该节点执行的用例,比如用例执行时间在此批次中执行时间最长,在用例数组下批次用例中选择1个执行时间最短的用例,对各个节点时间执行时间进行平衡。
48.本发明上述实施方式的分布式ui测试用例的测试系统对大量的测试用例并发执行时,在保障成功率的基础上,通过调度模型找到最优执行组合,提高稳定性、缩短执行时间。在实际执行过程中,ui测试用例执行成功率有显著提升,对测试用例执行时间可控,测试执行时间显著减少。
49.本发明的实施方式还提供一种计算机存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行以上所述的方法。
50.本发明上述实施方式提供的计算机存储介质在所在的设备上执行上述分布式ui测试用例的测试方法对大量的测试用例并发执行时,在保障成功率的基础上,通过调度模型找到最优执行组合,提高稳定性、缩短执行时间。在实际执行过程中,ui测试用例执行成功率有显著提升,对测试用例执行时间可控,测试执行时间显著减少。
51.在一些实施方式中,客户端、服务器可以利用诸如http(hyper text transfer protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网
络),以及任何当前已知或未来研发的网络。
52.上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
53.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1