CN110659206A - 基于微服务的模拟架构建立方法、装置、介质及电子设备 - Google Patents
基于微服务的模拟架构建立方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN110659206A CN110659206A CN201910817277.6A CN201910817277A CN110659206A CN 110659206 A CN110659206 A CN 110659206A CN 201910817277 A CN201910817277 A CN 201910817277A CN 110659206 A CN110659206 A CN 110659206A
- Authority
- CN
- China
- Prior art keywords
- micro
- service
- simulated
- micro service
- microservice
- 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
- 238000004088 simulation Methods 0.000 title claims abstract description 60
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012360 testing method Methods 0.000 claims abstract description 105
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
Abstract
本发明涉及功能测试领域,揭示了一种基于微服务的模拟架构建立方法、装置、介质及电子设备。该方法包括:建立基于微服务架构的应用程序;获取应用程序中微服务间的调用关系;获取与应用程序中微服务对应的测试任务描述,其中该微服务为第一微服务;基于调用关系以及测试任务描述,确定要模拟的对象和要模拟的对象对应的微服务,其中,要模拟的对象对应的微服务为第二微服务,要模拟的对象为目标对象;针对每一第二微服务,模拟与该第二微服务对应的目标对象,得到模拟后对象;根据调用关系、模拟后对象和所述测试任务描述建立所述应用程序的模拟架构。此方法下,实现了微服务架构的应用程序下对象的自动模拟,可以提高利用模拟进行测试的效率。
Description
技术领域
本发明涉及功能测试技术领域,特别涉及一种基于微服务的模拟架构建立方法、装置、介质及电子设备。
背景技术
随着软件工程技术的发展,软件趋向大型化、高复杂度,软件的质量越来越重要。Web应用是软件的一大类。为了评估某一Web应用软件的质量,需要对进行有针对性地进行测试。然而在测试过程中,完成测试必须依赖一定的对象,然而这些对象有可能是不容易构造或者不容易获取的对象,为此通过模拟(mock)测试建立虚拟对象来进行诸如单元测试等的各种测试。
在现有技术中,通常是使用mock工具,针对每一对象单独进行mock,然后加入到一个软件的所有代码中进行测试。
现有技术的缺陷在于,由于Web应用软件的复杂度越来越高,为此,现有的很多Web应用是采用微服务架构来实现的,每一微服务都有相应的人员来维护,然而每次进行测试常常需要多个微服务联动才能完成,在使用现有的mock工具在对微服务架构下的应用软件进行测试时,需要进行多方协调沟通,然后来确定哪一微服务的对象需要mock,这样就导致了测试效率低下。
发明内容
在功能测试技术领域,为了解决相关技术中存在的微服务架构下测试效率的技术问题,本发明提供了一种基于微服务的模拟架构建立方法、装置、介质及电子设备。
根据本申请的一方面,提供了一种基于微服务的模拟架构建立方法,所述方法包括:
建立基于微服务架构的应用程序,所述应用程序包括多个微服务,每一所述微服务包括至少一个对象;
获取所述应用程序中多个微服务之间的调用关系;
获取与所述应用程序中微服务对应的测试任务描述,其中,所述微服务为第一微服务;
基于所述调用关系以及所述测试任务描述,确定要模拟的对象以及要模拟的对象对应的微服务,其中,所述要模拟的对象对应的微服务为第二微服务,所述要模拟的对象为目标对象;
针对每一第二微服务,模拟与该第二微服务对应的目标对象,得到模拟后对象;
根据所述调用关系、所述模拟后对象以及所述测试任务描述建立所述应用程序的模拟架构。
根据本申请的另一方面,提供了一种基于微服务的模拟架构建立装置,所述装置包括:
应用程序建立模块,被配置为建立基于微服务架构的应用程序,所述应用程序包括多个微服务,每一所述微服务包括至少一个对象;
第一获取模块,被配置为获取所述应用程序中多个微服务之间的调用关系;
第二获取模块,被配置为获取与所述应用程序中微服务对应的测试任务描述,其中,所述微服务为第一微服务;
确定模块,被配置为基于所述调用关系以及所述测试任务描述,确定要模拟的对象以及要模拟的对象对应的微服务,其中,所述要模拟的对象对应的微服务为第二微服务,所述要模拟的对象为目标对象;
模拟模块,被配置为针对每一第二微服务,模拟与该第二微服务对应的目标对象,得到模拟后对象;
模拟架构建立模块,被配置为根据所述调用关系、所述模拟后对象以及所述测试任务描述建立所述应用程序的模拟架构。
根据本申请的另一方面,提供了一种计算机可读程序介质,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行如前所述的方法。
根据本申请的另一方面,提供了一种电子设备,所述电子设备包括:
处理器;
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如前所述的方法。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明所提供的基于微服务的模拟架构建立方法包括如下步骤:建立基于微服务架构的应用程序,所述应用程序包括多个微服务,每一所述微服务包括至少一个对象;获取所述应用程序中多个微服务之间的调用关系;获取与所述应用程序中微服务对应的测试任务描述,其中,所述微服务为第一微服务;基于所述调用关系以及所述测试任务描述,确定要模拟的对象以及要模拟的对象对应的微服务,其中,所述要模拟的对象对应的微服务为第二微服务,所述要模拟的对象为目标对象;针对每一第二微服务,模拟与该第二微服务对应的目标对象,得到模拟后对象;根据所述调用关系、所述模拟后对象以及所述测试任务描述建立所述应用程序的模拟架构。
此方法下,通过根据测试任务描述自动在微服务架构的应用程序中获得要模拟的对象,从而可以通过对这些对象进行模拟建立该应用程序的模拟架构,进而可以使用该模拟架构对应用程序进行测试,实现了微服务架构的应用程序下对象的自动模拟,可以提高利用模拟进行测试的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种基于微服务的模拟架构的示意图;
图2是根据一示例性实施例示出的一种基于微服务的模拟架构建立方法的流程图;
图3是根据图2对应实施例示出的一实施例的步骤210的细节的流程图;
图4是根据图2对应实施例示出的一实施例的步骤260的细节的流程图;
图5是根据图4对应实施例示出的一实施例的步骤264的细节的流程图;
图6是根据图5对应实施例示出的一实施例的步骤2645的细节的流程图;
图7是根据图2对应实施例示出的一实施例的步骤250之前步骤的流程图;
图8是根据一示例性实施例示出的一种基于微服务的模拟架构建立装置的框图;
图9是根据一示例性实施例示出的一种实现上述基于微服务的模拟架构建立方法的电子设备示例框图;
图10是根据一示例性实施例示出的一种实现上述基于微服务的模拟架构建立方法的计算机可读存储介质。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
本公开首先提供了一种基于微服务的模拟架构建立方法。微服务是基于业务将一个集成的应用或者系统分离成单独的松散耦合的组件的技术架构。模拟架构,即mock测试架构,是通过对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来代替,从而实现对应用进行测试的架构,所以基于微服务建立模拟架构是指,通过对基于微服务架构的应用程序中对象进行模拟,得到针对该微服务架构的应用程序的模拟测试架构。
本发明的实施终端可以是便携移动设备,例如智能手机、平板电脑、笔记本电脑等,也可以是固定式设备,例如,计算机设备、现场终端、台式电脑、服务器、工作站等。本发明的实施终端可以通过有线或者无线方式与服务器进行通信,其中可以包括硬件、软件或者固件的结合。
图1是根据一示例性实施例示出的一种基于微服务的模拟架构的示意图。如图1所示,包括:微服务110~130,对象140~160,对象140对应的模拟后对象140',其中,微服务110~130组成了基于微服务架构的应用,该应用可以是单独的软件,也可以是集成的软件系统。每一微服务可以包含至少一个对象,对象140~160的具体表现形式可以是多种多样的,比如可以是函数、类或者API(Application Programming Interface,应用程序编程接口),甚至还可以是一个单独的系统。每一微服务可以与其他微服务之间可以通过接口等轻量级通信机制进行数据的接收和/或发送。每一微服务接收的数据可以作为该微服务的输入,而每一微服务发送的数据可以作为该微服务的输出,其中,微服务的输入或者输出的发送方或者接收方可以是微服务中的对象,微服务发送或者接收的数据可以以参数的形式在微服务的对象中进行传递。在图1中,微服务130为基于微服务架构的应用中被测试的功能或者组件的测试数据出入口,即本次测试通过微服务130传入测试数据并获得对应的输出结果。在进行测试时,如果微服务110对于服务器130的测试者来说是不可控的,而如果进行测试需要调节微服务110中的对象140的参数或者对象140向微服务120中的对象150的输出的输出结果,则对象140为要模拟的对象,通过对对象140进行模拟得到模拟后对象140'。由于模拟后对象140'是可控的,通过控制调节模拟后对象140'就可以实现本次测试。当执行某一功能的微服务中的对象接收到某一微服务的对象发送的数据后,通过执行该对象以及调用与该对象有关的其他微服务中的对象,进行该数据在各个微服务的对象中的传递,从而使得该功能得以实现。本申请的发明人意识到,作为一个集成的基于微服务架构的应用,该应用中的各个微服务可能是由不同人或者团队进行开发的,因此,如果要对该基于微服务架构的应用中的某一组件或者功能进行测试,需要将所有该组件或者功能所依赖的微服务全部调用起来进行测试,一个人或者团队开发的微服务对于要进行微服务联动测试的其他个人或者团队往往是不可控的,在进行测试时协调起来十分困难,往往会导致测试效率低下,通过建立基于微服务的模拟架构,就能够实现对微服务架构的应用进行测试,可以提高测试效率。
图2是根据一示例性实施例示出的一种基于微服务的模拟架构建立方法的流程图。如图2所示,此方法包括以下步骤:
在步骤210中,建立基于微服务架构的应用程序。
所述应用程序包括多个微服务,每一所述微服务包括至少一个对象。
微服务架构是由多个单个小型的但有业务功能的微服务组成松散耦合的体系架构,这些微服务组织在一起,可以在宏观上实现该应用程序。
在一个实施例中,建立基于微服务架构的应用程序的步骤如图3所示。图3是根据图2对应实施例示出的一实施例的步骤210的细节的流程图。如图3所示,包括以下步骤:
步骤211,接收每一微服务发送的注册信息。
注册信息是指用于对微服务进行认证注册的信息。
在一个实施例中,注册信息包括:微服务所在主机IP地址和提供微服务的端口号,以及暴露服务自身状态以及访问协议等信息。
在一个实施例中,注册信息还包括:与每一微服务对应的其所依赖的微服务所属主机的IP地址。
在一个实施例中,本端为运行一个微服务的终端,本端可以接收包括本端在内的所有微服务发送的注册信息。
在一个实施例中,本端为所有运行微服务的终端之外的终端,通过本端可以接收每一微服务的终端发送的注册信息。
在一个实施例中,每一运行微服务的终端中通过容器、虚拟机等技术运行多个微服务。
步骤212,根据每一微服务的所述注册信息对所述微服务进行注册,得到注册后微服务。
在一个实施例中,根据每一微服务的所述注册信息对所述微服务进行注册,得到注册后微服务,包括:
判断所述微服务的注册信息是否合法;
在所述微服务的注册信息合法的情况下,对所述微服务进行注册,得到注册后微服务。
在一个实施例中,预设的微服务注册信息库预先存储有允许注册的合法的微服务的注册信息,所述判断所述微服务的注册信息是否合法,包括:判断所述微服务的注册信息是否存在于预设的微服务注册信息库中;如果是,判断所述微服务的注册信息合法;如果否,判断所述微服务的注册信息不合法。
在一个实施例中,在接收每一微服务发送的注册信息的同时,还接收了该微服务发送的注册信息的密文,所述判断所述微服务的注册信息是否合法,包括:解密每一微服务发送的注册信息的密文;根据解密结果判断所述微服务的注册信息是否合法。
在一个实施例中,每一微服务发送的注册信息的密文是利用该微服务的私钥加密的该微服务的注册信息的摘要,本端具有每一合法的微服务的公钥,所述解密每一微服务发送的注册信息的密文,包括:针对每一微服务发送的注册信息的密文,利用该微服务的公钥对所述密文进行解密,得到注册信息的第一摘要;所述根据解密结果判断所述微服务的注册信息是否合法,包括:利用摘要算法得到每一微服务发送的注册信息的的第二摘要;针对每一微服务的注册信息,判断针对该注册信息获得的第世纪佳缘一摘要与第二摘要是否一致;如果是,判断所述微服务的注册信息合法;如果否,判断所述微服务的注册信息不合法。本实施例的好处在于,由于公钥不需要维护,即使丢失也不会造成数据丢失,与前述实施例相比,降低了维护私钥的成本,提高了注册的安全性。
在一个实施例中,在所述微服务的注册信息合法的情况下,对所述微服务进行注册,得到注册后微服务,包括:
在所述微服务的注册信息合法的情况下,将所述微服务的注册信息标记为已注册,并将所述微服务的注册信息以及对应的标记对应存储至注册后微服务数据库中。
步骤213,获取来自注册后微服务的程序包。
程序包是包含类、方法、函数、元数据、资源文件等内容的文件。
在一个实施例中,所述程序包的格式为.jar。
在一个实施例中,只有注册后微服务才能向本端发送程序包,所述获取来自注册后微服务的程序包,包括:接收注册后微服务向本端发送的程序包。
在一个实施例中,每一微服务在发送注册信息的同时,向本端发送了程序包,所述获取来自注册后微服务的程序包,包括:在所有微服务的发送的程序包中获取注册后微服务的程序包。
步骤214,当满足预定条件,根据注册后微服务的所有注册信息,利用所述注册后微服务的程序包建立各注册后微服务的依赖关系,以建立基于微服务架构的应用程序。
在一个实施例中,预定条件是指,在预定时间内获取到了所有注册后微服务的程序包。
在一个实施例中,预定条件是指,获取的来自注册后微服务的程序包的数目大于或等于预定数目阈值。
在一个实施例中,所述注册信息包含每一微服务的标识,所述程序包中包含对应的微服务的标识,本端具有构成该应用程序的每一微服务的标识,所述预定条件为:获取到所有构成该应用程序的每一微服务的标识对应的程序包。
在一个实施例中,每一微服务的注册信息中包含在要建立的基于微服务架构的应用程序中所有与该微服务具有依赖关系的微服务以及各微服务与该微服务的调用关系,所述根据注册后微服务的所有注册信息,利用所述注册后微服务的程序包建立各注册后微服务的依赖关系,以建立基于微服务架构的应用程序,包括:
从各微服务的注册信息中获得各微服务的调用关系;按照各微服务的调用关系配置各注册后微服务的程序包,建立各注册后微服务的依赖关系,从而得到基于微服务架构的应用程序。
在步骤220中,获取所述应用程序中多个微服务之间的调用关系。
在一个实施例中,每一微服务具有一个标识,所述应用程序的每一微服务中具有一个配置项参数值,该配置项参数值记录了该配置项参数值所属的微服务的标识、调用该微服务的微服务的标识以及被该微服务调用的微服务的标识,所述获取所述应用程序中多个微服务之间的调用关系,包括:
获取所述应用程序中每一微服务的配置项参数值,所述配置项参数值包括配置项参数值所属的微服务的标识、调用该微服务的微服务的标识以及被该微服务调用的微服务的标识;
从获取的微服务的配置项参数值中选取任一微服务的配置项参数值,将该配置项参数值标记为已选取;
以该微服务的配置项参数值为基础,每次执行以下步骤,直至获取的所有微服务的配置项参数值被标记为已选取,从而得到所述应用程序中多个微服务之间的调用关系:
在所有没被标记为已选取的微服务的配置项参数值中获取以该标记为已选取的配置项参数值中的调用该微服务的微服务的标识作为被该微服务调用的微服务的标识的微服务的配置项参数值并将该配置项参数值标记为已选取;
在所有没被标记为已选取的微服务的配置项参数值中获取以该标记为已选取的配置项参数值中的被该微服务调用的微服务的标识作为调用该微服务的微服务的标识的微服务的配置项参数值并将该配置项参数值标记为已选取。
在步骤250中,获取与所述应用程序中微服务对应的测试任务描述。
其中,所述微服务为第一微服务。
第一微服务即有对应的测试任务描述的微服务,一般为直接测试的微服务,在一些情况下,还可以为用于输出测试结果的微服务,通过调用该微服务可以间接地输出测试结果。
在一个实施例中,所述应用程序中的微服务向本端发送测试请求,该测试请求中携带有微服务的标识以及所述测试任务描述,本端通过接收所述测试请求,获取与所述应用程序中微服务对应的测试任务描述。
在一个实施例中,事先建立有测试任务描述与时间对应关系表,按照该对应关系表,在相应时间执行与测试任务描述对应的测试任务,所述获取与所述应用程序中微服务对应的测试任务描述,包括:
从所述测试任务描述与时间对应关系表中获取与当前时间对应的测试任务描述。
在步骤260中,基于所述调用关系以及所述测试任务描述,确定要模拟的对象以及要模拟的对象对应的微服务。
其中,所述要模拟的对象对应的微服务为第二微服务,所述要模拟的对象为目标对象。
第二微服务即包含了要模拟的对象的微服务,而要模拟的对象即测试微服务时所依赖的但不容易构造或者不容易获取的对象。
所以,第一微服务和第二微服务是不同的微服务,但都是基于微服务架构的应用程序中的微服务,两者的不同之处在于:第一微服务是与测试任务直接相关的微服务,第一微服务中包含的对象是可以获得的;而第二微服务是在执行测试任务时间接依赖的微服务,没有第二微服务测试任务无法完成,但第二微服务中包含的对象是不容易构造或者不容易获取的。
在一个实施例中,基于所述调用关系以及所述测试任务描述,确定要模拟的对象以及要模拟的对象对应的微服务,包括:提取所述测试任务描述的关键词;在预设的关键词与候选模拟对象对应关系表中获取与所述关键词对应的候选模拟对象;在属于与所述第一微服务有调用关系的微服务的候选模拟对象对应的微服务中获取具有所述候选模拟对象最多的微服务,作为要模拟的对象对应的微服务,将属于所述要模拟的对象对应的微服务的候选模拟对象,作为要模拟的对象。
在步骤270中,针对每一第二微服务,模拟与该第二微服务对应的目标对象,得到模拟后对象。
在一个实施例中,通过利用自定义类加载器或者字节码的方式模拟与该第二微服务对应的目标对象。
在步骤280中,根据所述调用关系、所述模拟后对象以及所述测试任务描述建立所述应用程序的模拟架构。
在一个实施例中,所述根据所述调用关系、所述模拟后对象以及所述测试任务描述建立所述应用程序的模拟架构,包括:获取与所述测试任务描述对应的微服务;将获取的微服务中的模拟后对象对应的目标对象替换为对应的模拟后对象;按照所述调用关系建立所述模拟后对象与所述获取的微服务的调用关系,得到所述应用程序的模拟架构。
在一个实施例中,所述获取与所述测试任务描述对应的微服务,包括:获取所述测试任务描述的至少一个关键词;在预设的关键词与微服务对应关系表中,获取同时与所述测试任务描述的所有关键词对应的微服务,作为与所述测试任务描述对应的微服务,其中,在所述关键词与微服务对应关系表中,同一微服务与至少一个关键词对应。
综上所述,根据图2所示出的基于微服务的模拟架构建立方法,实现了微服务架构下对象的自动模拟,可以提高测试效率。
在一个实施例中,如图4所示,所述应用程序还包括各微服务的第一描述以及各微服务包括的对象的第二描述。图4是根据图2对应实施例示出的一实施例的步骤260的细节的流程图。如图4所示,包括以下步骤:
步骤261,获取与所述第一微服务有调用关系的微服务,作为关联微服务。
在一个实施例中,该方法包括:获取与所述第一微服务有直接调用关系的微服务,作为第一关联微服务,其中,所述与所述第一微服务有直接调用关系的微服务为调用所述第一微服务或者被所述第一微服务调用的微服务;在没获取过的微服务中获取与所述第一关联微服务有直接调用关系的微服务,作为第二关联微服务,以此类推,直至不能再获得与已获得的关联微服务有直接调用关系的微服务。
步骤262,获取所述关联微服务的第一描述以及各关联微服务包括的对象的第二描述。
步骤263,针对每一关联微服务,提取该关联微服务的第一描述的关键词,作为第一关键词,提取该关联微服务包括的对象的第二描述的关键词,作为第二关键词。
在一个实施例中,该方法包括:针对每一关联微服务,将该关联微服务的第一描述中存在于预设的关键词库中的词,作为第一关键词,将该关联微服务包括的对象的第二描述中存在于预设的关键词库中的词,作为第二关键词。
步骤264,基于所述第一关键词、所述第二关键词以及所述测试任务描述确定要模拟的对象以及要模拟的对象对应的微服务。
在一个实施例中,该方法如图5所示,图5是根据图4对应实施例示出的一实施例的步骤264的细节的流程图,如图5所示,包括以下步骤:
步骤2641,针对每一微服务,在该微服务的第一描述的所有第一关键词中获取存在于所述测试任务描述的第一关键词。
步骤2642,确定获取的每一第一关键词在该第一关键词所属的微服务的第一描述中的数目,作为第一数目。
在一个实施例中,本公开的实施终端中内设有计数器,通过该计数器可以获得每一第一关键词在该第一关键词所属的微服务的第一描述中的数目。
步骤2643,根据所述第一数目确定至少一个待定微服务。
在一个实施例中,所述根据所述第一数目确定至少一个待定微服务,包括:
针对每一微服务,获取该微服务对应的各第一关键词的第一数目之和;
将所述和大于预定和阈值的微服务作为待定微服务。
步骤2644,获取所述待定微服务对应的第二关键词。
步骤2645,基于所述第一数目、所述第二关键词以及所述测试任务描述从所述待定微服务中确定出要模拟的对象以及要模拟的对象对应的微服务。
在一个实施例中,该方法如图6所示,图6是根据图5对应实施例示出的一实施例的步骤2645的细节的流程图。如图6所示,包括以下步骤:
步骤26451,针对每一待定微服务所包括的每一对象,在该对象的第二描述的第二关键词中获取存在于所述测试任务描述的第二关键词。
如果一个对象的第二描述中有第二关键词存在于所述测试任务描述中,说明该对象与所述测试任务描述有一定的关联。
步骤26452,确定获取的每一第二关键词在该第二关键词所属的对象的第二描述中的数目,作为第二数目。
在一个实施例中,本公开的实施终端中内设有计数器,通过该计数器可以获得每一第二关键词在该第二关键词所属的对象的第二描述中的数目。
步骤26453,基于所述第一数目和所述第二数目从所述待定微服务中确定要模拟的对象以及要模拟的对象对应的微服务。
在一个实施例中,所述基于所述第一数目和所述第二数目从所述待定微服务中确定要模拟的对象以及要模拟的对象对应的微服务,包括:
分别获取第一数目和第二数目的权重;
针对每一待定微服务,在该待定微服务的对象的第二描述对应的第二数目中,获取最大的第二数目;
针对每一待定微服务,基于所述权重确定该待定微服务的所述第二数目和所述最大的第二数目的加权和;
将加权和大于预定加权和阈值的待定微服务作为要模拟的对象对应的微服务;
在要模拟的对象对应的微服务中,获取对应的第二数目大于预定第二数目阈值的对象作为要模拟的对象。
本实施例的好处在于,通过结合第一数目和第二数目两方面因素来获取要模拟的对象以及要模拟的对象对应的微服务,提高了获取要模拟的对象以及要模拟的对象对应的微服务的准确率,从而可以提高测试效率以及准确率。
图7是根据图2对应实施例示出的一实施例的步骤250之前步骤的流程图。在图7所示出的实施例中,当所述应用程序中的微服务进行了更新时,所述应用程序会生成更新记录,如图7所示,包括以下步骤:
步骤230,监听所述应用程序中多个微服务的更新记录。
在一个实施例中,通过listen()等函数可以进行微服务的更新记录的监听。
在一个实施例中,所述应用程序中的微服务在发生更新时,会向本端发送提醒信息。
步骤240,响应于监听到所述应用程序生成更新记录,向生成所述更新记录的微服务的用户展示用于输入测试任务描述的页面,以便所述用户通过该页面提交测试任务描述。
其中,获取所述应用程序中微服务的测试任务描述是在所述用户通过该页面提交了测试任务描述的情况下进行的。
向用户展示的用于输入测试任务描述的页面可以是各种类型的页面,比如可以是Web页面,Html5页面,小程序页面等;对应地,所述用户通过该页面提交测试任务描述的方式可以是通过表单的方式提交。
本公开还提供了一种基于微服务的模拟架构建立装置,以下是本发明的装置实施例。
图8是根据一示例性实施例示出的一种基于微服务的模拟架构建立装置的框图。如图8所示,装置800包括:
应用程序建立模块810,被配置为建立基于微服务架构的应用程序,所述应用程序包括多个微服务,每一所述微服务包括至少一个对象;
第一获取模块820,被配置为获取所述应用程序中多个微服务之间的调用关系;
第二获取模块830,被配置为获取与所述应用程序中微服务对应的测试任务描述,其中,所述微服务为第一微服务;
确定模块840,被配置为基于所述调用关系以及所述测试任务描述,确定要模拟的对象以及要模拟的对象对应的微服务,其中,所述要模拟的对象对应的微服务为第二微服务,所述要模拟的对象为目标对象;
模拟模块850,被配置为针对每一第二微服务,模拟与该第二微服务对应的目标对象,得到模拟后对象;
模拟架构建立模块860,被配置为根据所述调用关系、所述模拟后对象以及所述测试任务描述建立所述应用程序的模拟架构。
据本公开的第三方面,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图9来描述根据本发明的这种实施方式的电子设备900。图9显示的电子设备900仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同系统组件(包括存储单920和处理单元910)的总线930。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元910执行,使得所述处理单元910执行本说明书上述“实施例方法”部分中描述的根据本发明各种示例性实施方式的步骤。
存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)921和/或高速缓存存储单元922,还可以进一步包括只读存储单元(ROM)923。
存储单元920还可以包括具有一组(至少一个)程序模块925的程序/实用工具924,这样的程序模块925包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线930可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备900也可以与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备900交互的设备通信,和/或与使得该电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1150进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
根据本公开的第四方面,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图10所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品1000,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种基于微服务的模拟架构建立方法,其特征在于,所述方法包括:
建立基于微服务架构的应用程序,所述应用程序包括多个微服务,每一所述微服务包括至少一个对象;
获取所述应用程序中多个微服务之间的调用关系;
获取与所述应用程序中微服务对应的测试任务描述,其中,所述微服务为第一微服务;
基于所述调用关系以及所述测试任务描述,确定要模拟的对象以及要模拟的对象对应的微服务,其中,所述要模拟的对象对应的微服务为第二微服务,所述要模拟的对象为目标对象;
针对每一第二微服务,模拟与该第二微服务对应的目标对象,得到模拟后对象;
根据所述调用关系、所述模拟后对象以及所述测试任务描述建立所述应用程序的模拟架构。
2.根据权利要求1所述的方法,其特征在于,所述建立基于微服务架构的应用程序,包括:
接收每一微服务发送的注册信息;
根据每一微服务的所述注册信息对所述微服务进行注册,得到注册后微服务;
获取来自注册后微服务的程序包;
当满足预定条件,根据注册后微服务的所有注册信息,利用所述注册后微服务的程序包建立各注册后微服务的依赖关系,以建立基于微服务架构的应用程序。
3.根据权利要求1所述的方法,其特征在于,所述应用程序还包括各微服务的第一描述以及各微服务包括的对象的第二描述,所述基于所述调用关系以及所述测试任务描述,确定要模拟的对象以及要模拟的对象对应的微服务,包括:
获取与所述第一微服务有调用关系的微服务,作为关联微服务;
获取所述关联微服务的第一描述以及各关联微服务包括的对象的第二描述;
针对每一关联微服务,提取该关联微服务的第一描述的关键词,作为第一关键词,提取该关联微服务包括的对象的第二描述的关键词,作为第二关键词;
基于所述第一关键词、所述第二关键词以及所述测试任务描述确定要模拟的对象以及要模拟的对象对应的微服务。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一关键词、所述第二关键词以及所述测试任务描述确定要模拟的对象以及要模拟的对象对应的微服务,包括:
针对每一微服务,在该微服务的第一描述的所有第一关键词中获取存在于所述测试任务描述的第一关键词;
确定获取的每一第一关键词在该第一关键词所属的微服务的第一描述中的数目,作为第一数目;
根据所述第一数目确定至少一个待定微服务;
获取所述待定微服务对应的第二关键词;
基于所述第一数目、所述第二关键词以及所述测试任务描述从所述待定微服务中确定出要模拟的对象以及要模拟的对象对应的微服务。
5.根据权利要求4所述的方法,其特征在于,所述基于所述第一数目和所述第二关键词从所述待定微服务中确定要模拟的对象以及要模拟的对象对应的微服务,包括:
针对每一待定微服务所包括的每一对象,在该对象的第二描述的第二关键词中获取存在于所述测试任务描述的第二关键词;
确定获取的每一第二关键词在该第二关键词所属的对象的第二描述中的数目,作为第二数目;
基于所述第一数目和所述第二数目从所述待定微服务中确定要模拟的对象以及要模拟的对象对应的微服务。
6.根据权利要求5所述的方法,其特征在于,所述基于所述第一数目和所述第二数目从所述待定微服务中确定要模拟的对象以及要模拟的对象对应的微服务,包括:
分别获取第一数目和第二数目的权重;
针对每一待定微服务,在该待定微服务的对象的第二描述对应的第二数目中,获取最大的第二数目;
针对每一待定微服务,基于所述权重确定该待定微服务的所述第二数目和所述最大的第二数目的加权和;
将加权和大于预定加权和阈值的待定微服务作为要模拟的对象对应的微服务;
在要模拟的对象对应的微服务中,获取对应的第二数目大于预定第二数目阈值的对象作为要模拟的对象。
7.根据权利要求1所述的方法,其特征在于,当所述应用程序中的微服务进行了更新时,所述应用程序会生成更新记录,在获取所述应用程序中微服务的测试任务描述之前,所述方法包括:
监听所述应用程序中多个微服务的更新记录;
响应于监听到所述应用程序生成更新记录,向生成所述更新记录的微服务的用户展示用于输入测试任务描述的页面,以便所述用户通过该页面提交测试任务描述,其中,获取所述应用程序中微服务的测试任务描述是在所述用户通过该页面提交了测试任务描述的情况下进行的。
8.一种基于微服务的模拟架构建立装置,其特征在于,所述装置包括:
应用程序建立模块,被配置为建立基于微服务架构的应用程序,所述应用程序包括多个微服务,每一所述微服务包括至少一个对象;
第一获取模块,被配置为获取所述应用程序中多个微服务之间的调用关系;
第二获取模块,被配置为获取与所述应用程序中微服务对应的测试任务描述,其中,所述微服务为第一微服务;
确定模块,被配置为基于所述调用关系以及所述测试任务描述,确定要模拟的对象以及要模拟的对象对应的微服务,其中,所述要模拟的对象对应的微服务为第二微服务,所述要模拟的对象为目标对象;
模拟模块,被配置为针对每一第二微服务,模拟与该第二微服务对应的目标对象,得到模拟后对象;
模拟架构建立模块,被配置为根据所述调用关系、所述模拟后对象以及所述测试任务描述建立所述应用程序的模拟架构。
9.一种计算机可读程序介质,其特征在于,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行根据权利要求1至7中任一项所述的方法。
10.一种电子设备,其特征在于,所述电子设备包括:
处理器;
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910817277.6A CN110659206A (zh) | 2019-08-30 | 2019-08-30 | 基于微服务的模拟架构建立方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910817277.6A CN110659206A (zh) | 2019-08-30 | 2019-08-30 | 基于微服务的模拟架构建立方法、装置、介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110659206A true CN110659206A (zh) | 2020-01-07 |
Family
ID=69036625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910817277.6A Pending CN110659206A (zh) | 2019-08-30 | 2019-08-30 | 基于微服务的模拟架构建立方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110659206A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111274150A (zh) * | 2020-02-07 | 2020-06-12 | 北京字节跳动网络技术有限公司 | 服务实例访问方法、装置和电子设备 |
CN111338618A (zh) * | 2020-02-17 | 2020-06-26 | 福州大学 | 应用场景驱动的Android应用微服务自动生成方法 |
CN111506505A (zh) * | 2020-04-13 | 2020-08-07 | 北京奇艺世纪科技有限公司 | 一种测试用例获取方法及装置 |
CN112463634A (zh) * | 2020-12-11 | 2021-03-09 | 中国人民银行清算总中心 | 微服务架构下的软件测试方法及装置 |
CN112685012A (zh) * | 2020-12-23 | 2021-04-20 | 平安普惠企业管理有限公司 | 基于区块链的微服务架构实现方法、装置、设备及介质 |
CN113360361A (zh) * | 2021-08-11 | 2021-09-07 | 云智慧(北京)科技有限公司 | 一种分布式运维模拟系统的构建方法、装置及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108427644A (zh) * | 2018-03-27 | 2018-08-21 | 深圳市买买提信息科技有限公司 | 服务测试方法、服务测试系统及服务测试装置 |
CN109784503A (zh) * | 2018-12-13 | 2019-05-21 | 平安普惠企业管理有限公司 | 业务运维方法、装置、设备及可读存储介质 |
CN110096437A (zh) * | 2019-04-12 | 2019-08-06 | 平安普惠企业管理有限公司 | 微服务架构的测试方法及相关产品 |
-
2019
- 2019-08-30 CN CN201910817277.6A patent/CN110659206A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108427644A (zh) * | 2018-03-27 | 2018-08-21 | 深圳市买买提信息科技有限公司 | 服务测试方法、服务测试系统及服务测试装置 |
CN109784503A (zh) * | 2018-12-13 | 2019-05-21 | 平安普惠企业管理有限公司 | 业务运维方法、装置、设备及可读存储介质 |
CN110096437A (zh) * | 2019-04-12 | 2019-08-06 | 平安普惠企业管理有限公司 | 微服务架构的测试方法及相关产品 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111274150A (zh) * | 2020-02-07 | 2020-06-12 | 北京字节跳动网络技术有限公司 | 服务实例访问方法、装置和电子设备 |
CN111274150B (zh) * | 2020-02-07 | 2023-08-22 | 北京字节跳动网络技术有限公司 | 服务实例访问方法、装置和电子设备 |
CN111338618A (zh) * | 2020-02-17 | 2020-06-26 | 福州大学 | 应用场景驱动的Android应用微服务自动生成方法 |
CN111338618B (zh) * | 2020-02-17 | 2021-09-24 | 福州大学 | 应用场景驱动的Android应用微服务自动生成方法 |
CN111506505A (zh) * | 2020-04-13 | 2020-08-07 | 北京奇艺世纪科技有限公司 | 一种测试用例获取方法及装置 |
CN112463634A (zh) * | 2020-12-11 | 2021-03-09 | 中国人民银行清算总中心 | 微服务架构下的软件测试方法及装置 |
CN112463634B (zh) * | 2020-12-11 | 2024-03-29 | 中国人民银行清算总中心 | 微服务架构下的软件测试方法及装置 |
CN112685012A (zh) * | 2020-12-23 | 2021-04-20 | 平安普惠企业管理有限公司 | 基于区块链的微服务架构实现方法、装置、设备及介质 |
CN113360361A (zh) * | 2021-08-11 | 2021-09-07 | 云智慧(北京)科技有限公司 | 一种分布式运维模拟系统的构建方法、装置及设备 |
CN113360361B (zh) * | 2021-08-11 | 2021-11-23 | 云智慧(北京)科技有限公司 | 一种分布式运维模拟系统的构建方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110659206A (zh) | 基于微服务的模拟架构建立方法、装置、介质及电子设备 | |
US8660833B2 (en) | Method, computer program product and apparatus for providing an interactive network simulator | |
US9665465B1 (en) | Automated determination of application permissions | |
US9280665B2 (en) | Fast and accurate identification of message-based API calls in application binaries | |
CN113268336B (zh) | 一种服务的获取方法、装置、设备以及可读介质 | |
CN108111364B (zh) | 一种业务系统的测试方法及装置 | |
US11244153B2 (en) | Method and apparatus for processing information | |
CN107634947A (zh) | 限制恶意登录或注册的方法和装置 | |
CN111488995A (zh) | 用于评估联合训练模型的方法和装置 | |
CN112328486A (zh) | 接口自动化测试方法、装置、计算机设备及存储介质 | |
CN107368407B (zh) | 信息处理方法和装置 | |
CN111046393B (zh) | 漏洞信息上传方法、装置、终端设备及存储介质 | |
CN113434254A (zh) | 客户端部署方法、装置、计算机设备及存储介质 | |
WO2021151314A1 (zh) | Dns自动化性能测试方法、装置、设备及可读存储介质 | |
WO2023151397A1 (zh) | 应用程序部署方法、装置、设备及介质 | |
CN114640614B (zh) | Rpc接口自动化测试方法、系统、电子设备、介质及产品 | |
CN111865726B (zh) | 业务消息测试方法、装置、计算机系统和存储介质 | |
CN111859985B (zh) | Ai客服模型测试方法、装置、电子设备及存储介质 | |
CN111488286B (zh) | 一种Android模块独立开发的方法及装置 | |
US11573808B2 (en) | Methods of providing an integrated interface that includes a virtual mobile device | |
CN114037523A (zh) | 函证业务测试方法、装置、设备、介质及程序产品 | |
CN113495498A (zh) | 用于硬件设备的模拟方法、模拟器、设备和介质 | |
US11563576B2 (en) | Distributed anonymous scoring technique | |
CN112579428A (zh) | 接口测试的方法、装置、电子设备和存储介质 | |
CN112100534A (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 |