CN112463634A - 微服务架构下的软件测试方法及装置 - Google Patents

微服务架构下的软件测试方法及装置 Download PDF

Info

Publication number
CN112463634A
CN112463634A CN202011449518.5A CN202011449518A CN112463634A CN 112463634 A CN112463634 A CN 112463634A CN 202011449518 A CN202011449518 A CN 202011449518A CN 112463634 A CN112463634 A CN 112463634A
Authority
CN
China
Prior art keywords
service
micro
test
unit
under
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
Application number
CN202011449518.5A
Other languages
English (en)
Other versions
CN112463634B (zh
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Clearing Center People's Bank Of China
Original Assignee
National Clearing Center People's Bank Of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National Clearing Center People's Bank Of China filed Critical National Clearing Center People's Bank Of China
Priority to CN202011449518.5A priority Critical patent/CN112463634B/zh
Publication of CN112463634A publication Critical patent/CN112463634A/zh
Application granted granted Critical
Publication of CN112463634B publication Critical patent/CN112463634B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供一种微服务架构下的软件测试方法及装置,方法包括:获取预设微服务架构下各微服务之间的依赖调用关系,得到服务间调用关系配置文件;根据所述服务间调用关系配置文件确定所述各微服务的基础测试代码;接收用户发送的目标微服务测试案例,并根据所述目标微服务测试案例和与所述目标微服务对应的所述基础测试代码执行微服务测试操作,得到微服务测试结果;本申请能够自动、便捷和准确得完成微服务架构下的软件测试工作。

Description

微服务架构下的软件测试方法及装置
技术领域
本申请涉及软件测试领域,具体涉及一种微服务架构下的软件测试方法及装置。
背景技术
微服务是一种开发软件的架构和组织方法,由独立运行的小型服务组成,服务间通过定义好的接口进行通信,可以对服务单独进行更新、部署和扩展,以满足对应用程序特定功能的需求。
发明人发现,常规应用***被拆分为多个各司其职的微服务后,由于单一微服务的单元测试程序可能依赖多个微服务,由此导致不易于在本地编写、运行的问题。
发明内容
针对现有技术中的问题,本申请提供一种微服务架构下的软件测试方法及装置,能够自动、便捷和准确得完成微服务架构下的软件测试工作。
为了解决上述问题中的至少一个,本申请提供以下技术方案:
第一方面,本申请提供一种微服务架构下的软件测试方法,包括:
获取预设微服务架构下各微服务之间的依赖调用关系,得到服务间调用关系配置文件;
根据所述服务间调用关系配置文件确定所述各微服务的基础测试代码;
接收用户发送的目标微服务测试案例,并根据所述目标微服务测试案例和与所述目标微服务对应的所述基础测试代码执行微服务测试操作,得到微服务测试结果。
进一步地,所述获取预设微服务架构下各微服务之间的依赖调用关系,得到服务间调用关系配置文件,包括:
获取预设微服务架构下各微服务源代码目录下的服务类文件;
根据所述服务类文件确定所述各微服务之间的依赖调用关系并写入预设服务间调用关系配置文件。
进一步地,所述根据所述服务间调用关系配置文件确定所述各微服务的基础测试代码,包括:
根据所述服务间调用关系配置文件中的依赖调用关系,确定所述各微服务中的各服务类下每个服务方法的依赖调用信息;
根据所述依赖调用信息生成基础测试代码。
进一步地,所述接收用户发送的目标微服务测试案例,并根据所述目标微服务测试案例和与所述目标微服务对应的所述基础测试代码执行微服务测试操作,得到微服务测试结果,包括:
接收用户发送的junit测试案例并引入与所述junit测试案例对应的基础测试代码,生成测试单元并执行;
监测所述测试单元执行过程中的各变量值和分支流转是否异常,若否,则判定微服务测试通过,否则判定微服务测试不通过。
第二方面,本申请提供一种微服务架构下的软件测试装置,包括:
配置文件确定模块,用于获取预设微服务架构下各微服务之间的依赖调用关系,得到服务间调用关系配置文件;
基础测试代码确定模块,用于根据所述服务间调用关系配置文件确定所述各微服务的基础测试代码;
微服务测试操作模块,用于接收用户发送的目标微服务测试案例,并根据所述目标微服务测试案例和与所述目标微服务对应的所述基础测试代码执行微服务测试操作,得到微服务测试结果。
进一步地,所述配置文件确定模块包括:
服务类文件获取单元,用于获取预设微服务架构下各微服务源代码目录下的服务类文件;
依赖调用关系确定单元,用于根据所述服务类文件确定所述各微服务之间的依赖调用关系并写入预设服务间调用关系配置文件。
进一步地,所述基础测试代码确定模块包括:
依赖调用信息确定单元,用于根据所述服务间调用关系配置文件中的依赖调用关系,确定所述各微服务中的各服务类下每个服务方法的依赖调用信息;
基础测试代码生成单元,用于根据所述依赖调用信息生成基础测试代码。
进一步地,所述微服务测试操作模块包括:
测试单元执行单元,用于接收用户发送的junit测试案例并引入与所述junit测试案例对应的基础测试代码,生成测试单元并执行;
测试单元监测单元,用于监测所述测试单元执行过程中的各变量值和分支流转是否异常,若否,则判定微服务测试通过,否则判定微服务测试不通过。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的微服务架构下的软件测试方法的步骤。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的微服务架构下的软件测试方法的步骤。
由上述技术方案可知,本申请提供一种微服务架构下的软件测试方法及装置,通过自动获取预设微服务架构下各微服务之间的依赖调用关系,并生成各微服务对应的基础测试代码,使得开发测试人员无需花精力在模拟其他服务调用上,能够更集中于测试代码中想要验证的业务逻辑,同时也提高了测试迭代速度,使得软件测试过程简单直观。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中的微服务架构下的软件测试方法的流程示意图之一;
图2为本申请实施例中的微服务架构下的软件测试方法的流程示意图之二;
图3为本申请实施例中的微服务架构下的软件测试方法的流程示意图之三;
图4为本申请实施例中的微服务架构下的软件测试方法的流程示意图之四;
图5为本申请实施例中的微服务架构下的软件测试装置的结构图之一;
图6为本申请实施例中的微服务架构下的软件测试装置的结构图之二;
图7为本申请实施例中的微服务架构下的软件测试装置的结构图之三;
图8为本申请实施例中的微服务架构下的软件测试装置的结构图之四;
图9为本申请一具体实施例中的微服务架构下服务间依赖调用关系的示意图;
图10为本申请一具体实施例中的服务间调用关系配置文件生成过程的示意图;
图11为本申请一具体实施例中的执行微服务测试操作的示意图;
图12为本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
考虑到常规应用***被拆分为多个各司其职的微服务后,由于单一微服务的单元测试程序可能依赖多个微服务,由此导致不易于在本地编写、运行的问题,本申请提供一种微服务架构下的软件测试方法及装置,通过自动获取预设微服务架构下各微服务之间的依赖调用关系,并生成各微服务对应的基础测试代码,使得开发测试人员无需花精力在模拟其他服务调用上,能够更集中于测试代码中想要验证的业务逻辑,同时也提高了测试迭代速度,使得软件测试过程简单直观。
为了能够自动、便捷和准确得完成微服务架构下的软件测试工作,本申请提供一种微服务架构下的软件测试方法的实施例,参见图1,所述微服务架构下的软件测试方法具体包含有如下内容:
步骤S101:获取预设微服务架构下各微服务之间的依赖调用关系,得到服务间调用关系配置文件。
可以理解的是,参见图9,微服务架构的特点是微服务数量多,一个服务接口的功能需要调用多个关联服务,因此不易于在本地编写、运行,而本申请可以获取预设微服务架构下各微服务之间的依赖调用关系,以此在执行具体的软件测试工作前就准备好上述依赖调用关系对应的代码块或代码单元。
可选的,参见图10,本申请可以通过查询指定的微服务源代码目录(可含一个或多个微服务代码),识别服务类文件(class声明前有@Service注释的java文件为微服务类文件),然后,读取该服务类文件,以识别依赖的微服务(依赖服务使用@RpcReference标记申明),并记录依赖服务信息(其微服务名称microserviceName及schemaId),进而继续读取服务类文件的公共方法,识别本服务的每个方法调用了哪些依赖微服务的哪些方法,并记录依赖服务方法的调用信息,将记录的微服务依赖信息,写入服务间调用关系配置文件,并保存至指定目录,以备后续使用,由此使得开发测试人员更集中于测试代码中想要验证的业务逻辑方面,而无需花精力在模拟其他服务调用上面,达到了在编写测试代码程序时依赖调用关系的自动、准确实现。
可选的,在本申请的一些可行实施例中,本申请可以通过接收用户提供测试案例(EXCEL或其他),并根据案例内容,提取形成配置文件,在运行测试时,将测试案例生成的配置文件与基础测试代码相结合,得到测试结果。
具体的,从上述测试案例中提取案例内容形成配置文件的具体执行程序例如:
Figure BDA0002831531570000051
步骤S102:根据所述服务间调用关系配置文件确定所述各微服务的基础测试代码。
可选的,本申请可以通过读入服务间调用关系配置文件,并遍历该服务间调用关系配置文件,以此获取每个微服务下每个具体服务类下的每个服务方法的依赖信息,并根据该依赖信息生成该服务方法的基本测试代码。
可选的,每个微服务的一个具体服务类可以生成一个测试类(即基础测试代码),其含依赖服务的引用声明或其他相应且必须的代码。
步骤S103:接收用户发送的目标微服务测试案例,并根据所述目标微服务测试案例和与所述目标微服务对应的所述基础测试代码执行微服务测试操作,得到微服务测试结果。
可选的,本申请可以采用用JMockit模拟外部***行为,以使测试程序在本地就可以运行。
可以理解的是,所述Jmockit是用mock方法进行JAVA单元测试的框架,mock测试是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。
可选的,参见图11,用户通过编写junit测试案例代码,并添加junit测试案例代码中想要做的业务逻辑验证,然后本申请自动引入对应的基础测试代码用于实现该junit测试案例运行时所需的依赖调用关系。
可选的,在运行junit测试案例时,可以通过观察运行过程中各变量值及分支流转是否正常,来确认运行处理是否正常。
可选的,本地运行junit案例,观察运行过程中各变量值及分支流转,确认运行处理是否正常。
从上述描述可知,本申请实施例提供的微服务架构下的软件测试方法,能够通过自动获取预设微服务架构下各微服务之间的依赖调用关系,并生成各微服务对应的基础测试代码,使得开发测试人员无需花精力在模拟其他服务调用上,能够更集中于测试代码中想要验证的业务逻辑,同时也提高了测试迭代速度,使得软件测试过程简单直观。
为了能够自动、准确得得到各微服务之间的依赖调用关系,在本申请的微服务架构下的软件测试方法的一实施例中,参见图2,上述步骤S101还可以具体包含如下内容:
步骤S201:获取预设微服务架构下各微服务源代码目录下的服务类文件。
步骤S202:根据所述服务类文件确定所述各微服务之间的依赖调用关系并写入预设服务间调用关系配置文件。
可选的,本申请可以通过查询指定的微服务源代码目录(可含一个或多个微服务代码),识别服务类文件(class声明前有@Service注释的java文件为微服务类文件),然后,读取该服务类文件,以识别依赖的微服务(依赖服务使用@RpcReference标记申明),并记录依赖服务信息(其微服务名称microserviceName及schemaId),进而继续读取服务类文件的公共方法,识别本服务的每个方法调用了哪些依赖微服务的哪些方法,并记录依赖服务方法的调用信息,将记录的微服务依赖信息,写入服务间调用关系配置文件,并保存至指定目录,以备后续使用,由此使得开发测试人员更集中于测试代码中想要验证的业务逻辑方面,而无需花精力在模拟其他服务调用上面,达到了在编写测试代码程序时依赖调用关系的自动、准确实现。
为了能够根据各微服务之间的依赖调用关系在执行软件测试前提前准备所需要的能够实现该依赖调用功能的基础测试代码,在本申请的微服务架构下的软件测试方法的一实施例中,参见图3,上述步骤S102还可以具体包含如下内容:
步骤S301:根据所述服务间调用关系配置文件中的依赖调用关系,确定所述各微服务中的各服务类下每个服务方法的依赖调用信息。
步骤S302:根据所述依赖调用信息生成基础测试代码。
可选的,申请可以通过读入服务间调用关系配置文件,并遍历该服务间调用关系配置文件,以此获取每个微服务下每个具体服务类下的每个服务方法的依赖信息,并根据该依赖信息生成该服务方法的基本测试代码。
为了能够在软件测试时自动、准确得引用各微服务之间的依赖调用关系,并准确执行测试工作,在本申请的微服务架构下的软件测试方法的一实施例中,参见图4,上述步骤S103还可以具体包含如下内容:
步骤S401:接收用户发送的junit测试案例并引入与所述junit测试案例对应的基础测试代码,生成测试单元并执行。
步骤S402:监测所述测试单元执行过程中的各变量值和分支流转是否异常,若否,则判定微服务测试通过,否则判定微服务测试不通过。
可选的,用户通过编写junit测试案例代码,并添加junit测试案例代码中想要做的业务逻辑验证,然后本申请自动引入对应的基础测试代码用于实现该junit测试案例运行时所需的依赖调用关系。
可选的,在运行junit测试案例时,可以通过观察运行过程中各变量值及分支流转是否正常,来确认运行处理是否正常。
可选的,本地运行junit案例,观察运行过程中各变量值及分支流转,确认运行处理是否正常。
为了能够自动、便捷和准确得完成微服务架构下的软件测试工作,本申请提供一种用于实现所述微服务架构下的软件测试方法的全部或部分内容的微服务架构下的软件测试装置的实施例,参见图5,所述微服务架构下的软件测试装置具体包含有如下内容:
配置文件确定模块10,用于获取预设微服务架构下各微服务之间的依赖调用关系,得到服务间调用关系配置文件。
基础测试代码确定模块20,用于根据所述服务间调用关系配置文件确定所述各微服务的基础测试代码。
微服务测试操作模块30,用于接收用户发送的目标微服务测试案例,并根据所述目标微服务测试案例和与所述目标微服务对应的所述基础测试代码执行微服务测试操作,得到微服务测试结果。
从上述描述可知,本申请实施例提供的微服务架构下的软件测试装置,能够通过自动获取预设微服务架构下各微服务之间的依赖调用关系,并生成各微服务对应的基础测试代码,使得开发测试人员无需花精力在模拟其他服务调用上,能够更集中于测试代码中想要验证的业务逻辑,同时也提高了测试迭代速度,使得软件测试过程简单直观。
为了能够自动、准确得得到各微服务之间的依赖调用关系,在本申请的微服务架构下的软件测试装置的一实施例中,参见图6,所述配置文件确定模块10包括:
服务类文件获取单元11,用于获取预设微服务架构下各微服务源代码目录下的服务类文件。
依赖调用关系确定单元12,用于根据所述服务类文件确定所述各微服务之间的依赖调用关系并写入预设服务间调用关系配置文件。
为了能够根据各微服务之间的依赖调用关系在执行软件测试前提前准备所需要的能够实现该依赖调用功能的基础测试代码,在本申请的微服务架构下的软件测试装置的一实施例中,参见图7,所述基础测试代码确定模块20包括:
依赖调用信息确定单元21,用于根据所述服务间调用关系配置文件中的依赖调用关系,确定所述各微服务中的各服务类下每个服务方法的依赖调用信息。
基础测试代码生成单元22,用于根据所述依赖调用信息生成基础测试代码。
为了能够在软件测试时自动、准确得引用各微服务之间的依赖调用关系,并准确执行测试工作,在本申请的微服务架构下的软件测试装置的一实施例中,参见图8,所述微服务测试操作模块30包括:
测试单元执行单元31,用于接收用户发送的junit测试案例并引入与所述junit测试案例对应的基础测试代码,生成测试单元并执行。
测试单元监测单元32,用于监测所述测试单元执行过程中的各变量值和分支流转是否异常,若否,则判定微服务测试通过,否则判定微服务测试不通过。
为了更进一步说明本方案,本申请还提供一种应用上述微服务架构下的软件测试装置实现微服务架构下的软件测试方法的具体应用实例,具体包含有:信息采集模块,测试代码生成模块。
所述信息采集模块具体实现:
1.程序按照指定的微服务源代码目录(可含一个或多个微服务代码),识别服务类文件(class声明前有@Service注释的java文件为微服务类文件)。
2.程序读取服务类文件,识别依赖的微服务(依赖服务使用@RpcReference标记申明),并记录依赖服务信息(其微服务名称microserviceName及schemaId)。
3.程序继续读取服务类文件的公共方法,识别本服务的每个方法调用了哪些依赖微服务的哪些方法,并记录依赖服务方法的调用信息(依赖服务来自上一步)。
4.程序将记录的微服务依赖信息,写入配置文件,并保存至指定目录;
产生的配置文件片段示例如下:
Figure BDA0002831531570000091
Figure BDA0002831531570000101
所述测试代码生成模块具体实现:
1.程序读入依赖关系配置文件。
2.程序遍历配置文件,每个微服务下每个具体服务类下的每个服务方法的依赖信息。
3.程序根据上一步的信息,生成该服务方法的基本测试代码。
4.为每个微服务的一个具体服务类生成一个测试类,含依赖服务的引用声明,每个公共方法的测试方法所调用的依赖服务方法;
产生的测试代码片段示例如下:
Figure BDA0002831531570000102
Figure BDA0002831531570000111
具体工作过程如下:
1.在存放有所有微服务代码的***上,运行信息采集模块,模块从代码中获取到所有的微服务间调用,以对应关系的方式,记录并存储到一个自动生成的配置文件当中。
2.运行测试代码生成模块,从控制台输入/选择想要生成测试代码的微服务名,测试对象接口/类,或详细到该接口/类下的某方法,模块会自动生成一个包含该功能被调方法、被调方法初始参数、调用方法的依赖模拟类及模拟返回初始参数等信息的单元测试代码。
有上述内容可知,本申请至少还可以实现如下技术效果:
1.自动收集服务方法所使用的依赖服务及其方法。
2.自动生成服务间依赖关系记录文件,一次生成可供多人多地使用。
3.为用户生成所有或指定微服务的基础测试代码,使其更集中与业务功能的验证,快速准确,节约人力。
从硬件层面来说,为了能够自动、便捷和准确得完成微服务架构下的软件测试工作,本申请提供一种用于实现所述微服务架构下的软件测试方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现微服务架构下的软件测试装置与核心业务***、用户终端以及相关数据库等相关设备之间的信息传输;该逻辑控制器可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该逻辑控制器可以参照实施例中的微服务架构下的软件测试方法的实施例,以及微服务架构下的软件测试装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
可以理解的是,所述用户终端可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
在实际应用中,微服务架构下的软件测试方法的部分可以在如上述内容所述的电子设备侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
图12为本申请实施例的电子设备9600的***构成的示意框图。如图12所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图12是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,微服务架构下的软件测试方法功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
步骤S101:获取预设微服务架构下各微服务之间的依赖调用关系,得到服务间调用关系配置文件。
步骤S102:根据所述服务间调用关系配置文件确定所述各微服务的基础测试代码。
步骤S103:接收用户发送的目标微服务测试案例,并根据所述目标微服务测试案例和与所述目标微服务对应的所述基础测试代码执行微服务测试操作,得到微服务测试结果。
从上述描述可知,本申请实施例提供的电子设备,通过自动获取预设微服务架构下各微服务之间的依赖调用关系,并生成各微服务对应的基础测试代码,使得开发测试人员无需花精力在模拟其他服务调用上,能够更集中于测试代码中想要验证的业务逻辑,同时也提高了测试迭代速度,使得软件测试过程简单直观。
在另一个实施方式中,微服务架构下的软件测试装置可以与中央处理器9100分开配置,例如可以将微服务架构下的软件测试装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现微服务架构下的软件测试方法功能。
如图12所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图12中所示的所有部件;此外,电子设备9600还可以包括图12中没有示出的部件,可以参考现有技术。
如图12所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的微服务架构下的软件测试方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的微服务架构下的软件测试方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤S101:获取预设微服务架构下各微服务之间的依赖调用关系,得到服务间调用关系配置文件。
步骤S102:根据所述服务间调用关系配置文件确定所述各微服务的基础测试代码。
步骤S103:接收用户发送的目标微服务测试案例,并根据所述目标微服务测试案例和与所述目标微服务对应的所述基础测试代码执行微服务测试操作,得到微服务测试结果。
从上述描述可知,本申请实施例提供的计算机可读存储介质,通过自动获取预设微服务架构下各微服务之间的依赖调用关系,并生成各微服务对应的基础测试代码,使得开发测试人员无需花精力在模拟其他服务调用上,能够更集中于测试代码中想要验证的业务逻辑,同时也提高了测试迭代速度,使得软件测试过程简单直观。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种微服务架构下的软件测试方法,其特征在于,所述方法包括:
获取预设微服务架构下各微服务之间的依赖调用关系,得到服务间调用关系配置文件;
根据所述服务间调用关系配置文件确定所述各微服务的基础测试代码;
接收用户发送的目标微服务测试案例,并根据所述目标微服务测试案例和与所述目标微服务对应的所述基础测试代码执行微服务测试操作,得到微服务测试结果。
2.根据权利要求1所述的微服务架构下的软件测试方法,其特征在于,所述获取预设微服务架构下各微服务之间的依赖调用关系,得到服务间调用关系配置文件,包括:
获取预设微服务架构下各微服务源代码目录下的服务类文件;
根据所述服务类文件确定所述各微服务之间的依赖调用关系并写入预设服务间调用关系配置文件。
3.根据权利要求1所述的微服务架构下的软件测试方法,其特征在于,所述根据所述服务间调用关系配置文件确定所述各微服务的基础测试代码,包括:
根据所述服务间调用关系配置文件中的依赖调用关系,确定所述各微服务中的各服务类下每个服务方法的依赖调用信息;
根据所述依赖调用信息生成基础测试代码。
4.根据权利要求1所述的微服务架构下的软件测试方法,其特征在于,所述接收用户发送的目标微服务测试案例,并根据所述目标微服务测试案例和与所述目标微服务对应的所述基础测试代码执行微服务测试操作,得到微服务测试结果,包括:
接收用户发送的junit测试案例并引入与所述junit测试案例对应的基础测试代码,生成测试单元并执行;
监测所述测试单元执行过程中的各变量值和分支流转是否异常,若否,则判定微服务测试通过,否则判定微服务测试不通过。
5.一种微服务架构下的软件测试装置,其特征在于,包括:
配置文件确定模块,用于获取预设微服务架构下各微服务之间的依赖调用关系,得到服务间调用关系配置文件;
基础测试代码确定模块,用于根据所述服务间调用关系配置文件确定所述各微服务的基础测试代码;
微服务测试操作模块,用于接收用户发送的目标微服务测试案例,并根据所述目标微服务测试案例和与所述目标微服务对应的所述基础测试代码执行微服务测试操作,得到微服务测试结果。
6.根据权利要求5所述的微服务架构下的软件测试装置,其特征在于,所述配置文件确定模块包括:
服务类文件获取单元,用于获取预设微服务架构下各微服务源代码目录下的服务类文件;
依赖调用关系确定单元,用于根据所述服务类文件确定所述各微服务之间的依赖调用关系并写入预设服务间调用关系配置文件。
7.根据权利要求5所述的微服务架构下的软件测试装置,其特征在于,所述基础测试代码确定模块包括:
依赖调用信息确定单元,用于根据所述服务间调用关系配置文件中的依赖调用关系,确定所述各微服务中的各服务类下每个服务方法的依赖调用信息;
基础测试代码生成单元,用于根据所述依赖调用信息生成基础测试代码。
8.根据权利要求5所述的微服务架构下的软件测试装置,其特征在于,所述微服务测试操作模块包括:
测试单元执行单元,用于接收用户发送的junit测试案例并引入与所述junit测试案例对应的基础测试代码,生成测试单元并执行;
测试单元监测单元,用于监测所述测试单元执行过程中的各变量值和分支流转是否异常,若否,则判定微服务测试通过,否则判定微服务测试不通过。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4任一项所述的微服务架构下的软件测试方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至4任一项所述的微服务架构下的软件测试方法的步骤。
CN202011449518.5A 2020-12-11 2020-12-11 微服务架构下的软件测试方法及装置 Active CN112463634B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011449518.5A CN112463634B (zh) 2020-12-11 2020-12-11 微服务架构下的软件测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011449518.5A CN112463634B (zh) 2020-12-11 2020-12-11 微服务架构下的软件测试方法及装置

Publications (2)

Publication Number Publication Date
CN112463634A true CN112463634A (zh) 2021-03-09
CN112463634B CN112463634B (zh) 2024-03-29

Family

ID=74802059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011449518.5A Active CN112463634B (zh) 2020-12-11 2020-12-11 微服务架构下的软件测试方法及装置

Country Status (1)

Country Link
CN (1) CN112463634B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905486A (zh) * 2021-03-26 2021-06-04 建信金融科技有限责任公司 一种服务集成测试方法、装置和***
CN113285849A (zh) * 2021-04-06 2021-08-20 武汉虹信科技发展有限责任公司 基于微服务的设备测试方法及装置
CN113434409A (zh) * 2021-06-25 2021-09-24 中国工商银行股份有限公司 微服务测试方法及装置
CN114064475A (zh) * 2021-11-11 2022-02-18 中国联合网络通信集团有限公司 云原生应用测试方法、装置、设备及存储介质
CN114826899A (zh) * 2022-03-16 2022-07-29 青岛海尔科技有限公司 设备控制服务的调试方法和装置、存储介质及电子装置
CN115242880A (zh) * 2022-07-14 2022-10-25 湖南三湘银行股份有限公司 一种基于网络请求桥接的微服务框架接入方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096437A (zh) * 2019-04-12 2019-08-06 平安普惠企业管理有限公司 微服务架构的测试方法及相关产品
CN110413673A (zh) * 2019-07-08 2019-11-05 中国人民银行清算总中心 数据库数据统一采集与分发方法及***
CN110659206A (zh) * 2019-08-30 2020-01-07 平安普惠企业管理有限公司 基于微服务的模拟架构建立方法、装置、介质及电子设备
CN110990262A (zh) * 2019-11-08 2020-04-10 安徽继远检验检测技术有限公司 一种基于微服务架构下测试方法及工具集成
CN111209210A (zh) * 2020-01-15 2020-05-29 北京明略软件***有限公司 一种生成测试用例方法、装置、电子设备及存储介质
CN111382055A (zh) * 2018-12-29 2020-07-07 贝壳技术有限公司 一种基于统一描述语言的自动化单元测试方法及装置
CN111506505A (zh) * 2020-04-13 2020-08-07 北京奇艺世纪科技有限公司 一种测试用例获取方法及装置
CN111897738A (zh) * 2020-08-21 2020-11-06 中国工商银行股份有限公司 基于原子服务的自动化测试方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111382055A (zh) * 2018-12-29 2020-07-07 贝壳技术有限公司 一种基于统一描述语言的自动化单元测试方法及装置
CN110096437A (zh) * 2019-04-12 2019-08-06 平安普惠企业管理有限公司 微服务架构的测试方法及相关产品
CN110413673A (zh) * 2019-07-08 2019-11-05 中国人民银行清算总中心 数据库数据统一采集与分发方法及***
CN110659206A (zh) * 2019-08-30 2020-01-07 平安普惠企业管理有限公司 基于微服务的模拟架构建立方法、装置、介质及电子设备
CN110990262A (zh) * 2019-11-08 2020-04-10 安徽继远检验检测技术有限公司 一种基于微服务架构下测试方法及工具集成
CN111209210A (zh) * 2020-01-15 2020-05-29 北京明略软件***有限公司 一种生成测试用例方法、装置、电子设备及存储介质
CN111506505A (zh) * 2020-04-13 2020-08-07 北京奇艺世纪科技有限公司 一种测试用例获取方法及装置
CN111897738A (zh) * 2020-08-21 2020-11-06 中国工商银行股份有限公司 基于原子服务的自动化测试方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PABLO LAMELA SEIJAS等: "Model Extraction and Test Generation from JUnit Test Suites", 《2016 IEEE/ACM 11TH INTERNATIONAL WORKSHOP IN AUTOMATION OF SOFTWARE TEST (AST)》, pages 8 - 14 *
孟凡玥: "基于微服务的客户服务平台的设计与实现", 《CNKI优秀硕士学位论文全文库 工程科技Ⅱ辑》, no. 01, pages 042 - 55 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905486A (zh) * 2021-03-26 2021-06-04 建信金融科技有限责任公司 一种服务集成测试方法、装置和***
CN113285849A (zh) * 2021-04-06 2021-08-20 武汉虹信科技发展有限责任公司 基于微服务的设备测试方法及装置
CN113434409A (zh) * 2021-06-25 2021-09-24 中国工商银行股份有限公司 微服务测试方法及装置
CN114064475A (zh) * 2021-11-11 2022-02-18 中国联合网络通信集团有限公司 云原生应用测试方法、装置、设备及存储介质
CN114826899A (zh) * 2022-03-16 2022-07-29 青岛海尔科技有限公司 设备控制服务的调试方法和装置、存储介质及电子装置
CN114826899B (zh) * 2022-03-16 2024-01-23 青岛海尔科技有限公司 设备控制服务的调试方法和装置、存储介质及电子装置
CN115242880A (zh) * 2022-07-14 2022-10-25 湖南三湘银行股份有限公司 一种基于网络请求桥接的微服务框架接入方法

Also Published As

Publication number Publication date
CN112463634B (zh) 2024-03-29

Similar Documents

Publication Publication Date Title
CN112463634B (zh) 微服务架构下的软件测试方法及装置
CN111930617B (zh) 基于数据对象化的自动化测试方法及装置
CN111506579B (zh) 一种智能合约代码的生成方法、程序及设备
CN111897738B (zh) 基于原子服务的自动化测试方法及装置
CN113157345A (zh) 前端工程自动启动方法及装置
CN112784112A (zh) 报文校验方法及装置
CN111752834A (zh) 自动化测试方法和装置
CN113342330B (zh) 前端工程生成方法及装置
CN114153856A (zh) 主机数据双写方法及装置
CN113050985A (zh) 前端工程依赖自动注册方法及装置
CN111797014A (zh) 跨应用的案例追踪方法及装置
CN113791984B (zh) 接口自动化测试方法及装置
CN113515447B (zh) ***自动化测试方法及装置
CN116150029A (zh) 一种贷款***逾期跑批自动化测试方法及装置
CN113297076B (zh) 基于调用链图的服务变更识别方法及装置
CN115495519A (zh) 报表数据加工方法及装置
CN114328215A (zh) 测试数据部署方法、装置、设备、可读存储介质及产品
CN114637531A (zh) 应用程序接口动态生成方法及装置
CN112882921B (zh) 故障模拟方法和装置
CN114490402A (zh) 一种报文字段合法性检查方法及装置
CN113050936A (zh) 基于集成开发环境的前端数据处理方法及装置
CN113742212A (zh) 一种新旧***迁移测试方法及装置
CN113127370A (zh) 报表***冒烟测试方法、rpa机器人及***
CN113553530A (zh) 一种信息报送动态页面配置方法及装置
CN112905464A (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