一种接口自动化测试方法及装置与流程

文档序号:27318409发布日期:2021-11-10 00:17阅读:96来源:国知局
一种接口自动化测试方法及装置与流程

1.本技术涉及接口测试技术领域,特别涉及一种接口自动化测试方法及装置。


背景技术:

2.随着云计算,物联网等技术的迅速发展,用户对软件系统的需求趋于多样化。微服务架构虽然不是解决软件问题的银弹,但是其已经被越来越多的公司采用。其拥有着诸多优点,比如天生匹配敏捷开发,可以加快交付效率。比如每个微服务可以并行开发和单元测试,大大提高了测试效率和开发进度。比如每个微服务可以独立部署,使得每个独立的业务之间影响尽量降低,无需等待其他微服务即可结合环境进行验证。
3.而同时微服务的这些优势需要通过高质量高效率的api接口进行保障。那么,如何提高api接口的质量,如何判断微服务api接口是否满足业务需要是当今需要重点解决的问题。


技术实现要素:

4.第一方面,本技术提供了一种接口自动化测试方法,所述方法包括:
5.获取微服务框架包括的各微服务的api接口的第一api接口信息,并将所述api接口信息转换为指定格式的第二api接口信息;
6.基于预设规则对所述第二api接口信息进行配置和编排处理,得到接口测试执行计划图;
7.基于所述接口测试执行计划图,生成对应的接口测试执行流程表,并基于所述接口测试执行流程图表对所述各微服务的api接口进行测试。
8.可选地,获取微服务框架包括的各微服务的api接口的第一api接口信息,并将所述api接口信息转换为指定格式的第二api接口信息的步骤包括:
9.针对每一微服务,采用与该微服务支持的语言开发的软件开发工具包获取该微服务的api接口的第一api接口信息,并将获取到的该微服务的api接口的第一api接口信息转换为指定格式的第二api接口信息,其中,各微服务对应的第二api接口信息的格式均为所述指定格式。
10.可选地,基于预设规则对所述第二api接口信息进行配置和编排处理,得到接口测试执行计划图的步骤包括:
11.基于用户针对各微服务的api接口下发的目标参数配置指令,分别配置各微服务的api接口对应的第二api接口信息中的目标参数值;
12.基于用户针对各微服务的api接口下发的测试策略,分别配置各微服务的api接口的测试策略;
13.基于各微服务之间的依赖关系,对各微服务的api接口的测试执行顺序进行编排处理,得到接口测试执行计划图。
14.可选地,基于所述接口测试执行计划图,生成对应的接口测试执行流程表的步骤
包括:
15.基于所述接口测试执行图中各微服务的api接口的入度,分别确定各微服务的api接口的测试优先级;
16.基于所述各微服务的api接口的测试优先级,生成对应的接口是执行流程表,其中,一个微服务的api接口的测试优先级越高,该微服务的api接口的测试任务在所述测试执行流程表中的执行顺序越靠前。
17.可选地,所述方法还包括:
18.在所述测试执行流程表的表头中配置触发条件,其中,在检测到满足所述触发条件时,执行所述测试执行流程表。
19.第二方面,本技术提供了一种接口自动化测试装置,所述装置包括:
20.获取单元,用于获取微服务框架包括的各微服务的api接口的第一api接口信息,并将所述api接口信息转换为指定格式的第二api接口信息;
21.配置单元,用于基于预设规则对所述第二api接口信息进行配置和编排处理,得到接口测试执行计划图;
22.生成单元,用于基于所述接口测试执行计划图,生成对应的接口测试执行流程表,并基于所述接口测试执行流程图表对所述各微服务的api接口进行测试。
23.可选地,获取微服务框架包括的各微服务的api接口的第一api接口信息,并将所述api接口信息转换为指定格式的第二api接口信息时,所述获取单元具体用于:
24.针对每一微服务,采用与该微服务支持的语言开发的软件开发工具包获取该微服务的api接口的第一api接口信息,并将获取到的该微服务的api接口的第一api接口信息转换为指定格式的第二api接口信息,其中,各微服务对应的第二api接口信息的格式均为所述指定格式。
25.可选地,基于预设规则对所述第二api接口信息进行配置和编排处理,得到接口测试执行计划图时,所述配置单元具体用于:
26.基于用户针对各微服务的api接口下发的目标参数配置指令,分别配置各微服务的api接口对应的第二api接口信息中的目标参数值;
27.基于用户针对各微服务的api接口下发的测试策略,分别配置各微服务的api接口的测试策略;
28.基于各微服务之间的依赖关系,对各微服务的api接口的测试执行顺序进行编排处理,得到接口测试执行计划图。
29.可选地,基于所述接口测试执行计划图,生成对应的接口测试执行流程表时,所述生成单元具体用于:
30.基于所述接口测试执行图中各微服务的api接口的入度,分别确定各微服务的api接口的测试优先级;
31.基于所述各微服务的api接口的测试优先级,生成对应的接口是执行流程表,其中,一个微服务的api接口的测试优先级越高,该微服务的api接口的测试任务在所述测试执行流程表中的执行顺序越靠前。
32.可选地,所述生成单元还用于:
33.在所述测试执行流程表的表头中配置触发条件,其中,在检测到满足所述触发条
件时,执行所述测试执行流程表。
34.第三方面,本技术实施例提供一种接口自动化测试装置,该接口自动化测试装置包括:
35.存储器,用于存储程序指令;
36.处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第一方面中任一项所述的方法的步骤。
37.第四方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第一方面中任一项所述方法的步骤。
38.综上可知,本技术实施例提供的接口自动化测试方法,获取微服务框架包括的各微服务的api接口的第一api接口信息,并将所述api接口信息转换为指定格式的第二api接口信息;基于预设规则对所述第二api接口信息进行配置和编排处理,得到接口测试执行计划图;基于所述接口测试执行计划图,生成对应的接口测试执行流程表,并基于所述接口测试执行流程图表对所述各微服务的api接口进行测试。
39.采用本技术实施例提供的接口自动化测试方法,能实现高效快速的接口自动化测试流程,对于保障微服务的接口质量具有很大帮助。同时简略的配置使得接口自动化测试的编写成本大大降低,有助于推广和商业使用。接口质量的保障有助于项目稳定快速的发展,可以提高使用该流程的产品的竞争力。
附图说明
40.为了更加清楚地说明本技术实施例或者现有技术中的技术方案,下面将对本技术实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本技术实施例的这些附图获得其他的附图。
41.图1为本技术实施例提供的一种接口自动化测试方法的详细流程图;
42.图2为本技术实施例中一种获取api接口信息的过程示意图;
43.图3为本技术实施例提供的一种接口测试执行计划图的示意图;
44.图4为本技术实施例提供的一种并行执行流程表的示意图;
45.图5为本技术实施例提供的一种测试报告的示意图;
46.图6为本技术实施例提供的一种接口自动化测试装置的结构示意图;
47.图7为本技术实施例提供的另一种接口自动化测试装置的结构示意图。
具体实施方式
48.在本技术实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本技术。本技术和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
49.应当理解,尽管在本技术实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,
在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
50.示例性的,参阅图1所示,为本技术实施例提供的一种接口自动化测试方法的详细流程图,该方法包括以下步骤:
51.步骤100:获取微服务框架包括的各微服务的api接口的第一api接口信息,并将所述api接口信息转换为指定格式的第二api接口信息。
52.本技术实施例中,在获取微服务框架包括的各微服务的api接口的第一api接口信息,并将所述api接口信息转换为指定格式的第二api接口信息时,一种较佳的实现方式为:
53.针对每一微服务,采用与该微服务支持的语言开发的软件开发工具包获取该微服务的api接口的第一api接口信息,并将获取到的该微服务的api接口的第一api接口信息转换为指定格式的第二api接口信息,其中,各微服务对应的第二api接口信息的格式均为所述指定格式。
54.实际应用中,示例性的,参阅图2所示,为本技术实施例中一种获取api接口信息的过程示意图,其中,不同的微服务可以采用不同的语言(如,java,go,c++等)进行开发,那么,在通过软件开发工具包sdk(接口信息获取工具)获取各微服务的api接口信息时,需要预先根据不同语言开发不同的sdk,例如,采用由java开发的sdk获取由java开发的微服务的api接口信息,采用由c++开发的sdk获取由sdk开发的微服务的api接口信息。
55.也就是说,通过引入对应程序语言的sdk,并接入对应的微服务,sdk通过切面编程,获取对应微服务对外暴露的api接口信息,具体可以包括方法,参数等信息。
56.进一步的,为了后续统一的配置编排处理,需要将各对应程序语言的sdk获取到各微服务的api接口信息(第一api接口信息)转换为指定格式的api接口信息(第二接口信息)。
57.步骤110:基于预设规则对所述第二api接口信息进行配置和编排处理,得到接口测试执行计划图。
58.本技术实施例中,在基于预设规则对所述第二api接口信息进行配置和编排处理,得到接口测试执行计划图时,一种较佳地实现方式为:
59.基于用户针对各微服务的api接口下发的目标参数配置指令,分别配置各微服务的api接口对应的第二api接口信息中的目标参数值;基于用户针对各微服务的api接口下发的测试策略,分别配置各微服务的api接口的测试策略;基于各微服务之间的依赖关系,对各微服务的api接口的测试执行顺序进行编排处理,得到接口测试执行计划图。
60.具体的,配置过程可以包括:
61.可以向用户展示配置和编排界面,接收用户分别针对各微服务的api接口下发的目标参数配置指令,即用户针对某些参数配置的具体参数值,并基于该目标参数配置指令,对第二api接口信息中的各目标参数进行配置。目标参数指的是获取到的参数不准确,或为空值等的参数。
62.进一步的,配置过程还可以包括针对各api接口配置的测试策略(如,配置断言测试信息),所谓断言测试,指的是一个测试用例x需要配置预期的模型结果。定义实际执行用例时得到的结果result(x)和模型结果model(x)进行匹配,若满足下列结果,即为断言测试
成功。
63.result(x)=model(x)
64.需要说明的是,针对一个测试用例允许配置一个或多个断言测试。一个测试用例全部断言成功即测试用例测试成功。
65.编排过程可以包括:对测试用例的执行顺序进行编排,最终输出接口测试执行计划图(如,有向无环的执行计划图,dag图)。
66.例如,假设微服务b依赖于微服务a,则在进行编排时,在测试微服务b的api接口时,需要先对微服务a的api接口进行测试,并将微服务a的api接口的测试结果作为一个参数,传递至微服务b,在测试微服务b的api接口时,需要基于微服务a的api接口的测试结果来判断微服务a的api接口的测试结果。
67.示例性的,参阅图3所示,为本技术实施例提供的一种接口测试执行计划图的示意图。
68.步骤120:基于所述接口测试执行计划图,生成对应的接口测试执行流程表,并基于所述接口测试执行流程图表对所述各微服务的api接口进行测试。
69.本技术实施例中,在基于所述接口测试执行计划图,生成对应的接口测试执行流程表时,一种较佳地实现方式为:
70.基于所述接口测试执行图中各微服务的api接口的入度,分别确定各微服务的api接口的测试优先级;基于所述各微服务的api接口的测试优先级,生成对应的接口是执行流程表,其中,一个微服务的api接口的测试优先级越高,该微服务的api接口的测试任务在所述测试执行流程表中的执行顺序越靠前。
71.具体的,在具体执行测试任务时,需要基于执行流程表来进行api接口测试,即需生成一个待测试任务列表。
72.那么,本技术实施例中,生成的列表时,可基于用户选择的方式,生成串行执行流程表,或者生成并行执行流程表。
73.所谓串行执行流程表指的是,待测试任务列表中每一行只包括一个待测试任务,启用单线程执行待测试任务。如,假设优先级最高(入度为0的,不依赖其它待测试任务的)的待测试任务包括任务1和任务2,待测试任务列表中第一行可以为任务1或任务2,待测试任务列表中第二行为任务2或任务1。
74.所谓并行执行流程表指的是,待测试任务列表中每一行可以包括一个或多个待测试任务,启用多线程执行待测试任务。如,假设优先级最高(入度为0的,不依赖其它待测试任务的)的待测试任务包括任务1和任务2,待测试任务列表中第一行可以为任务1和任务2。
75.示例性的,参阅图4所示,为本技术实施例提供的一种并行执行流程表的示意图。表头中包括待测试任务的触发方式和触发条件,优先级为1的并行任务包括任务1和任务,优先级为2的并行任务包括任务3,优先级为3的并行任务包括任务4,
……
,优先级为k的并行任务包括任务n。
76.实际应用中,实时侦听执行流程表的表头中的触发条件,当满足条件时按照执行流程表执行自动化测试任务。执行任务时同一行的任务并行执行,当全部执行完后串行执行下一行任务,提高执行效率。自动化测试执行完毕后,输出一份自动化测试的报告。
77.示例性的,参阅图5所示,为本技术实施例提供的一种测试报告的示意图,其中,
summary为自动化测试的总览报告,包括但不限于成功率,总请求数,总耗时,数据量,平均响应时间等指标。failed api为失败的api列表,包括用例名称等具体信息。result为测试结论,邮件通知信息,和是否拒绝合入内容等。
78.用户通过查看执行结果,可以分析出微服务的api接口的测试执行情况,包括执行是否成功和执行效率,方便快速定位具体的接口问题,提高测试能力。执行质量分析并且辅助用户决策。
79.示例性的,参阅图6所示,为本技术实施例提供的一种接口自动化测试装置的结构示意图,该装置包括:
80.获取单元60,用于获取微服务框架包括的各微服务的api接口的第一api接口信息,并将所述api接口信息转换为指定格式的第二api接口信息;
81.配置单元61,用于基于预设规则对所述第二api接口信息进行配置和编排处理,得到接口测试执行计划图;
82.生成单元62,用于基于所述接口测试执行计划图,生成对应的接口测试执行流程表,并基于所述接口测试执行流程图表对所述各微服务的api接口进行测试。
83.可选地,获取微服务框架包括的各微服务的api接口的第一api接口信息,并将所述api接口信息转换为指定格式的第二api接口信息时,所述获取单元60具体用于:
84.针对每一微服务,采用与该微服务支持的语言开发的软件开发工具包获取该微服务的api接口的第一api接口信息,并将获取到的该微服务的api接口的第一api接口信息转换为指定格式的第二api接口信息,其中,各微服务对应的第二api接口信息的格式均为所述指定格式。
85.可选地,基于预设规则对所述第二api接口信息进行配置和编排处理,得到接口测试执行计划图时,所述配置单元61具体用于:
86.基于用户针对各微服务的api接口下发的目标参数配置指令,分别配置各微服务的api接口对应的第二api接口信息中的目标参数值;
87.基于用户针对各微服务的api接口下发的测试策略,分别配置各微服务的api接口的测试策略;
88.基于各微服务之间的依赖关系,对各微服务的api接口的测试执行顺序进行编排处理,得到接口测试执行计划图。
89.可选地,基于所述接口测试执行计划图,生成对应的接口测试执行流程表时,所述生成单元62具体用于:
90.基于所述接口测试执行图中各微服务的api接口的入度,分别确定各微服务的api接口的测试优先级;
91.基于所述各微服务的api接口的测试优先级,生成对应的接口是执行流程表,其中,一个微服务的api接口的测试优先级越高,该微服务的api接口的测试任务在所述测试执行流程表中的执行顺序越靠前。
92.可选地,所述生成单元62还用于:
93.在所述测试执行流程表的表头中配置触发条件,其中,在检测到满足所述触发条件时,执行所述测试执行流程表。
94.以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个
或多个特定集成电路(application specific integrated circuit,简称asic),或,一个或多个微处理器(digital singnal processor,简称dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,简称fpga)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,简称cpu)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system

on

a

chip,简称soc)的形式实现。
95.进一步地,本技术实施例提供的接口自动化测试装置,从硬件层面而言,所述接口自动化测试装置的硬件架构示意图可以参见图7所示,所述接口自动化测试装置可以包括:存储器70和处理器71,
96.存储器70用于存储程序指令;处理器71调用存储器70中存储的程序指令,按照获得的程序指令执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
97.可选地,本技术还提供一种接口自动化测试设备,包括用于执行上述方法实施例的至少一个处理元件(或芯片)。
98.可选地,本技术还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述方法实施例。
99.这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radom access memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
100.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
101.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
102.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
103.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装
置。
104.而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
105.这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
106.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1