CN115914055A - 分布式网络测试方法、装置、介质及设备 - Google Patents
分布式网络测试方法、装置、介质及设备 Download PDFInfo
- Publication number
- CN115914055A CN115914055A CN202110899501.8A CN202110899501A CN115914055A CN 115914055 A CN115914055 A CN 115914055A CN 202110899501 A CN202110899501 A CN 202110899501A CN 115914055 A CN115914055 A CN 115914055A
- Authority
- CN
- China
- Prior art keywords
- test
- virtual network
- environment
- data
- test case
- 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
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本文是关于一种分布式网络测试方法、装置、介质及设备。分布式网络测试方法应用于服务器或由多个服务器组成的服务器集群,包括:构建至少一个虚拟网络测试环境;虚拟网络测试环境接收测试用例;执行所述测试用例,返回测试结果至前端界面。在物理服务器上模拟出分布式网络测试环境,可在需要时一键启动,易于实现且不需要占用真实网络环境中的资源,提高真实网络环境的安全性。
Description
技术领域
本文涉及分布式网络模拟,尤其涉及分布式网络测试方法、装置、介质及设备。
背景技术
分布式网络与中央控制式网络系统相对应,是由分布在不同地点且具有多个终端的节点机互连而成的网络。在分布式网络环境中,对网络节点的功能进行开发和配置,在将开发的功能部署到分布式网络之前,需要对分布式网络系统进行测试。现有相关技术中,通常通过将线上分布式网络资源抽离出一部分,组成测试环境,用于测试。但此种测试方法存在如下缺点:①资源开销大:需要占用线上分布式网络环境的资源进行测试,这部分资源无法提供正式的服务,从而造成资源浪费。②测试环境不可控:在长时间作为测试环境使用后,测试环境与线上环境逐渐脱节,无法准确模拟线上环境。③安全性差:一些功能的开发,可能会引入BUG,从而影响到整个分布式网络环境的安全。④定制环境困难:从线上分布式网络环境抽离服务器资源后,该分布式网络的架构难以调整。⑤不同测试环境难隔离:有些功能测试需要单独的分布式网络环境,这时需要再从线上抽离服务器来做测试,过程繁琐且资源开销大。
发明内容
为克服相关技术中存在的问题,本文提供一种分布式网络测试方法、装置、介质及设备。
根据本文的一个方面,提供一种分布式网络测试方法,应用于服务器或由多个服务器组成的服务器集群,包括:
构建至少一个虚拟网络测试环境,所述虚拟网络测试环境位于服务器或服务器集群中的隔离执行环境;
所述虚拟网络测试环境接收测试用例;
执行所述测试用例;
返回测试结果至前端界面。
在本文的一些实施例中,基于前述方案,所述构建虚拟网络测试环境包括:
根据测试所需的架构,构建包括至少一个虚拟网络节点的虚拟架构,所述虚拟网络节点与真实节点一一对应;
将所述真实节点中的业务软件打包成镜像文件;
将所述镜像文件按对应关系载入所述虚拟网络节点,构建成一个虚拟网络测试环境。
在本文的一些实施例中,基于前述方案,所述隔离执行环境包括至少一个容器,每个容器对应一个虚拟网络节点,所述将所述镜像文件按对应关系载入所述虚拟网络节点包括:
将所述镜像文件部署到容器。
在本文的一些实施例中,基于前述方案,所述构建虚拟网络测试环境还包括:对载入镜像文件的至少一个虚拟网络节点进行编排,形成不同的虚拟网络测试环境。
在本文的一些实施例中,基于前述方案,所述虚拟网络测试环境包括应用程序接口,所述虚拟网络测试环境接收测试用例包括:
所述应用程序接口接收前端界面提交的测试数据,根据所述测试数据构造测试用例,或者,接收所述前端界面生成并发送的测试用例。
在本文的一些实施例中,基于前述方案,所述虚拟网络测试环境还包括至少一个虚拟网络节点,所述执行所述测试用例包括:
所述应用程序接口根据所述测试用例的执行参数,构造携带所述测试用例唯一标识的一个或多个测试请求,将所述测试请求发送至所述虚拟网络节点;
所述虚拟网络节点响应所述测试请求,生成响应数据,将所述响应数据发送至所述应用程序接口。
在本文的一些实施例中,基于前述方案,所述虚拟网络测试环境还包括抓包程序,所述执行所述测试用例还包括:所述抓包程序获取虚拟网络节点内一个或多个业务进程间传输的抓包数据,以及多个虚拟网络节点间传输的抓包数据;
将获取的抓包数据返回所述应用程序接口。
在本文的一些实施例中,基于前述方案,所述测试用例还包括判定条件,所述执行所述测试用例还包括:
所述应用程序接口根据所述判定条件,判断所述响应数据是否与预设断言一致,生成断言结果信息;
或者,所述应用程序接口根据所述判定条件,判断所述响应数据和所述抓包数据是否与预设断言一致,生成断言结果信息。
在本文的一些实施例中,基于前述方案,所述虚拟网络测试环境还包括抓包程序和数据库,所述执行所述测试用例还包括:所述抓包程序获取虚拟网络节点内一个或多个业务进程间传输的抓包数据,以及多个虚拟网络节点间传输的抓包数据;
根据所述测试用例的唯一标识,将获取的抓包数据存入数据库。
在本文的一些实施例中,基于前述方案,分布式网络测试方法,还包括:
当应用程序接口接收前端界面发送的测试用例唯一标识,所述应用程序接口从所述数据库中获取与所述唯一标识对应的抓包数据。
根据本文的一个方面,提供一种分布式网络测试方法,应用于前端界面,包括:
接收用户的输入信息,所述输入信息包括预设配置信息、预设功能信息中的至少一种;
生成测试数据或者生成一个或多个测试用例;
发送所述测试数据或者一个或多个测试用例至虚拟网络测试环境请求测试;
接收测试结果。
在本文的一些实施例中,基于前述方案,所述根据预设配置生成的信息至少包括:虚拟网络测试环境的标识、执行参数;所述执行参数包括测试URL,测试节点,请求方式,请求头信息中的一种或多种。
在本文的一些实施例中,基于前述方案,分布式网络测试方法,还包括:保存所述一个或多个测试用例。
根据本文的一个方面,提供一种分布式网络测试装置,应用于服务器或由多个服务器组成的服务器集群,包括:
测试环境构建模块,用于构建至少一个虚拟网络测试环境,所述虚拟网络测试环境位于服务器或服务器集群中的隔离执行环境;
测试用例接收模块,用于所述虚拟网络测试环境接收测试用例;
执行模块,用于执行所述测试用例;
响应模块,用于返回前端界面。
根据本文的一个方面,提供一种分布式网络测试装置,应用于前端界面,包括:
信息接收模块,用于接收用户的输入信息,所述输入信息包括预设配置信息、预设功能信息中的至少一种;
数据转换模块,用于生成测试数据或者生成一个或多个测试用例;
发送模块,用于发送所述测试数据或者一个或多个测试用例至虚拟网络测试环境请求测试;
响应接收模块,用于接收测试结果。
根据本文的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现分布式网络测试方法的步骤。
根据本文的一个方面,提供一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,所述处理器执行所述计算机程序时实现实现分布式网络测试方法的步骤。
本文通过构建虚拟网络测试环境,可以实现在服务器或由多个服务器组成的服务器集群上模拟出整套线上分布式网络环境,需要时可以一键启动即可进行测试,实现测试环境可控;由于虚拟网络测试环境与真实线上分布式网络环境隔离,安全性高。无需从线上环境中抽离服务器组建测试环境,易于实现且不需要占用真实网络环境中的资源,节省资源开销。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本文。
附图说明
构成本文的一部分的附图用来提供对本文的进一步理解,本文的示意性实施例及其说明用于解释本文,并不构成对本文的不当限定。在附图中:
图1是根据一示例性实施例示出的分布式网络测试方法的流程图。
图2是根据一示例性实施例示出的虚拟网络测试环境的示意图。
图3是根据一示例性实施例示出的服务器包括多个虚拟网络测试环境的示意图。
图4是根据一示例性实施例示出的一种分布式网络测试方法的流程图。
图5是根据一示例性实施例示出的前端界面的示意图。
图6是根据一示例性实施例示出的一种分布式网络测试装置的框图。
图7是根据一示例性实施例示出的一种分布式网络测试装置的框图。
图8是根据一示例性实施例示出的一种计算机设备的框图。
具体实施方式
为使本文实施例的目的、技术方案和优点更加清楚,下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。需要说明的是,在不冲突的情况下,本文中的实施例及实施例中的特征可以相互任意组合。
分布式网络与中央控制式网络系统相对应,是由分布在不同地点且具有多个终端的节点互连而成的网络。在分布式网络环境中,对网络节点的功能进行开发和配置,在将开发的功能部署到分布式网络之前,需要对分布式网络系统进行测试。相关技术中,一般采用从线上分布式网络中抽取一部分服务器资源,组成测试环境,对新开发的软件和配置进行测试。该方案需要占用大量的服务器资源,用于测试的服务器资源不能再用于提供正式的服务,资源开销大。且测试环境不可控,影响测试效果;一旦引入新的BUG,可能会对整个线上网络环境的安全造成不利影响;当需要测试不同任务时,很难对测试环境进行调整,无法根据不同的测试任务定制测试环境;不同的测试环境难以进行隔离;当需要对测试结果进行验证时,需要到测试环境中的服务器上布置抓包程序进行抓包,导致测试结果验证困难。
针对相关技术中存在的问题,本文提供一种分布式网络测试方法。
图1是根据一示例性实施例示出的分布式网络测试方法的流程图。参考图1,分布式网络测试方法应用于服务器或由多个服务器组成的服务器集群,在一些实施例中,所述服务器可以为宿主机。分布式网络测试方法至少包括步骤S11至步骤S13,详细介绍如下:
在步骤S11中,构建至少一个虚拟网络测试环境,虚拟网络测试环境位于服务器或服务器集群中的隔离执行环境。在服务器或由多个服务器组成的服务器集群中构建虚拟网络测试环境,服务器或由多个服务器组成的服务器集群用于虚拟真实网络节点功能,安装真实网络节点中的业务软件。在一实施例中,可以在一台服务器上安装虚拟一个真实网络节点功能的业务软件,也可以在一台服务器上安装虚拟多个真实网络节点功能的业务软件。为了实现测试软件与服务器的隔离,提高服务器的安全,在服务器上建立隔离执行环境,虚拟网络测试环境位于上述隔离执行环境中。例如,隔离执行环境可以采用容器技术,将虚拟网络环境隔离在容器中,测试环境的安全问题不会影响到物理服务器,以使物理服务器更好地执行测试任务。
在本实施例中,构建虚拟网络测试环境,不需要从线上分布式网络中抽取网络资源,而是配置专门用于构建虚拟网络测试环境的服务器,服务器或由多个服务器组成的服务器集群具有足够的存储空间、内存,用于构建虚拟网络测试环境。
图2是根据一示例性实施例示出的虚拟网络测试环境的示意图。参考图2,构建虚拟网络测试环境包括:
根据测试所需的架构,构建包括至少一个虚拟网络节点的虚拟架构,虚拟网络节点与真实节点一一对应;
将真实节点中的业务软件打包成镜像文件;
将镜像文件按对应关系载入虚拟网络节点,构建成一个网络测试环境。
由服务器或由多个服务器组成的服务器集群来构建网络测试环境,使用虚拟网络节点代替线上真实的节点,进行测试。为了保证构建的网络测试环境与真实的线上环境相同,首先需要根据测试任务,确定该测试任务需要多少个网络节点来完成。因为不同的测试任务,需要对应不同的架构,即配置不同的节点。例如,测试边缘节点是否正确响应用户请求,只需对单个节点进行测试,此时可由单个虚拟网络节点组成虚拟网络测试环境。如果测试边缘节点能否正确回源,则需要由边缘节点、中心节点、源站节点等多个节点组成测试环境,此时可由多个虚拟网络节点组成虚拟网络测试环境。不同测试任务需要用到的节点数量可以不同,各个节点的处理逻辑不同,因此架构也可能不同。在服务器或由多个服务器组成的服务器集群上构建虚拟架构,虚拟架构包括N个虚拟网络节点,N为大于等于1的整数。N个虚拟网络节点与N个真实节点一一对应,例如,在构建用于测试边缘节点能否正确回源的测试环境时,先构建虚拟架构,该虚拟架构包括3个虚拟网络节点,并分别与边缘节点、中心节点、源站节点一一对应。由用户对真实节点中的业务软件进行打包,一个节点中的业务软件打包成一个镜像文件。将打包好的镜像文件载入对应的虚拟网络节点中,例如,将线上真实边缘节点的业务软件打包后,将打包好的镜像文件载入服务器或由多个服务器组成的服务器集群上构建的网络测试环境中的与边缘节点对应的虚拟网络节点中;将线上真实中心节点的业务软件打包后,将打包好的镜像文件载入服务器或由多个服务器组成的服务器集群上构建的网络测试环境中的与中心节点对应的虚拟网络节点中。构建好的虚拟网络测试环境中包括了测试所需要的各个真实节点的业务软件,且虚拟网络节点之间的逻辑关系与真实节点间的逻辑关系相同,由服务器或由多个服务器组成的服务器集群中的虚拟网络测试环境执行测试任务,与由真实节点组成的测试环境执行测试任务,具有相同的效果,且不需要占用真实的线上网络资源,节省资源开销。由于虚拟网络节点中的业务软件是由真实网络节点中业务软件打包成的镜像文件,与真实节点中的业务软件相同,在真实网络节点中的业务软件更新后,可以及时更新虚拟网络节点中的镜像文件,避免了测试环境与线上网络资源逐渐脱节,能准确有效模拟线上环境。
在一示例性实施例中,隔离执行环境包括至少一个容器,每个容器对应一个虚拟网络节点,将镜像文件按对应关系载入虚拟网络节点包括:
将镜像文件部署到容器。
根据虚拟网络测试环境的架构中虚拟网络节点的数量,在服务器或由多个服务器组成的服务器集群中建立同样数量,同样逻辑关系的容器,然后将每个真实节点中打包好的镜像文件,按对应关系部署到对应的容器中,实现虚拟网络测试环境的隔离。在本实施例中,将每个真实节点的业务软件部署到单独的容器中,可以通过容器技术隔离测试环境和服务器或由多个服务器组成的服务器集群。例如可以允许用户将自定义代码部署到虚拟网络测试环境中的容器中,方便用户对虚拟网络测试环境进行灵活调整,代码的作用范围被限制在容器中,保证服务器或由多个服务器组成的服务器集群的安全。
另外,每个容器对应一个虚拟网络节点,每一虚拟网络节点对应一个真实网络节点,在将真实网络节点中的业务软件打包后,将镜像文件部署到容器中,从而建立至少一个虚拟网络测试环境后,可以以容器为单位,对已有虚拟网络节点进行编排。
图3是根据一示例性实施例示出的服务器包括多个虚拟网络测试环境的示意图。参考图3,构建虚拟网络测试环境还包括:对载入镜像文件的至少一个虚拟网络节点进行编排,形成不同的虚拟网络测试环境。
在将线上真实节点的业务软件载入到服务器上的虚拟网络节点后,可以对虚拟网络节点进行编排,从而编排出不同的虚拟网络测试环境,用于测试不同的测试任务。例如,只编排一个边缘节点对应的虚拟网络节点1构成虚拟网络测试环境一,用于对边缘节点上待部署的软件进行测试。再如,将虚拟网络节点1,与中心服务器对应的虚拟网络节点2,源站对应的虚拟网络节点3进行编排,构成虚拟网络测试环境二,用于对回源配置进行测试。虚拟网络节点1既可以属于虚拟网络测试环境一,又可以属于虚拟网络测试环境二。多个虚拟网络测试环境可以同时存在于服务器或由多个服务器组成的服务器集群,只要服务器或由多个服务器组成的服务器集群的存储空间及内存满足要求即可。因此可以方便实现虚拟网络测试环境的定制,避免真实分布式网络中架构难以调整的问题。对于服务器或由多个服务器组成的服务器集群中存在的多个虚拟网络测试环境,在根据测试任务确定对应的虚拟网络测试环境后,可以一键启动该虚拟网络测试环境,进而启动该虚拟网络测试环境中N个虚拟网络节点对应的业务软件。
在步骤S12中,虚拟网络测试环境接收测试用例。
虚拟网络测试环境构建完成后,即可接收测试用例,执行测试任务。
参考图2,在一示例性实施例中,虚拟网络测试环境包括应用程序接口,虚拟网络测试环境接收测试用例包括:
应用程序接口接收前端界面提交的测试数据,根据测试数据构造测试用例;或者,接收所述前端界面生成并发送的测试用例。
在本申请中,虚拟网络测试环境包括应用程序接口。应用程序接口用于虚拟网络测试环境与外界交互数据,例如,应用程序接口可以是AP I接口,用于接收测试用例,将测试用例提供给虚拟网络测试环境进行测试,或者,接收测试数据,根据测试数据构造测试用例,再将测试用例提供给虚拟网络测试环境进行测试。还用于接收虚拟网络节点的响应数据,将响应数据输出至前端界面,供用户查阅。构造测试用例,可以对响应数据按测试用例进行分类和存储,便于响应数据的管理。测试数据是由前端界面根据用户输入的信息生成的,前端界面可以将用户输入信息生成测试数据,发送给指定测试环境的应用程序接口,再由应用程序接口将测试数据构造成测试用例。前端界面也可以根据测试数据直接构造测试用例后发送给应用程序接口。
每一个虚拟网络测试环境有唯一一个应用程序接口,因此,当服务器或由多个服务器组成的服务器集群中包括多个虚拟网络测试环境时,选择应用程序接口,即选择了虚拟网络测试环境,用户在前端界面输入信息,指定应用程序接口的名称,前端界面生成的测试数据或者测试用例即可发送到指定应用程序接口,调用对应的虚拟网络测试环境进行测试。
测试数据为前端界面接收用户的输入信息后生成的,前端界面将生成的测试数据提交到应用程序接口,或者,前端界面根据用户输入的信息生成测试用例,虚拟网络测试环境通过应用程序接口接收测试数据或者测试用例。
无论前端界面生成的测试用例,还是应用程序接口生成的测试用例,测试用例包括执行参数,执行参数可以为测试URL、测试节点、请求方式、请求头信息中的一种或多种。
在步骤S13中,执行测试用例,返回测试结果至前端界面。
虚拟网络测试环境接收到测试用例后,即可执行测试用例,对测试用例进行响应,生成响应数据。
在一示例性实施例中,虚拟网络测试环境还包括至少一个虚拟网络节点,执行测试用例,包括:
应用程序接口根据测试用例的执行参数,构造携带测试用例唯一标识的一个或多个测试请求,将测试请求发送至至少一个虚拟网络节点;
至少一个虚拟网络节点响应测试请求,生成响应数据,将响应数据发送至应用程序接口。应用程序接口可以将响应数据作为测试结果反馈至前端界面。
根据响应数据,即可判断待测试软件的功能是否满足要求。例如在防盗链功能测试时,用户在前端界面输入符合防盗链规则的URL,然后生成防盗链测试用例,将测试用例发送到虚拟网络测试环境的应用程序接口,虚拟网络测试环境对测试用例进行响应,如响应数据为状态码200,说明防盗链功能可用;如果响应数据为状态码403,说明防盗链功能不可用。
例如,在进行防盗链功能测试时,用户在前端界面输入符合防盗链规则的URL,然后生成防盗链测试用例,防盗链测试用例的参数为该URL,将防盗链测试用例发送到指定应用程序接口。应用程序接口根据URL生成该测试用例唯一标识的测试请求,将该测试请求发送到虚拟网络测试环境,由虚拟网络测试环境中的虚拟网络节点进行响应。虚拟网络节点接收到测试请求后,对符合防盗链规则的URL进行响应,由于虚拟网络节点中的业务软件与真实网络节点中的业务软件相同,会像线上真实节点一样做出响应,生成响应数据。例如在上述防盗链功能测试时,虚拟网络节点接收到符合防盗链规则的URL并进行响应,可以响应状态码为200,也可以响应状态码为403。
响应数据发送至虚拟网络测试环境的应用程序接口。用户可以通过与应用程序接口连接的前端界面获取响应数据,根据响应数据做出判断。例如在上述防盗链功能测试时,如果响应数据状态码为200,说明节点中的业务软件或配置正确,测试成功,业务软件或配置可以部署到线上真实节点中。如果响应数据状态码为403,说明节点中的业务软件或配置错误。可以在对业务软件或配置进行调整后,再进行测试,直到响应数据正确。
在一示例性实施例中,虚拟网络测试环境还包括抓包程序,执行测试用例还包括:抓包程序获取虚拟网络节点内一个或多个业务进程间传输的抓包数据,以及多个虚拟网络节点间传输的抓包数据;
将获取的抓包数据返回应用程序接口。
由于一个容器对应一个虚拟网络节点,一个虚拟网络节点包括一个真实网络节点中的业务软件,当虚拟网络节点接收到测试请求时,会运行一个或多个进程,对接收到的测试请求进行响应,为验证软件或配置是否正确,有时除了需要获取响应数据,还需要对响应过程中产生的数据进行分析,完成功能验证。图3是根据一示例性实施例示出的容器的示意图。参考图3,本实施例中,在每个容器中设置抓包程序,即可以对各个业务进程间传输的数据进行抓取,还可以对出入容器的数据即虚拟网络节点间传输的数据进行抓取,将抓包数据返回应用程序接口。应用程序接口可以获取到测试用例的响应数据以及测试过程中的抓包数据。在需要的时候,应用程序接口可以将测试用例的响应数据和抓包数据作为测试结果,同时反馈给前端界面,供用户判定测试是否通过。将抓包数据作为测试结果直接反馈至应用程序接口,可以由应用程序接口反馈至前端界面,用户可以直接获取到抓包数据,不需要再登录到服务器或由多个服务器组成的服务器集群,提高用户体验。如果应用程序接口由前端界面接收到判定条件,可以由应用程序接口根据响应数据和抓包数据生成断言结果信息,避免了分步获取抓包数据的繁琐。
在一示例性实施例中,测试用例还包括判定条件,执行测试用例还包括:
应用程序接口根据判定条件,判断响应数据是否与预设断言一致,生成断言结果信息;
或者,应用程序接口根据判定条件,判断响应数据和抓包数据是否与预设断言一致,生成断言结果信息。
在本实施例中,如果用户在前端界面输入了判定条件,由前端界面或应用程序接口生成的测试用例中包括此判定条件,应用程序接口根据测试用例的执行参数,构造携带测试用例唯一标识的测试请求,将测试请求发送至测试环境中的至少一个虚拟网络节点,由虚拟网络节点响应测试请求,生成响应数据,同时,由虚拟网络节点中的抓包程序对测试过程中的数据进行抓包。如果应用程序接口接收到响应数据,应用程序接口根据判定条件,判定响应数据是否和预设断言一致,生成断言结果信息。应用程序接口可以将断言结果信息作为测试结果,返回至前端界面,也可以将响应数据和断言结果信息作为测试结果,返回至前端界面。如果应用程序接口接收到响应数据和抓包数据,应用程序接口根据判定条件,判定响应数据和抓包数据是否与预设断言一致,生成断言结果信息。应用程序接口可以将断言结果信息作为测试结果,返回至前端界面,也可以将响应数据、抓包数据和断言结果信息作为测试结果,返回至前端界面。
例如,用户进行防盗链测试,测试参数为一条符合防盗链规则的URL,预设断言为响应的状态码为200,当用户设置了判定条件,判定条件为响应的状态码是否与预设断言一致。应用程序接口获取响应数据后,会根据响应数据的内容,对测试结果进行验证,如果响应数据为状态码200,与预设断言一致,应用程序接口向前端界面输出用于指示测试用例的测试结果正确的信息;如果响应数据为状态码为403,与预设断言不一致,应用程序接口向前端界面输出用于指示测试用例的测试结果错误的信息。用户在前端界面输入信息时,可以输入判定条件,应用程序接口可以根据判定条件对响应数据或者响应数据和抓包数据进行自主判断,并生成断言结果信息,不需要再由用户判定,减轻用户的工作量。
在一实例性实施例中,参考图2,虚拟网络测试环境还包括抓包程序和数据库,执行测试用例还包括:抓包程序获取虚拟网络节点内一个或多个业务进程间传输的抓包数据,以及多个虚拟网络节点间传输的抓包数据;
根据测试用例的标识,将获取的抓包数据存入数据库。
在本实施例中,抓包数据不反馈给应用程序接口,而是将抓包数据存储在数据库中。虚拟网络测试环境只是将响应数据反馈给应用程序接口,用户通过前端界面从应用程序接口获取响应数据,即可对测试结果进行初步的判断,防止将不必要的数据提供给用户,造成对用户的干扰。如果用户仍然需要进一步获取抓包数据,对测试结果进行准确地评估。用户只需连接数据库,即可获取上述抓包数据,不需要登录到容器,提升用户使用体验。
同一虚拟网络测试环境可以用于不同测试用例的测试,为了对数据库中的数据进行区分,抓包程序将不同测试用例对应的抓包数据,按测试用例的标识进行存储。在测试完成后,用户需要调用测试用例相关的数据时,按测试用例的标识查询数据库,可以快速获取测试用例相关的数据。
数据库包括虚拟网络测试环境的内置数据库、回调接口内置的数据库。实际应用中,即可以在每个虚拟网络测试环境中设置内置的数据库,也可以在应用程序接口的回调接口内设置数据库,用于存储抓包数据。
在一示例性实施例中,当应用程序接口接收前端界面发送的测试用例的唯一标识,应用程序接口从数据库中获取与唯一标识对应的抓包数据。
当用户根据虚拟网络测试环境的响应数据,无法对测试结果进行准确评估时,可以通过在前端界面页面中输入测试用例的唯一标识,由前端界面将测试用例的唯一标识发送到指定的应用程序接口,应用程序接口可以在数据库中按测试用例的唯一标识进行查询,从而获取与该测试用例相关的抓包数据,将测试用例相关的抓包数据反馈给前端界面,供用户判定测试结果。用户不需要登录数据库进行查询,简化用户操作过程。
通过上述实施例,本文提供的分布式网络测试方法,在服务器或由多个服务器组成的服务器集群上构建网络测试环境,对测试用例进行测试,能达到与线上真实网络环境相同的测试效果,不需要从线上网络环境中抽离网络资源,节省了资源开销。当相关节点中的业务软件或配置发生变化,可以重新将更新后的业务软件打包,并部署到分布式网络环境的虚拟网络节点中,保证分布式网络环境与真实线上网络环境一致,避免出现测试环境与线上环境脱节,无法准确模拟线上环境的问题。即使待测试的软件存在BUG,也不会影响到线上环境,保障线上分布式网络环境的安全。还可以方便实现虚拟网络测试环境的定制,避免真实分布式网络中架构难以调整的问题。
图4是根据一示例性实施例示出的一种分布式网络测试方法的流程图。参考图4,分布式网络测试方法,应用于前端界面,至少包括步骤S41至步骤S44,详细介绍如下:
在步骤S41中,接收用户的输入信息,输入信息包括预设配置信息、预设功能信息中的至少一种。
前端界面与服务器或由多个服务器组成的服务器集群中虚拟网络测试环境的应用程序接口连接,与虚拟网络测试环境进行交互。前端界面可以是位于测试平台、配置管理平台,客户管理平台,云服务控制平台等的远程界面,用户可以在服务器或由多个服务器组成的服务器集群的本地界面输入测试信息。用户也可以在远程界面输入测试信息,方便用户调用虚拟网络测试环境。
在一示例性实施例中,预设配置信息至少包括:虚拟网络测试环境的标识、执行参数;执行参数包括测试URL,测试节点,请求方式,请求头信息中的一种或多种。
在前端界面中将一些常用的配置信息进行预设,可以方便用户使用。
图5是根据一示例性实施例示出的前端界面的示意图。参考图5,用户通过在页面地址栏输入地址登录测试系统后(该地址可以是如测试平台、配置管理平台、客户管理控制台、云服务控制台的地址),测试系统向用户展示前端界面。用户可以通过前端界面输入信息,用户可以根据预设配置,输入相关信息,生成预设配置信息;也可以选择预设功能,生成预设功能信息。预设功能可以是一些常用测试功能,不同的预设功能具有不同的标识,方便用户选择。例如,将防盗链功能测试作为预设功能,将符合防盗链规则的URL集成在该预设功能的代码中。当用户选择该功能后点击运行测试用例,由前端界面生成防盗链测试用例,防盗链测试用例的参数为符合防盗链规则的URL,应用程序接口根据符合防盗链规则的URL生成该测试用例唯一标识的测试请求,将该测试请求发送到虚拟网络测试环境,由虚拟网络测试环境中的虚拟网络节点进行响应。
在步骤S42中,生成测试数据或者一个或多个测试用例。
前端界面可以根据用户的输入信息,生成测试数据或者一个或多个测试用例。将测试数据或者一个或多个测试用例发送至指定的应用程序接口。
例如,前端界面可以根据用户的输入信息,生成测试用例。用户在前端界面选择功能1,功能1为http 301跳转https功能。自动生成测试http格式的ur l的测试用例,点击“运行测试用例”后,该测试用例自动生成判定条件。
又如,用户在“测试用例一”对应的区域输入执行参数,并设置好“判定条件”,点击“运行测试用例”后生成测试用例,并将测试用例发送到指定应用程序接口。
测试用例可以只包括执行参数,也可以包括执行参数和判定条件。如果用户未设置判定条件,则测试用例只包括执行参数,执行参数用于应用程序接口构造测试请求。此时,用户需要根据测试结果,自行判定测试是否通过。如果用户设置了判定条件,应用程序接口可以根据测试用例的响应数据,或者根据测试用例的响应数据和抓包数据,自动判定测试是否通过,并给出判定结果。
实际应用中,用户可以通过上述多个方式输入信息,前端界面根据用户输入信息,生成相应的测试数据或一个或多个测试用例。
在步骤S43中,发送所述测试数据或者一个或多个测试用例至虚拟网络测试环境请求测试。实际应用中,由于不同的测试任务需要,需要选择不同的测试环境。由于每一个测试环境都设置有唯一的应用程序接口,因此,只需指定应用程序接口,即可将测试数据或测试用例发送到指定应用程序接口对应的虚拟网络测试环境。应用程序接口可以根据测试数据生成一个或多个测试用例或者接收前端界面发送的一个或多个测试用例,根据所述一个或多个测试用例的执行参数,构造携带所述测试用例唯一标识的一个或多个测试请求,将一个或多个测试请求发送到虚拟网络节点,进行测试。
在步骤S44中,接收测试结果。
虚拟网络测试环境对测试请求进行响应,会将测试结果发送到自身的应用程序接口。前端界面从指定的应用程序接口即可接收一个或多个测试用例的测试结果。
如在对防盗链配置信息进行测试时,测试参数为一条符合防盗链规则的URL,如配置信息正确,测试结果为响应数据,则响应数据的状态码应为200,因此根据响应数据中状态码是否为200,即可验证测试用例的测试结果。
用户可以方便地登录虚拟网络测试系统,输入相关信息,来生成测试用例,并可以根据不同的测试需求,选择不同的虚拟网络测试环境,对各种软件或配置进行快速测试,并根据虚拟网络测试环境返回的响应数据,对功能进行验证。而不必登录到真实的分布式网络环境,降低测试成本,提高效率。
在一示例性实施例中,分布式网络测试方法还包括:保存一个或多个测试用例。
如果前端界面能够根据用户输入的信息,生成测试用例,用户可以将已经生成的测试用例保存在前端界面的本地存储中,在用户进行后续测试任务时,可以直接调用已经存储的测试用例,不必重新输入相关信息,提升测试效率。
图6是根据一示例性实施例示出的一种分布式网络测试装置的框图。参考图6,分布式网络测试装置应用于服务器或由多个服务器组成的服务器集群包括:测试环境构建模块601,测试用例接收模块602,响应模块603。
该测试环境构建模块601被配置为用于构建至少一个虚拟网络测试环境,虚拟网络测试环境位于服务器或服务器集群中的隔离执行环境。
该测试用例接收模块602被配置为用于虚拟网络测试环境接收测试用例。
该响应模块603被配置为用于执行测试用例,返回测试结果至前端界面。
基于图6所示实施例,测试环境构建模块601还被配置为:
根据测试所需的架构,构建包括虚拟网络节点的虚拟架构,虚拟网络节点与真实节点一一对应;
将真实节点中的业务软件打包成镜像文件;
将镜像文件按对应关系载入所述虚拟网络节点,构建成一个虚拟网络测试环境。
在一示例性实施例中,隔离执行环境包括容器,每个容器对应一个虚拟网络节点,将镜像文件按对应关系载入虚拟网络节点包括:
将镜像文件部署到容器。
基于图6所示实施例,测试环境构建模块601还被配置为:对载入镜像文件的多个虚拟网络节点进行编排,形成不同的虚拟网络测试环境。
基于图6所示实施例,测试用例接收模块602还被配置为:
接收前端界面提交的测试数据,根据所述测试数据构造测试用例,或者,接收所述前端界面生成并发送的测试用例。
基于图6所示实施例,测试用例接收模块602还被配置为用于根据测试用例的执行参数,构造携带测试用例唯一标识的一个或多个测试请求,将测试请求发送至至少一个虚拟网络节点;
响应模块603还被配置为响应测试请求,生成响应数据,将响应数据发送至应用程序接口。
基于图6所示实施例,响应模块603还抓包程序,响应模块603还被配置为:
获取虚拟网络节点内一个或多个业务进程间传输的抓包数据,以及多个虚拟网络节点间传输的抓包数据;
将获取的抓包数据返回应用程序接口。
基于图6所示实施例,测试用例还包括判定条件,测试用例接收模块602还被配置为:
根据所述判定条件,判断响应数据是否与预设断言一致,生成断言结果信息;
或者,根据所述判定条件,判断所述响应数据和所述抓包数据是否与预设断言一致,生成断言结果信息。
基于图6所示实施例,响应模块603还包括抓包程序和数据库,响应模块603还被配置为:抓包程序获取虚拟网络节点内一个或多个业务进程间传输的抓包数据,以及多个虚拟网络节点间传输的抓包数据;
根据测试用例的唯一标识,将获取的抓包数据存入数据库。
基于图6所示实施例,测试用例接收模块602还被配置为:当接收前端界面发送的测试用例的唯一标识,从数据库中获取与唯一标识对应的抓包数据。
图7是根据一示例性实施例示出的一种分布式网络测试装置的框图。参考图7,分布式网络测试装置应用于前端界面包括:信息接收模块701,数据转换模块702,发送模块703,响应接收模块704。
该信息接收模块701被配置为用于接收用户的输入信息,输入信息包括预设配置信息、预设功能信息中的至少一种;
该数据转换模块702被配置为用于生成测试数据或者生成一个或多个测试用例;
该发送模块703被配置为用于发送测试数据或者一个或多个测试用例至虚拟网络测试环境请求测试;
该响应接收模块704被配置为用于接收测试结果。
基于图7所示实施例,信息接收模块701还被配置为用于保存一个或多个测试用例。
图8是根据一示例性实施例示出的一种用于分布式网络测试方法的计算机设备800的框图。例如,计算机设备800可以被提供为一服务器。参照图8,计算机设备800包括处理器801,处理器的个数可以根据需要设置为一个或者多个。计算机设备800还包括存储器802,用于存储可由处理器801的执行的指令,例如应用程序。存储器的个数可以根据需要设置一个或者多个。其存储的应用程序可以为一个或者多个。处理器801被配置为执行指令,以执行上述分布式网络测试方法。
本领域技术人员应明白,本文的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本文可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本文可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质,包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质等。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文是参照根据本文实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
尽管已描述了本文的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本文范围的所有变更和修改。
显然,本领域的技术人员可以对本文进行各种改动和变型而不脱离本文的精神和范围。这样,倘若本文的这些修改和变型属于本文权利要求及其等同技术的范围之内,则本文的意图也包含这些改动和变型在内。
Claims (17)
1.一种分布式网络测试方法,应用于服务器或由多个服务器组成的服务器集群,其特征在于,包括:
构建至少一个虚拟网络测试环境,所述虚拟网络测试环境位于服务器或服务器集群中的隔离执行环境;
所述虚拟网络测试环境接收测试用例;
执行所述测试用例,返回测试结果至前端界面。
2.如权利要求1所述的分布式网络测试方法,其特征在于,所述构建虚拟网络测试环境包括:
根据测试所需的架构,构建包括至少一个虚拟网络节点的虚拟架构,所述虚拟网络节点与真实节点一一对应;
将所述真实节点中的业务软件打包成镜像文件;
将所述镜像文件按对应关系载入所述虚拟网络节点,构建成一个虚拟网络测试环境。
3.如权利要求2所述的分布式网络测试方法,其特征在于,所述隔离执行环境包括至少一个容器,每个容器对应一个虚拟网络节点,所述将所述镜像文件按对应关系载入所述虚拟网络节点包括:
将所述镜像文件部署到容器。
4.如权利要求3所述的分布式网络测试方法,其特征在于,所述构建虚拟网络测试环境还包括:对载入镜像文件的至少一个虚拟网络节点进行编排,形成不同的虚拟网络测试环境。
5.如权利要求1所述的分布式网络测试方法,其特征在于,所述虚拟网络测试环境包括应用程序接口,所述虚拟网络测试环境接收测试用例包括:
所述应用程序接口接收前端界面提交的测试数据,根据所述测试数据构造测试用例,或者,接收所述前端界面生成并发送的测试用例。
6.如权利要求5所述的分布式网络测试方法,其特征在于,所述虚拟网络测试环境还包括至少一个虚拟网络节点,所述执行所述测试用例包括:
所述应用程序接口根据所述测试用例的执行参数,构造携带所述测试用例唯一标识的一个或多个测试请求,将所述测试请求发送至所述至少一个虚拟网络节点;
所述至少一个虚拟网络节点响应所述测试请求,生成响应数据,将所述响应数据发送至所述应用程序接口。
7.如权利要求6所述的分布式网络测试方法,其特征在于,所述虚拟网络测试环境还包括抓包程序,所述执行所述测试用例还包括:所述抓包程序获取虚拟网络节点内一个或多个业务进程间传输的抓包数据,以及多个虚拟网络节点间传输的抓包数据;
将获取的抓包数据返回所述应用程序接口。
8.如权利要求6或7任一所述的分布式网络测试方法,其特征在于,所述测试用例还包括判定条件,所述执行所述测试用例还包括:
所述应用程序接口根据所述判定条件,判断所述响应数据是否与预设断言一致,生成断言结果信息;
或者,所述应用程序接口根据所述判定条件,判断所述响应数据和所述抓包数据是否与预设断言一致,生成断言结果信息。
9.如权利要求6所述的分布式网络测试方法,其特征在于,所述虚拟网络测试环境还包括抓包程序和数据库,所述执行所述测试用例还包括:所述抓包程序获取虚拟网络节点内一个或多个业务进程间传输的抓包数据,以及多个虚拟网络节点间传输的抓包数据;
根据所述测试用例的唯一标识,将获取的抓包数据存入数据库。
10.如权利要求9所述的分布式网络测试方法,其特征在于,还包括:
当应用程序接口接收前端界面发送的测试用例的唯一标识,所述应用程序接口从所述数据库中获取与所述唯一标识对应的抓包数据。
11.一种分布式网络测试方法,应用于前端界面,其特征在于,包括:
接收用户的输入信息,所述输入信息包括预设配置信息、预设功能信息中的至少一种;
生成测试数据或者生成一个或多个测试用例;
发送所述测试数据或者一个或多个测试用例至虚拟网络测试环境请求测试;
接收测试结果。
12.如权利要求11所述的分布式网络测试方法,其特征在于,所述预设配置信息至少包括:虚拟网络测试环境的标识、执行参数;所述执行参数包括测试URL,测试节点,请求方式,请求头信息中的一种或多种。
13.如权利要求11所述的分布式网络测试方法,其特征在于,还包括:保存所述一个或多个测试用例。
14.一种分布式网络测试装置,应用于服务器或由多个服务器组成的服务器集群,其特征在于,包括:
测试环境构建模块,用于构建至少一个虚拟网络测试环境,所述虚拟网络测试环境位于服务器或服务器集群中的隔离执行环境;
测试用例接收模块,用于所述虚拟网络测试环境接收测试用例;
响应模块,用于执行所述测试用例,返回测试结果至前端界面。
15.一种分布式网络测试装置,应用于前端界面,其特征在于,包括:
信息接收模块,用于接收用户的输入信息,所述输入信息包括预设配置信息、预设功能信息中的至少一种;
数据转换模块,用于生成测试数据或者生成一个或多个测试用例;
发送模块,用于发送所述测试数据或者一个或多个测试用例至虚拟网络测试环境请求测试;
响应接收模块,用于接收测试结果。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现如权利要求1-13中任意一项所述方法的步骤。
17.一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-13中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110899501.8A CN115914055A (zh) | 2021-08-06 | 2021-08-06 | 分布式网络测试方法、装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110899501.8A CN115914055A (zh) | 2021-08-06 | 2021-08-06 | 分布式网络测试方法、装置、介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115914055A true CN115914055A (zh) | 2023-04-04 |
Family
ID=86471354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110899501.8A Pending CN115914055A (zh) | 2021-08-06 | 2021-08-06 | 分布式网络测试方法、装置、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115914055A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116743619A (zh) * | 2023-08-15 | 2023-09-12 | 苏州浪潮智能科技有限公司 | 网络服务的测试方法、装置、设备及存储介质 |
-
2021
- 2021-08-06 CN CN202110899501.8A patent/CN115914055A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116743619A (zh) * | 2023-08-15 | 2023-09-12 | 苏州浪潮智能科技有限公司 | 网络服务的测试方法、装置、设备及存储介质 |
CN116743619B (zh) * | 2023-08-15 | 2023-11-03 | 苏州浪潮智能科技有限公司 | 网络服务的测试方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109683899B (zh) | 一种软件集成方法及装置 | |
US10067863B1 (en) | Feature targeting of test automation lab machines | |
US20170331862A1 (en) | Method for accessing cloud service and access device | |
US20180322037A1 (en) | Impersonation in test automation | |
CN109614109B (zh) | 应用部署方法、装置和系统 | |
CN109376088B (zh) | 一种自动化测试系统及自动化测试方法 | |
CN110933095A (zh) | 一种报文解析方法及装置 | |
CN113312064B (zh) | 物理机的安装配置方法、装置以及计算机可读介质 | |
CN110532182B (zh) | 一种虚拟化平台的自动化测试方法及装置 | |
CN106612204B (zh) | 业务校验方法及装置 | |
CN107632829A (zh) | 一种基于iOS系统下的App自动化持续集成系统及方法 | |
CN111200523B (zh) | 中台系统配置方法、装置、设备及存储介质 | |
CN111258913A (zh) | 算法自动测试方法、装置、计算机系统及可读存储介质 | |
CN111651365B (zh) | 接口自动化测试方法及装置 | |
CN111078553B (zh) | 数据开发任务测试方法、装置、计算机设备和存储介质 | |
CN115914055A (zh) | 分布式网络测试方法、装置、介质及设备 | |
CN110990289A (zh) | 一种自动提交bug的方法、装置、电子设备及存储介质 | |
CN111832273A (zh) | 目的报文的确定方法及装置、存储介质、电子装置 | |
CN111930625B (zh) | 基于云服务平台的日志获取方法、装置及系统 | |
US11539612B2 (en) | Testing virtualized network functions | |
CN113220337A (zh) | 一种版本构建方法、装置、计算机设备和存储介质 | |
CN113238935A (zh) | 应用测试方法、系统、设备、介质及计算机程序产品 | |
CN113934552A (zh) | 功能代码的确定方法及装置、存储介质、电子装置 | |
CN113434405A (zh) | 测试文件的确定方法及装置、存储介质及电子装置 | |
CN112328267A (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 |