CN110647469A - 一种微服务的测试方法、装置、计算机设备和存储介质 - Google Patents
一种微服务的测试方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110647469A CN110647469A CN201910906239.8A CN201910906239A CN110647469A CN 110647469 A CN110647469 A CN 110647469A CN 201910906239 A CN201910906239 A CN 201910906239A CN 110647469 A CN110647469 A CN 110647469A
- Authority
- CN
- China
- Prior art keywords
- test
- service
- container
- micro
- test environment
- 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.)
- Granted
Links
Images
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
-
- 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)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种微服务的测试方法、装置、计算机设备和存储介质,该方法包括:创建至少两个测试环境,在每个所述测试环境中具有容器,所述容器用于部署微服务;接收客户端的测试操作,所述测试操作用于对指定的微服务进行测试;根据所述测试操作,在与对所述客户端适配的测试环境中查询所述微服务的服务信息;根据所述服务信息调用所述微服务在所述测试环境中进行测试。微服务可统一使用域名配置,容器运行时、微服务之间通过访问域名来完成交互,生成容器时无需再配置关联的微服务的IP地址等信息便可直接运行,避免二次配置修改,可以快速生成测试环境并且能够即时投入使用。
Description
技术领域
本发明实施例涉及测试的技术,尤其涉及一种微服务的测试方法、装置、计算机设备和存储介质。
背景技术
大型互联网应用在开发阶段都会有多个不同的业务同时进行开发,开发完之后需要向测试人员提供测试环境用于测试业务的功能是否正常。
随着业务越来越多,同一时间可能有多个业务都需要测试人员进行测试,测试环境的数量就会造成一个测试效率的瓶颈,目前,业内通常会提供一个或者多个测试环境,根据不同业务需要不断更新测试环境内的微服务。
初始提供单一的测试环境,在测试时需要通知其他测试人员目前在测试的业务并更新相关的微服务,需要一组测试人员测试完才能让下一组测试人员进行测试,影响测试效率,同时,测试环境的微服务版本会变动频繁,每组测试人员测试的业务不同,在开始前测试还需要将所有微服务的版本调整到该组测试人员需要测试的版本,导致维护复杂。
后来提供多个测试环境,一个测试环境包含多个微服务,微服务之间可能需要相互连接调用,每个微服务都是通过配置记录需要调用的微服务的IP。在多个测试环境的情况下,每新建一个测试环境就需要对有具有调用关系的微服务配置修改IP,操作复杂而且容易遗漏,每新建一个测试环境都需要花费大量时间用于测试环境的初始化和调通所有功能,从而以保证微服务之间能正常提供服务。
发明内容
本发明实施例提供一种微服务的测试方法、装置、计算机设备和存储介质,以解决多个测试环境配置微服务的操作复杂的问题。
第一方面,本发明实施例提供了一种微服务的测试方法,包括:
创建至少两个测试环境,在每个所述测试环境中具有容器,所述容器用于部署微服务;
接收客户端的测试操作,所述测试操作用于对指定的微服务进行测试;
根据所述测试操作,在与对所述客户端适配的测试环境中查询所述微服务的服务信息;
根据所述服务信息调用所述微服务在所述测试环境中进行测试。
可选地,所述创建至少两个测试环境,包括:
在测试环境中创建容器,所述容器用于部署微服务,所述微服务具有域名;
对所述容器分配IP地址;
注册所述微服务的域名、所述测试环境的编号与所述容器的IP地址之间的映射关系。
可选地,所述在测试环境中创建容器,包括:
确定顺序;
在测试环境中按照所述顺序创建容器;
其中,创建用于部署数据库的容器优先于创建用于部署微服务的容器,所述微服务用于连接所述数据库。
可选地,所述创建至少两个测试环境,还包括:
对所述测试环境进行业务拨测,以确定所述测试环境的运行状态;
若所述测试环境的运行状态为异常,则重新创建所述测试环境。
可选地,所述对所述测试环境进行业务拨测,以确定所述测试环境的运行状态,包括:
模拟指定的业务操作,所述业务操作关联参考结果;
调用所述微服务在所述测试环境中执行所述业务操作,获得业务结果;
若所述业务结果与所述参考结果相同,则确定所述测试环境的运行状态为正常;
若所述业务结果与所述参考结果不同,则确定所述测试环境的运行状态为异常。
可选地,所述根据所述测试操作,在与对所述客户端适配的测试环境中查询所述微服务的服务信息,包括:
在所述测试操作中确定所述客户端的IP地址、所述微服务的域名;
查询所述客户端的IP地址映射的测试环境的编号;
查询所述微服务的域名与所述测试环境的编号共同映射的容器的IP地址,所述容器用于部署所述微服务。
可选地,所述根据所述测试操作,在与对所述客户端适配的测试环境中查询所述微服务的服务信息,还包括:
确定目标微服务的域名,所述目标微服务为所述微服务连接的其他微服务;
查询所述目标微服务的域名与所述测试环境的编号共同映射的容器的IP地址,所述容器用于部署所述目标微服务。
可选地,所述根据所述服务信息调用所述微服务在所述测试环境中进行测试,包括:
基于所述容器的IP地址建立所述客户端与所述容器之间的连接;
调用所述容器中部署的微服务在所述测试环境中进行测试。
第二方面,本发明实施例还提供了一种微服务的测试装置,包括:
测试环境创建模块,用于创建至少两个测试环境,在每个所述测试环境中具有容器,所述容器用于部署微服务;
测试操作接收模块,用于接收客户端的测试操作,所述测试操作用于对指定的微服务进行测试;
服务信息查询模块,用于根据所述测试操作,在与对所述客户端适配的测试环境中查询所述微服务的服务信息;
微服务测试模块,用于根据所述服务信息调用所述微服务在所述测试环境中进行测试。
在本发明的一个实施例中,所述测试环境创建模块包括:
容器创建子模块,用于在测试环境中创建容器,所述容器用于部署微服务,所述微服务具有域名;
IP地址分配子模块,用于对所述容器分配IP地址;
信息注册子模块,用于注册所述微服务的域名、所述测试环境的编号与所述容器的IP地址之间的映射关系。
可选地,所述容器创建子模块包括:
顺序确定单元,用于确定顺序;
顺序创建单元,用于在测试环境中按照所述顺序创建容器;
其中,创建用于部署数据库的容器优先于创建用于部署微服务的容器,所述微服务用于连接所述数据库。
可选地,所述测试环境创建模块还包括:
业务拨测子模块,用于对所述测试环境进行业务拨测,以确定所述测试环境的运行状态;
测试环境重建子模块,用于若所述测试环境的运行状态为异常,则重新创建所述测试环境。
可选地,所述业务拨测子模块包括:
业务操作模块单元,用于模拟指定的业务操作,所述业务操作关联参考结果;
业务操作执行单元,用于调用所述微服务在所述测试环境中执行所述业务操作,获得业务结果;
正常确定单元,用于若所述业务结果与所述参考结果相同,则确定所述测试环境的运行状态为正常;
异常确定单元,用于若所述业务结果与所述参考结果不同,则确定所述测试环境的运行状态为异常。
可选地,所述服务信息查询模块包括:
信息确定子模块,用于在所述测试操作中确定所述客户端的IP地址、所述微服务的域名;
编号查询子模块,用于查询所述客户端的IP地址映射的测试环境的编号;
IP地址查询子模块,用于查询所述微服务的域名与所述测试环境的编号共同映射的容器的IP地址,所述容器用于部署所述微服务。
可选地,所述服务信息查询模块还包括:
域名确定子模块,用于确定目标微服务的域名,所述目标微服务为所述微服务连接的其他微服务;
IP地址确定子模块,用于查询所述目标微服务的域名与所述测试环境的编号共同映射的容器的IP地址,所述容器用于部署所述目标微服务。
可选地,所述微服务测试模块包括:
连接子模块,用于基于所述容器的IP地址建立所述客户端与所述容器之间的连接;
测试子模块,用于调用所述容器中部署的微服务在所述测试环境中进行测试。
第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任一所述的微服务的测试方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一所述的微服务的测试方法。
在本发明实施例中,创建至少两个测试环境,在每个测试环境中具有容器,容器用于部署微服务,接收客户端的测试操作,该测试操作用于对指定的微服务进行测试,根据测试操作,在与对客户端适配的测试环境中查询微服务的服务信息,根据服务信息调用微服务在测试环境中进行测试。
首先,一个测试环境包含多个微服务,每个微服务单独部署在一个容器中,微服务之间的相互连接可通过域名实现,同一个域名在不同的测试环境中可会解析出不同的IP地址,以此实现测试环境内的微服务连接到本测试环境内的微服务,不会跨测试环境连接,实现测试环境的隔离。
其次,微服务可统一使用域名配置,容器运行时、微服务之间通过访问域名来完成交互,生成容器时无需再配置关联的微服务的IP地址等信息便可直接运行,避免二次配置修改,可以快速生成测试环境并且能够即时投入使用。
再者,针对同一微服务,在不同测试环境中可查询到不同的IP地址,用以实现多测试环境多解析。
附图说明
图1为本发明实施例一提供的一种微服务的测试方法的流程图;
图2A是本发明实施例一提供的一种计算机设备的架构图;
图2B是本发明实施例一提供的一种微服务的测试示例图;
图3为本发明实施例二提供的一种微服务的测试装置的结构示意图;
图4为本发明实施例三提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种微服务的测试方法的流程图,本实施例可适用于自动创建多个测试环境测试微服务的情况,该方法可以由微服务的测试装置来执行,该审核任务的分配装置可以由软件和/或硬件实现,可配置在计算机设备中,例如,服务器、工作站,等等,该方法具体包括如下步骤:
步骤101、创建至少两个测试环境。
在本实施例中,在每个测试环境中具有容器,该容器用于部署微服务。
在具体实现中,如图2A所示,在计算机设备中部署有调度系统、DNS(Domain NameSystem,域名系统)和应用容器引擎。
其中,调度系统负责管理测试环境,调度应用容器引擎创建测试测试环境、将测试环境中的相关信息,如微服务的域名、容器的IP地址、测试环境的编号等,注册至DNS,测试环境创建完成后会通过拨测服务确定测试环境运行是否正常,等等。
DNS采用标准的DNS域名解析协议通信,如DNS运行在UDP(User DatagramProtocol,用户数据报协议)协议之上,使用端口号53,在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。
在本实施例中,DNS提供如下解析服务:
1、微服务的域名、容器的IP(Internet Protocol,网络之间互连的协议)地址、测试环境的编号之间的解析服务。
在此服务中,可基于微服务的域名与测试环境的编号查询容器的IP地址,示例如微服务映射表所示:
微服务映射表
微服务的域名 | 容器的IP地址 | 测试环境的编号 |
db.example.com | 192.168.10.4 | 1 |
db.example.com | 192.168.20.4 | 2 |
gate.example.com | 192.168.10.1 | 1 |
gate.example.com | 192.168.20.1 | 2 |
2、客户端的IP地址、测试环境的编号之间的解析服务
在此服务中,针对用户(客户端)设置其可访问的测试环境,基于客户端的IP地址查询测试环境的编号,示例如客户端映射表所示:
客户端映射表
需要说明的是,测试环境主要是局域网内使用,用的局域网的IP地址,一般情况下不会变动。
一个用户相对来说就是一个客户端,用户(客户端)可以按一个IP地址进行匹配的,测试时可以选择设置连接哪个测试环境。
应用容器引擎提供容器管理服务,负责管理、创建容器和为容器分配IP地址。
以Docker作为应用容器的示例,Docker使用客户端-服务器(C/S)架构模式,使用远程API(Application Programming Interface,应用程序编程接口)来管理和创建Docker容器。
Docker容器通过Docker镜像来创建,容器与镜像的关系类似于面向对象编程中的对象与类。
一般情况下,Docker有以下几个部分组成:
1、Docker镜像(Images)
Docker镜像是用于创建Docker容器的模板。
2、Docker容器(Container)
容器是独立运行的一个或一组应用。
3、Docker客户端(Client)
Docker客户端通过命令行或者其他工具使用Docker API与Docker的守护进程通信。
4、Docker主机(Host)
一个物理或者虚拟的机器用于执行Docker守护进程和容器。
5、Docker仓库(Registry)
Docker仓库用来保存镜像,可以理解为代码控制中的代码仓库。
6、Docker Machine
Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、Digital Ocean、Microsoft Azure。
在本实施例中,如图2A所示,在计算机设备中提供了操作入口,用户通过操作入口操作创建至少两个测试环境(如测试环境_1(即编号为1的测试环境)、测试环境_2(即编号为2的测试环境))。
在每个测试环境中可部署网关(如网关_1、网关_2)、一个或多个相同的业务(如业务_A、业务_B)、数据库(如数据库_1、数据库_2),等等。
进一步地,微服务是一种架构风格,一个大型复杂的系统可由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务关注于完成一件任务并完成该任务。一般情况下,每个任务代表着一个小的业务能力,因此,微服务可以理解为实现一个业务的独立进程,即微服务可以看作是业务的具体实例。
例如,在传统的服务架构,登录和注册可能在同一个进程中,登录出现问题可能在程序上会影响到注册功能,在本实施例中,登录和注册都是一个独立进程,登录可以为一个微服务,注册可以为一个微服务,相互独立,互不影响。
假设业务_A包含微服务_A1和微服务_A2,业务_B包含微服务_B1和微服务_B2,如图2A和图2B所示,在测试环境_1中可部署网关_1、微服务_A1、微服务_B1、数据库_1等等,在测试环境_2中可部署网关_2、微服务_A2、微服务_B2、数据库_2等等。
在本发明的一种优选实施例中,步骤101可以包括如下步骤:
S11、在测试环境中创建容器。
在本实施例中,调度系统收到创建测试环境的指令后,调用应用容器引擎创建所有组件的容器并分配容器的IP地址。
其中,容器将软件打包成标准化单元,以用于开发、交付和部署。
容器镜像是轻量的、可执行的独立软件包,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。
容器化软件适用于基于Linux和Windows的应用,在任何环境中都能够始终如一地运行。
容器赋予了软件独立性,使其免受外在环境差异(例如,开发和预演环境的差异)的影响,从而有助于减少团队间在相同基础设施上运行不同软件时的冲突。
该容器可用于部署微服务本身,也可用于部署网关、数据库等与微服务本身关联的其他微服务,其中,该微服务具有域名。
其中,数据库可以看作一个集合,可能包含MySQL、Redis等所有负责数据存储的服务,每个测试环境均可使用一个独立的数据库。
如图2A所示,用于部署微服务的容器可连接用于部署网关的容器,用于部署微服务的容器可连接用于部署数据库的容器。
进一步地,可预先对容器的设置创建的顺序。
在一个示例中,创建用于部署数据库的容器优先于创建用于部署微服务的容器,该微服务用于连接数据库,该数据库存储有支持微服务运行所需的数据,例如,若微服务为登录、注册,则该数据库存储用户信息、业务数据等数据,使得微服务通过连接数据库读取数据、从而运行。
因此,可确定顺序,在测试环境中按照顺序创建容器。
S12、对所述容器分配IP地址。
应用容器引擎创建完所有容器后返回容器的IP地址给调度系统,该容器的IP地址也表示微服务的IP地址。
S13、注册所述微服务的域名、所述测试环境的编号与所述容器的IP地址之间的映射关系。
在本实施例中,调度服务将微服务的域名、测试环境的编号与容器的IP地址之间的映射关系注册到DNS中。
S14、对所述测试环境进行业务拨测,以确定所述测试环境的运行状态。
S15、若所述测试环境的运行状态为异常,则重新创建所述测试环境。
在本实施例中,调度系统模拟用户(客户端)对新生成的测试环境进行业务拨测,检测测试环境的运行状态,从而保证测试环境的可用性。
如果测试环境的运行状态为正常,则确认测试环境完成创建。
如果测试环境的运行状态为异常,则销毁该测试环境,重新创建该测试环境(返回执行S11-S13)。
在具体实现中,可模拟用户指定的业务操作,如注册、登录等,该业务操作关联参考结果,该参考结果为微服务执行该业务操作获得的正确的结果。
此时,可调用微服务在该测试环境中执行该业务操作,获得业务结果,将该业务结果与参考结果进行比较。
若业务结果与参考结果相同,则确定测试环境的运行状态为正常。
若业务结果与参考结果不同,则确定测试环境的运行状态为异常。
S102、接收客户端的测试操作。
如图2B所示,客户端触发测试操作,该测试操作用于对指定的微服务进行测试。
S103、根据所述测试操作,在与对所述客户端适配的测试环境中查询所述微服务的服务信息。
在本实施例中,可对客户端配置相应的测试环境,针对该客户端测试的微服务,解析该微服务在该测试环境中的服务信息。
在本发明的一种优选实施例中,步骤103可以包括如下步骤:
S21、在所述测试操作中确定所述客户端的IP地址、所述微服务的域名。
调度系统在接收到客户端的测试操作时,可解析该测试操作的数据包,从相关的字段中提取客户端的IP地址、微服务的域名。
S22、查询所述客户端的IP地址映射的测试环境的编号。
调度系统可调用DNS,在客户端映射表中,查询该客户端的IP地址映射的测试环境的编号,从而确定测试环境。
S23、查询所述微服务的域名与所述测试环境的编号共同映射的容器的IP地址。
调度系统可调用DNS,在微服务映射表中,查询该微服务的域名与该测试环境的编号共同映射的容器的IP地址(服务信息),其中,该容器用于部署微服务,从而确定微服务。
S24、确定目标微服务的域名。
其中,目标微服务为微服务连接的其他微服务,例如,如图2B所示,若微服务为微服务_A1,则该目标微服务可以为数据库。
该目标微服务的域名,可预先注册在其连接的微服务内。
S25、查询所述目标微服务的域名与所述测试环境的编号共同映射的容器的IP地址。
在本实施例中,如果某个微服务连接其他微服务,则可以连接的其他微服务视为目标微服务,调度系统可调用DNS,在微服务映射表中,查询该目标微服务的域名与该测试环境的编号共同映射的容器的IP地址(服务信息),其中,该容器用于目标部署微服务,从而确定目标微服务。
例如,某个客户端的IP地址为192.168.100.1,当该客户端访问db.example.com、测试微服务时,DNS在客户端映射表中查询192.168.100.1映射测试环境_1,在微服务映射表中查询db.example.com与测试环境_1映射192.168.10.4,即部署该微服务的容器的IP地址为192.168.10.4。
又例如,某个客户端的IP地址为192.168.100.2,当该客户端访问db.example.com、测试微服务时,DNS在客户端映射表中查询192.100.2映射测试环境_2,在微服务映射表中查询db.example.com与测试环境_2映射192.168.20.4,即部署该微服务的容器的IP地址为192.168.20.4。
为使本领域技术人员更好地理解本实施例,以下通过具体的示例来说明本实施例中微服务的测试方法。
假设有微服务_C与微服务_D,微服务_C连接微服务_D、请求数据。
在传统方案中:在测试环境_1中,微服务_C需要配置微服务_D的IP地址,该IP地址假设为192.168.10.1;在测试环境_2中,微服务_D的IP地址假设为192.168.20.1,在测试环境_2部署微服务_C后需要修改连接微服务_D的IP地址配置为192.168.20.1。
在本实施例中:有微服务_C连接微服务_D的配置设为b.example.com,在测试环境_1部署时该域名会解析为192.168.10.1,在测试环境_2部署时该域名会解析为192.168.20.1。
因此,无论微服务_C在哪个测试环境部署,都不需要修改连接微服务_D的配置,以此实现快速部署。
步骤104、根据所述服务信息调用所述微服务在所述测试环境中进行测试。
在本实施例中,在解析出微服务在测试环境的服务信息之后,可按照该服务信息调用微服务在测试环境中、按照客户端的测试操作进行测试。
在具体实现中,该服务信息包括容器的IP地址,该容器的IP地址包括微服务的IP地址,也包括目标微服务的IP地址。
按照微服务之间连接的顺序,基于容器的IP地址建立客户端与容器之间的连接,该连接包括客户端与容器的连接,也包括容器与容器之间的连接。
按照微服务之间连接的顺序,调用该容器中部署的微服务在测试环境中、按照客户端的测试操作进行测试,并将测试结果发送至该客户端。
在本实施例中,创建至少两个测试环境,在每个测试环境中具有容器,容器用于部署微服务,接收客户端的测试操作,该测试操作用于对指定的微服务进行测试,根据测试操作,在与对客户端适配的测试环境中查询微服务的服务信息,根据服务信息调用微服务在测试环境中进行测试。
首先,一个测试环境包含多个微服务,每个微服务单独部署在一个容器中,微服务之间的相互连接可通过域名实现,同一个域名在不同的测试环境中可会解析出不同的IP地址,以此实现测试环境内的微服务连接到本测试环境内的微服务,不会跨测试环境连接,实现测试环境的隔离。
其次,微服务可统一使用域名配置,容器运行时、微服务之间通过访问域名来完成交互,生成容器时无需再配置关联的微服务的IP地址等信息便可直接运行,避免二次配置修改,可以快速生成测试环境并且能够即时投入使用。
再者,针对同一微服务,在不同测试环境中可查询到不同的IP地址,用以实现多测试环境多解析。
实施例二
图3为本发明实施例二提供的一种微服务的测试装置的结构示意图,该装置具体可以包括如下模块:
测试环境创建模块301,用于创建至少两个测试环境,在每个所述测试环境中具有容器,所述容器用于部署微服务;
测试操作接收模块302,用于接收客户端的测试操作,所述测试操作用于对指定的微服务进行测试;
服务信息查询模块303,用于根据所述测试操作,在与对所述客户端适配的测试环境中查询所述微服务的服务信息;
微服务测试模块304,用于根据所述服务信息调用所述微服务在所述测试环境中进行测试。
在本发明的一个实施例中,所述测试环境创建模块301包括:
容器创建子模块,用于在测试环境中创建容器,所述容器用于部署微服务,所述微服务具有域名;
IP地址分配子模块,用于对所述容器分配IP地址;
信息注册子模块,用于注册所述微服务的域名、所述测试环境的编号与所述容器的IP地址之间的映射关系。
在本发明的一个实施例中,所述容器创建子模块包括:
顺序确定单元,用于确定顺序;
顺序创建单元,用于在测试环境中按照所述顺序创建容器;
其中,创建用于部署数据库的容器优先于创建用于部署微服务的容器,所述微服务用于连接所述数据库。
在本发明的一个实施例中,所述测试环境创建模块301还包括:
业务拨测子模块,用于对所述测试环境进行业务拨测,以确定所述测试环境的运行状态;
测试环境重建子模块,用于若所述测试环境的运行状态为异常,则重新创建所述测试环境。
在本发明的一个实施例中,所述业务拨测子模块包括:
业务操作模块单元,用于模拟指定的业务操作,所述业务操作关联参考结果;
业务操作执行单元,用于调用所述微服务在所述测试环境中执行所述业务操作,获得业务结果;
正常确定单元,用于若所述业务结果与所述参考结果相同,则确定所述测试环境的运行状态为正常;
异常确定单元,用于若所述业务结果与所述参考结果不同,则确定所述测试环境的运行状态为异常。
在本发明的一个实施例中,所述服务信息查询模块303包括:
信息确定子模块,用于在所述测试操作中确定所述客户端的IP地址、所述微服务的域名;
编号查询子模块,用于查询所述客户端的IP地址映射的测试环境的编号;
IP地址查询子模块,用于查询所述微服务的域名与所述测试环境的编号共同映射的容器的IP地址,所述容器用于部署所述微服务。
在本发明的一个实施例中,所述服务信息查询模块303还包括:
域名确定子模块,用于确定目标微服务的域名,所述目标微服务为所述微服务连接的其他微服务;
IP地址确定子模块,用于查询所述目标微服务的域名与所述测试环境的编号共同映射的容器的IP地址,所述容器用于部署所述目标微服务。
在本发明的一个实施例中,所述微服务测试模块304包括:
连接子模块,用于基于所述容器的IP地址建立所述客户端与所述容器之间的连接;
测试子模块,用于调用所述容器中部署的微服务在所述测试环境中进行测试。
本发明实施例所提供的微服务的测试装置可执行本发明任意实施例所提供的微服务的测试方法,具备执行方法相应的功能模块和有益效果。
实施例三
图4为本发明实施例三提供的一种计算机设备的结构示意图。如图4所示,该计算机设备包括处理器400、存储器401、通信模块402、输入装置403和输出装置404;计算机设备中处理器400的数量可以是一个或多个,图4中以一个处理器400为例;计算机设备中的处理器400、存储器401、通信模块402、输入装置403和输出装置404可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器401作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本实施例中的微服务的测试方法对应的模块(例如,如图3所示的微服务的测试装置中的测试环境创建模块301、测试操作接收模块302、服务信息查询模块303和微服务测试模块304)。处理器400通过运行存储在存储器401中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的微服务的测试方法。
存储器401可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器401可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器401可进一步包括相对于处理器400远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信模块402,用于与显示屏建立连接,并实现与显示屏的数据交互。输入装置403可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。
本实施例提供的计算机设备,可执行本发明任一实施例提供的微服务的测试方法,具体相应的功能和有益效果。
实施例四
本发明实施例四还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种微服务的测试方法,该方法包括:
创建至少两个测试环境,在每个所述测试环境中具有容器,所述容器用于部署微服务;
接收客户端的测试操作,所述测试操作用于对指定的微服务进行测试;
根据所述测试操作,在与对所述客户端适配的测试环境中查询所述微服务的服务信息;
根据所述服务信息调用所述微服务在所述测试环境中进行测试。
当然,本发明实施例所提供的计算机可读存储介质,其计算机程序不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的微服务的测试方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述微服务的测试装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (11)
1.一种微服务的测试方法,其特征在于,包括:
创建至少两个测试环境,在每个所述测试环境中具有容器,所述容器用于部署微服务;
接收客户端的测试操作,所述测试操作用于对指定的微服务进行测试;
根据所述测试操作,在与对所述客户端适配的测试环境中查询所述微服务的服务信息;
根据所述服务信息调用所述微服务在所述测试环境中进行测试。
2.根据权利要求1所述的方法,其特征在于,所述创建至少两个测试环境,包括:
在测试环境中创建容器,所述容器用于部署微服务,所述微服务具有域名;
对所述容器分配IP地址;
注册所述微服务的域名、所述测试环境的编号与所述容器的IP地址之间的映射关系。
3.根据权利要求2所述的方法,其特征在于,所述在测试环境中创建容器,包括:
确定顺序;
在测试环境中按照所述顺序创建容器;
其中,创建用于部署数据库的容器优先于创建用于部署微服务的容器,所述微服务用于连接所述数据库。
4.根据权利要求2所述的方法,其特征在于,所述创建至少两个测试环境,还包括:
对所述测试环境进行业务拨测,以确定所述测试环境的运行状态;
若所述测试环境的运行状态为异常,则重新创建所述测试环境。
5.根据权利要求4所述的方法,其特征在于,所述对所述测试环境进行业务拨测,以确定所述测试环境的运行状态,包括:
模拟指定的业务操作,所述业务操作关联参考结果;
调用所述微服务在所述测试环境中执行所述业务操作,获得业务结果;
若所述业务结果与所述参考结果相同,则确定所述测试环境的运行状态为正常;
若所述业务结果与所述参考结果不同,则确定所述测试环境的运行状态为异常。
6.根据权利要求1-5任一所述的方法,其特征在于,所述根据所述测试操作,在与对所述客户端适配的测试环境中查询所述微服务的服务信息,包括:
在所述测试操作中确定所述客户端的IP地址、所述微服务的域名;
查询所述客户端的IP地址映射的测试环境的编号;
查询所述微服务的域名与所述测试环境的编号共同映射的容器的IP地址,所述容器用于部署所述微服务。
7.根据权利要求6所述的方法,其特征在于,所述根据所述测试操作,在与对所述客户端适配的测试环境中查询所述微服务的服务信息,还包括:
确定目标微服务的域名,所述目标微服务为所述微服务连接的其他微服务;
查询所述目标微服务的域名与所述测试环境的编号共同映射的容器的IP地址,所述容器用于部署所述目标微服务。
8.根据权利要求7所述的方法,其特征在于,所述根据所述服务信息调用所述微服务在所述测试环境中进行测试,包括:
基于所述容器的IP地址建立所述客户端与所述容器之间的连接;
调用所述容器中部署的微服务在所述测试环境中进行测试。
9.一种微服务的测试装置,其特征在于,包括:
测试环境创建模块,用于创建至少两个测试环境,在每个所述测试环境中具有容器,所述容器用于部署微服务;
测试操作接收模块,用于接收客户端的测试操作,所述测试操作用于对指定的微服务进行测试;
服务信息查询模块,用于根据所述测试操作,在与对所述客户端适配的测试环境中查询所述微服务的服务信息;
微服务测试模块,用于根据所述服务信息调用所述微服务在所述测试环境中进行测试。
10.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的微服务的测试方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-8中任一所述的微服务的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910906239.8A CN110647469B (zh) | 2019-09-24 | 2019-09-24 | 一种微服务的测试方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910906239.8A CN110647469B (zh) | 2019-09-24 | 2019-09-24 | 一种微服务的测试方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110647469A true CN110647469A (zh) | 2020-01-03 |
CN110647469B CN110647469B (zh) | 2023-09-08 |
Family
ID=68992483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910906239.8A Active CN110647469B (zh) | 2019-09-24 | 2019-09-24 | 一种微服务的测试方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110647469B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111464380A (zh) * | 2020-03-19 | 2020-07-28 | 时时同云科技(成都)有限责任公司 | 多个业务项目的并行测试方法、装置及系统 |
CN111581085A (zh) * | 2020-04-28 | 2020-08-25 | 广州市百果园信息技术有限公司 | 联调测试系统及方法 |
CN111782518A (zh) * | 2020-06-29 | 2020-10-16 | 中国工商银行股份有限公司 | 测试方法、装置和电子设备 |
CN111782519A (zh) * | 2020-06-29 | 2020-10-16 | 中国工商银行股份有限公司 | 测试方法、装置和电子设备 |
CN111813826A (zh) * | 2020-06-02 | 2020-10-23 | 深圳市互联工场科技有限公司 | Whois查询方法、系统及存储介质 |
CN112134922A (zh) * | 2020-08-14 | 2020-12-25 | 中信银行股份有限公司 | 一种基于微服务的服务调用方法、装置及存储介质 |
CN112199288A (zh) * | 2020-10-16 | 2021-01-08 | 深圳无域科技技术有限公司 | 分布式测试环境部署方法及系统 |
CN112311679A (zh) * | 2020-10-28 | 2021-02-02 | 北京健康之家科技有限公司 | 状态检测方法、装置、电子设备及可读存储介质 |
CN113704136A (zh) * | 2021-11-01 | 2021-11-26 | 深圳市明源云科技有限公司 | 测试环境的生成方法、装置、设备和计算机可读存储介质 |
CN114531323A (zh) * | 2022-02-08 | 2022-05-24 | 北京云思智学科技有限公司 | 一种生产测试同构的多环境独立网关系统及软件测试方法 |
CN115086412A (zh) * | 2021-03-16 | 2022-09-20 | 易保网络技术(上海)有限公司 | 一种微服务开发方法、系统以及计算机设备和介质 |
CN115914395A (zh) * | 2023-01-30 | 2023-04-04 | 禾多科技(北京)有限公司 | 微服务开发方法、装置、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959138A (zh) * | 2016-04-29 | 2016-09-21 | 深圳前海大数点科技有限公司 | 基于云计算的微服务动态部署的系统及方法 |
CN106341438A (zh) * | 2015-07-10 | 2017-01-18 | 阿里巴巴集团控股有限公司 | 请求处理方法和装置 |
CN108694117A (zh) * | 2017-04-11 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 基于容器技术的管理测试环境的方法和装置 |
CN108829399A (zh) * | 2018-04-13 | 2018-11-16 | 杭州朗和科技有限公司 | 一种应用的测试方法、测试装置、介质和计算设备 |
CN109150978A (zh) * | 2018-07-24 | 2019-01-04 | 北京百度网讯科技有限公司 | 调试微服务的方法和装置 |
CN109710524A (zh) * | 2018-12-19 | 2019-05-03 | 上海华兴数字科技有限公司 | 一种自动测试方法、系统和计算机存储介质 |
CN109739744A (zh) * | 2018-12-05 | 2019-05-10 | 北京奇艺世纪科技有限公司 | 一种测试系统及方法 |
US20190156199A1 (en) * | 2017-11-20 | 2019-05-23 | International Business Machines Corporation | Method for automated integration testing with mock microservices |
-
2019
- 2019-09-24 CN CN201910906239.8A patent/CN110647469B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106341438A (zh) * | 2015-07-10 | 2017-01-18 | 阿里巴巴集团控股有限公司 | 请求处理方法和装置 |
CN105959138A (zh) * | 2016-04-29 | 2016-09-21 | 深圳前海大数点科技有限公司 | 基于云计算的微服务动态部署的系统及方法 |
CN108694117A (zh) * | 2017-04-11 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 基于容器技术的管理测试环境的方法和装置 |
US20190156199A1 (en) * | 2017-11-20 | 2019-05-23 | International Business Machines Corporation | Method for automated integration testing with mock microservices |
CN108829399A (zh) * | 2018-04-13 | 2018-11-16 | 杭州朗和科技有限公司 | 一种应用的测试方法、测试装置、介质和计算设备 |
CN109150978A (zh) * | 2018-07-24 | 2019-01-04 | 北京百度网讯科技有限公司 | 调试微服务的方法和装置 |
CN109739744A (zh) * | 2018-12-05 | 2019-05-10 | 北京奇艺世纪科技有限公司 | 一种测试系统及方法 |
CN109710524A (zh) * | 2018-12-19 | 2019-05-03 | 上海华兴数字科技有限公司 | 一种自动测试方法、系统和计算机存储介质 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111464380A (zh) * | 2020-03-19 | 2020-07-28 | 时时同云科技(成都)有限责任公司 | 多个业务项目的并行测试方法、装置及系统 |
CN111581085A (zh) * | 2020-04-28 | 2020-08-25 | 广州市百果园信息技术有限公司 | 联调测试系统及方法 |
CN111813826A (zh) * | 2020-06-02 | 2020-10-23 | 深圳市互联工场科技有限公司 | Whois查询方法、系统及存储介质 |
CN111782518A (zh) * | 2020-06-29 | 2020-10-16 | 中国工商银行股份有限公司 | 测试方法、装置和电子设备 |
CN111782519A (zh) * | 2020-06-29 | 2020-10-16 | 中国工商银行股份有限公司 | 测试方法、装置和电子设备 |
CN112134922A (zh) * | 2020-08-14 | 2020-12-25 | 中信银行股份有限公司 | 一种基于微服务的服务调用方法、装置及存储介质 |
CN112199288A (zh) * | 2020-10-16 | 2021-01-08 | 深圳无域科技技术有限公司 | 分布式测试环境部署方法及系统 |
CN112311679A (zh) * | 2020-10-28 | 2021-02-02 | 北京健康之家科技有限公司 | 状态检测方法、装置、电子设备及可读存储介质 |
CN112311679B (zh) * | 2020-10-28 | 2023-07-28 | 北京水滴科技集团有限公司 | 状态检测方法、装置、电子设备及可读存储介质 |
CN115086412A (zh) * | 2021-03-16 | 2022-09-20 | 易保网络技术(上海)有限公司 | 一种微服务开发方法、系统以及计算机设备和介质 |
CN113704136A (zh) * | 2021-11-01 | 2021-11-26 | 深圳市明源云科技有限公司 | 测试环境的生成方法、装置、设备和计算机可读存储介质 |
CN113704136B (zh) * | 2021-11-01 | 2022-01-28 | 深圳市明源云科技有限公司 | 测试环境的生成方法、装置、设备和计算机可读存储介质 |
CN114531323A (zh) * | 2022-02-08 | 2022-05-24 | 北京云思智学科技有限公司 | 一种生产测试同构的多环境独立网关系统及软件测试方法 |
CN115914395A (zh) * | 2023-01-30 | 2023-04-04 | 禾多科技(北京)有限公司 | 微服务开发方法、装置、设备及介质 |
CN115914395B (zh) * | 2023-01-30 | 2023-05-23 | 禾多科技(北京)有限公司 | 微服务开发方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110647469B (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647469B (zh) | 一种微服务的测试方法、装置、计算机设备和存储介质 | |
US7921197B2 (en) | Dynamic configuration of virtual machines | |
WO2020147419A1 (zh) | 监控方法、装置、计算机设备及存储介质 | |
CN111240763A (zh) | 配置更新方法、装置、设备及存储介质 | |
US11163669B1 (en) | Measuring test coverage during phased deployments of software updates | |
CN112738060B (zh) | 微服务数据的处理方法、装置、微服务处理平台及介质 | |
CN113094182B (zh) | 一种服务的负载均衡处理方法、装置及云端服务器 | |
CN112965700B (zh) | 基于路由的微服务处理方法、装置、计算机设备和介质 | |
US20090070773A1 (en) | Method for efficient thread usage for hierarchically structured tasks | |
US11669599B2 (en) | Systems and methods for software license management | |
CN111858296B (zh) | 接口测试方法、装置、设备和存储介质 | |
US11120049B2 (en) | Concurrent data imports | |
CN111970337B (zh) | 跨云环境下的p2p网络通信构建方法、系统、介质及终端 | |
US11461288B2 (en) | Systems and methods for database management system (DBMS) discovery | |
CN111147308A (zh) | 基于微服务架构的网络管理方法和系统 | |
CN111309624B (zh) | 测试方法、装置、设备及存储介质 | |
CN116010027A (zh) | 管理任务处理集群的方法、执行任务的方法及容器集群 | |
CN113900925A (zh) | 测试环境搭建利用方法、装置、设备和存储介质 | |
CN109408376B (zh) | 一种配置数据的生成方法、装置、设备及存储介质 | |
US20230008839A1 (en) | Smart environment assessment of prerequisites to private cloud provisioning | |
US10135728B2 (en) | Partial switching of network traffic | |
CN114221971B (zh) | 数据同步方法、装置、服务器、存储介质及产品 | |
CN113836212B (zh) | 数据库数据自动生成Json数据的方法、可读介质和电子设备 | |
US11138530B2 (en) | Action determination for case management | |
CN113342845A (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 |