云上服务测试方法、装置和系统以及容器测试方法和装置与流程

文档序号:26402225发布日期:2021-08-24 16:15阅读:210来源:国知局
云上服务测试方法、装置和系统以及容器测试方法和装置与流程

本公开涉及互联网领域的云平台,特别涉及云上服务测试方案和应用容器测试方案。



背景技术:

随着云计算的快速发展,越来越多的用户基于云服务,例如ecs、ack、edas、eci等,构建了非常丰富的微服务应用。

对于这样一些应用,尤其是在网络环境复杂例如ack等级联网络下的应用,为了评估微服务应用性能,需要执行压力测试(压测),为了测试服务的逻辑正确性,需要进行服务测试。

另一方面,已有很多应用部署到容器中。容器作为基础设施,承载着大量的应用,且技术方案经常升级,一旦方案升级存在性能劣化,对上层应用的性能损耗将会更大,例如容器性能下降1s,上层应用有可能下降10s。因此,需要对容器的技术升级方案进行性能评估。

在传统的测试方法中,用户需要购买云资源并搭建测试环境,还需要安装测试引擎、测试工具,例如用于压力测试的工具jmeter,用于测试dubbo(开源分布式服务框架)和springcloud服务的工具等。然后还需要自行执行测试,收集测试结果。

然而,由于云上网络拓扑复杂,要将云资源网络打通比较困难,用户需要熟悉微服务dubbo和springcloud框架,对服务测试人员要求高,需要对云服务网络非常熟悉的人才能胜任。

另外,用户搭建测试环境还需要对测试工具比较熟悉,以便编写测试工具。

因此,仍然需要一种操作简单,对测试人员要求较低的测试方案。



技术实现要素:

本公开要解决的一个技术问题是提供一种云平台相关的测试方案,其实操作便利,对测试人员的技能要求低。

根据本公开的第一个方面,提供了一种基于无服务器架构的云上服务压力测试控制方法,包括:接收用户输入的压测需求信息和压测对象网络信息,创建针对压测对象的压测场景;根据压测需求信息和压测对象网络信息,确定压力机分配策略;根据压力机分配策略分配压力机;以及接收所分配的压力机上报的压测结果。

可选地,该方法还可以包括:响应于压测场景启动指令,生成压测任务;以及将被启动的压测场景的压测对象网络信息,关联到压测任务,以便执行压测任务的压力机获取压测对象网络信息,从而基于压测对象网络信息配置网络。

可选地,根据压力机分配策略分配压力机的步骤可以包括:将压力机分配策略关联到压测任务,以便执行压测任务时根据压力机分配策略分配压力机;将压测任务划分为多个压测子任务;以及将压测子任务分配给根据压力机分配策略分配的多个压力机。

可选地,该方法还可以包括:将压测对象网络信息与压测任务id关联地存储在压力机能够访问的数据库或存储器上,以便被分配压测子任务的压力机获取压测子任务所属压测任务对应的压测对象网络信息。

可选地,该方法还可以包括:响应于针对压测场景的压测任务停止,释放为压测场景分配的压力机。

可选地,该方法还可以包括:统计所使用压力机数量和压力机使用时长,以计算压测服务所耗费的资源。

可选地,该方法还可以包括:提供压测场景配置界面,以便用户配置压测场景;以及/或者向用户呈现所配置的压测场景;以及/或者接收用户对所配置的压测场景的修改指令,并对压测场景进行相应修改。

可选地,该方法还可以包括:向用户输出所确定的压力机分配策略;以及/或者接收用户对压力机分配策略的修改指令,并对压力机分配策略进行相应修改;以及/或者将压力机分配策略与压测任务id关联地存储在数据库或存储器上,以便执行压测任务时获取对应的压力机分配策略;以及/或者将压力机分配策略存储在数据库或存储器上,以便执行其它压测任务时获取压力机分配策略,以作为备选压力机分配策略。

可选地,该方法还可以包括:对来自多个压力机的压测结果进行综合处理,得到压测报告;以及向用户输出压测报告。

根据本公开的第二个方面,提供了一种基于无服务器架构的云上服务压力测试方法,包括:接收针对压测对象的压测子任务;获取压测子任务所属压测任务对应的压测对象网络信息;基于压测对象网络信息配置压力机网络;与压测对象交互以执行压测子任务;以及上传压测结果。

可选地,基于压测对象网络信息配置压力机网络的步骤可以包括:基于压测对象网络信息创建虚拟网卡;和/或基于压测对象网络信息配置路由。

根据本公开的第三个方面,提供了一种基于无服务器架构的云上服务压力测试系统,包括控制平台和多个压力机,其中,控制平台接收用户输入的压测需求信息和压测对象网络信息,创建针对压测对象的压测场景,并根据压测需求信息和压测对象网络信息,确定压力机分配策略,根据压力机分配策略分配压力机;压力机获取压测对象网络信息,并基于压测对象网络信息配置网络,从而与压测对象交互以执行压测子任务,并向控制平台上传压测结果。

根据本公开的第四个方面,提供了一种基于无服务器架构的云上服务压力测试控制装置,包括:场景创建装置,用于接收用户输入的压测需求信息和压测对象网络信息,创建针对压测对象的压测场景;策略确定装置,用于根据压测需求信息和压测对象网络信息,确定压力机分配策略;压力机分配装置,用于根据压力机分配策略分配压力机;以及结果接收装置,用于接收所分配的压力机上报的压测结果。

可选地,该装置还可以包括:任务生成装置,用于响应于压测场景启动指令,生成压测任务;以及网络信息关联装置,用于将被启动的压测场景的压测对象网络信息,关联到压测任务,以便执行压测任务的压力机获取压测对象网络信息,从而基于压测对象网络信息配置网络。

可选地,该装置还可以包括:压力机释放装置,用于响应于针对压测场景的压测任务停止,释放为压测场景分配的压力机。

根据本公开的第五个方面,提供了一种基于无服务器架构的云上服务压力测试装置,包括:任务接收装置,用于接收针对压测对象的压测子任务;网络信息获取装置,用于获取压测子任务所属压测任务对应的压测对象网络信息;网络配置装置,用于基于压测对象网络信息配置压力机网络;压测执行装置,用于与压测对象交互以执行压测子任务;以及结果上传装置,用于上传压测结果。

根据本公开的第六个方面,提供了一种基于无服务器架构的云上服务测试控制方法,包括:接收用户输入的测试场景信息;根据测试场景,申请测试机;接收并存储针对测试场景设置的测试参数;响应于来自测试机的测试参数获取请求,将所存储的针对测试场景设置的测试参数发送给测试机;以及接收测试机通过执行测试而得到的测试结果。

可选地,该方法还可以包括:响应于自最近一次接收到测试参数起,未接收到新的测试参数的持续时间超过预定时长阈值,释放所申请的测试机。

可选地,该方法还可以包括:提供测试场景配置界面,以便用户配置测试场景;以及/或者向用户呈现所配置的测试场景;以及/或者接收用户对所配置的测试场景的修改指令,并相应对测试场景进行修改。

可选地,该方法还可以包括:基于所述测试结果得到服务性能评分;以及向用户输出所述服务性能评分。

根据本公开的第七个方面,提供了一种基于无服务器架构的云上服务测试方法,包括:响应于接收到针对测试对象的服务测试任务,启动测试引擎;周期性地发送测试参数获取请求,以获取测试参数;基于测试参数对测试对象进行测试;以及上传测试结果。

根据本公开的第八个方面,提供了一种基于无服务器架构的云上服务测试系统,包括控制平台和测试机,其中,控制平台接收用户输入的测试场景信息,并根据测试场景,申请测试机;申请的测试机响应于接收到针对测试对象的服务测试任务,启动测试引擎;控制平台接收并存储针对测试场景设置的测试参数;测试机周期性地发送测试参数获取请求,以获取测试参数;控制平台响应于来自测试机的测试参数获取请求,将所存储的针对测试场景设置的测试参数发送给测试机;测试机基于测试参数对测试对象进行测试,并上传测试结果。

根据本公开的第九个方面,提供了一种基于无服务器架构的云上服务测试控制装置,包括:场景信息输入装置,用于接收用户输入的测试场景信息;测试机申请装置,用于根据测试场景,申请测试机;测试参数输入装置,用于接收并存储针对测试场景设置的测试参数;测试参数发送装置,用于响应于来自测试机的测试参数获取请求,将所存储的针对测试场景设置的测试参数发送给测试机;以及测试结果接收装置,用于接收测试机通过执行测试而得到的测试结果。

可选地,该服务测试控制装置还可以包括:测试机释放装置,用于响应于自最近一次接收到测试参数起,未接收到新的测试参数的持续时间超过预定时长阈值,释放所申请的测试机。

根据本公开的第十个方面,提供了一种基于无服务器架构的云上服务测试装置,包括:引擎启动装置,用于响应于接收到针对测试对象的服务测试任务,启动测试引擎;参数获取装置,用于周期性地发送测试参数获取请求,以获取测试参数;测试执行装置,用于基于测试参数对测试对象进行测试;以及结果上传装置,用于上传测试结果。

根据本公开的第十一个方面,提供了一种应用容器测试方法,包括:提供多个模拟上层应用,以供用户选择;提供多个标准化场景,以供用户选择;将用户选择的模拟上层应用部署在应用容器中;以及基于所选标准化场景和部署到应用容器中的模拟上层应用,对应用容器进行测试。

可选地,该方法还可以包括:响应于用户的设置,基于用户选择的模拟上层应用构建场景。

可选地,该方法还可以包括:基于kubernetes标准应用程序接口,初始化要部署模拟上层应用的环境。

可选地,该方法还可以包括:向用户提供环境设置界面,以便用户设置环境参数;以及基于用户设置的环境参数对环境进行设置。

可选地,该方法还可以包括:在测试结束之后,销毁环境。

可选地,该方法还可以包括:向用户提供测试控制界面,以便用户设置测试参数。

可选地,该方法还可以包括:在测试控制界面上提供场景启动输入模块和/或场景停止输入模块;响应于用户对场景启动输入模块的操作,启动场景,并且/或者,响应于用户对场景停止输入模块的操作,停止场景。

可选地,该方法还可以包括:收集测试结果;基于测试结果展示测试报告和/或进行性能评分和/或进行性能比对。

根据本公开的第十二个方面,提供了一种应用容器测试装置,包括:应用选择装置,用于提供多个模拟上层应用,以供用户选择;场景选择装置,用于提供多个标准化场景,以供用户选择;应用部署装置,用于将用户选择的模拟上层应用部署在应用容器中;以及测试装置,用于基于所选标准化场景和部署到应用容器中的模拟上层应用,对应用容器进行测试。

可选地,该装置还可以包括环境设置装置,用于:基于kubernetes标准应用程序接口,初始化要部署模拟上层应用的环境;以及/或者向用户提供环境设置界面,以便用户设置环境参数,并基于用户设置的环境参数对环境进行设置;以及/或者在测试结束之后,销毁环境。

可选地,该装置还可以包括测试控制装置,用于:向用户提供测试控制界面,以便用户设置测试参数;以及/或者在测试控制界面上提供场景启动输入模块和/或场景停止输入模块,响应于用户对场景启动输入模块的操作,启动场景,并且/或者,响应于用户对场景停止输入模块的操作,停止场景;以及/或者收集测试结果,基于测试结果展示测试报告和/或进行性能评分和/或进行性能比对。根据本公开的第十三个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一、二、六、七、十一方面所述的方法。

根据本公开的第十四个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一、二、六、七、十一方面所述的方法。

由此,用户只需要配置压力测试场景或服务测试场景,测试系统即可实现相应的压测或服务测试,实现了便利的测试,用户不再需要熟悉云上网络拓扑结构,也不需要了解复杂的压测或服务测试工具。

根据本公开的一些实施例的测试方案,用户无需维护压测及测试工具,实现了开箱即用。这样,低专业水平的人也能够胜任测试工作。

另外,根据本公开的一些实施例的测试方案基于serverless架构,还能够节省资源成本。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。

图1是根据本公开的测试系统的示意图。

图2是根据本公开的压力测试方法的示意性流程图。

图3是根据本公开的压力测试控制装置的示意性框图。

图4是根据本公开的压力测试装置的示意性框图。

图5是根据本公开的服务测试方法的示意性流程图。

图6是根据本公开的服务测试控制装置的示意性框图。

图7是根据本公开的服务测试装置的示意性框图。

图8是根据本公开的应用容器测试方法的示意性流程图。

图9是根据本公开的应用容器测试方法中环境设置过程的示意性流程图。

图10是根据本公开的应用容器测试装置的示意性框图。

图11是根据本公开的应用容器测试系统架构的示意性框图。

图12示出了根据本公开一实施例可用于实现上述测试方法的计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

图1示意性地示出了根据本公开的云上服务测试系统。

如图1所示,测试系统包括控制平台100和多个测试机200。

云平台300上可以有各种服务,例如“服务onedas(企业级分布式应用服务)”、“服务onack(容器服务kubernetes版)”、“服务onecs(云服务器,elasticcomputeservice)”、“服务oneci(弹性容器实例)”等。用户可以基于这些服务构建应用,实现期望的服务。

该测试系统可以基于无服务器(serverless)架构。这样,用户只需要进行场景配置,测试参数设置,不需要负责执行压力测试及服务测试的机器的运维,可以实现开箱即用。

控制平台100根据测试要求分配或选择测试机200。所分配或选择的测试机200与进行交互,从而对用户期望测试的服务进行相关测试。

当作为压力测试系统时,测试机200可以是压力机或压力测试机。

控制平台100可以接收用户输入的压测需求信息和压测对象网络信息,创建针对云平台300上的压测对象(服务或应用)的压测场景。

然后,控制平台100可以根据压测需求信息和压测对象网络信息,确定压力机分配策略,并根据压力机分配策略分配压力机。

压力机可以相应获取压测对象网络信息,并基于压测对象网络信息配置网络,从而与云平台300上的压测对象交互以执行压测(子)任务,并向控制平台100上传压测结果。

当作为服务测试系统时,测试机200可以是服务测试机,或者也可以简称为测试机。

控制平台100接收用户输入的测试场景信息,并根据测试场景,申请测试机200。

所申请或相应分配的测试机200响应于接收到针对云平台300上的测试对象的服务测试任务,启动测试引擎。

控制平台100接收并存储针对测试场景设置的测试参数。

测试机200周期性地发送测试参数获取请求,以获取测试参数。

控制平台100响应于来自测试机的测试参数获取请求,将所存储的针对测试场景设置的测试参数发送给测试机200。

测试机200基于测试参数对测试对象进行测试,并上传测试结果。

【云上服务压力测试】

下面参考图2至4描述根据本公开的云上服务压力测试方案。

图2是根据本公开的云上服务压力测试方法的示意性流程图。

图3是根据本公开的云上服务压力测试控制装置的示意性框图。

图4是根据本公开的云上服务压力测试装置的示意性框图。

图3所示的云上服务压力测试控制装置可以用于执行控制平台100的各个相应操作步骤。图4所示的云上服务压力测试装置可以用于执行压力机的各个相应操作步骤。

如图2所示,在步骤s110,控制平台100可以向用户提供压测场景配置界面,以便用户配置压测场景。

在步骤s10,用户在压测场景配置界面上配置压测场景信息。压测场景信息可以包括压测对象(期望压测的云上服务)信息、压测需求信息和压测对象网络信息等。

用户可以用户根据云上发布的服务,填写压测需求信息,例如压测时长、压力模式等。

用户可以根据期望压测的云上服务(压测对象)所在的网络拓扑结构,填写网络信息,例如vpc(专有网络或虚拟私有云)、交换机、安全组等。如果是ack还可以填写pod信息。

在步骤s112,控制平台100,例如可以通过场景创建装置110,接收用户输入的压测需求信息和压测对象网络信息,创建针对压测对象的压测场景。

另外,控制平台100还可以向用户呈现所配置的压测场景,以便用户进行查看。

控制平台100可以在步骤s112创建压测场景之后向用户呈现所配置的压测场景。或者,控制平台100也可以响应于用户的查看指令而向用户呈现所配置的压测场景。

控制平台100可以在启动压测场景之前向用户呈现所配置的压测场景。或者,控制平台100也可以在已经启动压测场景之后,例如响应于用户的查看指令,向用户呈现所配置的压测场景。或者,也可以在压测过程中始终向用户呈现所配置的压测场景。

当用户看到所配置的压测场景,期望对其进行修改时,可以发出相应的修改指令。

控制平台100可以接收用户对所配置的压测场景的修改指令,并对压测场景进行相应修改。

修改指令可以在启动压测场景之前发出。或者,也可以在压测场景(压测任务)执行结束后发出,以便发起新的压测场景(压测任务)。或者,也可以在压测场景执行过程中发出,以便调整正在执行的压测场景,相应调整例如压力机分配策略、压力机网络配置等。

在步骤s20,用户发出启动压测场景的指令。

于是,在步骤s120,控制平台100,例如可以通过任务生成装置120,响应于压测场景启动指令,生成压测任务。压测任务可以分配有任务id,以便于后面的任务执行、信息关联等。

在步骤s122,控制平台100,例如可以通过网络信息关联装置130,将被启动的压测场景的压测对象网络信息,关联到压测任务。

例如,可以将压测对象网络信息与压测任务的id相关联的存储在压力机能够访问的数据库或存储器上。这里的数据库或存储器可以是控制平台100自设的,也可以是第三方数据库或存储器。该数据库或存储器可以作为共享数据库或共享数据库,供网络架构中各种服务、功能或函数访问,存储各种服务、功能或函数需要的数据,并例如基于访问权限实现不同服务、功能或函数之间的数据传递。

这样,被分配执行该压测任务(或压测子任务)的压力测试机或压力机210可以基于压测任务id来获取压测对象网络信息,从而基于压测对象网络信息配置网络。

在步骤s124,控制平台100,例如可以通过策略确定装置140,根据压测场景信息,特别是压测需求信息和压测对象网络信息,确定压力机分配策略。

压力机分配策略例如可以包括压力机的数量、类型、网络模式等。

例如,需要并发任务为100,一个压力机能够执行50个并发任务,则需要分配200个压力机。另外,例如还可以网络模式例如3g、4g、5g、wi-fi等来设定压力机分配策略。

在步骤s125,控制平台100,例如可以通过策略关联装置150,将压力机分配策略关联到压测任务,例如可以与压测任务id关联地存储压力机分配测量。

例如,可以将压力机分配策略与压测任务的id相关联的存储在数据库或存储器上。该数据库或存储器也可以是上文所描述的存储压测对象网络信息的共享数据库或共享存储器。

这样,执行压测任务时,可以根据压测任务对应的压力机分配策略来分配压力机210。

在步骤s126,控制平台100,例如可以通过压力机分配装置160,根据要执行的压测任务对应的压力机分配策略分配压力机210。

控制平台100例如可以将压测任务划分为多个并行的压测子任务,然后将这些压测子任务分配给根据压力机分配策略分配的多个压力机。

在步骤s210,被分配压测任务的压力机210,例如可以通过任务接收装置211,从控制平台100接收针对压测对象的压测子任务。

在步骤s220,压力机210,例如可以通过网络信息获取装置212,获取压测子任务所属压测任务对应的压测对象网络信息。例如,压力机210可以基于压测任务id向控制平台100请求压测对象网络信息。或者,压力机210可以从关联存储压测任务id和压测对象网络信息的数据库或存储器上获取对应的压测对象网络信息。

在步骤s230,压力机210,例如可以通过网络配置装置213,基于压测对象网络信息配置压力机网络,设置网络互连策略,以便与云平台300进行交互,对用户期望的压测对象(服务/应用)进行测试。

这里,压力机210可以基于压测对象网络信息创建虚拟网卡,并且/或者,压力机210还可以基于压测对象网络信息配置路由。

压力机210可以基于压测需求信息,准备启动参数,启动压测引擎。

在步骤s240,压力机210,例如可以通过压测执行装置214,与压测对象交互,以执行压测子任务。

在步骤s250,压力机210,例如可以通过结果收集装置215,收集压测结果数据。压测结果数据可以包括各种压测指标的实测数据。

在步骤s260,压力机210,例如可以通过结果上传装置216,向控制平台100上传压测结果。

在步骤s128,控制平台100,例如可以通过结果接收装置170,接收所分配的压力机210上报的压测结果。控制平台100可以将所接收到的压测结果存储在数据库或存储器中,以便进行综合分析统计处理。

在步骤s130,控制平台100,例如可以通过结果处理装置180,对来自多个压力机210针对同一压测任务(压测场景)的压测结果进行综合分析统计处理,得到压测报告,并向用户输出所述压测报告。

于是,在步骤s30,用户可以查看压测结果(压测报告)。

这样,用户只需要在压侧场景配置界面上配置压测场景,输入压测对象信息、压测需求信息、压测对象网络信息,然后启动压测场景,测试系统即可自动对待压测对象(服务)执行压力测试,并反馈压测结果,供用户查看。

测试系统可以根据压测需求信息和压测对象网络信息来设定压力机分配,从而实现压力机分配。进一步地,测试系统还可以将用户输入的压测对象网络信息通过与测试任务关联,传递给压力机210,使得压力机能够根据压测对象网络信息来配置压力机的网络,以便与待测对象(云上服务/应用)进行交互,执行压测。

由此,基于无服务器(serverless)架构,实现了便利的压测方案,用户不再需要熟悉云上网络拓扑结构,也不需要了解复杂的压测工具,只需简单的页面操作,即可对云上服务进行压力测试。

接下来描述压力机的自动释放机制。

可以设置压测自动停止条件,例如压测时长。也可以响应于用户的压测场景停止指令来停止压测。

在步骤s40,用户设定场景自动停止条件,例如压测时长。

在步骤s140,控制平台100判断是否满足停止条件,例如计算压测时长,判断压测时长是否达到预定的压测时长阈值。当满足停止条件时,压测任务停止。

或者,在步骤s50,用户发出停止压测场景的指令,然后使压测任务停止。

在步骤s150,控制平台100可以指令压力机210(在步骤s270),停止结果上报。

在步骤s152,控制平台100,例如可以通过压力机释放装置190,响应于针对压测场景的压测任务停止,释放为压测场景分配的压力机210。

在步骤s280,压力机210被释放,从而可以执行其它压力测试任务。

通过实现压力机的自动释放,进一步避免了资源浪费。

【云上服务测试】

下面参考图5至7描述根据本公开的云上服务测试方案。

图5是根据本公开的云上服务测试方法的示意性流程图。

图6是根据本公开的云上服务测试控制装置的示意性框图。

图7是根据本公开的云上服务测试装置的示意性框图。

图6所示的云上服务测试控制装置可以用于执行控制平台100的各个相应操作步骤。图7所示的云上服务测试装置可以用于执行服务测试机(测试机)220的各个相应操作步骤。

如图5所示,在步骤s1110,控制平台100向用户提供服务测试配置界面,以便用户配置测试场景。

在步骤s1010,用户根据期望测试的云上服务(测试对象)所在的网络信息,例如vpc(专有网络或虚拟私有云)、交换机、安全组等,配置测试场景。

在步骤s1112,控制平台100,例如可以通过场景信息输入装置1110,接收用户输入的测试场景信息,实现用户对测试场景的配置。

另外,控制平台100还可以向用户呈现所配置的测试场景,以便用户进行查看。

控制平台100可以在步骤s1112进行测试场景配置之后向用户呈现所配置的测试场景。或者,控制平台100也可以响应于用户的查看指令而向用户呈现所配置的测试场景。

控制平台100可以在启动测试场景之前向用户呈现所配置的测试场景。或者,控制平台100也可以在已经启动测试场景之后,例如响应于用户的查看指令,向用户呈现所配置的测试场景。或者,也可以在测试过程中始终向用户呈现所配置的测试场景。

当用户看到所配置的测试场景,期望对其进行修改时,可以发出相应的修改指令。

控制平台100可以接收用户对所配置的测试场景的修改指令,并相应对测试场景进行修改。

修改指令可以在启动测试场景之前发出。或者,也可以在测试场景(测试任务)执行结束后发出,以便发起新的测试场景(测试任务)。或者,也可以在测试场景执行过程中发出,以便调整正在执行的测试场景,以对测试过程进行调整,例如对测试机进行调整。

在步骤s1114,控制平台100,例如可以通过测试机申请装置1120,根据测试场景,申请测试机220。

在步骤s1210,测试机220,例如可以通过引擎启动装置1211,响应于接收到针对测试对象的服务测试任务,启动测试引擎。另外,还可以向控制平台100建立netty连接。

在步骤s1122,控制平台100可以向用户提供测试界面。

在步骤s1020,用户可以在测试界面上填写测试参数。

在步骤s1124,控制平台100,例如可以通过测试参数输入装置1130,接收并存储针对测试场景设置的测试参数。

控制平台100可以将测试参数存储在例如控制平台100自设或第三方的数据库或存储器上。

在步骤s1220,测试机220,例如可以通过参数获取装置1212,周期性地发送测试参数获取请求。这里,测试机220可以定时请求测试参数,查询周期例如可以为100毫秒。

在步骤s1126,控制平台100,例如可以通过测试参数发送装置1140,响应于来自测试机的测试参数获取请求,在数据库或存储器中查找针对该测试场景设置的测试参数,并在步骤s1128,将所查找到的针对该测试场景设置的测试参数发送给测试机。

在步骤s1230,测试机220,例如可以通过参数获取装置1212,从测试平台100接收测试参数。

在步骤s1240,测试机220,例如可以通过测试执行装置1213,调用云上服务(测试对象),以基于测试参数对云平台300上的测试对象(服务/应用)进行测试。

在步骤s1250,测试机220,例如可以通过结果收集装置1214,收集测试结果。

在步骤s1260,测试机220,例如可以通过结果上传装置1215,向控制平台100上传测试结果。

在步骤s1130,控制平台100,例如可以通过测试结果接收装置1150,接收测试机220通过执行服务测试而得到的测试结果,并在步骤s1132,存储测试结果。

控制平台100也可以将测试结果存储在例如控制平台100自设或第三方的数据库或存储器上。

在步骤s1030,用户查看测试结果。

在步骤s1134,控制平台100,例如可以通过测试结果呈现装置1160,定时轮询测试结果,并向用户提供测试结果,以便用户查看。

控制平台100还可以基于测试结果得到服务性能评分。这样,在步骤s1134,控制平台100可以向用户输出服务性能评分。

这样,用户只需要在测试场景配置界面上配置测试场景,输入测试对象信息、测试对象网络信息,然后在测试界面填写测试参数,测试系统即可自动对待测试对象(服务)执行服务测试,并反馈测试结果,供用户查看。

测试系统可以根据测试场景信息,例如压测对象网络信息,来申请测试机。进一步地,测试系统还可以响应于测试机220的参数获取请求,向测试机220提供相应的测试参数,以便测试机220调用云上服务,与待测对象(云上服务/应用)进行交互,执行服务测试。

由此,基于无服务器(serverless)架构,实现了便利的服务测试方案,用户不再需要熟悉云上网络拓扑结构,也不需要了解复杂的服务测试工具只需简单的页面操作,即可测试云上服务。

接下来描述测试机的自动释放机制。

在步骤s1150,控制平台100可以监听服务测试,检查用户是否在测试界面输入了新的测试参数。

在步骤s1152,响应于自最近一次接收到测试参数起,未接收到新的测试参数的持续时间超过预定时长阈值,例如5分钟,控制平台100,例如可以通过测试机释放装置1170,释放所申请的测试机220。

在步骤s1280,测试机220被释放,从而可以接收其它测试任务。

通过实现测试机的自动释放,进一步避免了资源浪费。

【应用容器测试】

下面参考图8至11描述根据本公开的应用容器测试方案。

容器作为基础设施,承载着大量的应用,且技术方案经常升级,一旦方案升级存在性能劣化,对上层应用的性能损耗将会更大,例如容器性能下降1s,上层应用有可能下降10s,因此,需要基于上层应用对容器的技术升级方案进行性能评估。

传统的评估方案需要用户自搭建评估环境,创建上层应用,搭建压测平台,设计压测场景,执行压测任务,收集压测结果,比对性能结果。

这样的传统压测方法具备如下缺点:

1.人工搭建评估环境耗时耗力;

2.设计模拟应用需要一定的技术基础及时间成本;

3.搭建压测平台需要对压测工具比较熟悉,例如jmeter等工具;

4.设计压测场景需要一定的技术基础及时间成本;

5.不能自动化比对性能结果,出性能报告,只能人工编写性能测试报告。

本公开提供了一种基于上层应用的容器性能评估方法,解决了传统压测方法中存在的对评估人员要求高、周期长、评估不专业等问题。

图8是根据本公开的应用容器测试方法的示意性流程图。

如图8所示,在步骤s810,可以提供多个模拟上层应用,以供用户选择。

图11是根据本公开的应用容器测试系统架构的示意性框图。

如图11所示,应用容器测试系统架构包括三个模块:上层应用模块、标准化场景模块和性能评估平台。性能评估平台可以包括基础环境模块和压力平台(测试控制模块)。

如图11所示,所提供的模拟上层应用可以包括涉及cpu的上层应用、涉及内存的上层应用、涉及日志的上层应用、涉及硬盘的上层应用、涉及网络的上层应用、涉及redis读写的上层应用等。

这样,无需用户再设计模拟应用,即可复用所提供的模拟上层应用。

在步骤s820,可以提供多个标准化场景,以供用户选择。

如图11所示,所提供的标准化场景可以包括计算密集型、io密集型、内存消耗型、恒定压力型、阶梯压力型、脉冲压力型等。这样,无需用户再设计场景。

另外,如果所提供的标准化场景中不包括用户期望的场景,还可以响应于用户的设置,基于用户选择的模拟上层应用构建场景。

这样,用户如需设计场景,根据步骤s810中提供的模拟上层应用,即可能够快速构造所需的场景。

在步骤s830,可以将用户选择的模拟上层应用部署在应用容器中。

这样,在步骤s840,可以基于所选标准化场景和部署到应用容器中的模拟上层应用,对应用容器进行测试。

在步骤s830部署应用之前,还可以对环境进行设置。

图9是根据本公开的应用容器测试方法中环境设置过程的示意性流程图。

如图11所示,基础环境模块可以包括三个模块:环境设置、环境拉起、环境销毁。基础环境模块的各功能例如可以基于kubernetes标准应用程序接口来实现。

在步骤s910,向用户提供环境设置界面,以便用户设置环境参数。

在步骤s920,基于用户设置的环境参数对环境进行设置。

在步骤s930,基于kubernetes标准应用程序接口,初始化(拉起)要部署模拟上层应用的环境。

在步骤s940,在测试结束之后,销毁所述环境。

这样,用户只需要通过界面即可初始化所需的评估环境。

另外,如图11所示,还可以提供压力平台(也可以称为“测试控制模块”)。

测试控制模块可以向用户提供测试控制界面,以便用户设置测试参数。

另外,还可以在测试控制界面上提供场景启动输入模块和/或场景停止输入模块。这样,响应于用户对场景启动输入模块的操作,可以启动场景;响应于用户对场景停止输入模块的操作,可以停止场景。

另外,例如还可以在测试控制界面上收集和呈现测试结果。例如,可以收集测试结果,并基于测试结果得到并展示测试报告,进行性能评分,进行性能比对等等。

这样,本公开提供了一种基于上层应用的容器性能评估方法,用户只需通过界面操作即可实现容器测试,解决了传统评测方法中存在的对评估人员要求高、周期长、评估不专业等问题。

图10是可用于实施根据本公开的应用容器测试方法的应用容器测试装置的示意性框图。

如图10所示,该容器测试装置可以包括应用选择装置1010、场景选择装置1020、应用部署装置1030、测试装置1040。

应用选择装置1010提供多个模拟上层应用,以供用户选择。

场景选择装置1020提供多个标准化场景,以供用户选择。

应用部署装置1030将用户选择的模拟上层应用部署在应用容器中。

测试装置1040基于所选标准化场景和部署到应用容器中的模拟上层应用,对应用容器进行测试。

在一些实施例中,该应用容器测试装置还可以包括环境设置装置1050。环境设置装置1050可以基于kubernetes标准应用程序接口来实现其功能。

环境设置装置1050可以向用户提供环境设置界面,以便用户设置环境参数,并基于用户设置的环境参数对环境进行设置。

环境设置装置1050可以基于kubernetes标准应用程序接口,初始化要部署模拟上层应用的环境。

环境设置装置1050在测试结束之后,销毁环境。

在一些实施例中,该应用容器测试装置还可以包括测试控制装置1060。

测试控制装置1060可以向用户提供测试控制界面,以便用户设置测试参数。

测试控制装置1060可以在测试控制界面上提供场景启动输入模块和/或场景停止输入模块。响应于用户对场景启动输入模块的操作,可以启动场景;响应于用户对场景停止输入模块的操作,可以停止场景。

测试控制装置1060可以收集测试结果,以便基于测试结果展示测试报告,进行性能评分,进行性能比对等等。

图12示出了根据本发明一实施例可用于实现上述测试方法的计算设备的结构示意图。

参见图12,计算设备1300包括存储器1310和处理器1320。

处理器1320可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器1320可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(gpu)、数字信号处理器(dsp)等等。在一些实施例中,处理器1320可以使用定制的电路实现,例如特定用途集成电路(asic,applicationspecificintegratedcircuit)或者现场可编程逻辑门阵列(fpga,fieldprogrammablegatearrays)。

存储器1310可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器1320或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1310可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1310可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、minsd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。

存储器1310上存储有可执行代码,当可执行代码被处理器1320处理时,可以使处理器1320执行上文述及的测试方法。

上文中已经参考附图详细描述了根据本发明的测试方案。

此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。

或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1