CN116302191A - 测试程序的运行方法、装置、计算机设备、存储介质 - Google Patents
测试程序的运行方法、装置、计算机设备、存储介质 Download PDFInfo
- Publication number
- CN116302191A CN116302191A CN202310268401.4A CN202310268401A CN116302191A CN 116302191 A CN116302191 A CN 116302191A CN 202310268401 A CN202310268401 A CN 202310268401A CN 116302191 A CN116302191 A CN 116302191A
- Authority
- CN
- China
- Prior art keywords
- program
- configuration information
- generating
- test
- container
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012360 testing method Methods 0.000 claims abstract description 84
- 238000009434 installation Methods 0.000 claims abstract description 38
- 230000006870 function Effects 0.000 claims abstract description 29
- 238000004590 computer program Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 8
- 230000007613 environmental effect Effects 0.000 claims description 6
- 238000013515 script Methods 0.000 abstract description 9
- 230000005012 migration Effects 0.000 abstract description 2
- 238000013508 migration Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000005591 Swarts synthesis reaction Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及一种测试程序的运行、装置、计算机设备、存储介质。所述方法包括:获取测试程序的程序配置信息;根据所述程序配置信息以及环境镜像生成部署镜像,所述环境镜像包括:程序语言和安装包,所述程序语言包括多种类型以及每种类型对应的多种版本;至少根据所述程序配置信息生成运行文件;利用所述运行文件和所述部署镜像在第一集群中生成运行容器,启动所述运行容器,所述运行容器用于执行所述测试程序的测试功能。采用本方法能够减少传统部署方式下自动化测试脚本运行的部署环境迁移的工作量,提高测试效率。
Description
技术领域
本公开涉及自动化测试技术领域,特别是涉及一种测试程序的运行方法、装置、计算机设备、存储介质。
背景技术
随着自动化测试技术的发展,自动化测试可以是把以人为驱动的测试行为转化为机器执行的一种过程。相较于人工手动测试的方式,自动化测试在此过程中,可以节省人力、时间或硬件资源,并提高测试效率。
然而,在自动化测试的过程中,通常需要人工搭建测试环境,进而在测试环境中运行对应的测试脚本。而不同类型的测试过程中,不同的自动化测试脚本运行依赖各种不同的部署环境,传统的部署方式,需要创建不同的部署环境,以执行不同部署环境下的测试脚本。
因此,针对不同类型的测试过程中,需要在不同的部署环境下进行运行自动化测试脚本,因此需要对部署环境进行迁移,会增加额外的工作量,降低自动化测试的测试效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够减少传统部署方式下自动化测试脚本运行的部署环境迁移的工作量,提高测试效率的测试程序的运行方法、装置、计算机设备、存储介质。
第一方面,本公开提供了一种测试程序的运行方法。所述方法包括:
获取测试程序的程序配置信息;
根据所述程序配置信息以及环境镜像生成部署镜像,所述环境镜像包括:程序语言和安装包,所述程序语言包括多种类型以及每种类型对应的多种版本;
至少根据所述程序配置信息生成运行文件;
利用所述运行文件和所述部署镜像在第一集群中生成运行容器,启动所述运行容器,所述运行容器用于执行所述测试程序的测试功能。
在其中一个实施例中,所述程序配置信息至少包括:环境配置信息和参数配置信息;所述根据所述程序配置信息以及环境镜像生成部署镜像,包括:
根据所述环境配置信息和所述环境镜像生成所述部署镜像,所述环境配置信息包括:所述测试程序运行时所需的程序语言信息和安装包信息,所述程序语言信息包括程序语言的类型和所述程序语言的版本信息;
所述至少根据所述程序配置信息生成运行文件,包括:
根据所述参数配置信息生成运行文件,所述运行文件中包括:所述运行容器运行的第一集群和命名空间。
在其中一个实施例中,所述根据所述环境配置信息和所述环境镜像生成所述部署镜像,包括:
根据所述测试程序运行时所需的程序语言的版本信息和所述安装包信息确定所述环境镜像中目标环境镜像,所述目标环境镜像中包括:所述测试程序运行时所需的程序语言、所述程序语言的版本和所述安装包;
利用所述目标环境镜像生成所述部署镜像。
在其中一个实施例中,所述至少根据所述程序配置信息生成运行文件,包括:
根据所述参数配置信息和运行所述运行容器的第一数据资源生成运行文件,所述运行文件中包括:所述运行容器运行的集群和命名空间。
在其中一个实施例中,所述启动所述运行容器之后,所述方法还包括:
获取运行所述运行容器时使用的第二数据资源;
响应于所述第二数据资源大于所述第一数据资源,根据所述参数配置信息和第三数据资源生成运行文件,所述第三数据资源大于等于所述第二数据资源;
响应于所述第二数据资源小于所述第一数据资源,且所述第一数据资源和所述第二数据资源之间的资源差值大于预设的资源阈值,根据所述参数配置信息和第三数据资源生成运行文件,所述第三数据资源大于等于所述第二数据资源,所述第三数据资源和所述第二数据资源之间的资源差值小于等于所述资源阈值。
在其中一个实施例中,所述方法还包括:
响应于需要运行第二测试程序;
利用所述第二测试程序对应的运行文件和所述第二测试程序的部署镜像在第二集群中生成第二运行容器;
启动所述第二运行容器,所述第二运行容器用于执行所述第二测试程序的测试功能;
其中,所述第二运行容器和所述运行容器所对应的命名空间不相同,所述第二集群和所述第一集群为Kubernetes中的集群。
第二方面,本公开还提供了一种测试程序的运行装置。所述装置包括:
信息获取模块,用于获取测试程序的程序配置信息;
镜像生成模块,用于根据所述程序配置信息以及环境镜像生成部署镜像,所述环境镜像包括:程序语言和安装包,所述程序语言包括多种类型以及每种类型对应的多种版本;
运行文件生成模块,用于至少根据所述程序配置信息生成运行文件;
运行模块,用于利用所述运行文件和所述部署镜像在第一集群中生成运行容器,启动所述运行容器,所述运行容器用于执行所述测试程序的测试功能。
第三方面,本公开还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一方法实施例中的步骤。
第四方面,本公开还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
第五方面,本公开还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
上述各实施例中,利用测试程序的程序配置信息和环境镜像生成部署镜像以及运行文件,然后根据部署镜像和运行文件生成运行容器。无需针对不同的测试程序通过人工手动来部署测试程序的运行环境,针对不同的测试程序仅利用该测试程序对应的配置信息即可自动来生成运行容器,以执行测试功能,在不同的终端下,无需像传统部署方式下进行迁移运行环境。另外,通过运行容器的方式来执行测试程序的测试功能也能够减少对测试环境的依赖。区别于目前传统的直接利用脚本容器执行测试功能的方式。本案中测试程序所需运行的容器环境可以由程序配置信息和环境镜像动态生成,无须提前维护所有程序运行的容器,并且可以灵活的针对各种类型不同的测试程序进行动态生成,适应多种测试程序。除此之外,每个不同的测试程序依赖的语言和安装包千变万化,人工维护容器环境的工作量大,且可能存在未维护的容器环境导致无法启动测试功能,因此本案中根据不同测试程序的程序配置信息,能够生成对应的运行容器,不会存在未维护的情况,导致无法启动测试功能,能够提高测试效率。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中测试程序的运行方法的应用环境示意图;
图2为一个实施例中测试程序的运行方法的流程示意图;
图3为一个实施例中S204和S206步骤的流程示意图;
图4为一个实施例中S302步骤的流程示意图;
图5为一个实施例中S208步骤之后的流程示意图;
图6为一个实施例中运行第二测试程序的流程示意图;
图7为一个实施例中第一集群和第二集群相同的示意图;
图8为一个实施例中第一集群和第二集群不相同的示意图;
图9为另一个实施例中测试程序的运行方法的流程示意图;
图10为一个实施例中测试程序的运行装置的结构示意框图;
图11为一个实施例中计算机设备的内部结构示意图。
具体实施方式
为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本公开,并不用于限定本公开。
需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本公开实施例提供了一种测试程序的运行方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102可以在服务器104中获取测试程序的程序配置信息。终端102可以根据程序配置信息以及环境镜像在终端102中生成部署镜像。环境镜像包括:多种类型的程序语言对应的版本信息和安装包信息。终端102至少根据程序配置信息生成运行文件。终端102利用运行文件和部署镜像在服务器104的第一集群中生成运行容器,并在第一集群中启动运行容器。运行容器启动后可以用来执行测试程序的测试功能。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种测试程序的运行方法,以该方法应用于图1中的终端102为例进行说明,包括以下步骤:
S202,获取测试程序的程序配置信息。
其中,测试程序通常可以是自动化测试脚本,其可以自动执行测试任务,并得到测试结果。测试任务可以包括:单元自动化测试、接口自动化测试、UI自动化测试等等,在本公开的一些实施例中不对测试程序执行的测试任务进行限制。程序配置信息可以是测试程序所属的基本信息,如测试程序的代码、测试程序的测试功能、测试程序的执行次数、测试程序的执行时间以及测试程序执行时所需的各种环境信息等等。
具体地,需要运行测试程序的终端可以根据其运行的测试程序,在服务器中获取该测试程序的程序配置信息。该程序配置信息通常可以是预先存储在服务器中,或者在终端需要运行测试程序时,测试人员手动输入至服务器中的信息。
S204,根据所述程序配置信息以及环境镜像生成部署镜像,
其中,所述环境镜像包括:程序语言和安装包,所述程序语言包括多种类型以及每种类型对应的多种版本。程序语言的多种类型,例如可以包括:JAVA语言、python等等。例如程序语言为JAVA语言,则JAVA语言对应的版本信息可以是JAVA语言的jdk版本,如jdk7、jkd8和jdk9等。安装包信息通常可以是测试程序运行时依赖的安装包,例如源码包。部署镜像通常可以是一种包含了运行测试程序所必需的信息的文件。
S206,至少根据所述程序配置信息生成运行文件。
其中,运行文件通常可以是容器集群运行的编排文件,通过该文件可以创建对应的容器在对应的集群中。例如集群为kubernetes,则对应的运行文件可以是yaml文件,用于配置和管理,例如查看API资源版本标签、编写资源配置清单等。
具体地,可以根据程序配置信息来生成相对应的运行文件。
S208,利用所述运行文件和所述部署镜像在第一集群中生成运行容器,启动所述运行容器,所述运行容器用于执行所述测试程序的测试功能。
其中,第一集群通常可以是用户预先指定的,运行测试程序的集群。
具体地,终端102可以利用运行文件确定第一集群,然后在第一集群中利用运行文件和部署镜像生成运行容器,并启动该运行容器。这样通过将测试程序其对应的程序配置信息通过容器的方式来进行运行,在需要运行测试程序时,可以直接启动该运行容器,通过运行容器来执行测试程序的测试功能。
在一些示例性的实施例中,可以使用K8s、OpenShift、Docker Swarm等容器编排工具来生成运行容器。
上述测试程序的运行方法中,利用测试程序的程序配置信息和环境镜像生成部署镜像以及运行文件,然后根据部署镜像和运行文件生成运行容器。无需针对不同的测试程序通过人工手动来部署测试程序的运行环境,针对不同的测试程序仅利用该测试程序对应的配置信息即可自动来生成运行容器,以执行测试功能,在不同的终端下,无需像传统部署方式下进行迁移运行环境。另外,通过运行容器的方式来执行测试程序的测试功能也能够减少对测试环境的依赖。区别于目前传统的直接利用脚本容器执行测试功能的方式。本案中测试程序所需运行的容器环境可以由程序配置信息和环境镜像动态生成,无须提前维护所有程序运行的容器,并且可以灵活的针对各种类型不同的测试程序进行动态生成,适应多种测试程序。除此之外,每个不同的测试程序依赖的语言和安装包千变万化,人工维护容器环境的工作量大,且可能存在未维护的容器环境导致无法启动测试功能,因此本案中根据不同测试程序的程序配置信息,能够生成对应的运行容器,不会存在未维护的情况,导致无法启动测试功能,能够提高测试效率。
在一个实施例中,如图3所示,所述程序配置信息至少包括:环境配置信息和参数配置信息;环境配置信息中通常可以包括了测试程序运行所需环境信息包括测JAVA或Python等运行测试程序的语言版本号,测试程序运行依赖的安装包等。参数配置信息通常情况下可以包括:运行时的集群、命名空间、测试程序的启动命令、执行时长等等。
所述根据所述程序配置信息以及环境镜像生成部署镜像,包括:
S302,根据所述环境配置信息和所述环境镜像生成所述部署镜像,所述环境配置信息包括:所述测试程序运行时所需的程序语言信息和安装包信息,所述程序语言信息包括程序语言的类型和所述程序语言的版本信息。
具体地,因为程序配置信息中包括两种不同类型的信息,其中的环境配置信息通常是包括了测试程序运行时所需的各种环境信息,因此可以根据环境配置信息中的测试程序运行时所需的程序语言,以及该程序语言的版本信息和安装包信息在环境镜像中匹配相对应的信息,进而生成部署镜像。部署镜像通常情况下可以包括了测试程序运行时所需的各种环境信息的文件。
所述至少根据所述程序配置信息生成运行文件,包括:
S304,根据所述参数配置信息生成运行文件,所述运行文件中包括:所述运行容器运行的第一集群和命名空间。
具体地,测试人员可以手动输入参数配置信息,参数配置信息中通常情况下可以包括运行容器生成的指定的集群中以及命名空间中,还可以包括运行容器生成过程中一些所必需的信息。因此,可以根据参数配置信息来生成运行文件。运行文件中包括了:运行容器生成的指定的集群,如上述提及的第一集群,以及命名空间。设置命名空间是为了做到不同测试程序的运行环境之间的隔离,防止不同测试环境互相影响。因此,后续可以根据运行文件和部署镜像在对应的第一集群和命名空间中生成运行容器。
所述至少根据所述程序配置信息生成运行文件,包括:
S306,根据所述参数配置信息和运行所述运行容器的第一数据资源生成运行文件,所述运行文件中包括:所述运行容器运行的集群和命名空间。
其中,第一数据资源通常可以包括CPU、内存等资源。
具体地,测试人员还可以手动的来配置第一数据资源,第一数据资源通常可以是给运行容器运行时所分配的资源。进而根据第一数据资源和参数配置信息来生成运行文件,后续运行容器所占用的资源通常情况下为第一数据资源,保证服务器资源的利用率。
在本实施例中,因为不同的测试程序所依赖的环境不同,因此可以根据环境配置信息来匹配对应的环境,进而生成部署镜像。并且,由于可能会在服务器中运行不同的测试程序,为了保证互相之间不受影响,因此运行文件中可以包括每个运行容器所对应的第一集群和命名空间,将不同的运行容器进行隔离。
在一个实施例中,如图4所示,所述根据所述环境配置信息和所述环境镜像生成所述部署镜像,包括:
S402,根据所述测试程序运行时所需的程序语言的版本信息和所述安装包信息确定所述环境镜像中目标环境镜像,所述目标环境镜像中包括:所述测试程序运行时所需的程序语言、所述程序语言的版本和所述安装包;
S404,利用所述目标环境镜像生成所述部署镜像。
具体地,因为环境配置中包括测试程序运行时所需的程序语言、以及该程序语言对应的版本信息和所述安装包信息,因此可以根据上述信息在环境镜像中匹配相对应的环境镜像,得到目标环境镜像。然后利用目标环境镜像生成部署镜像。
在一些示例的实施例中,例如测试程序运行时所需的程序语言为A语言,版本信息为A1信息,安装包信息为C1信息。环境镜像中包括了A语言、B语言、A语言的A1版本、A2版本和A3版本,B语言的B1版本、B2版本和安装包C1、安装包C2。则可以利用A语言、A1信息和C1信息,在环境镜像中来匹配对应的信息,得到A语言、A1版本和C1安装包,然后通过A语言、A1版本和C1安装包来生成部署镜像。
在本实施例中,因为环境镜像中包括了多种类型和多种版本的程序语言和安装包,因此需要在环境镜像中利用测试程序运行时所需的程序语言的版本信息和所述安装包信息来找到测试环境所对应的程序语言和安装包,进而来确定目标镜像,进而根据目标镜像生成部署镜像,保证部署镜像中仅存在测试程序运行时所需的程序语言和安装包,能够提高生成运行容器的效率,进而提高测试效率。
在一个实施例中,如图5所示,所述启动所述运行容器之后,所述方法还包括:
S502,获取运行所述运行容器时使用的第二数据资源。
S504,判断第二数据资源和第一数据资源之间的关系。
S506,响应于所述第二数据资源大于所述第一数据资源,根据所述参数配置信息和第三数据资源生成运行文件,所述第三数据资源大于等于所述第二数据资源。
具体地,可以进行监控启动运行容器前后,服务器中资源的变化,进而获取到运行所述运行容器时,服务器所使用的第二数据资源。然后将第二数据资源和预先分配的第一数据资源进行比较。若第二数据资源大于第一数据资源,则可以确定预先分配的第一数据资源较少,不能够正常满足运行所述运行容器时的资源消耗。因此,此时可以设置第三数据资源,第三数据资源大于等于第二数据资源。然后利用第三数据资源和参数配置信息生成运行文件,进而根据该新生成的运行文件重新的生成运行容器,并启动,可以进行弹性的扩容。另外,通常情况下,第三数据资源略大于或者等于第二数据资源,可以保证服务器的资源的充分利用。
S508,响应于所述第二数据资源小于所述第一数据资源,且所述第一数据资源和所述第二数据资源之间的资源差值大于预设的资源阈值,根据所述参数配置信息和第三数据资源生成运行文件,所述第三数据资源大于等于所述第二数据资源,所述第三数据资源和所述第二数据资源之间的资源差值小于等于所述资源阈值。
具体地,当第二数据资源小于第一数据资源,并且第一数据资源和第二数据资源之间的资源差值大于预设的资源阈值,可以确定预先分配的第一数据资源远远大于第二数据资源,此次会造成服务器资源的浪费。因此可以设置第三数据资源,第三数据资源大于等于第二数据资源。另外,通常情况下,第三数据资源和所述第二数据资源之间的资源差值小于等于所述资源阈值,即第三数据资源略大于或者等于第二数据资源,可以保证服务器的资源的充分利用。
在本实施例中,通过运行容器运行时所消耗的实际的第二数据资源和预先分配的第一数据资源进行比较,能够动态地对运行容器的资源进行分配,保证服务器资源的充分利用。
在一个实施例中,如图6所示,所述方法还包括:
S602,响应于需要运行第二测试程序,利用所述第二测试程序对应的运行文件和所述第二测试程序的部署镜像在第二集群中生成第二运行容器。
S604,启动所述第二运行容器,所述第二运行容器用于执行所述第二测试程序的测试功能;其中,所述第二运行容器和所述运行容器所对应的命名空间不相同,所述第二集群和所述第一集群为Kubernetes中的集群。
具体地,当终端还需要运行第二测试程序来执行其他的测试功能时,此时可以利用第二测试程序的程序配置信息来生成部署镜像和对应的运行文件,进而在第二集群中生成第二运行容器。关于如何根据程序配置信息生成运行容器的方式可以参见上述实施例,在此不进行重复赘述。如图7所示通常情况下,第二运行容器和运行容器所处的集群可以相同,即第一集群和第二集群可以是相同的集群。图8所示,第一集群和第二集群也可以不相同,即第一集群和第二集群也可以是不相同集群。第二运行容器和所述运行容器通常情况下其对应的命名空间不相同,以保证不同的测试程序的环境相互隔离。
在本实施例中,当需要运行第二测试程序的时候,终端可以在服务器中生成第二运行容器,以此来执行多个测试功能。并且保证命名空间不相同,能够保证测试功能之间不会互相影响。
在一些实施例中,还可以采集服务器运行时的日志信息,并可作为日志审计相关输出数据。另外,终端中还可以提供统一的回调接口,测试程序的测试功能运行后所有运行结果通过接口收集,并在展示,便于项目组管理和查看运行结果。
在一个实施例中,本公开还提供了另一种测试程序的运行方法,如图9所示,所述方法包括:
S702,获取测试程序的程序配置信息。所述程序配置信息至少包括:环境配置信息和参数配置信息。
S704,根据所述测试程序运行时所需的程序语言信息和所述安装包信息确定所述环境镜像中目标环境镜像,所述目标环境镜像中包括:所述测试程序运行时所需的程序语言、所述程序语言的版本和所述安装包。
S706,利用所述目标环境镜像生成所述部署镜像。
S708,根据所述参数配置信息生成运行文件,所述运行文件中包括:所述运行容器运行的第一集群和命名空间。
或者,S710,根据所述参数配置信息和运行所述运行容器的第一数据资源生成运行文件,所述运行文件中包括:所述运行容器运行的集群和命名空间。
S712,利用所述运行文件和所述部署镜像在第一集群中生成运行容器,启动所述运行容器,所述运行容器用于执行所述测试程序的测试功能。
S714,获取运行所述运行容器时使用的第二数据资源。
S716,判断第二数据资源和第一数据资源之间的关系。
S718,响应于所述第二数据资源大于所述第一数据资源,根据所述参数配置信息和第三数据资源生成运行文件,所述第三数据资源大于等于所述第二数据资源。
S720,响应于所述第二数据资源小于所述第一数据资源,且所述第一数据资源和所述第二数据资源之间的资源差值大于预设的资源阈值,根据所述参数配置信息和第三数据资源生成运行文件,所述第三数据资源大于等于所述第二数据资源,所述第三数据资源和所述第二数据资源之间的资源差值小于等于所述资源阈值。
关于本实施例中的具体实施方式和限定可参见上述实施例,在此不进行重复赘述。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本公开实施例还提供了一种用于实现上述所涉及的测试程序的运行方法的测试程序的运行装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个测试程序的运行装置实施例中的具体限定可以参见上文中对于测试程序的运行方法的限定,在此不再赘述。
在一个实施例中,如图10所示,提供了一种测试程序的运行装置800,包括:信息获取模块802、镜像生成模块804、运行文件生成模块806和运行模块808,其中:
信息获取模块802,用于获取测试程序的程序配置信息;
镜像生成模块804,用于根据所述程序配置信息以及环境镜像生成部署镜像,所述环境镜像包括:程序语言和安装包,所述程序语言包括多种类型以及每种类型对应的多种版本;
运行文件生成模块806,用于至少根据所述程序配置信息生成运行文件;
运行模块808,用于利用所述运行文件和所述部署镜像在第一集群中生成运行容器,启动所述运行容器,所述运行容器用于执行所述测试程序的测试功能。
在所述装置的一个实施例中,所述程序配置信息至少包括:环境配置信息和参数配置信息;所述镜像生成模块804,还用于根据所述环境配置信息和所述环境镜像生成所述部署镜像,所述环境配置信息包括:所述测试程序运行时所需的程序语言信息和安装包信息,所述程序语言信息包括程序语言的类型和所述程序语言的版本信息;
所述运行文件生成模块806,还用于根据所述参数配置信息生成运行文件,所述运行文件中包括:所述运行容器运行的第一集群和命名空间。
在所述装置的一个实施例中,所述镜像生成模块804,包括:目标镜像确定模块,用于根据所述测试程序运行时所需的程序语言信息和所述安装包信息确定所述环境镜像中目标环境镜像,所述目标环境镜像中包括:所述测试程序运行时所需的程序语言、所述程序语言的版本和所述安装包;
部署镜像生成模块,用于利用所述目标环境镜像生成所述部署镜像。
在所述装置的一个实施例中,所述运行文件生成模块806,还用于根据所述参数配置信息和运行所述运行容器的第一数据资源生成运行文件,所述运行文件中包括:所述运行容器运行的集群和命名空间。
在所述装置的一个实施例中,所述装置还包括:
运行资源获取模块,用于获取运行所述运行容器时使用的第二数据资源;
第一资源调整模块,用于响应于所述第二数据资源大于所述第一数据资源,根据所述参数配置信息和第三数据资源生成运行文件,所述第三数据资源大于等于所述第二数据资源。
第二资源调整模块,用于响应于所述第二数据资源小于所述第一数据资源,且所述第一数据资源和所述第二数据资源之间的资源差值大于预设的资源阈值,根据所述参数配置信息和第三数据资源生成运行文件,所述第三数据资源大于等于所述第二数据资源,所述第三数据资源和所述第二数据资源之间的资源差值小于等于所述资源阈值。
在所述装置的一个实施例中,所述装置还包括:第二测试程序运行模块,用于响应于需要运行第二测试程序;利用所述第二测试程序对应的运行文件和所述第二测试程序的部署镜像在第二集群中生成第二运行容器;启动所述第二运行容器,所述第二运行容器用于执行所述第二测试程序的测试功能;其中,所述第二运行容器和所述运行容器所对应的命名空间不相同,所述第二集群和所述第一集群为Kubernetes中的集群。
上述测试程序的运行装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储程序配置信息。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种测试程序的运行方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述任一方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本公开所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本公开所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本公开的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本公开专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开构思的前提下,还可以做出若干变形和改进,这些都属于本公开的保护范围。因此,本公开的保护范围应以所附权利要求为准。
Claims (10)
1.一种测试程序的运行方法,其特征在于,所述方法包括:
获取测试程序的程序配置信息;
根据所述程序配置信息以及环境镜像生成部署镜像,所述环境镜像包括:程序语言和安装包,所述程序语言包括多种类型以及每种类型对应的多种版本;
至少根据所述程序配置信息生成运行文件;
利用所述运行文件和所述部署镜像在第一集群中生成运行容器,启动所述运行容器,所述运行容器用于执行所述测试程序的测试功能。
2.根据权利要求1所述的方法,其特征在于,所述程序配置信息至少包括:环境配置信息和参数配置信息;所述根据所述程序配置信息以及环境镜像生成部署镜像,包括:
根据所述环境配置信息和所述环境镜像生成所述部署镜像,所述环境配置信息包括:所述测试程序运行时所需的程序语言信息和安装包信息,所述程序语言信息包括程序语言的类型和所述程序语言的版本信息;
所述至少根据所述程序配置信息生成运行文件,包括:
根据所述参数配置信息生成运行文件,所述运行文件中包括:所述运行容器运行的第一集群和命名空间。
3.根据权利要求2所述的方法,其特征在于,所述根据所述环境配置信息和所述环境镜像生成所述部署镜像,包括:
根据所述测试程序运行时所需的程序语言信息和所述安装包信息确定所述环境镜像中目标环境镜像,所述目标环境镜像中包括:所述测试程序运行时所需的程序语言、所述程序语言的版本和所述安装包;
利用所述目标环境镜像生成所述部署镜像。
4.根据权利要求2所述的方法,其特征在于,所述至少根据所述程序配置信息生成运行文件,包括:
根据所述参数配置信息和运行所述运行容器的第一数据资源生成运行文件,所述运行文件中包括:所述运行容器运行的集群和命名空间。
5.根据权利要求4所述的方法,其特征在于,所述启动所述运行容器之后,所述方法还包括:
获取运行所述运行容器时使用的第二数据资源;
响应于所述第二数据资源大于所述第一数据资源,根据所述参数配置信息和第三数据资源生成运行文件,所述第三数据资源大于等于所述第二数据资源;
响应于所述第二数据资源小于所述第一数据资源,且所述第一数据资源和所述第二数据资源之间的资源差值大于预设的资源阈值,根据所述参数配置信息和第三数据资源生成运行文件,所述第三数据资源大于等于所述第二数据资源,所述第三数据资源和所述第二数据资源之间的资源差值小于等于所述资源阈值。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于需要运行第二测试程序;
利用所述第二测试程序对应的运行文件和所述第二测试程序的部署镜像在第二集群中生成第二运行容器;
启动所述第二运行容器,所述第二运行容器用于执行所述第二测试程序的测试功能;
其中,所述第二运行容器和所述运行容器所对应的命名空间不相同,所述第二集群和所述第一集群为Kubernetes中的集群。
7.一种测试程序的运行装置,其特征在于,所述装置包括:
信息获取模块,用于获取测试程序的程序配置信息;
镜像生成模块,用于根据所述程序配置信息以及环境镜像生成部署镜像,所述环境镜像包括:程序语言和安装包,所述程序语言包括多种类型以及每种类型对应的多种版本;
运行文件生成模块,用于至少根据所述程序配置信息生成运行文件;
运行模块,用于利用所述运行文件和所述部署镜像在第一集群中生成运行容器,启动所述运行容器,所述运行容器用于执行所述测试程序的测试功能。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310268401.4A CN116302191A (zh) | 2023-03-20 | 2023-03-20 | 测试程序的运行方法、装置、计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310268401.4A CN116302191A (zh) | 2023-03-20 | 2023-03-20 | 测试程序的运行方法、装置、计算机设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116302191A true CN116302191A (zh) | 2023-06-23 |
Family
ID=86814701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310268401.4A Pending CN116302191A (zh) | 2023-03-20 | 2023-03-20 | 测试程序的运行方法、装置、计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302191A (zh) |
-
2023
- 2023-03-20 CN CN202310268401.4A patent/CN116302191A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108304201B (zh) | 对象更新方法、装置及设备 | |
CN111176818B (zh) | 分布式预测的方法、装置、系统、电子设备及存储介质 | |
CN110515795B (zh) | 一种大数据组件的监控方法、装置、电子设备 | |
CN113204353B (zh) | 一种大数据平台组件部署方法及装置 | |
CN111124872A (zh) | 基于差异代码分析的分支检测方法、装置及存储介质 | |
CN115357369A (zh) | 一种k8s容器云平台中CRD应用集成调用方法与装置 | |
CN113742224A (zh) | 测试系统、方法、装置、计算机设备和存储介质 | |
CN114238085A (zh) | 接口测试方法、装置、计算机设备、存储介质 | |
CN114064079A (zh) | 算法应用元的打包方法及装置、设备、存储介质 | |
CN116644250B (zh) | 页面检测方法、装置、计算机设备和存储介质 | |
CN116302191A (zh) | 测试程序的运行方法、装置、计算机设备、存储介质 | |
CN116185740A (zh) | 方案测试方法、装置、计算机设备和存储介质 | |
CN111399999A (zh) | 计算机资源处理方法、装置、可读存储介质和计算机设备 | |
CN116361153A (zh) | 固件代码的测试方法、装置、电子设备、存储介质 | |
CN116185774A (zh) | 日志监控安装方法、装置、计算机设备和存储介质 | |
CN114791884A (zh) | 测试环境的构建方法、装置、存储介质及电子设备 | |
CN114756293A (zh) | 业务处理方法、装置、计算机设备和存储介质 | |
CN114546793A (zh) | 一种日志生成方法、装置和计算机可读存储介质 | |
CN116431275B (zh) | 容忍配置方法、装置、计算机设备和存储介质 | |
CN111008131B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN117667125A (zh) | 中间件联合部署方法、装置、设备、介质和产品 | |
US20240220472A1 (en) | Systems and methods for executing and hashing modeling flows | |
CN113127221B (zh) | 一种限制消息消费速率的方法、装置、设备及存储介质 | |
CN117082143A (zh) | 资源调度方法、装置、计算机设备和存储介质 | |
CN116361149A (zh) | 批处理自动化测试方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |