本发明涉及自动化软件测试,特别涉及一种通用执行器的自动化测试方法、装置、设备及存储介质。
背景技术:
1、自动化软件测试因其更可靠更快速而在软件测试领域愈发流行,一种较常见的自动化软件测试框架是“关键字驱动框架”,它将测试用例分解为多个细节测试步骤,再将测试步骤精简抽象为一个关键字,多条测试用例中可能存在极为相似的测试步骤,就可用同一关键字替换,而这些相似测试步骤在细节上的区别可使用步骤参数区分,由具体产品项目的自动化测试开发人员完成各关键字对应的具体测试动作代码编写。而项目测试人员在编写自动化的测试用例时只需将多个关键字及所需步骤参数按一定顺序组合排列,即可形成一条测试用例;这样做可以将代码编写与测试用例编写分离,使项目测试人员不需要编码能力,可以更多地考虑如何提升测试用例质量。
2、完整的芯片产品开发活动中常涉及多个子系统,用粗颗粒度划分大致有芯片硬件、芯片固件、板卡固件和主机驱动等子系统,这些子系统因各自关注点及自身特性差异较大,通常会有各自专用的自动化测试架构,进而进行相应工具开发、测试脚本和测试用例编写。即使大家都选用了“关键字驱动框架”,由于它只是一个框架,距离具体落地实现还需要补充很多细节,所以仍会存在各子系统之间基本隔绝,对框架的实现及测试方法落地细节各不相同,难以对接,难以跨子系统复用的问题,造成资源浪费。
3、因此,如何能够实现基于关键字驱动框架的通用执行器,提高框架的通用性,减少代码重复开发的情况,避免人力资源的浪费,是现今急需解决的问题。
技术实现思路
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、可见,本发明将执行器与测试动作函数解耦,使执行器可以使用跨语言函数调用方式从函数入口调用并执行各测试步骤对应的测试动作函数,从而使得测试动作函数与执行器可用不同编程语言独立实现,并且允许使用不同的编程语言实现测试动作函数,使得测试动作函数可以由不同团队的测试开发人员使用各自擅长或符合自身需求的编程语言编码,降低了测试用例的编写难度,提高了框架的通用性,从而通过关键字库中关键字记录项中的关键字、测试动作函数入口和测试动作说明的配置,减少代码重复开发的情况,避免人力资源的浪费。此外,本发明还提供了一种通用执行器的自动化测试装置、设备及计算机可读存储介质,同样具有上述有益效果。
1.一种通用执行器的自动化测试方法,其特征在于,包括:
2.根据权利要求1所述的通用执行器的自动化测试方法,其特征在于,当前测试用例为冒烟测试用例,所述对获取的测试用例进行解析,确定当前测试步骤之前,还包括:
3.根据权利要求1所述的通用执行器的自动化测试方法,其特征在于,所述步骤参数还包括步骤调度方式,所述步骤调度方式包括串行和并行;所述关键字库为文本文件或表格文件。
4.根据权利要求3所述的通用执行器的自动化测试方法,其特征在于,所述根据当前测试步骤的步骤参数,采用跨语言函数调用方式调用并执行目标测试动作函数,得到当前测试步骤的步骤测试结果,包括:
5.根据权利要求4所述的通用执行器的自动化测试方法,其特征在于,所述根据所述步骤测试结果,确定当前测试用例的用例测试结果,包括:
6.根据权利要求1所述的通用执行器的自动化测试方法,其特征在于,还包括:
7.根据权利要求1至6任一项所述的通用执行器的自动化测试方法,其特征在于,还包括:
8.一种通用执行器的自动化测试装置,其特征在于,包括:
9.一种通用执行器的自动化测试设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的通用执行器的自动化测试方法的步骤。