一种基于容器化的测试方法、装置及电子设备
文献发布时间:2023-06-19 13:45:04
技术领域
本发明涉及测试领域,尤其涉及一种基于容器化的测试方法、装置及电子设备。
背景技术
为了适应不同的测试需求,当前存在自动化测试和混沌测试两种方式,其中,自动化测试是把以人为驱动的测试行为转换为机器执行,主要是在预设条件下运行系统或应用程序,评估运行结果。混沌测试为通过在现有运行环境中注入故障来发现系统或应用的兼容性问题。
但是,现有技术中,自动化测试和混沌测试都是单体化的,即二者无法同时在应用环境中运行。
发明内容
有鉴于此,本发明实施例公开了一种基于容器化的测试方法、装置及电子设备,通过容器化的方式,实现了在同一个应用环境中同时运行自动化测试和混沌测试的目的,一方面提升了测试的效率,另一方面也使得测试更加的全面。
本发明实施例公开了一种基于容器化的测试方法、包括:
响应于测试指令,将待测试的对象部署到第一服务器上;
将包含有自动化测试脚本的第一镜像文件和配置文件部署到第二服务器上,并将包含有混沌测试脚本的第二镜像文件部署到第一服务器上;所述第一镜像文件是基于容器的方式对自动化测试脚本进行打包后得到的,所述第二镜像文件是基于容器的方式对混沌测试脚本进行打包后得到的;
响应于自动化测试启动指令,对所述待测试对象进行自动化测试;
响应于混沌测试启动指令,对所述待测试对象进行混沌测试。
可选的,所述将待测试的对象部署到第一服务器上,包括:
基于容器化的方式将待测试的对象进行打包;
并部署到第一服务器上。
可选的,还包括:
获取所述第一服务器的IP地址和用户的相关信息;
根据所述第一服务器的IP地址和用户的相关信息,部署混沌测试代理到所述第一服务器;
和/或
获取所述第一服务器的IP地址和用户的相关信息;
根据所述第一服务器的IP地址和用户的相关信息,部署混沌测试监控工具到所述第一服务器上。
可选的,所述响应于自动化测试启动指令,对所述待测试对象进行自动化测试,包括:
启动第一镜像文件,得到自动化测试容器;
将配置文件映射到所述自动化测试容器中。
可选的,还包括:
响应于自动化测试停止指令,删除所述第一镜像文件;
响应于混沌测试停止指令,删除所述第二镜像文件。
本发明实施例公开了一种基于容器化的测试装置,包括:
第一部署单元,用于响应于测试指令,将待测试的对象部署到第一服务器上;
第二部署单元,用于将包含有自动化测试脚本的第一镜像文件和配置文件部署到第二服务器上,并将包含有混沌测试脚本的第二镜像文件部署到第一服务器上;所述第一镜像文件是基于容器的方式对自动化测试脚本进行打包后得到的,所述第二镜像文件是基于容器的方式对混沌测试脚本进行打包后得到的;
自动化测试单元,用于响应于自动化测试启动指令,对所述待测试对象进行自动化测试;
混沌测试单元,用于响应于混沌测试启动指令,对所述待测试对象进行混沌测试。
可选的,所述第一部署单元,用于:
第一打包子单元,用故意基于容器化的方式将待测试的对象进行打包;
第一部署子单元,用于并部署到第一服务器上。
可选的,还包括:
第一获取子单元,用于获取所述第一服务器的IP地址和用户的相关信息;
第二部署子单元,用于根据所述第一服务器的IP地址和用户的相关信息,部署混沌测试代理到所述第一服务器;
和/或
第二获取子单元,用于获取所述第一服务器的IP地址和用户的相关信息;
第三部署子单元,用于根据所述第一服务器的IP地址和用户的相关信息,部署混沌测试监控工具到所述第一服务器上。
可选的,还包括:
第一停止单元,用于响应于自动化测试停止指令,删除所述第一镜像文件;
第二停止单元,用于响应于混沌测试停止指令,删除所述第二镜像文件。
本发明实施例公开了一种电子设备,包括:
存储器和处理器;
所述存储器用于存储程序,所述处理器用于在执行所述程序时,执行上述所述的基于容器化的测试方法。
本发明实施例公开了一种基于容器化的测试方法、装置及电子设备,该方法包括:响应于测试指令,将待测试的对象部署到第一服务器上,将包含有自动化测试脚本的第一镜像文件和配置文件部署到第二服务器上,并将包含有混沌测试脚本的第二镜像文件部署到第一服务器上;所述第一镜像文件是基于容器的方式对自动化测试脚本进行打包后得到的,所述第二镜像文件是基于容器的方式对混沌测试脚本进行打包后得到的;响应于自动化测试启动指令,对所述待测试对象进行自动化测试。由此,通过容器化的方式,实现了在同一个应用环境中同时运行自动化测试和混沌测试的目的,一方面提升了测试的效率,另一方面也使得测试更加的全面。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本发明实施例1提供的一种基于容器化的测试方法的流程示意图;
图2示出了本发明实施例2提供的一种基于容器化的测试方法的流程示意图;
图3示出了本发明实施例提供的一种基于容器化的测试装置的结构示意图;
图4示出了本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
参考图1,示出了本发明实施例1提供的一种基于容器化的测试方法的流程示意图,在本实施例中,该方法包括:
S101:响应于测试指令,将待测试的对象部署到第一服务器上;
本实施例中,测试指令可以是人为触发的,也可以是基于预设的规则触发的。
在一种实施方式下,检测是否存在符合预设条件的程序;其中,预设条件可以为新增加的程序或者发生了变更的程序;当检测到符合预设条件的程序时,则触发测试指令,并将符合预设条件的程序作为待测试的对象。
本实施例中,将待测试的对象部署到第一服务器上的过程可以包括如下的两种实施方式:
实施方式一、直接将待测试的对象进行打包,并部署到第一服务器上;
实施方式二、基于容器化的方式将待测试的对象进行打包,并部署到第一服务器上。
第一服务器可以是预先设置的。
S102:将包含有自动化测试脚本的第一镜像文件和配置文件部署到第二服务器上,并将包含有混沌测试脚本的第二镜像文件部署到第一服务器上;所述第一镜像文件是基于容器的方式对自动化测试脚本进行打包后得到的,所述第二镜像文件是基于容器的方式对混沌测试脚本进行打包后得到的;
本实施例中,预先将自动化测试脚本以容器化的方式进行打包,得到第一镜像文件,预先将混沌测试脚本以容器化的方式进行打包,得到第二镜像文件,那么自动化测试和混沌测试通过容器的方式,部署在了两个独立的空间中。
将包含有自动化测试脚本的第一镜像文件部署到第二服务器上,其中,第二服务器和第一服务器可以是相同的服务器,或者第二服务器可以为与第一服务器能够进行通信的服务器。
本实施例中,配置文件中包含有自动化测试所需的参数信息,例如包括:服务器IP地址、端口信息、路径信息(路径信息包括:配置文件的路径、脚本的路径、生成报告后的存储路径等)等。
S103:响应于自动化测试启动指令,对所述待测试对象进行自动化测试;
本实施例中,启动自动化测试后,启动第一镜像文件,得到自动化测试容器,并将配置文件映射到所述自动化测试容器中。
自动化测试完成后,将生成的报告按照预设的存储地址进行存储。
S104:响应于混沌测试启动指令,对所述待测试对象进行混沌测试。
需要知道的是,自动化测试启动指令和混沌测试启动指令可以是同时进行的,也可以是按照先后顺序执行的,具体的执行顺序基于需求进行设置。
本实施例中,混沌测试启动后,包括:
获取第一服务器的环境信息;
确定混沌实验类型;
基于所述混沌实验类型和第一服务器的环境信息,创建混沌实验。
本实施例中,混沌实验类型可以包括多种,可以基于需求预先设置混沌实验类型,其中,混沌实验类型可以包括:CPU繁忙,填充磁盘,查杀进程,网络延迟,Dubbo,MySQL,Servlet和Java应用程序类延迟或异常等。
进一步的,在启动混沌测试之前,还包括:
获取所述第一服务器的IP地址和用户的相关信息;
根据所述第一服务器的IP地址和用户的相关信息,部署混沌测试代理到所述第一服务器;
和/或
获取所述第一服务器的IP地址和用户的相关信息;
根据所述第一服务器的IP地址和用户的相关信息,部署混沌测试监控工具到所述第一服务器上。
在一种实施方式下,自动化测试在执行用例时,Dubbo服务请求参数的预处理过程,包括:
用例执行前,加载用例中参数值和服务对应的json文件中参数值,合二为一(用例中参数值优先
用例执行时,加载环境信息,获取开发环境(或测试环境)下相应服务的IP和Port
其中,每个Dubbo服务请求参数,都保存在一个独立的json文件中。此文件中包含:request的所有参数字段(参数值有2种方式:)和服务名,方法名等信息,并且,所有json文件都保存在一个文件。
由此,就获取到真正发送请求前的所有必备信息,包括:服务provider的ip,port,和真正的请求参数。
本实施例中,响应于测试指令,将待测试的对象部署到第一服务器上,将包含有自动化测试脚本的第一镜像文件和配置文件部署到第二服务器上,并将包含有混沌测试脚本的第二镜像文件部署到第一服务器上;所述第一镜像文件是基于容器的方式对自动化测试脚本进行打包后得到的,所述第二镜像文件是基于容器的方式对混沌测试脚本进行打包后得到的;响应于自动化测试启动指令,对所述待测试对象进行自动化测试。由此,通过容器化的方式,实现了在同一个应用环境中同时运行自动化测试和混沌测试的目的,一方面提升了测试的效率,另一方面也使得测试更加的全面。
在一种实施方式下,上述实施例1执行的过程,可以基于流水线实现,其中,S102的步骤可以基于流水线的插件实现。
其中,流水线:又表示为“pipeline”是可以执行的一系列事件或作业。
插件:Plug-in(又称addin、add-in)是一种遵循一定规范的应用程序接口编写出来的程序。其只能运行在程序规定的系统平台下(可能同时支持多个平台)
进一步的,进行自动化测试和混沌测试的过程中,当某个测试完成或者基于需求需要停止的情况下,在上述实施例1的基础上,参考图2,示出了本发明实施例2提供的一种基于容器化的测试方法的流程示意图,在本实施例中,该方法还包括:
S201:响应于测试指令,将待测试的对象部署到第一服务器上;
本实施例中,S201与上述S101一致,本实施例中不再赘述。
S202:将包含有自动化测试脚本的第一镜像文件和配置文件部署到第二服务器上,并将包含有混沌测试脚本的第二镜像文件部署到第一服务器上;所述第一镜像文件是基于容器的方式对自动化测试脚本进行打包后得到的,所述第二镜像文件是基于容器的方式对混沌测试脚本进行打包后得到的;
本实施例中,S202与上述S101一致,本实施例中不再赘述。
S203:响应于自动化测试启动指令,对所述待测试对象进行自动化测试;
本实施例中,S203与上述S103一致,本实施例中不再赘述。
S204:响应于混沌测试启动指令,对所述待测试对象进行混沌测试。
本实施例中,S204与上述S104一致,本实施例中不再赘述。
S205:响应于自动化测试停止指令,删除所述第一镜像文件;
S206:响应于混沌测试停止指令,删除所述第二镜像文件。
本实施例中,自动化测试停止指令可以是在自动化测试运行完成后,自动触发的,也可以是根据需求人为触发的。
本实施例中,混沌测试指令可以是在混沌测试运行完成后,自动触发的,也可以是根据需求任务触发的。
本实施例中,通过上述的方式,实现了在同一个应用环境中同时运行自动化测试和混沌测试的目的,而且实现了自动化测试和混动测试的即插即用。
实施例3
参考图3,示出了本发明实施例提供的一种基于容器化的测试装置的结构示意图,在本实施例中,该装置包括:
第一部署单元301,用于响应于测试指令,将待测试的对象部署到第一服务器上;
第二部署单元302,用于将包含有自动化测试脚本的第一镜像文件和配置文件部署到第二服务器上,并将包含有混沌测试脚本的第二镜像文件部署到第一服务器上;所述第一镜像文件是基于容器的方式对自动化测试脚本进行打包后得到的,所述第二镜像文件是基于容器的方式对混沌测试脚本进行打包后得到的;
自动化测试单元303,用于响应于自动化测试启动指令,对所述待测试对象进行自动化测试;
混沌测试单元304,用于响应于混沌测试启动指令,对所述待测试对象进行混沌测试。
可选的,所述第一部署单元,用于:
第一打包子单元,用故意基于容器化的方式将待测试的对象进行打包;
第一部署子单元,用于并部署到第一服务器上。
可选的,还包括:
第一获取子单元,用于获取所述第一服务器的IP地址和用户的相关信息;
第二部署子单元,用于根据所述第一服务器的IP地址和用户的相关信息,部署混沌测试代理到所述第一服务器;
和/或
第二获取子单元,用于获取所述第一服务器的IP地址和用户的相关信息;
第三部署子单元,用于根据所述第一服务器的IP地址和用户的相关信息,部署混沌测试监控工具到所述第一服务器上。
可选的,还包括:
第一停止单元,用于响应于自动化测试停止指令,删除所述第一镜像文件;
第二停止单元,用于响应于混沌测试停止指令,删除所述第二镜像文件。
通过本实施例的装置,响应于测试指令,将待测试的对象部署到第一服务器上,将包含有自动化测试脚本的第一镜像文件和配置文件部署到第二服务器上,并将包含有混沌测试脚本的第二镜像文件部署到第一服务器上;所述第一镜像文件是基于容器的方式对自动化测试脚本进行打包后得到的,所述第二镜像文件是基于容器的方式对混沌测试脚本进行打包后得到的;响应于自动化测试启动指令,对所述待测试对象进行自动化测试。由此,通过容器化的方式,实现了在同一个应用环境中同时运行自动化测试和混沌测试的目的,一方面提升了测试的效率,另一方面也使得测试更加的全面。
实施例4:
参考图4,示出了本发明实施例提供的一种电子设备的结构示意图,在本实施例中,该电子设备包括:
存储器401和处理器402;
所述存储器401用于存储程序,所述处理器402用于在执行所述程序时,执行下述所述的基于容器化的测试方法:
响应于测试指令,将待测试的对象部署到第一服务器上;
将包含有自动化测试脚本的第一镜像文件和配置文件部署到第二服务器上,并将包含有混沌测试脚本的第二镜像文件部署到第一服务器上;所述第一镜像文件是基于容器的方式对自动化测试脚本进行打包后得到的,所述第二镜像文件是基于容器的方式对混沌测试脚本进行打包后得到的;
响应于自动化测试启动指令,对所述待测试对象进行自动化测试;
响应于混沌测试启动指令,对所述待测试对象进行混沌测试。
可选的,所述将待测试的对象部署到第一服务器上,包括:
基于容器化的方式将待测试的对象进行打包;
并部署到第一服务器上。
可选的,还包括:
获取所述第一服务器的IP地址和用户的相关信息;
根据所述第一服务器的IP地址和用户的相关信息,部署混沌测试代理到所述第一服务器;
和/或
获取所述第一服务器的IP地址和用户的相关信息;
根据所述第一服务器的IP地址和用户的相关信息,部署混沌测试监控工具到所述第一服务器上。
可选的,所述响应于自动化测试启动指令,对所述待测试对象进行自动化测试,包括:
启动第一镜像文件,得到自动化测试容器;
将配置文件映射到所述自动化测试容器中。
可选的,还包括:
响应于自动化测试停止指令,删除所述第一镜像文件;
响应于混沌测试停止指令,删除所述第二镜像文件。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
- 一种基于容器化的测试方法、装置及电子设备
- 一种基于微服务化的虚拟信用卡交易场景的自动化测试方法、装置和电子设备