一种测试用例获取方法及装置与流程

文档序号:21778891发布日期:2020-08-07 19:52阅读:140来源:国知局
一种测试用例获取方法及装置与流程

本发明涉及信息技术领域,特别是涉及一种测试用例获取方法及装置。



背景技术:

目前,在核实所开发的软件产品是否满足某个特定需求时,都会通过编制一组测试输入、执行条件以及预期结果作为测试用例。通过测试用例可以避免盲目测试,提高测试效果,减少软件产品的功能漏测。

传统的软件产品服务架构通常采用单体式服务架构,但是随着人们的需求不断提高,要求一个软件产品所提供的服务越来越多,单体式服务架构已无法满足这种需求。

为了应对上述需求,微服务架构应运而生。微服务架构将一个复杂的软件产品拆分成多个独立自治的服务,服务与服务间通过松耦合的形式交互。由此可见,服务和服务间的依赖关系复杂,因此,在对微服务架构的软件产品进行测试时,不仅需要针对各服务分别设置测试用例,还需要针对各服务间的调用关系和依赖关系设置测试用例,导致生成测试用例的成本较高。



技术实现要素:

本发明实施例的目的在于提供一种测试用例获取方法及装置,以实现测试用例的自动获取,从而降低测试用例的生成成本。具体技术方案如下:

第一方面,本发明实施例提供了一种测试用例获取方法,该方法包括:

利用探针服务,获取各服务之间的数据信息,其中,数据信息用于反映微服务架构下的整体服务和/或局部服务之间的依赖关系;

根据获取到的数据信息,将属于整体服务和/或局部服务的数据对象分别进行数据抽象,得到抽象后的各类数据对象;

根据抽象后的各类数据对象,生成微服务架构下的测试用例。

可选的,利用探针服务,获取各服务之间的数据信息,包括:

利用探针服务,获取任一服务对另一服务进行调用时的调用链路;

或,

利用探针服务,获取任一服务与另一服务的部分功能进行调用时的调用链路;

或,

利用探针服务,获取任一服务的部分功能对另一服务的部分功能进行调用时的调用链路。

可选的,在根据获取到的数据信息,将属于整体服务和/或局部服务的数据对象分别进行数据抽象,得到抽象后的各类数据对象之后,上述方法还包括:

分别对抽象后的各类数据对象进行可视化展示。

可选的,根据抽象后的各类数据对象,生成微服务架构下的测试用例,包括:

针对抽象后的不同类型的数据对象,根据目标测试服务对不同类型的数据对象进行配置,得到针对目标测试服务的测试用例。

可选的,在针对抽象后的不同类型的数据对象,根据目标测试服务对不同类型的数据对象进行配置,得到针对目标测试服务的测试用例之后,上述方法还包括:

根据不同的目标测试服务对不同类型的数据对象进行配置,得到针对微服务架构下所有服务的测试用例。

第二方面,本发明实施例提供了一种测试用例获取装置,包括:

信息获取模块,用于利用探针服务,获取各服务之间的数据信息,其中,数据信息用于反映微服务架构下的整体服务和/或局部服务之间的依赖关系;

信息抽象模块,用于根据获取到的数据信息,将属于整体服务和/或局部服务的数据对象分别进行数据抽象,得到抽象后的各类数据对象;

用例生成模块,用于根据抽象后的各类数据对象,生成微服务架构下的测试用例。

可选的,信息获取模块,包括:

信息获取子模块,用于利用探针服务,获取任一服务对另一服务进行调用时的调用链路;

或,

利用探针服务,获取任一服务与另一服务的部分功能进行调用时的调用链路;

或,

利用探针服务,获取任一服务的部分功能对另一服务的部分功能进行调用时的调用链路。

可选的,上述装置还包括:

可视化模块,用于分别对抽象后的各类数据对象进行可视化展示。

可选的,信息抽象模块,包括:

对象配置子模块,用于针对抽象后的不同类型的数据对象,根据目标测试服务对不同类型的数据对象进行配置,得到针对目标测试服务的测试用例。

可选的,上述装置还包括:

全部用例子模块,用于根据不同的目标测试服务对不同类型的数据对象进行配置,得到针对微服务架构下所有服务的测试用例。

第三方面,本发明实施例提供了一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一测试用例获取方法。

第四方面,本发明实施还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一测试用例获取方法。

第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一测试用例获取方法。

本发明实施例提供的一种测试用例获取方法及装置,利用探针服务,获取各服务之间的数据信息,其中,数据信息用于反映微服务架构下的整体服务和/或局部服务之间的依赖关系;根据获取到的数据信息,将属于整体服务和/或局部服务的数据对象分别进行数据抽象,得到抽象后的各类数据对象;根据抽象后的各类数据对象,生成微服务架构下的测试用例。从而实现通过获取微服务架构下的各服务之间的数据信息,经分析和配置得到测试用例,达到测试用例的自动生成,减少人员操作,降低测试用例的生成成本。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的一种测试用例获取方法的一种流程图;

图2为本发明实施例的一种测试用例获取方法的一种实例图;

图3为本发明实施例的一种数据信息获取方法流程图;

图4为本发明实施例的可视化展示的流程图;

图5为本发明实施例的数据对象进行配置的流程图;

图6为本发明实施例的所有服务的测试用例生成的流程图;

图7为本发明实施例的一种测试用例获取装置的第一种示意图;

图8为本发明实施例的一种测试用例获取装置的第二种示意图;

图9为本发明实施例的一种测试用例获取装置的第三种示意图;

图10为本发明实施例的一种测试用例获取装置的第四种示意图;

图11为本发明实施例的一种测试用例获取装置的第五种示意图;

图12为本发明实施例的一种电子设备的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了降低测试用例的生成成本,本发明实施例提供了一种测试用例获取方法及装置。

在本发明实施的第一方面,首先提供了一种测试用例获取方法,包括:

利用探针服务,获取各服务之间的数据信息,其中,数据信息用于反映微服务架构下的整体服务和/或局部服务之间的依赖关系;

根据获取到的数据信息,将属于整体服务和/或局部服务的数据对象分别进行数据抽象,得到抽象后的各类数据对象;

根据抽象后的各类数据对象,生成微服务架构下的测试用例。

可见,通过本发明实施例提供的一种测试用例获取方法,可以通过获取微服务架构下的各服务之间的数据信息,经分析和配置得到测试用例,达到测试用例的自动生成,减少人员操作,降低测试用例的生成成本。

参见图1,图1为本发明的一种测试用例获取方法的一种流程图,该方法可以包括以下步骤:

步骤s11,利用探针服务,获取各服务之间的数据信息。

其中,数据信息用于反映微服务架构下的整体服务和/或局部服务之间的依赖关系。其中,微服务架构为一种架构概念,通过微服务架构可以将整体的功能分解到多个离散的服务中,将大型的单个软件产品和服务拆分为数个微服务。

其中,利用探针服务,获取各服务之间的数据信息,可以通过任一现有技术的探针服务实现。例如,通过入侵式探针对微服务架构进行配置,并将入侵式探针和微服务一起部署至测试环境,在探针服务配置开启时,任何对微服务整体或者局部的服务调用,都会通过探针进行反馈。

本发明实施例的测试用例获取方法针对的是运行有微服务架构的智能终端设备,因此可以通过智能终端设备执行,具体的,该智能终端设备可以为电脑或服务器等。

步骤s12,根据获取到的数据信息,将属于整体服务和/或局部服务的数据对象分别进行数据抽象,得到抽象后的各类数据对象。

其中,根据获取到的数据信息,将属于整体服务和/或局部服务的数据对象分别进行数据抽象,可以将探针服务获取到的数据信息分别进行数据抽象。例如,通过利用探针服务,获取各服务之间的数据信息后,通过自动化框架后端根据探针服务提供的数据信息,实现数据对象的抽象,例如,接口、表结构、消息体、缓存等的数据抽象。

其中,通过自动化框架后端对服务间的调用信息进行抽象,该后端可以是独立的设备也可以是虚拟后端,例如一个软件产品。通过自动化框架后端根据探针提供的服务间的调用信息,实现数据对象的抽象。如,通过预设探针将上述微服务架构下的两个服务间的调用信息反馈至后端服务器中某一软件产品,通过该软件产品对所得到的调用信息进行抽象,得到微服务的接口、表结构、消息体、缓存等的关系模型,该关系模型可以反映微服务间的调用关系。

例如,参见图2,微服务a作为后端服务的最上游,调用了微服务b的接口,而微服务b的接口数据来自于对缓存的逻辑处理,而缓存中的数据来源于数据库表中的数据,数据库表中的数据,又来源于和微服务c提供的消息队列中的消息处理。当对微服务a提供的接口进行调用时,探针将各层的数据流反馈至自动化框架后端,自动化框架后端根据被测对象的代码,自动抽象生成各类数据对象,例如接口、缓存、数据表、消息体等。

步骤s13,根据抽象后的各类数据对象,生成微服务架构下的测试用例。

其中,根据抽象后的各类数据对象,生成微服务架构下的测试用例,可以将各类数据对象封装成类,并根据服务间调用的数据对象,配置得到测试用例。如,根据上述服务间调用的数据对象,通过配置测试环境、测试数据,测试用例和测试用例集,断言配置等,得到微服务的测试用例。例如,微服务b的接口自动化测试用例,或配置微服务的mock(虚拟系统),例如微服务a调用微服务b,将微服务b的服务接口mock配置为一个测试用例。

其中,根据抽象后的各类数据对象,生成微服务架构下的测试用例。可以为根据服务间调用的各类数据对象自动组合成测试用例,即通过黑盒测试手段,拿到被测系统的逻辑关系和自动化回归用例。

可见,通过本发明实施例提供的一种测试用例获取方法,可以通过获取微服务架构下的各服务之间的数据信息,经分析和配置得到测试用例,达到测试用例的自动生成,减少人员操作,降低测试用例的生成成本。

可选的,参见图3,步骤s11利用探针服务,获取各服务之间的数据信息,包括:

s111,利用探针服务,获取任一服务对另一服务进行调用时的调用链路;

或,

利用探针服务,获取任一服务与另一服务的部分功能进行调用时的调用链路;

或,

利用探针服务,获取任一服务的部分功能对另一服务的部分功能进行调用时的调用链路。

其中,例如,参见图2,微服务b可以包括微服务b的缓存,微服务b的数据库,当其他微服务对微服务b进行调用时,可以调用微服务b,也可以只调用微服务b的部分功能,如,微服务b的缓存或数据库。因此,利用探针服务,获取各服务之间的数据信息,可以包括:利用探针服务,获取任一服务对另一服务进行调用时的调用链路;或,利用探针服务,获取任一服务与另一服务的部分功能进行调用时的调用链路;或,利用探针服务,获取任一服务的部分功能对另一服务的部分功能进行调用时的调用链路。

通过获取各服务之间的整体服务或部分功能数据信息,可以根据不同类型的测试任务获取不同的数据信息,从而可以根据测试任务的不同,减少生成测试用例时所需获取的调用信息,提高生成测试用例的效率。

可选的,参见图4,在步骤s12根据获取到的数据信息,将属于整体服务和/或局部服务的数据对象分别进行数据抽象,得到抽象后的各类数据对象之后,上述方法还包括:

步骤s14,分别对抽象后的各类数据对象进行可视化展示。

其中,分别对抽象后的各类数据对象进行可视化展示,可以通过自动化框架后端根据获取到的数据信息,将属于整体服务和/或局部服务的数据对象分别进行数据抽象后,将抽象后的数据对象发送到自动化框架前端进行展示。例如,将探针服务获取的数据流链路,展示在自动化框架前端的界面上。

其中,分别对抽象后的各类数据对象进行可视化展示,可以将数据对象和示例化的数据体分开展示,例如,表结构数据对象类和表数据,缓存对象对所述类和缓存,接口类和接口示例等,分别进行展示。

通过分别对抽象后的各类数据对象进行可视化展示,可以便于维护人员清晰得看到各个微服务之间的调用和依赖关系,了解服务内部的业务逻辑等,从而便于排查和发现代码中的bug(漏洞),并且在做测试用例配置时,具有更直观的参考,可以方便用户对抽象后的各类数据对象进行配置,生成测试用例。

可选的,参见图5,步骤s13根据抽象后的各类数据对象,生成微服务架构下的测试用例,包括:

步骤s15,针对抽象后的不同类型的数据对象,根据目标测试服务对不同类型的数据对象进行配置,得到针对目标测试服务的测试用例。

其中,根据目标测试服务对不同类型的数据对象进行配置,可以包括域名配置,数据驱动配置(选择数据对象由自动化代码实现或初始化配置实现),参数配置,接口mock配置等。

例如,通过自动化框架后端进行数据抽象后,将抽象后的各类数据对象发送到前端进行展示,通过前端提供各类配置选择,选择配置测试环境、测试数据,测试用例和测试用例集,断言配置等。其中,通过根据目标测试服务对不同类型的数据对象进行配置,还可以实现配置是否进行数据清理等,以及选择数据对象及函数体配置数据清理逻辑等。

通过根据目标测试服务对不同类型的数据对象进行配置,可以实现端到端的集成测试用例,契约测试用例等各类层面的测试用例的生成。

可选的,参见图6,步骤s15在针对抽象后的不同类型的数据对象,根据目标测试服务对不同类型的数据对象进行配置,得到针对目标测试服务的测试用例之后,上述方法还包括:

步骤s16,根据不同的目标测试服务对不同类型的数据对象进行配置,得到针对微服务架构下所有服务的测试用例。

通过根据不同的目标测试服务对不同类型的数据对象进行配置,得到针对微服务架构下所有服务的测试用例,从而实现一次操作就可以实现微服务架构下所有服务的测试用例的生成,便于维护人员进行维护和测试等。

参见图7,图7为本发明实施例的一种测试用例获取装置的一种示意图,包括:

信息获取模块701,用于利用探针服务,获取各服务之间的数据信息,其中,数据信息用于反映微服务架构下的整体服务和/或局部服务之间的依赖关系;

信息抽象模块702,用于根据获取到的数据信息,将属于整体服务和/或局部服务的数据对象分别进行数据抽象,得到抽象后的各类数据对象;

用例生成模块703,用于根据抽象后的各类数据对象,生成微服务架构下的测试用例。

可见,通过本发明实施例提供的一种测试用例获取装置,可以通过获取微服务架构下的各服务之间的数据信息,经分析和配置得到测试用例,达到测试用例的自动生成,减少人员操作,降低测试用例的生成成本。

可选的,参见图8,信息获取模块701,包括:

信息获取子模块7011,用于利用探针服务,获取任一服务对另一服务进行调用时的调用链路;

或,

利用探针服务,获取任一服务与另一服务的部分功能进行调用时的调用链路;

或,

利用探针服务,获取任一服务的部分功能对另一服务的部分功能进行调用时的调用链路。

可选的,参见图9,上述装置还包括:

可视化模块704,用于分别对抽象后的各类数据对象进行可视化展示。

可选的,参见图10,用例生成模块703,包括:

对象配置子模块7031,用于针对抽象后的不同类型的数据对象,根据目标测试服务对不同类型的数据对象进行配置,得到针对目标测试服务的测试用例。

可选的,参见图11,上述装置还包括:

全部用例子模块705,用于根据不同的目标测试服务对不同类型的数据对象进行配置,得到针对微服务架构下所有服务的测试用例。

通过根据不同的目标测试服务对不同类型的数据对象进行配置,得到针对微服务架构下所有服务的测试用例,可以实现一次操作就可以生成微服务架构下所有服务的测试用例,从而便于维护人员进行微服务架构和微服务的维护和测试。

本发明实施例还提供了一种电子设备,如图12所示,包括处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201,通信接口1202,存储器1203通过通信总线1204完成相互间的通信,

存储器1203,用于存放计算机程序;

处理器1201,用于执行存储器1203上所存放的程序时,实现如下步骤:

利用探针服务,获取各服务之间的数据信息,其中,数据信息用于反映微服务架构下的整体服务和/或局部服务之间的依赖关系;

根据获取到的数据信息,将属于整体服务和/或局部服务的数据对象分别进行数据抽象,得到抽象后的各类数据对象;

根据抽象后的各类数据对象,生成微服务架构下的测试用例。

可选的,上述处理器,用于执行存储器上所存放的程序时,实现如上述任一测试用例获取方法。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一测试用例获取方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一测试用例获取方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digitalversatiledisc,dvd))、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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