自动化测试方法、系统及电子设备与流程

文档序号:29310787发布日期:2022-03-19 20:01阅读:100来源:国知局
自动化测试方法、系统及电子设备与流程

1.本技术涉及自动化测试技术领域,特别涉及一种自动化测试方法、系统及电子设备。


背景技术:

2.在软件开发过程中,通常需要进行自动化测试,自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程,通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程进行一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
3.针对自动化测试的实施,现有技术通常会选择在自动化测试执行机上部署自动化测试系统以执行自动化测试;但是当环境出现问题时,测试被中断,无法形成自动化测试报告,并且之前的测试数据也无法固化保留;同时在自动化测试执行机资源不足时,无法动态分配资源,并且 在多线程执行时,资源不足会限制执行效率。
4.因此,亟需一种能够提高执行效率且优化自动化测试报告的自动化测试方法以解决现有技术的上述技术问题。


技术实现要素:

5.为了解决现有技术的不足,本技术的主要目的在于提供一种自动化测试方法、系统及电子设备,以解决现有技术的上述技术问题。
6.为了达到上述目的,第一方面本技术提供了一种自动化测试方法,所述方法包括:根据配置文件生成容器镜像并上传到容器平台;所述容器平台根据所述容器镜像生成容器应用并在所述容器应用中部署测试环境;为所述容器应用配置存活探针,修正所述测试环境;根据预设弹性伸缩策略,自动为所述容器应用分布资源;在所述容器应用中运行测试用例,生成测试结果,以确定自动化测试报告。
7.在一些实施例中,所述在所述容器应用中运行测试用例,生成测试结果,以确定自动化测试报告还包括:在所述容器应用中挂载共享存储并将所述测试结果写入所述共享存储;在自动化测试任务执行中断和/或执行完成时,读取所述共享存储中的所述测试结果,生成所述自动化测试报告。
8.在一些实施例中,所述容器应用包括至少一个pod,所述为据容器应用配置存活探针,修正所述测试环境,包括:根据所述存活探针检测pod运行状态;若检测到的所述pod运行状态为异常,则删除运行状态异常的异常pod;根据正常运行的pod,重建所述异常pod,以修正所述测试环境。
9.在一些实施例中,所述预设弹性伸缩策略包括水平弹性伸缩策略及垂直弹性伸缩策略,所述根据预设弹性伸缩策略,自动为所述容器应用分布资源,包括:资源紧张时,触发所述水平弹性伸缩策略,扩充所述pod内部资源。
10.在一些实施例中,所述根据预设弹性伸缩策略,自动为所述容器应用分布资源,还包括:新增所述自动化测试任务时,触发所述垂直弹性伸缩策略,在所述容器应用内新增与所述新增自动化测试任务数量对应的pod。
11.在一些实施例中,所述在所述容器应用中挂载共享存储并将所述测试结果写入所述共享存储,还包括:在将所述测试结果写入所述共享存储时,在所述测试结果中添加任务标识;根据所述任务标识整理所述测试结果,以生成所述测试报告。
12.在一些实施例中,所述配置文件包括自动化测试任务脚本和/自动化测试任务代码。
13.第二方面,本技术提供了一种自动化测试系统,所述系统包括:准备模块:根据配置文件生成容器镜像并上传到容器平台;部署模块:所述容器平台根据所述容器镜像生成容器应用并在所述容器应用中部署测试环境;处理模块:为所述容器应用配置存活探针,修正所述测试环境;所述处理模块还用于根据预设弹性伸缩策略,自动为所述容器应用分布资源;运行模块:在所述容器应用中运行测试用例,生成测试结果,以确定自动化测试报告。
14.在一些实施例中,所述系统还包括:报告生成模块:在所述容器应用中挂载共享存储并将所述测试结果写入所述共享存储;所述报告生成模块还用于在自动化测试任务执行中断和/或执行完成时,读取所述共享存储中的所述测试结果,生成所述自动化测试报告。
15.第三方面,本技术提供了一种电子设备,所述电子设备包括:一个或多个处理器;以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:根据配置文件生成容器镜像并上传到容器平台;所述容器平台根据所述容器镜像生成容器应用并在所述容器应用中部署测试环境;为所述容器应用配置存活探针,修正所述测试环境;根据预设弹性伸缩策略,自动为所述容器应用分布资源;在所述容器应用中运行测试用例,生成测试结果,以确定自动化测试报告。
16.本技术实现的有益效果为:本技术提供了一种自动化测试方法,包括根据配置文件生成容器镜像并上传到容器平台;所述容器平台根据所述容器镜像生成容器应用并在所述容器应用中部署测试环
境;为所述容器应用配置存活探针,修正所述测试环境;根据预设弹性伸缩策略,自动为所述容器应用分布资源;在所述容器应用中运行测试用例,生成测试结果,以确定自动化测试报告。在自动化测试任务执行过程中出现资源不足情况会自动增加资源配额或者增加pod副本数,提升自动化执行容器的处理效率;在异常中断时,仍然可以从共享存储中获取已执行部分的测试结果,形成报告;在容器应用运行异常时,重建pod,形成高可用,提高容器应用的适用性。
附图说明
17.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,其中:图1是本技术实施例提供的自动化测试方法示意图;图2是本技术实施例提供的自动化测试方法流程图;图3是本技术实施例提供的系统结构图;图4是本技术实施例提供的电子设备结构图。
具体实施方式
18.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
19.应当理解,在本技术的描述中,除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
20.还应当理解,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。
21.需要注意的是,术语“s1”、“s2”等仅用于步骤的描述目的,并非特别指称次序或顺位的意思,亦非用以限定本技术,其仅仅是为了方便描述本技术的方法,而不能理解为指示步骤的先后顺序。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
22.实施例一为实现本技术公开的自动化测试方法,本技术实施例提供了一种k8s(kubernetes)容器平台,如图1,应用本实施例公开的容器平台获取自动化测试报告的过程包括:s100、将自动化测试代码和/或脚本做成容器镜像,并上传到k8s容器平台。
23.kubernetes是开源的基于容器的集群管理平台,kubernetes的目标是实现部署容器化的应用,提供了应用部署,规划,更新,维护的一种机制,简称 k8s。一个k8s系统,通常
称为一个k8s集群(cluster),主要包括两个部分:若干个master节点(主节点),一群node节点(计算节点)。k8s集群是容器化的管理系统,是容器运行所需云资源的集合。它由若干工作节点(云主机或者物理机)、负载均衡、网络等资源组成,为容器化的应用提供了资源调度、部署运行和服务发现以及node节点的扩容、缩容等丰富多样的功能。
24.s200、根据容器镜像在k8s容器平台中生成容器应用。
25.具体的,上述容器应用的生成过程还包括:s210、部署容器应用中的测试环境,使得容器中的测试环境与自动化测试环境一致。
26.s220、为容器应用配置存活探针,以修正测试环境。
27.在容器应用内,测试环境出现异常即pod的运行状态异常,此时利用存活探针检测容器应用内pod的运行状态。当存活探针检测到pod的运行状态异常时,利用k8s容器平台pod一次创建后可无线复制的特性,删除运行状态异常的异常pod;并复制其他正常运行的pod,重新构建一个新的pod来代替异常pod,以完成对出现异常的测试环境的修正。
28.其中,pod指的是k8s集群中的应用负载,pod运行在节点上,pod由一个或者多个容器组成,它们共享容器存储、网络和容器运行配置项。pod中的容器总是被同时调度,有共同的运行环境。
29.s230、在容器应用内配置弹性伸缩策略,自动为容器应用分布资源。
30.具体的,上述资源的自动分布过程包括:s231、在资源紧张时,触发水平弹性伸缩策略,自动增加内存或修改cpu配置,扩充pod内部资源。
31.具体的,k8s容器平台在运行测试用例之前,预先分配定量的内存给pod,在资源紧张时,再次分配定量的内存给pod,若这次分配给pod的内存仍旧不够,则再次分配定量的内存给pod,直到pod的内部资源足够支持运行测试用例;优选的,定量的内存可以是2g的内存等,本技术在此不做限定。此外,还可以通过修改pod的cpu配置对pod的内部资源进行扩充,具体方法与增加内存扩充pod的内部资源类似,在此不做赘述。
32.s232、新增自动化测试任务时,触发垂直弹性伸缩策略,在容器内新增与新增加的自动化测试任务数据对应的pod。
33.s300、运行测试用例,生成测试结果并确定自动化测试报告。
34.具体的,在容器应用中运行测试用例,生成测试结果。在将测试结果写入共享存储时,对运行同一测试用例产生的测试结果添加同一任务标识,并在生成自动化测试报告时,依据任务标识,将测试结果按照不同的任务标识进行分组,即根据不同的测试用例对测试结果进行分组,使得自动化测试报告更加清楚简明。
35.其中,共享存储挂载在容器应用中,用于写入运行测试用例所产生的测试结果。在自动化测试任务执行中断或者在自动化测试任务执行完成时,用户可从共享存储中读取测试结果,以生成测试报告。无论自动化测试是否中断,已经运行测试用例产生的测试结果都会写入并固化到共享存储中,以供用户参考。
36.值得注意的是,本技术还可应用于除k8s外其他任何能够将自动化测试容器化的容器平台。
37.基于本技术实施例公开的自动化测试方法,自动化测试任务执行过程中出现资源
不足情况会自动增加资源配额或者增加pod副本数,以提升自动化执行容器的处理效率;在异常中断时,仍然可以从共享存储中获取已执行部分的测试结果,形成报告;在容器应用运行异常时,重建pod,形成高可用。
38.实施例二对应上述实施例,本技术提供了一种自动化测试方法,如图2所示,所述方法包括:2100、根据配置文件生成容器镜像并上传到容器平台;优选的,所述配置文件包括自动化测试任务脚本和/自动化测试任务代码。
39.2200、所述容器平台根据所述容器镜像生成容器应用并在所述容器应用中部署测试环境;2300、为所述容器应用配置存活探针,修正所述测试环境;优选的,所述容器应用包括至少一个pod,所述为据容器应用配置存活探针,修正所述测试环境,包括:2310、根据所述存活探针检测pod运行状态;2320、若检测到的所述pod运行状态为异常,则删除运行状态异常的异常pod;2330、根据正常运行的pod,重建所述异常pod,以修正所述测试环境。
40.2400、根据预设弹性伸缩策略,自动为所述容器应用分布资源;优选的,所述预设弹性伸缩策略包括水平弹性伸缩策略及垂直弹性伸缩策略,所述根据预设弹性伸缩策略,自动为所述容器应用分布资源,包括:2410、资源紧张时,触发所述水平弹性伸缩策略,扩充所述pod内部资源。
41.优选的,所述根据预设弹性伸缩策略,自动为所述容器应用分布资源,还包括:2420、新增所述自动化测试任务时,触发所述垂直弹性伸缩策略,在所述容器应用内新增与所述新增自动化测试任务数量对应的pod。
42.2500、在所述容器应用中运行测试用例,生成测试结果,以确定自动化测试报告。
43.优选的,所述在所述容器应用中运行测试用例,生成测试结果,以确定自动化测试报告还包括:2510、在所述容器应用中挂载共享存储并将所述测试结果写入所述共享存储;优选的,所述在所述容器应用中挂载共享存储并将所述测试结果写入所述共享存储,还包括:2511、在将所述测试结果写入所述共享存储时,在所述测试结果中添加任务标识;2512、根据所述任务标识整理所述测试结果,以生成所述测试报告。
44.2520、在自动化测试任务执行中断和/或执行完成时,读取所述共享存储中的所述测试结果,生成所述自动化测试报告。
45.实施例三如图3所示,对应上述实施例一和实施例二,本技术实施例提供一种自动化测试系统300,包括:准备模块310:根据配置文件生成容器镜像并上传到容器平台;部署模块320:所述容器平台根据所述容器镜像生成容器应用并在所述容器应用中部署测试环境;处理模块330:为所述容器应用配置存活探针,修正所述测试环境;
所述处理模块330还用于根据预设弹性伸缩策略,自动为所述容器应用分布资源;运行模块340:在所述容器应用中运行测试用例,生成测试结果,以确定自动化测试报告。
46.在一些实施例中,所述系统还包括报告生成模块350,所述报告生成模块350用于在所述容器应用中挂载共享存储并将所述测试结果写入所述共享存储;所述报告生成模块350还用于在自动化测试任务执行中断和/或执行完成时,读取所述共享存储中的所述测试结果,生成所述自动化测试报告。
47.在一些实施例中,所述处理模块330还用于根据所述存活探针检测pod运行状态;若检测到的所述pod运行状态为异常,则删除运行状态异常的异常pod;根据正常运行的pod,重建所述异常pod,以修正所述测试环境。
48.在一些实施例中,所述处理模块330还用于在资源紧张时,触发所述水平弹性伸缩策略,扩充所述pod内部资源。
49.在一些实施例中,所述处理模块330还用于在新增所述自动化测试任务时,触发所述垂直弹性伸缩策略,在所述容器应用内新增与所述新增自动化测试任务数量对应的pod。
50.在一些实施例中,所述报告生成模块350还用于在将所述测试结果写入所述共享存储时,在所述测试结果中添加任务标识;根据所述任务标识整理所述测试结果,以生成所述测试报告。
51.实施例四对应上述所有实施例,本技术实施例提供一种电子设备,包括: 一个或多个处理器;以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:根据配置文件生成容器镜像并上传到容器平台;所述容器平台根据所述容器镜像生成容器应用并在所述容器应用中部署测试环境;为所述容器应用配置存活探针,修正所述测试环境;根据预设弹性伸缩策略,自动为所述容器应用分布资源;在所述容器应用中运行测试用例,生成测试结果,以确定自动化测试报告。
52.其中,图4示例性的展示出了电子设备的架构,具体可以包括处理器410,视频显示适配器411,磁盘驱动器412,输入/输出接口413,网络接口414,以及存储器420。上述处理器410、视频显示适配器411、磁盘驱动器412、输入/输出接口413、网络接口414,与存储器420之间可以通过总线430进行通信连接。
53.其中,处理器410可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本技术所提供的技术方案。
54.存储器420可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储用于控制电子设备400运行的操作系统421,用于控制电子设备400的低级别操作的基本输入输出系统(bios)422。另外,还可以存储网页浏览器423,数据存储管理系统424,以及图标字体处理系统425等等。上述图标字体处理系统425就可以是本技术实施例中具体实现前述
各步骤操作的应用程序。总之,在通过软件或者固件来实现本技术所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
55.输入/输出接口413用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
56.网络接口414用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
57.总线430包括一通路,在设备的各个组件(例如处理器410、视频显示适配器411、磁盘驱动器412、输入/输出接口413、网络接口414,与存储器420)之间传输信息。
58.另外,该电子设备400还可以从虚拟资源对象领取条件信息数据库中获得具体领取条件的信息,以用于进行条件判断,等等。
59.需要说明的是,尽管上述设备仅示出了处理器410、视频显示适配器411、磁盘驱动器412、输入/输出接口413、网络接口414,存储器420,总线430等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本技术方案所必需的组件,而不必包含图中所示的全部组件。
60.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,云服务器,或者网络设备等)执行本技术各个实施例或者实施例的某些部分所述的方法。
61.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
62.以上所述仅为本技术的较佳实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1