自动化测试方法、装置、电子设备及存储介质与流程

专利2022-05-10  22



1.本技术涉及自动化测试技术领域,具体涉及一种自动化测试方法、装置、电子设备及存储介质。


背景技术:

2.自动化测试是一种将测试执行部分全部或者部分交由机器执行的测试,这种测试不需要人的实时参与,具有控制成本和提高效率的优点。
3.但是,自动化测试过程中各个测试用例之间有时候会存在相互影响,例如,在先的测试用例在测试后产生的结果会影响在后的测试用例的测试,使测试结果不准确,而传统的为避免这种相互影响,一般采用,为多个测试用例单独开发测试环境,使各个测试环境之间相互独立,或者,对源项目进行整体备份,然后在进行在先测试用例测试之后,对整个源项目进行还原恢复,然后在进行在后的测试用例的测试,依次循环测试,直至全部测试用例测试结束;但是上述测试方法存在测试效率较低的缺陷。


技术实现要素:

4.本技术实施例提供一种自动化测试方法、装置、电子设备及存储介质,可以提高自动化检测的效率。
5.本技术实施例提供了一种自动化测试方法,包括:
6.获取待测项目中待测功能模块所对应的自动化测试用例集,自动化测试用例集包括多个待测用例的自动化测试用例,多个待测用例所对应的数据库表相关联;
7.从自动化测试用例集中选取第一自动化测试用例;
8.执行第一自动化测试用例,得到数据库表所对应的测试结果数据;
9.记录第一自动化测试用例执行过程中的测试用例操作行为;
10.根据测试用例操作行为对测试结果数据进行用例测试结果数据还原;
11.当用例测试结果数据还原成功时,从自动化测试用例集中获取第二自动化测试用例,执行第二自动化测试用例,其中,第二自动化测试用例是自动化测试用例集中除第一自动化测试用例外的任一自动化测试用例。
12.相应的,本技术实施例还提供了一种自动化测试装置,包括:
13.获取模块,用于获取待测项目中待测功能模块所对应的自动化测试用例集,自动化测试用例集包括多个待测用例的自动化测试用例,多个待测用例所对应的数据库表相关联;
14.选取模块,用于从自动化测试用例集中选取第一自动化测试用例;
15.测试模块,用于执行第一自动化测试用例,得到数据库表所对应的测试结果数据;
16.记录模块,用于记录第一自动化测试用例执行过程中的测试用例操作行为;
17.还原模块,用于根据测试用例操作行为对测试结果数据进行用例测试结果数据还原;
18.决策模块,用于当用例测试结果数据还原成功时,从自动化测试用例集中获取第二自动化测试用例,执行第二自动化测试用例,其中,第二自动化测试用例是自动化测试用例集中除第一自动化测试用例外的任一自动化测试用例。
19.可选的,在本技术的一些实施例中,还原模块包括:
20.确定单元,用于确定测试用例操作行为的逆向操作行为,逆向操作行为和测试用例操作行为对数据库表中记录的记录数据的操作方式相反;
21.还原单元,用于执行逆向操作行为,对测试结果数据进行数据还原。
22.可选的,在本技术的一些实施例中,确定单元包括:
23.第一确定子单元,用于确定待测用例的执行流程,执行流程包括至少一个流程节点;
24.识别子单元,用于识别执行流程的每个流程节点上的操作类型;
25.第二确定子单元,用于确定操作类型的相对操作类型,相对操作类型和操作类型对数据库表中记录的记录数据的操作方式相反;
26.排序子单元,用于对执行流程进行逆向排序,得到逆向执行流程;
27.替换子单元,用于利用相对操作类型将逆向执行流程中每个流程节点上的操作类型进行替换。
28.可选的,在本技术的一些实施例中,第二确定子单元具体用于:
29.确定操作类型操作记录数据的关键字;
30.根据关键字之间的对应关系,确定与关键字在数据操作上相对的相对关键字;
31.根据相对关键字,确定相对操作类型。
32.可选的,在本技术的一些实施例中,该装置还包括第一备份模块,第一备份模块包括:
33.配置备份单元,用于对待测功能模块的配置环境相关联的配置文件进行备份,得到备份配置文件;
34.配置还原单元,用于当用例测试结果数据还原成功时,根据备份配置文件对待测功能模块的配置环境进行配置数据还原;
35.决策模块包括:
36.第一决策子单元,用于当配置数据还原成功时,从自动化测试用例集中获取第二自动化测试用例,执行第二自动化测试用例。
37.可选的,在本技术的一些实施例中,配置还原单元具体用于:
38.根据备份配置文件,重新生成待测功能模块的容器化对象;
39.根据容器化对象对待测功能模块的配置环境进行替换。
40.可选的,在本技术的一些实施例中,该装置还包括第二备份模块,第二备份模块包括:
41.架构数据备份单元,对待测项目所对应的基础架构数据进行备份,得到备份架构数据;
42.获取单元,在待测用例所对应的自动化测试用例执行后,得到待测项目所对应的架构测试结果数据;
43.架构数据替换单元,当配置数据还原成功时,根据备份架构数据对架构测试结果
数据进行基础架构数据替换;
44.决策模块包括:
45.第二决策子单元,当基础架构数据替换成功时,从自动化测试用例集中获取第二自动化测试用例,执行第二自动化测试用例。
46.本技术实施例将数据库表相关联的用例进行先后自动化测试,且在后用例是在在先用例测试并对测试结果数据还原后才进行的自动化测试,使在后用例的自动化测试不受在先测试结果的影响,即,减少用例之间自动化测试的相互干扰,另外,本技术实施例根据测试用例操作行为对测试结果数据进行还原,提高了数据还原的效率,加快了整个待测项目自动化测试的进程。
附图说明
47.为了更清楚地说明本技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
48.图1是本技术提供的自动化测试方法的场景示意图;
49.图2是本技术提供的自动化测试方法的流程示意图;
50.图3是本技术提供的自动化测试方法中用例树结构示意图;
51.图4是本技术提供的自动化测试方法的另一种流程示意图;
52.图5是本技术提供的自动化测试装置的结构示意图。
53.图6是本技术提供的电子设备的结构示意图。
具体实施方式
54.下面将结合本技术中的附图,对本技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
55.本技术实施例提供一种自动化测试方法、装置、电子设备及存储介质。具体地,本技术实施例提供的自动化测试方法可以由电子设备来执行,其中,电子设备可以为终端或服务器等设备;其中,终端可以为笔记本、台式机或者平板电脑等等;服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(cdn,content delivery network)、以及大数据和人工智能平台等基础云计算服务的云服务器,服务器可以通过有线或无线通信方式进行直接或间接地连接。
56.具体地,请参阅图1所示,本技术实施例以自动化测试方法运行在终端上为例,而运行在服务器上则可以以自动化测试方法运行在终端上为参考来进行理解;
57.其中,自动化测试方法运行在终端上的具体为:测试终端a获取到数据库表相关联的多个待测用例所对应的自动化测试用例,该自动化测试用例可以由接受开发终端b的发送得到、或者由测试终端a从云端服务器下载得到、或者由相关测试技术人员直接在测试终端a上配置,本技术以从开发终端b接受自动化测试用例为例,然后,测试终端a选取其中一
个自动化测试用例进行执行,得到用例自动化测试后的测试结果数据(例如,自动化测试后的用例所对应的数据库表中记录的数据),在执行过程中测试终端a记录测试用例操作行为,并在自动化用例执行结束后,测试终端a根据测试用例操作行为进行测试结果数据还原,当上述测试结果数据还原成功后,测试终端a选取另一个自动化测试用例进行执行,在本技术实施例中,可按照上述方案循环操作,直至所有待测用例所对应的自动化测试用例执行完毕结束,随后,测试终端a可以将测试结果发送给开发终端b,在开发终端b上可根据测试终端a的自动化测试结果对用例所对应的代码进行调整。
58.本技术实施例将数据库表相关联的用例进行先后自动化测试,且在后用例是在在先用例测试并对测试结果数据还原后才进行的自动化测试,使在后用例的自动化测试不受在先测试结果的影响,即,防止用例之间自动化测试的相互干扰,另外,本技术实施例根据测试用例操作行为对测试结果数据进行还原,提高了数据还原的效率,加快了整个待测项目自动化测试的进程。
59.以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优先顺序的限定。
60.请参阅图2,图2为本技术实施例提供的自动化测试方法的流程示意图。该自动化测试方法的具体流程可以如下:
61.101、获取待测项目中待测功能模块所对应的自动化测试用例集,自动化测试用例集包括多个待测用例的自动化测试用例,多个待测用例所对应的数据库表相关联。
62.其中,待测项目是本技术实施例中需要进行自动化测试的项目,这些项目可以包括控制系统、管理系统、操作系统等软件系统或者应用程序等。
63.其中,待测功能模块是待测项目中某一个功能模块,每个功能模块对应一个子功能,这些功能模块汇总形成一个整体的项目,例如,管理系统中的用户信息管理模块或者应用程序中的搜索模块、个人信息管理模块等。
64.其中,待测用例指待测功能模块中某个小的功能测试点,例如,用户信息管理模块中的登陆功能、注册功能、添加功能、删除功能、修改功能、查询功能等。
65.其中,自动化测试用例是对待测用例进行自动化测试用的脚本,利用自动化测试工具执行自动化测试脚本即可实现对用例的自动化测试,该脚本可以由针对待测用例建立的测试用例文档进行转化得来,例如,根据自动化测试工具的特性选择自动化测试脚本的类型,将测试用例文档中的属性信息转化到自动化测试脚本中。
66.本技术实施例为克服各个待测用例在自动化测试过程中互相干扰的问题,针对待测用例所对应的数据库表是否相关联进行待测用例所对应的自动化测试用例的获取,对数据库表相关联的待测用例的自动化测试进行管控,其中,在本技术实施例中,每个待测用例对应一个自动化测试用例。
67.102、从自动化测试用例集中选取第一自动化测试用例。
68.其中,第一自动化测试用例可以从自动化测试用例集中任意选取一个自动化测试用例,也可以根据实际的需要,选取出测试优先级较高的自动化测试用例,作为第一自动化测试用例,在本技术实施例中,第一自动化测试用例与自动化测试用例集中的其他自动化测试用例所对应的数据库表相关联,而并无其他不同或者无特殊的选择标准。
69.103、执行第一自动化测试用例,得到数据库表所对应的测试结果数据。
70.其中,用例的测试往往是对待测功能模块中某个功能的测试,而这个功能在执行过程中会带来相应数据库表数据的变化,因此,在执行自动化测试用例后,用例所对应的数据库表数据也会发生变化,而当前数据库表数据的变化可能会影响后续其他用例的测试,所以,为了防止各个用例在测试过程中相互干扰的问题,需要对这部分数据进行还原,而本技术实施例中,自动化测试用例执行后得到的测试结果数据便是需要进行还原的数据。
71.104、记录第一自动化测试用例执行过程中的测试用例操作行为。
72.其中,对数据还原的方式可以采用对原始数据进行备份的方式,然后由备份数据对修改的数据进行替换,达到数据还原的效果,但是这种数据还原方式效率较低,需要对整个项目的数据库数据进行备份或者需要确定待备份的数据库表,并且备份后还需要覆盖或者替换的操作,会降低整个自动化测试的效率;
73.因此,本技术实施例中不采用对数据进行备份的方式,而是通过测试用例操作行为的记录,获取到自动化测试用例执行过程中对数据的操作行为,例如,操作行为可以是对数据的加操作、减操作、乘操作等,通过这些操作行为的记录可以获取到数据发生变化的具体过程,根据这些变化来对数据进行还原。
74.其中,测试用例操作行为的记录可以根据在自动化测试用例中的信号反馈来记录,例如,实时的记录数据库表数据的变化情况,根据变化情况来获取测试用例操作行为,还可以根据待测用例的操作流程来获取,例如,获取待测用例所对应的代码的执行流程,以及每个流程中的操作数据的关键字等。
75.105、根据测试用例操作行为对测试结果数据进行用例测试结果数据还原。
76.其中,从测试用例操作行为中可获取到用例所对应的执行流程,根据反向执行流程的执行即可实现数据库表数据的还原,即,可选的,在一些实施例中,步骤“根据测试用例操作行为对测试结果数据进行用例测试结果数据还原”,具体可以包括:
77.确定测试用例操作行为的逆向操作行为,逆向操作行为和测试用例操作行为对数据库表中记录的记录数据的操作方式相反;
78.执行逆向操作行为,对测试结果数据进行数据还原。
79.根据逆向操作行为对数据还原,不需要在自动化测试之前对数据库数据进行备份,按照逆向操作行为执行后即可实现数据的还原,方便快捷,效率较高。
80.其中,逆向操作行为可根据正向操作行为来获取,正向操作行为包含正向执行流程,对正向执行流程进行逆向排序即可获取到逆向操作流程,即,可选的,在一些实施例中,步骤“确定测试用例操作行为的逆向操作行为”,具体可以包括:
81.确定待测用例的执行流程,执行流程包括至少一个流程节点;
82.识别执行流程的每个流程节点上的操作类型;
83.确定操作类型的相对操作类型,相对操作类型和操作类型对数据库表中记录的记录数据的操作方式相反;
84.对执行流程进行逆向排序,得到逆向执行流程;
85.利用相对操作类型将逆向执行流程中每个流程节点上的操作类型进行替换。
86.其中,通过测试用例操作行为中执行流程的获取,在执行流程倒序处理后,可获取到逆向操作行为所对应的逆向执行流程,通过执行流程中每个流程节点上操作类型的获取,在确定操作类型的相反操作类型后,在逆向执行流程中对相应的流程节点进行操作类
型的替换,即可获取到整个逆向操作行为。
87.在本技术实施例中,执行流程可以是代码执行的各个步骤,流程节点上的关键字可以是各个步骤中对数据操作的关键字,例如,各个步骤中的增、删、改、查等关键字,调整步骤的先后顺序,即逆向排序,然后对各个步骤中的关键字进行相反操作关键字的替换即可实现获取到测试用例操作行为的逆向操作行为。
88.其中,操作类型与关键字之间存在映射关系,根据操作类型可确定各个执行步骤数据操作的关键字,相反,根据关键字也可以确定各个步骤的操作类型,而各个关键字之间又存在对应关系,因此可根据关键字来确定操作类型的相对操作类型,即,可选的,在一些实施例中,步骤“确定操作类型的相对操作类型”,具体可以包括:
89.确定操作类型操作记录数据的关键字;
90.根据关键字之间的对应关系,确定与关键字在数据操作上相对的相对关键字;
91.根据相对关键字,确定相对操作类型。
92.其中,操作类型包括增加操作、删除操作、修改操作和查询操作等,通过增加操作、删除操作、修改操作和查询操作所对应的关键字,可确定各个操作类型所对应的相对操作类型,例如增加操作的相对操作类型为删除操作。
93.其中,对自动化测试用例执行过程中的测试用例操作行为的记录,相当于用例前置,例如,某一自动化测试用例是为了测试新增数据是否能够新增成功,则用例前置就是记录这个新增行为;而用例测试结果数据还原则相当于用例后置,例如,针对上述新增行为,确定新增行为的逆向操作行为,即删除行为,对新增行为增加的数据进行删除。
94.其中,针对自动化测试用例执行过程中针对数据库数据的操作,例如,增加或者删除的数据,可以将这个数据同时备份到缓存中,当用例后置时,可通过备份数据对指定的数据进行删除或者增加。
95.106、当用例测试结果数据还原成功时,从自动化测试用例集中获取第二自动化测试用例,执行第二自动化测试用例,其中,第二自动化测试用例是自动化测试用例集中除第一自动化测试用例外的任一自动化测试用例。
96.其中,通过用例测试结果数据的还原,即与第二自动化测试用例相关联的数据库表数据的还原,可保证第一自动化测试用例的测试不会影响到第二自动化测试用例的测试。
97.其中,在第二自动化测试用例执行后,也可按照测试用例操作行为对第二自动化测试用例后的测试结果数据进行还原,然后在对自动化测试用例集中的其他自动化测试用例进行执行,依次循环执行,直至待测项目的所有自动化测试用例执行完毕结束。
98.其中,在对第二自动化测试用例执行之前,还包括对测试用例所属的功能模块进行还原,在对功能模块还原时,主要包括对功能模块的配置环境进行还原,即,可选的,在一些实施例中,步骤“从自动化测试用例集中获取第二自动化测试用例,执行第二自动化测试用例”之前,还包括:
99.对待测功能模块的配置环境相关联的配置文件进行备份,得到备份配置文件;
100.当用例测试结果数据还原成功时,根据备份配置文件对待测功能模块的配置环境进行配置数据还原;
101.当用例测试结果数据还原成功,且配置数据还原成功时,从自动化测试用例集中
获取第二自动化测试用例,执行第二自动化测试用例。
102.其中,在第二自动化测试用例执行之前,对第一自动化测试用例执行过程中涉及的配置环境进行还原,可从多个角度充分实现对项目的还原,降低第一自动化测试用例的执行对第二自动化测试用例执行的干扰,本技术实施例中,对用例所属的功能模块的整个配置环境进行还原,即对各个自动化测试用例所属的同一个功能模块的配置环境进行还原,可充分降低自动化测试过程中各个自动化测试用例执行的相互干扰。
103.其中,在配置环境还原过程中,可以对功能模块的配置环境相关的配置文件进行备份,然后在自动化测试用例执行后,根据备份的配置文件重新生成容器化配置环境数据,利用重新生成的容器化配置环境数据对自动化测试用例执行后的配置测试结果数据进行还原,即,可选的,在一些实施例中,步骤“根据备份配置文件对待测功能模块的配置环境进行配置数据还原”之前,还包括:
104.根据备份配置文件,重新生成待测功能模块的容器化对象;
105.根据容器化对象对待测功能模块的配置环境进行替换。
106.其中,配置文件是针对功能模块的,而不是整个项目的配置文件,例如,针对数据库模块的配置文件、针对用户信息管理模块的配置文件或者针对搜索模块的配置文件,因此针对单个功能模块的配置环境的还原,执行效率较高,还原效率较高。
107.其中,功能模块所对应层级的备份,相当于模块前置,即,为防止模块之间的相互干扰(不同模块所对应的用例在自动化测试时的相互干扰),对各个模块的数据进行备份,例如,功能模块是数据库相关的,模块前置就要负责备份整个数据库相关的内容,避免由于数据库的干扰影响到其他模块执行;
108.而对模块的数据的还原就相当于模块后置,对整个功能模块或者功能模块中某个用例进行自动化测试后,对整个功能模块的数据进行还原,其中,模块所测的对象是通过容器化的技术生成的,所以模块前置中通常保存的是相关的配置文件,在测完之后利用相同的配置文件创建新的容器即可,这种数据恢复技术快于整体还原,所以比较适合作为模块间的干扰规避手段。
109.其中,功能模块后置可以在单个用例自动化测试后执行,也可以在功能模块所包含的所有用例进行自动化测试后执行。
110.其中,在第二自动化测试用例执行之前,还可以对整个项目的基础架构数据进行还原,即,可选的,在一些实施例中,步骤“根据备份配置文件对待测功能模块的配置环境进行配置数据还原”之前,还包括:
111.对待测项目所对应的基础架构数据进行备份,得到备份架构数据;
112.在待测用例所对应的自动化测试用例执行后,得到待测项目所对应的架构测试结果数据;
113.当配置数据还原成功时,根据备份架构数据对架构测试结果数据进行基础架构数据替换;
114.当用例测试结果数据还原成功、配置数据还原成功,且基础架构数据还原成功时,从自动化测试用例集中获取第二自动化测试用例,执行第二自动化测试用例。
115.其中,基础架构数据可以包括各个功能模块的通用数据,例如,服务器数据、网关数据、架构底层配置文件等,通过对基础架构数据的还原,可避免因用例的自动化测试造成
整个项目基础架构数据的变化,进而造成对其他自动化测试用例执行的干扰。
116.其中,项目层级的备份相当于项目的整体前置,是在整套自动化测试用例开始运行之前的前置操作,一般整体前置的数据是项目中各个功能模块所通用的数据,例如,测某个服务器,服务器里包括了数据库和web服务器网关等,由于服务器里内容多而杂,无法细化,所以整体前置会对服务器所有数据都做一个整体备份,不管后续功能模块、用例怎么修改服务器某个区域的内容,这个完整的全项目的备份都会一直留着,给后置恢复使用;
117.其中,项目层级的数据还原相当于项目的整体后置,整体后置对整个项目的数据进行还原,在本技术实施例中,针对单个用例的自动化测试用例的执行,整体后置可进行基础架构数据的还原即可。
118.例如,请参阅图3,图3是本技术实施例针对整个项目的用例树结构示意图,其中,针对项目进行整体前置和整体后置,并针对项目中的各个模块进行各个模块的模块前置和模块后置,又针对模块中的用例,对用例进行用例前置和用例后置。
119.其中,整体前置主要针对项目运行环境等底层通用数据进行的备份(快照),整体后置是根据整体前置的备份数据对运行环境进行还原;模块前置主要针对模块的配置环境进行备份,例如,对模块的配置环境相关的配置文件进行备份,模块后置是根据模块前置中的备份的配置文件,利用备份的配置文件,重新生成容器化对象,利用容器化对象替换模块的配置环境数据,达到模块层配置环境的还原;用例前置则针对具体用例进行测试用例操作行为的记录,在用例自动化测试结束后,根据测试用例操作行为对测试结果数据进行还原,其中,可根据测试用例操作行为的逆向操作行为对测试用例数据进行还原,即动作回滚。
120.其中,整体后置可以在单个用例的自动化测试用例执行结束后执行,也可以在单个功能模块后置后执行,还可以在所有用例自动化测试用例执行后且在功能模块还原后执行。
121.在本技术实施例中,待测用例还可以是一段代码块,为获取到这段代码块是否能够按照期望的步骤执行,可以对这部分代码块进行自动化测试,其中,各个代码块所操作的数据库表可能不同,也可能相同,或者可能相互关联,本技术实施例,获取到操作数据的数据库表相关联的代码块,然后,对其中一个代码块所对应的自动化测试用例进行执行,并停止对其他代码块所对应的自动化测试用例的执行,即在对其中一个代码块进行自动化测试时,对其他数据库表相关联的代码块加锁操作,直到前一个代码块的自动化测试用例执行结束,并根据代码块的执行流程对数据库表数据进行还原后,再从其他代码块中选取一个代码块所对应的自动化测试用例进行执行,直至所有代码块自动化测试结束。
122.例如,同一用例中的多个代码块也可以隶属于不同的模块,而不同模块所对应的数据库表可以不同,因此,可以根据用例以及模块来同时确定待测代码块,并对用例中属于同一模块的其他代码块进行加锁操作,例如:用例a中包含有代码块1、代码块2、代码块3和代码块4,其中,代码块1隶属于模块1,代码块2隶属于模块2,代码块3隶属于模块4,代码块4隶属于模块5,本技术实施例在对用例a中代码块进行自动化测试时,由于代码块1、代码块2、代码块3和代码块4分别隶属于不同的模块,因此这些代码块可以同时进行自动化测试操作,反之,如果代码块1和代码块1a隶属于同一模块,则需要先对代码块1进行自动化测试,并同时对代码块1a进行加锁操作,或者先对代码块1a进行自动化测试,并同时对代码块1进
行加锁操作,目的在于,由于代码块1和代码块1a属于同一模块,则所涉及到的数据库表数据可以相关联,因此,为避免两个代码块自动化测试过程中相互干扰的问题,对这两个代码块先后进行自动化测试,并对其中一个代码块测试后的测试结果数据进行还原后,再进行其他代码块的自动化测试。
123.在本技术实施例中,当操作数据的数据库表不相关联时,可以对各个代码块进行流水线操作,例如,可以对这些代码块同时进行自动化测试,即对这些代码块所对应的自动化测试用例同时进行执行,加快整个项目的自动化测试进程。
124.例如,请参阅图4,图4为待测用例自动化测试的另一种流程示意图,具体包括:
125.前置过程:
126.110、对项目进行整体前置(例如,对运行环境信息进行备份或者快照);
127.111、对待测项目中各个功能模块分别进行模块前置(例如,对各个功能模块或者模块的配置环境数据进行备份,如对配置文件进行备份);
128.112、对功能模块中的各个用例分别进行用例前置(例如,记录用例的测试用例操作行为);
129.113、对用例进行自动化测试时,对用例所对应的代码块进行加锁操作和流水线操作;
130.后置过程:
131.114、在用例进行自动化测试后,即用例所对应的代码块执行后,对功能模块中各个用例进行用例后置(例如,根据逆向操作行为对测试用例结果数据进行还原);
132.115、当功能模块中各个用例进行用例后置后,对各个功能模块进行模块后置(例如,利用备份的配置文件重新生成容器化对象,利用容器化对象对配置环境数据进行替换);
133.116、在各个功能模块进行模块后置后,对整个项目进行整体后置(例如,根据备份的环境信息对自动化测试后项目的环境数据进行替换)。
134.本技术实施例将数据库表相关联的用例进行先后自动化测试,且在后用例是在在先用例测试并对测试结果数据还原后才进行的自动化测试,使在后用例的自动化测试不受在先测试结果的影响,即,减少用例之间自动化测试的相互干扰,另外,本技术实施例根据测试用例操作行为对测试结果数据进行还原,提高了数据还原的效率,加快了整个待测项目自动化测试的进程。
135.为便于更好的实施本技术的自动化测试方法,本技术还提供一种基于上述自动化测试方法的自动化测试装置。其中名词的含义与上述自动化测试方法中相同,具体实现细节可以参考方法实施例中的说明。
136.请参阅图5,图5为本技术提供的自动化测试装置的结构示意图,其中该自动化测试装置可以包括获取模块201、选取模块202、测试模块203、记录模块204、还原模块205和决策模块206,具体可以如下:
137.获取模块201,用于获取待测项目中待测功能模块所对应的自动化测试用例集,自动化测试用例集包括多个待测用例的自动化测试用例,多个待测用例所对应的数据库表相关联。
138.本技术实施例为克服各个待测用例在自动化测试过程中互相干扰的问题,获取模
块201针对待测用例所对应的数据库表是否相关联进行待测用例所对应的自动化测试用例的获取,对数据库表相关联的待测用例的自动化测试进行管控,其中,在本技术实施例中,每个待测用例对应一个自动化测试用例。
139.选取模块202,用于从自动化测试用例集中选取第一自动化测试用例。
140.其中,第一自动化测试用例可以从自动化测试用例集中任意选取一个自动化测试用例,也可以根据实际的需要,选取出测试优先级较高的自动化测试用例,作为第一自动化测试用例,在本技术实施例中,第一自动化测试用例与自动化测试用例集中的其他自动化测试用例所对应的数据库表相关联,而并无其他不同或者无特殊的选择标准。
141.测试模块203,用于执行第一自动化测试用例,得到数据库表所对应的测试结果数据。
142.其中,用例的测试往往是对待测功能模块中某个功能的测试,而这个功能在执行过程中会带来相应数据库表数据的变化,因此,在执行自动化测试用例后,用例所对应的数据库表数据也会发生变化,而当前数据库表数据的变化可能会影响后续其他用例的测试,所以,为了防止各个用例在测试过程中相互干扰的问题,需要对这部分数据进行还原,而本技术实施例中,自动化测试用例执行后得到的测试结果数据便是需要进行还原的数据。
143.记录模块204,用于记录第一自动化测试用例执行过程中的测试用例操作行为。
144.其中,测试用例操作行为的记录可以根据在自动化测试用例中的信号反馈来记录,例如,实时的记录数据库表数据的变化情况,根据变化情况来获取测试用例操作行为,还可以根据待测用例的操作流程来获取,例如,获取待测用例所对应的代码的执行流程,以及每个流程中的操作数据的关键字等。
145.还原模块205,用于根据测试用例操作行为对测试结果数据进行用例测试结果数据还原。
146.例如,从测试用例操作行为中可获取到用例所对应的执行流程,根据反向执行流程的执行即可实现数据库表数据的还原。
147.可选的,在本技术的一些实施例中,还原模块205包括:
148.确定单元,用于确定测试用例操作行为的逆向操作行为,逆向操作行为和测试用例操作行为对数据库表中记录的记录数据的操作方式相反;
149.还原单元,用于执行逆向操作行为,对测试结果数据进行数据还原。
150.根据逆向操作行为对数据还原,不需要在自动化测试之前对数据库数据进行备份,按照逆向操作行为执行后即可实现数据的还原,方便快捷,效率较高。
151.可选的,在本技术的一些实施例中,确定单元包括:
152.第一确定子单元,用于确定待测用例的执行流程,执行流程包括至少一个流程节点;
153.识别子单元,用于识别执行流程的每个流程节点上的操作类型;
154.第二确定子单元,用于确定操作类型的相对操作类型,相对操作类型和操作类型对数据库表中记录的记录数据的操作方式相反;
155.排序子单元,用于对执行流程进行逆向排序,得到逆向执行流程;
156.替换子单元,用于利用相对操作类型将逆向执行流程中每个流程节点上的操作类型进行替换。
157.其中,通过测试用例操作行为中执行流程的获取,在执行流程倒序处理后,可获取到逆向操作行为所对应的逆向执行流程,通过执行流程中每个流程节点上操作类型的获取,在确定操作类型的相反操作类型后,在逆向执行流程中对相应的流程节点进行操作类型的替换,即可获取到整个逆向操作行为。
158.在本技术实施例中,执行流程可以是代码执行的各个步骤,流程节点上的关键字可以是各个步骤中对数据操作的关键字,例如,各个步骤中的增、删、改、查等关键字,调整步骤的先后顺序,即逆向排序,然后对各个步骤中的关键字进行相反操作关键字的替换即可实现获取到测试用例操作行为的逆向操作行为。
159.可选的,在本技术的一些实施例中,第二确定子单元具体用于:
160.确定操作类型操作记录数据的关键字;
161.根据关键字之间的对应关系,确定与关键字在数据操作上相对的相对关键字;
162.根据相对关键字,确定相对操作类型。
163.决策模块206,用于当用例测试结果数据还原成功时,从自动化测试用例集中获取第二自动化测试用例,执行第二自动化测试用例,其中,第二自动化测试用例是自动化测试用例集中除第一自动化测试用例外的任一自动化测试用例。
164.可选的,在本技术的一些实施例中,该装置还包括第一备份模块,第一备份模块包括:
165.配置备份单元,用于对待测功能模块的配置环境相关联的配置文件进行备份,得到备份配置文件;
166.配置还原单元,用于当用例测试结果数据还原成功时,根据备份配置文件对待测功能模块的配置环境进行配置数据还原;
167.决策模块206包括:
168.第一决策子单元,用于当配置数据还原成功时,从自动化测试用例集中获取第二自动化测试用例,执行第二自动化测试用例。
169.可选的,在本技术的一些实施例中,配置还原单元具体用于:
170.根据备份配置文件,重新生成待测功能模块的容器化对象;
171.根据容器化对象对待测功能模块的配置环境进行替换。
172.可选的,在本技术的一些实施例中,该装置还包括第二备份模块,第二备份模块包括:
173.架构数据备份单元,对待测项目所对应的基础架构数据进行备份,得到备份架构数据;
174.获取单元,在待测用例所对应的自动化测试用例执行后,得到待测项目所对应的架构测试结果数据;
175.架构数据替换单元,当配置数据还原成功时,根据备份架构数据对架构测试结果数据进行基础架构数据替换;
176.决策模块206包括:
177.第二决策子单元,当基础架构数据替换成功时,从自动化测试用例集中获取第二自动化测试用例,执行第二自动化测试用例。
178.本技术实施例首先由获取模块201获取待测项目中待测功能所对应的自动化测试
用例集,其中,自动化测试用例集包括多个待测用例的自动化测试用例,多个待测用例所对应的数据库表相关联,其次,由选取模块202从自动化测试用例集中选取一个自动化测试用例,然后,由测试模块203对选取模块202选取到的自动化测试用例进行执行,得到测试结果数据,同时,由记录模块204来记录上述自动化测试用例执行过程中的测试用例操作行为,随后,由还原模块205根据记录模块获取到的测试用例操作行为对测试结果数据进行还原,最后,在测试结果数据还原成功后,由决策模块206从自动化测试用例集中选取剩余的一个自动化测试用例,然后,由测试模块203对选取到的自动化测试用例进行执行,依次循环,直至待测功能所对应的所有自动化测试用例执行完毕结束,本技术实施例针对数据库表相关联的自动化测试用例的先后执行的控制,并在在先自动化测试用例执行结束并对测试结果数据还原后才执行在后的自动化测试用例,可避免自动化测试用例执行过程中互相干扰的问题;另外,本技术实施例中,根据自动化测试用例执行过程中的测试用例操作行为来实现对测试结果数据进行还原,提高了数据还原的效率,加快了整个待测项目自动化测试的进程。
179.此外,本技术还提供一种电子设备,如图6所示,其示出了本技术所涉及的电子设备的结构示意图,具体来讲:
180.该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图6中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
181.处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
182.存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
183.电子设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
184.该电子设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号
输入。
185.尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
186.获取待测项目中待测功能模块所对应的自动化测试用例集,自动化测试用例集包括多个待测用例的自动化测试用例,多个待测用例所对应的数据库表相关联;从自动化测试用例集中选取第一自动化测试用例;执行第一自动化测试用例,得到数据库表所对应的测试结果数据;记录第一自动化测试用例执行过程中的测试用例操作行为;根据测试用例操作行为对测试结果数据进行用例测试结果数据还原;当用例测试结果数据还原成功时,从自动化测试用例集中获取第二自动化测试用例,执行第二自动化测试用例,其中,第二自动化测试用例是自动化测试用例集中除第一自动化测试用例外的任一自动化测试用例。
187.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
188.本技术实施例将数据库表相关联的用例进行先后自动化测试,且在后用例是在在先用例测试并对测试结果数据还原后才进行的自动化测试,使在后用例的自动化测试不受在先测试结果的影响,即,防止用例之间自动化测试的相互干扰,另外,本技术实施例根据测试用例操作行为对测试结果数据进行还原,提高了数据还原的效率,加快了整个待测项目自动化测试的进程。
189.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
190.为此,本技术提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本技术所提供的任一种消息延迟检测方法中的步骤。例如,该指令可以执行如下步骤:
191.获取待测项目中待测功能模块所对应的自动化测试用例集,自动化测试用例集包括多个待测用例的自动化测试用例,多个待测用例所对应的数据库表相关联;从自动化测试用例集中选取第一自动化测试用例;执行第一自动化测试用例,得到数据库表所对应的测试结果数据;记录第一自动化测试用例执行过程中的测试用例操作行为;根据测试用例操作行为对测试结果数据进行用例测试结果数据还原;当用例测试结果数据还原成功时,从自动化测试用例集中获取第二自动化测试用例,执行第二自动化测试用例,其中,第二自动化测试用例是自动化测试用例集中除第一自动化测试用例外的任一自动化测试用例。
192.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
193.其中,该存储介质可以包括:只读存储器(rom,read only memory)、随机存取记忆体(ram,random access memory)、磁盘或光盘等。
194.由于该存储介质中所存储的指令,可以执行本技术所提供的任一种自动化测试方法中的步骤,因此,可以实现本技术所提供的任一种自动化测试方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
195.以上对本技术所提供的一种自动化测试方法、装置、电子设备以及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例
的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
转载请注明原文地址:https://doc.8miu.com/read-1550358.html

最新回复(0)