CN116126737B - 容器测试方法以及装置 - Google Patents
容器测试方法以及装置 Download PDFInfo
- Publication number
- CN116126737B CN116126737B CN202310404354.1A CN202310404354A CN116126737B CN 116126737 B CN116126737 B CN 116126737B CN 202310404354 A CN202310404354 A CN 202310404354A CN 116126737 B CN116126737 B CN 116126737B
- Authority
- CN
- China
- Prior art keywords
- target
- container
- test
- target test
- determining
- 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.)
- Active
Links
Classifications
-
- 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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
- 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/45591—Monitoring or debugging support
-
- 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
Abstract
本说明书实施例提供容器测试方法以及装置,其中所述容器测试方法包括:响应于针对目标容器的目标测试指令,确定所述目标测试指令对应的目标测试任务,其中,所述目标容器运行于所述虚拟机中;运行所述目标测试任务并确定运行时间,根据运行结果和所述运行时间确定所述目标容器对应的容器测试结果。将计时时间限定在运行目标测试任务时,避免其他进程的资源占用导致该测试进程的中断,实现对目标容器的虚拟化性能的测试。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及容器测试方法。
背景技术
安全容器作为运行在虚拟机中的容器,由于虚拟机有独立的内核,并且虚拟化层能够为安全容器提供安全隔离功能,使得其具有更好的隔离性。随着安全容器的快速发展,对安全容器和虚拟化层的定制和改动越来越多,比如会通过更新安全容器或虚拟化层的代码实现对安全容器的更新。
然而,这些改动可能会造成安全容器虚拟化层的性能回退,从而导致安全容器在提供服务时性能下降,影响用户体验,因此,亟需一种有效的技术方案解决上述问题。
发明内容
有鉴于此,本说明书实施例提供了一种容器测试方法。本说明书一个或者多个实施例同时涉及一种容器测试装置,一种容器测试系统,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种容器测试方法,应用于虚拟机,所述方法包括:
响应于针对目标容器的目标测试指令,确定所述目标测试指令对应的目标测试任务,其中,所述目标容器运行于所述虚拟机中;
运行所述目标测试任务并确定运行时间,根据运行结果和所述运行时间确定所述目标容器对应的容器测试结果。
根据本说明书实施例的第二方面,提供了一种容器测试装置,应用于虚拟机,所述装置包括:
确定模块,被配置为响应于针对目标容器的目标测试指令,确定所述目标测试指令对应的目标测试任务,其中,所述目标容器运行于所述虚拟机中;
测试模块,被配置为运行所述目标测试任务并确定运行时间,根据运行结果和所述运行时间确定所述目标容器对应的容器测试结果。
根据本说明书实施例的第三方面,提供了一种容器测试系统,应用于宿主机,所述宿主机部署有虚拟机,所述虚拟机包括用户空间和内核空间,其中,
所述虚拟机,被配置为在所述用户空间中接收初始测试指令,并将所述初始测试指令转换为预设格式的目标测试指令,并将所述目标测试指令发送至所述内核空间;
所述虚拟机,还被配置为在所述内核空间中根据所述目标测试指令,确定所述目标测试指令对应的目标测试任务,运行所述目标测试任务并确定运行时间,根据运行结果和所述运行时间确定所述目标容器对应的容器测试结果。
根据本说明书实施例的第四方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述容器测试方法的步骤。
根据本说明书实施例的第五方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述容器测试方法的步骤。
根据本说明书实施例的第六方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述容器测试方法的步骤。
本说明书一个实施例提供了一种容器测试方法,应用于虚拟机,响应于针对目标容器的目标测试指令,确定所述目标测试指令对应的目标测试任务,其中,所述目标容器运行于所述虚拟机中;运行所述目标测试任务并确定运行时间,根据运行结果和所述运行时间确定所述目标容器对应的容器测试结果。
上述方法通过确定针对运行于虚拟机的目标容器(即安全容器)的目标测试指令对应的目标测试任务,并在运行目标测试任务的同时确定运行时间,并根据运行结果和运行时间获得目标容器的容器测试结果,将计时时间限定在运行目标测试任务时,避免其他进程的资源占用导致该测试进程的中断,由于该目标容器运行于虚拟机内,其是基于虚拟化层实现目标容器的运行,基于此,通过在虚拟机内运行目标测试任务,可以实现对目标容器的虚拟化性能的测试,即实现虚拟化层性能的测试,并且能够提升容器测试结果的准确性,便于后续测试人员根据容器测试结果对目标容器进行调整,从而保证该目标容器在提供服务时的性能,进而保证用户体验。
附图说明
图1是本说明书一个实施例提供的一种容器测试方法的场景示意图;
图2是本说明书一个实施例提供的一种容器测试方法的流程图;
图3是本说明书一个实施例提供的一种容器测试方法中安全容器的结构示意图;
图4是本说明书一个实施例提供的一种容器测试方法的处理过程流程图;
图5是本说明书一个实施例提供的一种容器测试装置的结构示意图;
图6是本说明书一个实施例提供的一种容器测试系统的结构示意图;
图7是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
安全容器:是一个开放源代码的容器,运行时可以构建无缝插入容器生态系统的轻量级虚拟机,致力于通过轻量级虚拟机来构建安全的容器。和普通容器相比,它最主要的区别是每个容器都运行在一个单独的轻量级虚拟机中,拥有独立的操作系统内核,以及虚拟化层的安全隔离。
mirco-benchmark:是基准测试中的一种方法,用来测试微小代码单元的性能,通常这个微小代码单元可以是一段算法,一个方法,一个数据结构。
debugfs:虚拟文档系统,是一种内核空间与用户空间的接口,用于实现用户空间和内核空间之间的数据传输。
CMD:可以理解为通过ioctl发送至内核空间的命令代码。
TSC:英文全称为Time Stamp Counter,时间戳计数器,用于记录自启动以来处理器消耗的时钟周期数。
rdtsc:一种计算机指令,用于返回CPU自启动以来的时钟周期数,该时钟周期数即处理器的时间戳。
rdtscp:一种计算机指令,在读取时间戳的同时还能够避免CPU乱序执行。
cupid:一种计算机指令,用于读取CPU信息。
CPU:英文全称为Central Processing Unit,中央处理器。
ioctl:英文全称为input/output control,是一种用于设备输入输出操作的系统调用函数。
hypercall机制:超级调用,一种用于虚拟机的调用机制。
ftrace:一种测试工具,用于确定CPU是否有抢占。
bpf:英文全称为Berkeley Packet Filter,一种过滤器,提供原始链路层封包的收发。
需要说明的是,本说明书实施例所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
针对于普通容器,由于操作系统存在漏洞,以及容器相关组件配置不当,可能导致容器发生逃逸,从而获取宿主机权限。鉴于频发的安全及逃逸漏洞事件,安全容器应运而生,安全容器实际上是运行在一个虚拟机中的普通容器,虚拟机具有独立的内核,以及虚拟化层提供了安全隔离功能。
随着安全容器的快速发展,对虚拟化层的定制和改动越来越多,这些改动往往造成安全容器虚拟化层的性能回退。因此,亟需一个有效的技术方案对安全容器场景下虚拟化层的改动做性能的验证和回归,即,需要对安全容器的虚拟化性能进行测试。
通常,在对安全容器进行性能测试时,可以从用户态对安全容器发起测试,测试进程会受到其他用户进程的资源占用,导致测试进程的中断,比如测试程序本身会受到用户态内核态切换、CPU调度、中断等影响,导致测试结果波动比较大,进而使得性能测试结果的准确率较低,并且,目前的测试工具的测试耗时较长,大部分都是小时级别的测试耗时,导致性能测试效率较低。因此,亟需一种有效的技术方案解决上述问题。
在本说明书中,提供了一种容器测试方法,本说明书同时涉及一种容器测试装置,一种容器测试系统,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图1,图1示出了根据本说明书一个实施例提供的一种容器测试方法的场景示意图。
图1中包括宿主机102和虚拟机104,其中,虚拟机104部署于宿主机102中,虚拟机104中运行有目标容器。
具体实施时,宿主机102接收测试人员通过展示界面输入的针对目标容器的初始测试指令,该初始测试指令包括具体测试内容和测试参数,宿主机102可以将该初始测试指令发送至虚拟机104中,虚拟机104在用户空间将该初始测试指令转换为预设格式的目标测试指令,并将该目标测试指令发送至内核空间,虚拟机104在内核空间中确定该目标测试指令对应的目标测试任务,运行该目标测试任务并确定该目标测试任务的运行时间,根据该运行时间和运行目标测试任务的运行结果确定该目标容器的容器测试结果。虚拟机104可以将内核空间中的容器测试结果返回至用户空间,再从用户空间返回至宿主机102的展示界面,从而展示给测试人员。实现对目标容器的性能测试。
参见图2,图2示出了根据本说明书一个实施例提供的一种容器测试方法的流程图,具体包括以下步骤。
步骤202:响应于针对目标容器的目标测试指令,确定所述目标测试指令对应的目标测试任务,其中,所述目标容器运行于所述虚拟机中。
具体的,目标容器可以理解为运行于虚拟机中的安全容器。参见图3,图3示出了根据本说明书一个实施例提供的一种容器测试方法中安全容器的结构示意图。如图3所示,图3中包括宿主机300,宿主机可以理解为安装有虚拟机的客户端。宿主机300中包括虚拟化层302,虚拟化层可以理解为对宿主机的硬件资源(比如物理CPU、内存、磁盘、网卡、显卡等)进行封装、隔离,抽象为另一种形式的逻辑资源,其通过利用逻辑来表示资源,从而摆脱物理限制的约束,提高物理资源的利用率。安全容器的运行需要基于虚拟化层实现,该虚拟化层可以支持多个安全容器304运行。可以基于宿主机中包括的虚拟化层,创建安全容器,具体的,可以基于宿主机中包括的虚拟化层,创建虚拟机,并在虚拟机中创建目标容器,该运行在虚拟机中的目标容器即为安全容器。
可以理解的,由于安全容器的运行是基于虚拟化层实现的,针对目标容器的性能测试指令,则可以理解为针对目标容器和支持该目标容器运行的虚拟化层的性能测试指令。也即是说,该性能测试指令既针对目标容器本身,也针对支持目标容器运行的虚拟化层。其可以用于测试目标容器的虚拟化性能。目标容器的性能比如可以是目标容器的读写性能、网络通信性能等。目标测试指令对应的目标测试任务,可以理解为需要对目标容器进行测试的性能对应的测试用例。比如,在目标测试指令用于指示测试目标容器的读写性能时,那么该目标测试任务即为该读写性能对应的测试用例。该目标测试任务可以通过测试代码表示。
具体的,在对目标容器进行更新时,若针对虚拟化层进行了改进,此时,则可以测试虚拟化层的性能是否下降,则需要响应于针对虚拟化层的目标测试指令。若针对目标容器进行了改进,此时,则可以测试目标容器的性能是否下降,即需要响应于针对目标容器的目标测试指令。
基于此,可以响应于针对虚拟机中运行的目标容器、和/或支持该目标容器运行的虚拟化层的目标测试指令,确定该目标测试指令指示的需要测试的性能对应的测试用例。
实际应用中,所述虚拟机包括用户空间和内核空间,其中,用户空间可以理解为虚拟机的用户态,能够在用户空间中运行用户程序。内核空间可以理解为虚拟机的内核态,可以在内核空间中运行操作系统程序,操作硬件。
具体的,在利用本说明书实施例提供的容器测试方法对目标容器进行测试的过程中,可以利用虚拟化测试工具,实现对目标容器的测试。该虚拟化测试工具可以以代码的形式部署于宿主机和虚拟机中。虚拟化测试工具可以包括管理组件、测试组件、通信组件和执行组件。其中,管理组件可以以软件的形式安装于宿主机中,测试人员可以通过管理组件输入初始测试指令以及测试参数,测试参数可以包括测试次数等信息。测试人员还可以通过管理组件在虚拟机中创建或删除容器。测试组件和通信组件可以部署于虚拟机的用户空间中,执行组件可以部署于虚拟机的内核空间中。其中,可以通过测试组件挂载用户空间和内核空间之间的接口,并通过测试组件在内核空间中插入执行组件。此外,宿主机中还可以部署有ftrace或bpf,ftrace作为一种测试工具,可以用于监测虚拟化层,并且可以获取hypercall机制的调用次数等信息。bpf作为一种过滤器,是一种接口,用于提供原始链路层封包的收发。宿主机中还可以部署有虚拟机管理器,用于管理虚拟机。
那么,在运行测试进程时,为了保证使测试的数据更精确,可以在内核空间确定目标测试任务并运行,具体实现方式如下:
所述确定所述目标测试指令对应的目标测试任务,包括:
在所述内核空间中,确定所述目标测试指令对应的目标测试任务。
其中,目标测试任务可以部署于内核空间中。可以理解的,在对目标容器的测试过程中,可以添加、删除或修改部署于内核空间中的测试任务,以实现对目标容器的多种性能的测试,使得性能测试结果更加准确全面。
基于此,可以在内核空间中,确定目标测试指令指示的需要测试的性能对应的测试用例。
实际应用中,在通过测试组件将执行组件加载至内核空间之后,虚拟化测试工具会导出测试控制接口(即通过debugfs文件系统导出的ioctl接口),通信组件可以将目标测试指令通过测试控制接口发送至执行组件,执行组件接收该目标测试指令之后,解析该目标测试指令,确定该目标测试指令对应的目标测试任务并执行,以此执行相关性能测试。
综上,通过在内核空间内确定目标测试任务,关闭中断和CPU调度,保证执行目标测试任务时,测试程序不被干扰,从而获取更精确的测试结果。
具体实施时,为了能够准确确定目标测试指令对应的目标测试任务,从而完成相关性能测试,可以通过预先设置的测试任务和测试指令之间的对应关系表,确定目标测试指令对应的目标测试任务,并且,测试任务和测试指令之间的对应关系表可以存储于内核空间,具体实现方式如下:
所述内核空间包括测试任务和测试指令之间的对应关系表;
相应地,所述确定所述目标测试指令对应的目标测试任务,包括:
在所述测试任务和测试指令之间的对应关系表中,确定所述目标测试指令对应的目标测试任务。
其中,测试任务和测试指令之间的对应关系表,可以是根据测试需求预先设置的对应关系表。比如在需要测试目标容器的性能A、性能B和性能C的情况下,对应的测试指令即为指令A、指令B和指令C,则需要相应地在内核空间中部署指令A对应的测试用例、指令B对应的测试用例和指令C对应的测试用例,以及性能和测试用例之间的对应关系表。在目标测试指令为指令A的情况下,则从测试指令和测试用例之间的对应关系表中,确定指令A对应的测试用例。
具体的,可以根据目标测试指令,遍历该测试任务和测试指令之间的对应关系表,在该测试任务和测试指令之间的对应关系表中,确定目标测试指令,并确定目标测试指令对应的目标测试任务。
此外,还可以利用预先设置的待测试性能和测试用例之间的对应关系表,确定目标测试任务(即目标测试用例)。举例而言,可以根据测试需求,确定需要测试目标容器的性能A、性能B和性能C,则需要相应地在内核空间中部署性能A对应的测试用例、性能B对应的测试用例和性能C对应的测试用例,并配置性能和测试用例之间的对应关系表。在目标测试指令指示需要测试目标容器的性能B的情况下,则可以从性能和测试用例之间的对应关系表中,确定性能B对应的目标测试用例。可以理解的,可以采用任意方式确定目标测试指令对应的目标测试任务,本说明书实施例在此不作限定。
实际应用中,测试任务(即测试用例)可以部署于加载至内核空间的执行组件。测试用例比如可以是基于mirco-benchmark的测试用例。
综上,通过确定目标测试指令对应的目标测试任务,能够实现后续运行目标测试任务,以此进一步实现对目标容器的性能测试,提升性能测试效率。
具体实施时,在虚拟机接收测试人员发起的测试指令时,通常可以在用户空间中接收该测试指令,并发送至内核空间中,以此实现在内核空间中确定相应的目标测试任务并运行,完成对目标容器的检测,具体实现方式如下:
所述响应于针对目标容器的目标测试指令,包括:
在所述用户空间中,响应于针对目标容器的目标测试指令,并将所述目标测试指令发送至所述内核空间。
具体的,在用户空间和内核空间之间设置有接口,该接口用于实现用户空间和内核空间之间的数据传输。基于此,可以在用户空间中,响应于针对目标容器的目标测试指令,并将该目标测试指令通过该接口发送至内核空间。
实际应用中,用户空间和内核空间之间的接口可以是debugfs接口,或者,还可以利用数据拷贝方式或者内存映射方式实现用户空间和内核空间之间的数据传输,本说明书实施例在此不作限定。
综上,通过将在用户空间中的目标测试指令发送至内核空间,便于后续在内核空间中确定相应的目标测试任务并运行,从而实现对目标容器的性能测试。
具体实施时,为了使虚拟机能够理解测试人员发起的测试指令,需要对测试人员发起的测试指令进行转换,具体实现方式如下:
所述在所述用户空间中,响应于针对目标容器的目标测试指令,并将所述目标测试指令发送至所述内核空间,包括:
在所述用户空间中,接收针对目标容器的初始测试指令,并将所述初始测试指令转换为预设格式的目标测试指令,并将所述目标测试指令发送至所述内核空间。
其中,预设格式的目标测试指令可以理解为用户空间和内核空间之间的数据传输协议格式的目标测试指令,比如目标测试指令可以是CMD控制命令。初始测试指令可以理解为测试人员在宿主机的展示界面上输入的测试指令。
基于此,可以在用户空间中,接收测试人员在宿主机的展示界面上输入的测试指令,并将该测试指令转换为预设数据传输协议格式的目标测试指令,并将该目标测试指令通过接口发送至内核空间。
实际应用中,可以利用上述虚拟化测试工具中的通信组件,根据测试人员输入的初始测试指令,构建对应的CMD控制命令,然后通过debugfs导出的ioctl接口,将CMD控制指令发送至测试组件。
综上,通过对测试人员发起的测试指令进行转换,将转换后得到的目标测试指令发送至内核空间,能够为后续实现目标容器的测试提供基础。
步骤204:运行所述目标测试任务并确定运行时间,根据运行结果和所述运行时间确定所述目标容器对应的容器测试结果。
具体的,在确定目标测试任务之后,可以运行该目标测试任务,并在运行该目标测试任务的同时开始计时,以确定该目标测试任务的运行时间,根据运行结果和运行时间确定目标容器对应的容器测试结果。
其中,运行目标测试任务可以理解为运行目标测试用例,也即是说运行测试代码。该运行时间可以理解为运行目标测试任务所消耗的时间,可以通过在运行目标测试任务的同时开始计时,以确定运行目标测试任务所消耗的时间。运行结果可以包括该目标测试任务是否运行完成、和/或运行该目标测试任务获得的运行数据等信息。
具体实施时,由于基于mirco-benchmark的测试任务是在虚拟机内核空间中执行的一条或者多条指令,通常指令的执行时间非常短,有些指令的执行时间可能只有几个时钟周期。为了精确统计一段纳秒级内核代码的执行时间,可以选用不同的计时方式实现,具体的,可以根据目标测试任务的参考运行时间,确定针对该目标测试任务的计时方式,具体实现方式如下:
所述运行所述目标测试任务并确定运行时间之前,还包括:
确定所述目标测试任务的参考运行时间;
根据所述参考运行时间,确定所述目标测试任务的计时方式。
其中,目标测试任务的参考运行时间可以理解为运行该目标测试任务的理论运行时间。比如目标测试任务的参考运行时间可以是毫秒级、纳秒级或秒级。
基于此,可以确定目标测试任务的参考运行时间,并根据该参考运行时间,确定目标测试任务的计时方式。
综上,通过根据目标测试任务的参考运行时间确定相应的计时方式,为不同的目标测试任务分配不同的计时方式,能够进一步实现计时的精确性,保证确定的运行时间的准确性。
具体的,计时方式可以是利用计时函数计时。具体实现方式如下:
所述根据所述参考运行时间,确定所述目标测试任务的计时方式,包括:
在确定所述参考运行时间达到预设时间阈值的情况下,确定所述目标测试任务的计时方式为利用计时函数进行计时的方式;
相应地,所述确定运行时间,包括:
调用所述计时函数,将所述计时函数的运行结果作为所述目标测试任务的运行时间。
其中,预设时间阈值比如可以是秒级或毫秒级。参考运行时间达到秒级或毫秒级,在目标测试任务的运行中属于执行耗时较长的目标测试任务,因此,可以通过调用计时函数的方式获取目标测试任务的运行时间。
基于此,可以在确定目标测试任务的参考运行时间达到秒级或毫秒级的情况下,确定该目标测试任务的计时方式为利用计时函数进行计时的方式。那么,在确定运行时间时,可以在运行目标测试任务的同时,调用计时函数,将计时函数的运行结果作为该目标测试任务的运行时间。
此外,计时方式还可以是通过触发计时器,实现对目标测试任务的运行时间的确定,具体实现方式如下:
所述根据所述参考运行时间,确定所述目标测试任务的计时方式,还包括:
在确定所述参考运行时间未达到预设时间阈值的情况下,确定所述目标测试任务的计时方式为利用计时器进行计时的方式;
相应地,所述确定运行时间,包括:
触发所述计时器,将所述计时器的计时结果作为所述目标测试任务的运行时间。
其中,计时器可以理解为用于计时的设备。在虚拟机中,该计时器可以是虚拟机中的计数器,计数器可以理解为虚拟机中的时序部件,其可以用于计脉冲数,还可以用作数字系统的定时、分频和执行数字运算以及其他逻辑功能。参考运行时间未达到秒级或毫秒级,则说明该目标测试任务的执行耗时较短,则需要获取更高精度的时钟周期。
具体的,在确定目标测试任务的参考运行时间未达到秒级或毫秒级的情况下,可以确定该目标测试任务的计时方式为利用计数器进行计时。那么,在确定运行时间时,可以在开始运行目标测试任务的同时,触发计数器,将计数器的计时结果作为目标测试任务的运行时间。
实际应用中,可以通过调用rdtsc和rdtscp指令读取计数器。计数器可以是TSC,即时间戳计数器,其可以用于记录消耗的时钟周期数。此外,还可以通过调用cpuid指令,保证不会因为CPU乱序执行导致的计时结果不准确。
实际应用中,为了保证测试进程所占用的CPU资源不会被其他进程抢占,从而导致该测试进程的中断,测试延迟导致最终得到的容器测试结果不准确,可以在测试进程开始时(即开始运行目标测试任务时)关闭CPU的中断和抢占,具体实现方式如下:
所述运行所述目标测试任务并确定运行时间,包括:
在运行所述目标测试任务并确定运行时间的情况下,调用资源占用函数,其中,所述资源占用函数用于指示所述目标测试任务占用处理器资源。
其中,资源占用函数可以用于关闭CPU的中断和抢占。处理器资源可以理解为CPU的资源。
基于,可以在开始运行目标测试任务并确定运行时间的同时,调用资源占用函数,用于指示该目标测试任务占用处理器资源,从而关闭处理器的中断和抢占。
综上,通过调用资源占用函数,能够实现关闭CPU的中断和抢占,避免其他进程抢占CPU资源造成的测试进程中断导致的延迟,保证测试结果的稳定性,减少测试结果的波动,进一步避免对性能测试结果的影响。
实际应用中,可以在虚拟机的内核空间中运行目标测试任务并确定运行时间。具体实现方式如下:
所述运行所述目标测试任务并确定运行时间,包括:
在所述内核空间中,运行所述目标测试任务并确定运行时间。
具体的,通过直接从虚拟机内核空间中触发一些指令或操作,对目标容器和/或虚拟化层进行性能验证,排除了用户空间的测试带来的性能波动,保证了性能测试的稳定性的同事缩短了性能测试时间,提升了性能测试效率、目标容器开发和迭代的速度。
实际应用中,可以利用加载到内核空间的执行组件,接收通过ioctl发送的CMD控制命令,并根据该CMD控制命令在内核空间中执行相关的mirco-benchmark测试用例,并返回测试结果。在将执行组件加载到内核空间之后,上述虚拟化测试工具可以导出一个测试结果读取接口,在用户空间直接通过该接口打开相应的结果文件就可以得到当前mirco-benchmark测试用例的测试结果。在执行组件中执行mirco-benchmark测试用例,可以利用虚拟机的hypercall机制实现。
实际应用中,为了保证容器测试结果的可视化和可读性,便于测试人员更好的了解目标容器的性能,可以在用户空间对容器测试结果进行处理,具体实现方式如下:
所述根据运行结果和所述运行时间确定所述目标容器对应的容器测试结果之后,还包括:
将所述容器测试结果发送至所述用户空间,在所述用户空间中对所述容器测试结果进行数据处理,获得数据处理结果;
将所述容器测试结果和所述数据处理结果发送至宿主机,并通过所述宿主机的展示界面展示,其中,所述宿主机部署有所述虚拟机。
其中,对容器测试结果进行数据处理,可以理解为对容器测试结果中包括的各类性能测试数据进行数据处理,数据处理的方式包括但不限于计算平均值等方式。
可以理解的,容器测试结果中包括的性能测试数据和待测试性能相关。比如待测试性能为网络通信性能时,容器测试结果中包括的性能测试数据比如可以是该目标容器每秒发送字节大小、或者可以是执行该网络通信性能对应的测试用例的耗时等。
基于此,在确定目标容器对应的容器测试结果之后,可以将容器测试结果发送至用户空间,在用户空间中对容器测试结果中包括的各类性能测试数据进行数据处理,获得数据处理结果。并将容器测试结果和数据处理结果发送至宿主机,由宿主机的展示界面展示给测试人员。
实际应用中,可以利用上述虚拟化测试工具中的测试组件收集和统计容器测试结果,具体的,可以利用测试组件对容器测试结果进行数据处理,获得数据处理结果,并将测试结果和数据处理结果返回至部署于宿主机的管理组件,在管理组件中展示给测试人员。
综上所述,上述方法通过确定针对运行于虚拟机的目标容器(即安全容器)的目标测试指令对应的目标测试任务,并在运行目标测试任务的同时确定运行时间,并根据运行结果和运行时间获得目标容器的容器测试结果,将计时时间限定在运行目标测试任务时,避免其他进程的资源占用导致该测试进程的中断,由于该目标容器运行于虚拟机内,其是基于虚拟化层实现目标容器的运行,基于此,通过在虚拟机内运行目标测试任务,可以实现对目标容器的虚拟化性能的测试,即实现虚拟化层性能的测试,并且能够提升容器测试结果的准确性,并且保证容器测试效率,便于后续测试人员根据容器测试结果对目标容器进行调整,从而保证该目标容器在提供服务时的性能,进而保证用户体验。
下述结合附图4,以本说明书提供的容器测试方法在目标容器性能测试的应用为例,对所述容器测试方法进行进一步说明。其中,图4示出了本说明书一个实施例提供的一种容器测试方法的处理过程流程图,具体包括以下步骤。
步骤402:利用管理组件向测试组件发送初始测试指令。
其中,管理组件可以部署于宿主机,宿主机中包括基于虚拟化层创建的虚拟机,可以利用管理组件在该虚拟机中创建目标容器。该初始测试指令可以理解为针对目标容器的性能测试指令。可以理解的,由于目标容器的运行是基于虚拟化层实现的,那么目标容器的性能也可以理解为虚拟化层的性能,针对目标容器的性能测试指令也可以理解为针对虚拟化层的性能测试指令。测试组件可以部署于虚拟机的用户空间,测试组件可以用于挂载虚拟机的用户空间和内核空间之间的接口debugfs,测试组件还可以用于将执行组件加载至内核空间。测试组件将执行组件加载至内核空间之后,会导出测试控制接口(即通过debugfs导出的ioctl接口)和测试结果读取接口。
具体的,测试人员可以通过管理组件输入初始测试指令,该初始测试指令可以包括测试人员输入的具体测试内容和测试参数。
步骤404:测试组件将该初始测试指令发送给通信组件。
其中,通信组件可以部署于虚拟机的用户空间。
步骤406:通信组件将初始测试指令转换为预设格式的目标测试指令,并将该目标测试指令通过接口发送至执行组件。
具体的,通信组件可以将初始测试指令转换为iotcl格式的CMD控制命令,并将该CMD控制命令通过测试控制接口发送至执行组件。
步骤408:执行组件确定该目标测试指令对应的目标测试任务,运行该目标测试任务并确定运行时间,根据运行结果和运行时间确定容器测试结果。
具体的,执行组件可以解析该CMD控制命令,通过CMD控制命令和测试任务(即测试用例)之间的对应关系表,确定该CMD控制命令对应的目标测试用例,并运行该目标测试用例,利用计时函数或者计数器确定运行该目标测试用例的运行时间,根据运行结果和运行时间确定容器测试结果。
步骤410:执行组件将该容器测试结果通过接口返回给通信组件。
具体的,执行组件可以将容器测试结果通过上述测试结果读取接口返回给通信组件,在用户空间直接通过该测试结果读取接口打开相应的结果文件就可以得到当前目标测试用例的测试结果。
步骤412:通信组件将容器测试结果发送给测试组件。
步骤414:测试组件对该容器测试结果进行数据处理,获得数据处理结果,并将容器测试结果和数据处理结果返回给管理组件。
具体的,测试组件可以对该容器测试结果进行平均值计算等数据处理,获得数据处理结果,并将容器测试结果和数据处理结果返回给管理组件,由管理组件展示给测试人员。
综上所述,上述方法通过确定针对运行于虚拟机的目标容器(即安全容器)的目标测试指令对应的目标测试任务,并在运行目标测试任务的同时确定运行时间,并根据运行结果和运行时间获得目标容器的容器测试结果,将计时时间限定在运行目标测试任务时,避免其他进程的资源占用导致该测试进程的中断,由于该目标容器运行于虚拟机内,其是基于虚拟化层实现目标容器的运行,基于此,通过在虚拟机内运行目标测试任务,可以实现对目标容器的虚拟化性能的测试,即实现虚拟化层性能的测试,并且能够提升容器测试结果的准确性,便于后续测试人员根据容器测试结果对目标容器进行调整,从而保证该目标容器在提供服务时的性能,进而保证用户体验。
与上述方法实施例相对应,本说明书还提供了容器测试装置实施例,应用于虚拟机,图5示出了本说明书一个实施例提供的一种容器测试装置的结构示意图。如图5所示,该装置包括:
确定模块502,被配置为响应于针对目标容器的目标测试指令,确定所述目标测试指令对应的目标测试任务,其中,所述目标容器运行于所述虚拟机中;
测试模块504,被配置为运行所述目标测试任务并确定运行时间,根据运行结果和所述运行时间确定所述目标容器对应的容器测试结果。
一个可选的实施例中,所述测试模块504,进一步被配置为:
确定所述目标测试任务的参考运行时间;
根据所述参考运行时间,确定所述目标测试任务的计时方式。
一个可选的实施例中,所述测试模块504,进一步被配置为:
在确定所述参考运行时间达到预设时间阈值的情况下,确定所述目标测试任务的计时方式为利用计时函数进行计时的方式;
调用所述计时函数,将所述计时函数的运行结果作为所述目标测试任务的运行时间。
一个可选的实施例中,所述测试模块504,进一步被配置为:
在确定所述参考运行时间未达到预设时间阈值的情况下,确定所述目标测试任务的计时方式为利用计时器进行计时的方式;
触发所述计时器,将所述计时器的计时结果作为所述目标测试任务的运行时间。
一个可选的实施例中,所述测试模块504,进一步被配置为:
在运行所述目标测试任务并确定运行时间的情况下,调用资源占用函数,其中,所述资源占用函数用于指示所述目标测试任务占用处理器资源。
一个可选的实施例中,所述确定模块502,进一步被配置为:
在所述内核空间中,确定所述目标测试指令对应的目标测试任务。
一个可选的实施例中,所述测试模块504,进一步被配置为:
在所述内核空间中,运行所述目标测试任务并确定运行时间。
一个可选的实施例中,所述内核空间包括测试任务和测试指令之间的对应关系表;所述确定模块502,进一步被配置为:
在所述测试任务和测试指令之间的对应关系表中,确定所述目标测试指令对应的目标测试任务。
一个可选的实施例中,所述确定模块502,进一步被配置为:
在所述用户空间中,响应于针对目标容器的目标测试指令,并将所述目标测试指令发送至所述内核空间。
一个可选的实施例中,所述确定模块502,进一步被配置为:
在所述用户空间中,接收针对目标容器的初始测试指令,并将所述初始测试指令转换为预设格式的目标测试指令,并将所述目标测试指令发送至所述内核空间。
一个可选的实施例中,所述装置还包括处理模块,被配置为:
将所述容器测试结果发送至所述用户空间,在所述用户空间中对所述容器测试结果进行数据处理,获得数据处理结果;
将所述容器测试结果和所述数据处理结果发送至宿主机,并通过所述宿主机的展示界面展示,其中,所述宿主机部署有所述虚拟机。
综上所述,上述装置通过确定针对运行于虚拟机的目标容器(即安全容器)的目标测试指令对应的目标测试任务,并在运行目标测试任务的同时确定运行时间,并根据运行结果和运行时间获得目标容器的容器测试结果,将计时时间限定在运行目标测试任务时,避免其他进程的资源占用导致该测试进程的中断,由于该目标容器运行于虚拟机内,其是基于虚拟化层实现目标容器的运行,基于此,通过在虚拟机内运行目标测试任务,可以实现对目标容器的虚拟化性能的测试,即实现虚拟化层性能的测试,并且能够提升容器测试结果的准确性,便于后续测试人员根据容器测试结果对目标容器进行调整,从而保证该目标容器在提供服务时的性能,进而保证用户体验。
上述为本实施例的一种容器测试装置的示意性方案。需要说明的是,该容器测试装置的技术方案与上述的容器测试方法的技术方案属于同一构思,容器测试装置的技术方案未详细描述的细节内容,均可以参见上述容器测试方法的技术方案的描述。
与上述方法实施例相对应,本说明书还提供了容器测试系统实施例,应用于宿主机,所述宿主机部署有虚拟机,所述虚拟机包括用户空间和内核空间,图6示出了本说明书一个实施例提供的一种容器测试系统的结构示意图。如图6所示,该系统包括:
所述虚拟机600,被配置为在所述用户空间602中接收初始测试指令,并将所述初始测试指令转换为预设格式的目标测试指令,并将所述目标测试指令发送至所述内核空间604;
所述虚拟机600,还被配置为在所述内核空间604中根据所述目标测试指令,确定所述目标测试指令对应的目标测试任务,运行所述目标测试任务并确定运行时间,根据运行结果和所述运行时间确定所述目标容器对应的容器测试结果。
具体的,所述用户空间602部署有测试组件和通信组件,所述内核空间604部署有执行组件,其中,
所述测试组件,被配置为接收所述初始测试指令,并将所述初始测试指令发送至所述通信组件;
所述通信组件,被配置为将所述初始测试指令转换为预设格式的目标测试指令,并将所述目标测试指令发送至所述执行组件;
所述执行组件,被配置为根据所述目标测试指令,确定所述目标测试指令对应的目标测试任务,运行所述目标测试任务并确定运行时间,根据运行结果和所述运行时间确定所述目标容器对应的容器测试结果。
此外,所述虚拟机,还被配置为在内核空间中将所述容器测试结果发送至所述用户空间;在用户空间中对所述容器测试结果进行数据处理,获得数据处理结果,将所述容器测试结果和所述数据处理结果发送至所述宿主机。
其中,宿主机中可以部署有管理组件。
所述管理组件,被配置为在所述虚拟机中创建目标容器,并接收针对所述目标容器的初始测试指令,将所述初始测试指令发送至所述测试组件。
综上所述,上述系统通过确定针对运行于虚拟机的目标容器(即安全容器)的目标测试指令对应的目标测试任务,并在运行目标测试任务的同时确定运行时间,并根据运行结果和运行时间获得目标容器的容器测试结果,将计时时间限定在运行目标测试任务时,避免其他进程的资源占用导致该测试进程的中断,由于该目标容器运行于虚拟机内,其是基于虚拟化层实现目标容器的运行,基于此,通过在虚拟机内运行目标测试任务,可以实现对目标容器的虚拟化性能的测试,即实现虚拟化层性能的测试,并且能够提升容器测试结果的准确性,便于后续测试人员根据容器测试结果对目标容器进行调整,从而保证该目标容器在提供服务时的性能,进而保证用户体验。
图7示出了根据本说明书一个实施例提供的一种计算设备700的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,networkinterface controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Network)无线接口、全球微波互联接入(Wi-MAX,WorldwideInteroperability for Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)接口,等等。
在本申请的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(PC,Personal Computer)的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
其中,处理器720用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述容器测试方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的容器测试方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述容器测试方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述容器测试方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的容器测试方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述容器测试方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述容器测试方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的容器测试方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述容器测试方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据专利实践的要求进行适当的增减,例如在某些地区,根据专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (13)
1.一种容器测试方法,应用于虚拟机,所述方法包括:
响应于针对目标容器的目标测试指令,确定所述目标测试指令对应的目标测试任务,其中,所述目标容器运行于所述虚拟机中;
确定所述目标测试任务的参考运行时间,在确定所述参考运行时间达到预设时间阈值的情况下,确定所述目标测试任务的计时方式为利用计时函数进行计时的方式;
确定所述参考运行时间未达到预设时间阈值的情况下,确定所述目标测试任务的计时方式为利用计时器进行计时的方式;
运行所述目标测试任务并确定运行时间,根据运行结果和所述运行时间确定所述目标容器对应的容器测试结果。
2.根据权利要求1所述的方法,所述确定运行时间,包括:
调用所述计时函数,将所述计时函数的运行结果作为所述目标测试任务的运行时间。
3.根据权利要求1所述的方法,所述确定运行时间,包括:
触发所述计时器,将所述计时器的计时结果作为所述目标测试任务的运行时间。
4.根据权利要求1所述的方法,所述运行所述目标测试任务并确定运行时间,包括:
在运行所述目标测试任务并确定运行时间的情况下,调用资源占用函数,其中,所述资源占用函数用于指示所述目标测试任务占用处理器资源。
5.根据权利要求1所述的方法,所述虚拟机包括用户空间和内核空间;
相应地,所述确定所述目标测试指令对应的目标测试任务,包括:
在所述内核空间中,确定所述目标测试指令对应的目标测试任务;
相应地,所述运行所述目标测试任务并确定运行时间,包括:
在所述内核空间中,运行所述目标测试任务并确定运行时间。
6.根据权利要求5所述的方法,所述内核空间包括测试任务和测试指令之间的对应关系表;
相应地,所述确定所述目标测试指令对应的目标测试任务,包括:
在所述测试任务和测试指令之间的对应关系表中,确定所述目标测试指令对应的目标测试任务。
7.根据权利要求5所述的方法,所述响应于针对目标容器的目标测试指令,包括:
在所述用户空间中,响应于针对目标容器的目标测试指令,并将所述目标测试指令发送至所述内核空间。
8.根据权利要求7所述的方法,所述在所述用户空间中,响应于针对目标容器的目标测试指令,并将所述目标测试指令发送至所述内核空间,包括:
在所述用户空间中,接收针对目标容器的初始测试指令,并将所述初始测试指令转换为预设格式的目标测试指令,并将所述目标测试指令发送至所述内核空间。
9.根据权利要求8所述的方法,所述根据运行结果和所述运行时间确定所述目标容器对应的容器测试结果之后,还包括:
将所述容器测试结果发送至所述用户空间,在所述用户空间中对所述容器测试结果进行数据处理,获得数据处理结果;
将所述容器测试结果和所述数据处理结果发送至宿主机,并通过所述宿主机的展示界面展示,其中,所述宿主机部署有所述虚拟机。
10.一种容器测试系统,应用于宿主机,所述宿主机部署有虚拟机,所述虚拟机包括用户空间和内核空间,其中,
所述虚拟机,被配置为在所述用户空间中接收初始测试指令,并将所述初始测试指令转换为预设格式的目标测试指令,并将所述目标测试指令发送至所述内核空间;
所述虚拟机,还被配置为在所述内核空间中根据所述目标测试指令,确定所述目标测试指令对应的目标测试任务,确定所述目标测试任务的参考运行时间,在确定所述参考运行时间达到预设时间阈值的情况下,确定所述目标测试任务的计时方式为利用计时函数进行计时的方式;确定所述参考运行时间未达到预设时间阈值的情况下,确定所述目标测试任务的计时方式为利用计时器进行计时的方式;运行所述目标测试任务并确定运行时间,根据运行结果和所述运行时间确定目标容器对应的容器测试结果。
11.根据权利要求10所述的系统,所述用户空间部署有测试组件和通信组件,所述内核空间部署有执行组件,其中,
所述测试组件,被配置为接收所述初始测试指令,并将所述初始测试指令发送至所述通信组件;
所述通信组件,被配置为将所述初始测试指令转换为预设格式的目标测试指令,并将所述目标测试指令发送至所述执行组件;
所述执行组件,被配置为根据所述目标测试指令,确定所述目标测试指令对应的目标测试任务,运行所述目标测试任务并确定运行时间,根据运行结果和所述运行时间确定所述目标容器对应的容器测试结果。
12.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至9任意一项所述方法的步骤。
13.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至9任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310404354.1A CN116126737B (zh) | 2023-04-11 | 2023-04-11 | 容器测试方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310404354.1A CN116126737B (zh) | 2023-04-11 | 2023-04-11 | 容器测试方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116126737A CN116126737A (zh) | 2023-05-16 |
CN116126737B true CN116126737B (zh) | 2023-09-26 |
Family
ID=86304911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310404354.1A Active CN116126737B (zh) | 2023-04-11 | 2023-04-11 | 容器测试方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116126737B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112162891A (zh) * | 2020-10-14 | 2021-01-01 | 腾讯科技(深圳)有限公司 | 服务器集群中的性能测试方法及相关设备 |
CN114116495A (zh) * | 2021-11-30 | 2022-03-01 | 上海商汤临港智能科技有限公司 | 测试方法及装置、电子设备和存储介质 |
CN114816806A (zh) * | 2022-05-09 | 2022-07-29 | 中国工商银行股份有限公司 | 容器可用性验证方法、装置、计算机设备和存储介质 |
CN114860577A (zh) * | 2022-03-31 | 2022-08-05 | 北京金堤科技有限公司 | 测试方法、装置、可读介质及电子设备 |
CN115481006A (zh) * | 2021-05-28 | 2022-12-16 | 中国移动通信集团重庆有限公司 | 应用程序测试方法、装置、电子设备和存储介质 |
CN115756987A (zh) * | 2022-11-22 | 2023-03-07 | 中国工商银行股份有限公司 | 容器测试方法及装置、故障注入方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8381231B2 (en) * | 2008-09-09 | 2013-02-19 | Dell Products L.P. | Deployment and management of virtual containers |
-
2023
- 2023-04-11 CN CN202310404354.1A patent/CN116126737B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112162891A (zh) * | 2020-10-14 | 2021-01-01 | 腾讯科技(深圳)有限公司 | 服务器集群中的性能测试方法及相关设备 |
CN115481006A (zh) * | 2021-05-28 | 2022-12-16 | 中国移动通信集团重庆有限公司 | 应用程序测试方法、装置、电子设备和存储介质 |
CN114116495A (zh) * | 2021-11-30 | 2022-03-01 | 上海商汤临港智能科技有限公司 | 测试方法及装置、电子设备和存储介质 |
CN114860577A (zh) * | 2022-03-31 | 2022-08-05 | 北京金堤科技有限公司 | 测试方法、装置、可读介质及电子设备 |
CN114816806A (zh) * | 2022-05-09 | 2022-07-29 | 中国工商银行股份有限公司 | 容器可用性验证方法、装置、计算机设备和存储介质 |
CN115756987A (zh) * | 2022-11-22 | 2023-03-07 | 中国工商银行股份有限公司 | 容器测试方法及装置、故障注入方法及装置 |
Non-Patent Citations (2)
Title |
---|
Performance Evaluation for Deploying Docker Containers On Baremetal and Virtual Machine;Ashish Lingayat等;IEEE Xplore;全文 * |
应用于JUNO实验的容器技术研究;谭宏楠 等;计算机工程;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116126737A (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933522B (zh) | 一种自动化用例的测试方法、测试系统及存储介质 | |
US8607200B2 (en) | Executing a web application at different stages in the application life cycle | |
US10530837B2 (en) | Always-on monitoring in the cloud | |
CN106649084B (zh) | 函数调用信息的获取方法及装置、测试设备 | |
CN111090536B (zh) | 一种获取内存泄露信息的方法、装置、介质和电子设备 | |
US9378114B2 (en) | Code analysis method, code analysis system and computer storage medium | |
CN109634718B (zh) | 云平台创建镜像的方法及系统 | |
US20190104182A1 (en) | Policy controlled semi-autonomous infrastructure management | |
US8793688B1 (en) | Systems and methods for double hulled virtualization operations | |
US10284660B1 (en) | Data flow tokens to trace execution of services in a service provider network | |
US8359488B2 (en) | Keeping time in multi-processor virtualization environments | |
US9769052B2 (en) | System testing framework | |
WO2023160398A1 (zh) | 数据处理方法以及系统 | |
Gallenmüller et al. | 5G URLLC: A case study on low-latency intrusion prevention | |
CN113485880A (zh) | 测试方法及装置 | |
US20170329622A1 (en) | Shared virtual data structure of nested hypervisors | |
CN107003828B (zh) | 图形指令的仪器化 | |
WO2015088374A1 (en) | Systems and methods for cross-architecture container virtualization | |
CN115168130A (zh) | 一种芯片测试方法、装置、电子设备及存储介质 | |
CN116126737B (zh) | 容器测试方法以及装置 | |
RU2727070C1 (ru) | Средство инструментального оснащения для временных промежутков | |
CN109189652A (zh) | 一种封闭网络终端行为数据的采集方法及系统 | |
US20200387441A1 (en) | Cross jobs failure dependency in ci/cd systems | |
CN113076233B (zh) | 一种io性能检测方法、装置、设备及存储介质 | |
CN116775202A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |