CN112597033B - 一种自动化接口测试方法及装置 - Google Patents
一种自动化接口测试方法及装置 Download PDFInfo
- Publication number
- CN112597033B CN112597033B CN202011569167.1A CN202011569167A CN112597033B CN 112597033 B CN112597033 B CN 112597033B CN 202011569167 A CN202011569167 A CN 202011569167A CN 112597033 B CN112597033 B CN 112597033B
- Authority
- CN
- China
- Prior art keywords
- interface
- field
- test case
- tested
- name
- 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.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 227
- 230000004044 response Effects 0.000 claims abstract description 41
- 238000000034 method Methods 0.000 claims abstract description 35
- 238000010276 construction Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 13
- 230000005540 biological transmission Effects 0.000 description 8
- KLPWJLBORRMFGK-UHFFFAOYSA-N Molindone Chemical compound O=C1C=2C(CC)=C(C)NC=2CCC1CN1CCOCC1 KLPWJLBORRMFGK-UHFFFAOYSA-N 0.000 description 5
- 229940028394 moban Drugs 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013522 software testing Methods 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
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
技术领域
本申请涉及计算机技术领域,具体涉及一种自动化接口测试方法及装置。
背景技术
随着企业的发展和业务的扩张,企业必须不断更新或者开发更多的软件系统,以应对日益增加的客户需求。在客户对软件系统质量要求越来越高的今天,软件测试工作已成为各大企业保障系统质量的重要一环,其中自动化测试已经日益凸显出其在软件测试领域的重要性。各大互联网企业或者涉互联网相关企业,在软件开发测试过程中都在大力推行自动化进程,如能在软件测试过程中提升自动化程度,不仅能更好的保障系统的质量,也能为企业提升效率,节约成本。
接口测试是测试系统组件间接口的一种测试,接口测试主要用于检测外部系统与内部系统之间、以及内部系统中各子系统之间的交互点。接口测试通常包括前后台的交互测试、系统内部不同模块的交互测试、以及系统与系统之间的交互测试,通过接口测试能够保障系统内外部的正确性和稳定性。
目前的接口测试过程是,测试人员分析阅读需求方提供的接口说明文档,然后手工编写接口测试用例,再组装接口请求参数,最后利用开源接口测试工具或者接口测试脚本执行测试用例,将请求返回的响应结果和接口说明文档的输出结果进行比对。在该测试过程中,每一步都需要人工全程参与,测试效率较低。
发明内容
本申请实施例提供了一种自动化接口测试方法及装置,能够自动完成接口测试过程,提升测试效率。
有鉴于此,本申请第一方面提供了一种自动化接口测试方法,所述方法包括:
获取待测试接口对应的输入字段说明信息和输出字段说明信息;
根据所述输入字段说明信息和所述输出字段说明信息,构建所述待测试接口对应的接口定义规则表;
根据所述接口定义规则表,生成所述待测试接口对应的测试用例以及预期输出结果;
根据测试用例文法规则,生成所述测试用例对应的请求报文;
调用接口执行脚本向所述待测试接口发送所述请求报文,并获取所述待测试接口针对所述请求报文的响应结果;
根据所述响应结果与所述预期输出结果,确定所述待测试接口对应的测试结果。
可选的,所述接口定义规则表中包括所述待测试接口对应于不同字段的行内容,所述行内容中包括以下至少一种信息:接口名、输入标识或输出标识、嵌套层级、字段英文名、字段中文名、数据类型、数据长度、必输标识和数据取值;
所述根据所述接口定义规则表,生成所述待测试接口对应的测试用例以及预期输出结果;
根据所述接口定义规则表中包括所述输入标识的行内容,生成所述待测试接口对应的测试用例;
根据所述接口定义表中包括所述输出标识的行内容,生成所述预期输出结果。
可选的,所述根据所述接口定义规则表中包括所述输入标识的行内容,生成所述待测试接口对应的测试用例,包括:
读取所述接口名,填充到所述测试用例对应行的需求名称栏,并且设置对应的编号后缀填充到测试用例对应行的编号栏;
读取所述字段英文名和所述字段中文名,对所述字段英文名和所述字段中文名进行拼接处理得到目标字段名,填充到所述测试用例对应行的用例描述栏;
读取所述字段英文名、所述数据类型、所述数据长度、所述数据取值和所述必输标识,根据所述数据类型、所述数据长度、所述数据取值和所述必输性标识,构建所述测试用例对应的测试条件,填充到所述测试用例对应行的步骤栏。
可选的,所述根据所述接口定义表中包括所述输出标识的行内容,生成所述预期输出结果,包括:
判断所述数据取值是否为空;若是,则记录对应的所述预期输出结果;若否,则读取所述数据取值,根据所述数据取值记录对应的所述预期输出结果。
可选的,所述根据测试用例文法规则,生成所述测试用例对应的请求报文,包括:
针对所述待测试接口对应的每个所述测试用例,基于请求报文模板,根数据字段名、数据类型、符号和字段取值条件,生成所述测试用例对应的请求报文。
可选的,所述根据所述响应结果与所述预期输出结果,确定所述待测试接口对应的测试结果,包括:
将所述响应结果的字段名与所述预期输出结果的字段名进行对比,得到第一对比结果;
将所述响应结果中的字段值与所述预期输出结果中的字段值进行对比,得到第二对比结果;
根据所述第一对比结果和所述第二对比结果,生成所述待测试接口对应的测试结果。
本申请第二方面提供了一种自动化接口测试装置,所述装置包括:
需求获取模块,用于获取待测试接口对应的输入字段说明信息和输出字段说明信息;
规则表构建模块,用于根据所述输入字段说明信息和所述输出字段说明信息,构建所述待测试接口对应的接口定义规则表;
测试用例生成模块,用于根据所述接口定义规则表,生成所述待测试接口对应的测试用例以及预期输出结果;
请求报文生成模块,用于根据测试用例文法规则,生成所述测试用例对应的请求报文;
响应结果获取模块,用于调用接口执行脚本向所述待测试接口发送所述请求报文,并获取所述待测试接口针对所述请求报文的响应结果;
测试结果确定模块,用于根据所述响应结果与所述预期输出结果,确定所述待测试接口对应的测试结果。
可选的,所述接口定义规则表中包括所述待测试接口对应于不同字段的行内容,所述行内容中包括以下至少一种信息:接口名、输入标识或输出标识、嵌套层级、字段英文名、字段中文名、数据类型、数据长度、必输标识和数据取值;
所述测试用例生成模块包括:
测试用例生成子模块,用于根据所述接口定义规则表中包括所述输入标识的行内容,生成所述待测试接口对应的测试用例;
预期输出结果生成子模块,用于根据所述接口定义表中包括所述输出标识的行内容,生成所述预期输出结果。
可选的,所述测试用例生成子模块具体用于:
读取所述接口名,填充到所述测试用例对应行的需求名称栏,并且设置对应的编号后缀填充到测试用例对应行的编号栏;
读取所述字段英文名和所述字段中文名,对所述字段英文名和所述字段中文名进行拼接处理得到目标字段名,填充到所述测试用例对应行的用例描述栏;
读取所述字段英文名、所述数据类型、所述数据长度、所述数据取值和所述必输标识,根据所述数据类型、所述数据长度、所述数据取值和所述必输性标识,构建所述测试用例对应的测试条件,填充到所述测试用例对应行的步骤栏。
可选的,所述预期输出结果生成子模块具体用于:
判断所述数据取值是否为空;若是,则记录对应的所述预期输出结果;若否,则读取所述数据取值,根据所述数据取值记录对应的所述预期输出结果。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例提供了一种自动化接口测试方法,在该方法中,可以获取待测试接口对应的输入字段说明信息和输出字段说明信息,并且根据所获取的输入字段说明信息和输出字段说明信息,构建该待测试接口对应的接口定义规则表;然后,根据该接口定义规则表,生成该待测试接口对应的测试用例以及预期输出结果;接着,根据测试用例文法规则,生成该测试用例对应的请求报文;进而,调用接口测试脚本向待测试接口发送请求报文,并且获取该待测试接口针对该请求报文的响应结果;最终,根据该响应结果和预期输出结果,确定该待测试接口的测试结果。通过上述自动化接口测试方法,可以自动生成接口测试用例、组装接口请求报文,如此,可以更大程度的实现接口的自动化测试,节约了人工编写测试用例、组装接口请求报文的时间,提高接口测试效率。
附图说明
图1为本申请实施例提供的自动化接口测试方法的流程示意图;
图2为本申请实施例提供的自动化接口测试装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有技术中,目前主要通过以下方式实现接口测试:测试人员分析阅读需求方提供的接口说明文档,然后手工编写接口测试用例,再组装接口请求参数,最后利用开源接口测试工具或者接口测试脚本执行测试用例,将请求返回的响应结果和接口说明文档的输出结果进行比对。在该测试过程中,每一步都需要人工全程参与,测试效率较低。
针对上述现有技术存在的问题,本申请实施例提供了一种自动化接口测试方法,该方法能够实现自动化接口测试,有效地提高接口测试效率。
具体的,在本申请实施例提供的自动化接口测试方法中,可以获取待测试接口对应的输入字段说明信息和输出字段说明信息,并且根据所获取的输入字段说明信息和输出字段说明信息,构建该待测试接口对应的接口定义规则表;然后,根据该接口定义规则表,生成该待测试接口对应的测试用例以及预期输出结果;接着,根据测试用例文法规则,生成该测试用例对应的请求报文;进而,调用接口测试脚本向待测试接口发送请求报文,并且获取该待测试接口针对该请求报文的响应结果;最终,根据该响应结果和预期输出结果,确定该待测试接口的测试结果。通过上述自动化接口测试方法,可以自动生成接口测试用例、组装接口请求报文,如此,可以更大程度的实现接口的自动化测试,节约了人工编写测试用例、组装接口请求报文的时间,提高接口测试效率。
下面通过方法实施例对本申请提供的自动化接口测试方法进行详细介绍。
参见图1,图1为本申请实施例提供的自动化接口测试方法的流程示意图。如图1所示,该方法包括以下步骤:
步骤101:获取待测试接口对应的输入字段说明信息和输出字段说明信息。
示例性的,表1所示为待测试接口的需求文档中包括的该待测试接口对应的输入字段说明信息,表2为待测试接口的需求文件中包括的该待测接口对应的输出字段说明信息。
表1
表2
步骤102:根据所述输入字段说明信息和所述输出字段说明信息,构建所述待测试接口对应的接口定义规则表。
获取到输入字段说明信息和输出字段说明信息后,可以根据输入字段说明信息和输出字段说明信息,构建该待测试接口对应的接口定义规则表。示例性的,可以将接口定义按照统一规则保存到Excel文档中,并且定义嵌套层级记录接口定义中字段所在的嵌套层数,例如,表1中准入流水号在第一层,那么应收账款中的应收账款编号应当位于第二层,以此类推;接口定义规则表中,利用输入标识和输出标识来相应地标识是请求报文还是响应报文,请求报文里的字段以“input”标识,响应报文里的字段以“out”标识。
示例性的,可以根据表1所示的输入字段说明信息和表2所示的输出字段说明信息,构建表3所示的接口定义规则表。
表3
步骤103:根据所述接口定义规则表,生成所述待测试接口对应的测试用例以及预期输出结果。
进而,可以根据接口定义规则表,生成待测试接口对应的各条测试用例,以及各条测试用例各自对应的预期输出结果。
在一种可能的实现方式中,通过步骤102构建的接口定义表中可以包括待测试接口对应于不同字段的行内容,每个行内容中包括以下至少一种信息:接口名、输入标识或输出标识、嵌套层级、字段英文名、字段中文名、数据类型、数据长度、必输性标识和数据取值;此时,可以根据接口定义规则表中包括输入标识的行内容,生成待测试接口对应的测试用例;根据接口定义表中包括输出标识的行内容,生成预期输出结果。
具体生成测试接口对应的测试用例时,可以读取接口名,填充到测试用例对应行的需求名称栏,并且设置对应的编号后缀填充到测试用例对应行的编号栏;读取字段英文名和字段中文名,对字段英文名和字段中文名进行拼接处理得到目标字段名,填充到测试用例对应行的用例描述栏;读取字段英文名、数据类型、数据长度、数据取值和必输性标识,根据数据类型、数据长度、数据取值和必输标识,构建测试用例对应的测试条件,填充到测试用例对应行的步骤栏。
下面结合上文中表4所示的接口定义规则表,对上述测试用例的生成过程进行示例性介绍。
对于包括输入标识input的行内容,执行以下操作:
读取接口名,填充到测试用例对应行的需求名称栏;加上对应的编号后缀如001,填充到测试用例对应行的编号栏。
读取字段中文名和字段英文名,拼接为“字段中文名-字段英文名”作为目标字段名,将其填充到测试用例对应行的用例描述栏。
读取字段英文名、数据类型、数据长度、数据取值和必输标识时,分为以下几种实现情况:
(1)数据类型为string、数据长度为n、必输标识为Y、数据取值为空时,可以分别生成字段英文名输入字符长度大于n、字段英文名输入字符长度等于n、字段英文名输入字符长度小于n、字段英文名输入字符为空的测试条件。
(2)数据类型为String、数据长度为n、必输标识为Y、数据取值为VAR时,可以分别生成字段英文名输入字符等于VAR、字段英文名输入字符长度大于n、字段英文名输入字符长度等于n、字段英文名输入字符为空的测试条件。
(3)数据类型为Integer、数据长度为n、必输标识为Y、数据取值为VAR时,可以分别生成字段英文名输入等于VAR、字段英文名输入数字长度大于n、字段英文名输入数字长度等于n、字段英文名输入等于0的测试条件。
(4)数据类型为Integer、数据长度为n、必输标识为空时,可以分别生成字段英文名输入数字长度小于n、字段英文名输入数字长度大于n、字段英文名输入数字长度等于n、字段英文名输入等于0的测试条件。
(5)数据类型为BigDecimal、数据长度为(m,n)、必输标识为Y、数据取值为VAR时,可以分别生成字段英文名输入等于VAR、字段英文名输入小数长度大于n、字段英文名输入小数长度等于n、字段英文名输入等于0的测试条件。
(6)数据类型为BigDecimal、数据长度为n、必输标识为空时,可以分别生成字段英文名输入小数长度小于n、字段英文名输入小数长度大于n、字段英文名输入小数长度等于n、字段英文名输入等于0的测试条件。
将上述测试条件依次填充到测试用例对应行的步骤栏中。
具体生成预期输出结果时,可以判断数据取值是否为空,若是,则记录对应的预期输出结果;若否,则读取该数据取值,根据该数据取值记录对应的预期输出结果。
即,判断数据取值是否为空,若为空,则记录该输出字段;若不为空,则读取该字段的数据取值,并记录该字段等于该数据取值。处理完所有输出字段,可以生成返回字段(VAR1、VAR2=Y、...、VARn),并将其填入与其输出结果栏。
步骤104:根据测试用例文法规则,生成所述测试用例对应的请求报文。
根据接口定义规则表生成测试用例之后,为了达到自动化测试的目的,还需要进一步的处理,即根据测试用例文法规则,生成测试用例对应的请求报文。
下面结合上文中的表1,对人工生成请求报文时的实现过程进行介绍。
首先按顺序读取表1,首先读取到第一行如为输入,则记录请求报文request=“{”
1)读取字段英文名、数据类型、数据长度、数据取值和嵌套层级level1。
2)判断数据类型,数据长度,数据取值:
若都为空,则在request后面追加“,name1:”;
若都不为空,则继续判断数据取值:
若数据取值为X,不为空,则记录value1=X;
若数据取值为空,则判断数据类型和数据长度,value1获取方式如下:若数据类型为String、数据长度为n,则随机生成n个字符,记录value=n个字符;若数据类型为BigDecimal、数据长度为(m,n),则生成值为m+n的数字,记录value=m+n个数字;若数据类型为Integer、数据长度为n,则生成值为n个数字,记录value=n个数字。
3)在request后面追加“,name1:value1”,并记录嵌套层级level。
4)往下依次读取下一行输入的字段英文名、数据类型、数据长度、数据取值和嵌套层级level2。
5)判断嵌套层级level2:
若level2=level1,则执行上述步骤2)和3),以更新request;
若level2-level1=1,则先在request后面追加一个“{”,进而再执行上述步骤2)和3),以更新request;
若嵌套level2<level1,则执行上述步骤2)和3),以更新request,在request后面追加(level1-level2)个“}”;
若读取到输出标识out,则读取level2,然后在request后面追加((level1-leve2)+1)个“}”,然后停止执行。
完成上述处理后,可生成如下的请求报文模板:request=“{,name1:value1,name2:value2,name3:{name4:value4}},...,nameX:valueX}”,将request报文中第一个逗号去掉,就可以得到完整的请求报文request。
上述request可以作为正向测试用例的请求报文模板,也可以作为反向测试用例的请求报文模板,接下来,可以根据通过步骤103生成的测试用例,利用request模板生成所有测试用例的请求报文。即可以针对待测试接口对应的每个测试用例,基于请求报文request模板,根据数据字段名、数据类型、符号和字段取值条件,生成测试用例对应的请求报文。
依次读取测试用例每一行,取测试用例中测试输入栏中的值,根据生成规则可知总共有以下几种文法:
1)字段英文名输入字符长度大于n
2)字段英文名输入字符长度等于n
3)字段英文名输入字符长度小于n
4)字段英文名输入字符=空
5)字段英文名输入字符=VAR
6)字段英文名输入数字长度小于n
7)字段英文名输入数字长度大于n
8)字段英文名输入数字长度等于n
9)字段英文名输入=0
10)字段英文名输入数字=VAR
11)字段英文名输入小数长度小于n
12)字段英文名输入小数长度大于n
13)字段英文名输入小数长度等于n
14)字段英文名输入小数=VAR
由以上文法可以归纳出以下通用规则:{字段名数据类型符号字段取值条件},可细分为以下6类规则:
{字段名字符符号值长度}
{字段名字符符号值}
{字段名数字符号值长度}
{字段名数字符号值}
{字段名小数符号值长度}
{字段名小数符号值}
根据以上6类规则,可以生成变量名对应的值,伪代码如下:
if(数据类型为字符&&符号为大于){
随机生成长度为n+1的字符串并赋值给value;
}else if(数据类型为字符&&符号为小于或者等于){
随机生成长度为n的字符串并赋值给value;
}else if(数据类型为数字&&符号为小于或者等于){
随机生成长度为n的数字串并赋值给value;
}else if(数据类型为数字&&符号为小于或者等于){
随机生成长度为n的数字串并赋值给value;
}else if(数据类型为小数&&符号为小于或者等于){
随机生成长度为n的数字串并赋值给value;
}else if(数据类型为小数&&符号为小于或者等于){
随机生成长度为n的数字串并赋值给value;
}else if(数据类型为小数&&符号为=){
if(值含有时间格式(YYMMDD||YY/MM/DD)){
按时间格式生成当前日期赋值给value;
}else{
value=值
}
}
获取到字段值之后,根据字段英文名在request模板中request={name1:value1,name2:value2,name3:{name4:value4},...,nameX:valueX},找到对应的字段,并用value去替换valueX,便可以得到对应测试用例的请求报文。
由于java中基础类型只有四大类八种数据类型:整型(byte、short、int、long)、浮点型(float、double)、逻辑型(true、false)、字符型(char),对应数字,字符,布尔型(取值只有true和false),总共取值范围罗列可能性几十种,因此上面伪代码生成所有字段的值是可行的。
步骤105:调用接口执行脚本向所述待测试接口发送所述请求报文,并获取所述待测试接口针对所述请求报文的响应结果。
获取到测试用例对应的请求报文后,可以直接调用接口执行脚本,向待测试接口对应的请求地址发送所生成的请求报文,进而,获取待测试接口针对该请求报文的响应结果,可以将其记为response,自此完成对于待测试接口的调用。
步骤106:根据所述响应结果与所述预期输出结果,确定所述待测试接口对应的测试结果。
最终,对比通过步骤105获取到的响应结果和预期数据结果,从而根据对比结果确定待测试接口对应的测试结果。
具体实现时,可以将响应结果的字段名与预期输出结果的字段名进行对比,得到第一对比结果;将响应结果中的字段值与预期输出结果中的字段值进行对比,得到第二对比结果;最终,根据第一对比结果和第二对比结果,生成待测试接口对应的测试结果。
即将预期输出结果的字段名和实际响应结果的字段名依次进行对比,如有差异,则输出差异;将预期输出结果中的字段值和实际响应结果中的字段值依次进行对比,如有差异,则输出差异。
上述本申请实施例提供的自动化接口测试方法,从需求文档定义完成之后,即可以完全实现接口的自动化测试,不仅学习成本低,使用方法简单,并且还能在更大程度上实现测试自动化,提升测试效率。
本申请实施例还提供了一种自动化接口测试装置,参见图2,图2为本申请实施例提供的自动化接口测试装置的结构示意图。如图2所示,该装置包括:
需求获取模块201,用于获取待测试接口对应的输入字段说明信息和输出字段说明信息;
规则表构建模块202,用于根据所述输入字段说明信息和所述输出字段说明信息,构建所述待测试接口对应的接口定义规则表;
测试用例生成模块203,用于根据所述接口定义规则表,生成所述待测试接口对应的测试用例以及预期输出结果;
请求报文生成模块204,用于根据测试用例文法规则,生成所述测试用例对应的请求报文;
响应结果获取模块205,用于调用接口执行脚本向所述待测试接口发送所述请求报文,并获取所述待测试接口针对所述请求报文的响应结果;
测试结果确定模块206,用于根据所述响应结果与所述预期输出结果,确定所述待测试接口对应的测试结果。
可选的,所述接口定义规则表中包括所述待测试接口对应于不同字段的行内容,所述行内容中包括以下至少一种信息:接口名、输入标识或输出标识、嵌套层级、字段英文名、字段中文名、数据类型、数据长度、必输标识和数据取值;所述测试用例生成模块203包括:
测试用例生成子模块,用于根据所述接口定义规则表中包括所述输入标识的行内容,生成所述待测试接口对应的测试用例;
预期输出结果生成子模块,用于根据所述接口定义表中包括所述输出标识的行内容,生成所述预期输出结果。
可选的,所述测试用例生成子模块具体用于:
读取所述接口名,填充到所述测试用例对应行的需求名称栏,并且设置对应的编号后缀填充到测试用例对应行的编号栏;
读取所述字段英文名和所述字段中文名,对所述字段英文名和所述字段中文名进行拼接处理得到目标字段名,填充到所述测试用例对应行的用例描述栏;
读取所述字段英文名、所述数据类型、所述数据长度、所述数据取值和所述必输标识,根据所述数据类型、所述数据长度、所述数据取值和所述必输性标识,构建所述测试用例对应的测试条件,填充到所述测试用例对应行的步骤栏。
可选的,所述预期输出结果生成子模块具体用于:
判断所述数据取值是否为空;若是,则记录对应的所述预期输出结果;若否,则读取所述数据取值,根据所述数据取值记录对应的所述预期输出结果。
可选的,所述请求报文生成模块具体用于:
针对所述待测试接口对应的每个所述测试用例,基于请求报文模板,根数据字段名、数据类型、符号和字段取值条件,生成所述测试用例对应的请求报文。
可选的,所述测试结果确定模块具体用于:
将所述响应结果的字段名与所述预期输出结果的字段名进行对比,得到第一对比结果;
将所述响应结果中的字段值与所述预期输出结果中的字段值进行对比,得到第二对比结果;
根据所述第一对比结果和所述第二对比结果,生成所述待测试接口对应的测试结果。
上述本申请实施例提供的自动化接口测试装置,从需求文档定义完成之后,即可以完全实现接口的自动化测试,不仅学习成本低,使用方法简单,并且还能在更大程度上实现测试自动化,提升测试效率。
本申请实施例还提供一种计算机可读存储介质,用于存储程序代码,该程序代码用于执行前述各个实施例所述的一种自动化接口测试方法中的任意一种实施方式。
本申请实施例还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例所述的一种自动化接口测试方法中的任意一种实施方式。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储计算机程序的介质。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (5)
1.一种自动化接口测试方法,其特征在于,所述方法包括:
获取待测试接口对应的输入字段说明信息和输出字段说明信息,待测试接口对应的输入字段包括:准入流水号、应收账款编号;
根据所述输入字段说明信息和所述输出字段说明信息,构建所述待测试接口对应的接口定义规则表,所述接口定义规则表中包括所述待测试接口对应于不同字段的行内容,所述行内容中包括以下至少一种信息:接口名、输入标识或输出标识、嵌套层级、字段英文名、字段中文名、数据类型、数据长度、必输标识和数据取值,所述嵌套层级用于记录接口定义中字段所在的嵌套层数;
根据所述接口定义规则表中包括所述输入标识的行内容,生成所述待测试接口对应的测试用例;
所述根据所述接口定义规则表中包括所述输入标识的行内容,生成所述待测试接口对应的测试用例,包括:
读取所述接口名,填充到所述测试用例对应行的需求名称栏,并且设置对应的编号后缀填充到测试用例对应行的编号栏;
读取所述字段英文名和所述字段中文名,对所述字段英文名和所述字段中文名进行拼接处理得到目标字段名,填充到所述测试用例对应行的用例描述栏;
读取所述字段英文名、所述数据类型、所述数据长度、所述数据取值和所述必输标识,根据所述数据类型、所述数据长度、所述数据取值和所述必输标识这四个属性信息组合起来的不同情况,构建所述测试用例对应的测试条件,填充到所述测试用例对应行的步骤栏,所述测试用例对应的测试条件为所述接口定义规则表中的输入字段对应的测试条件;
根据所述接口定义规则表中包括所述输出标识的行内容,生成预期输出结果;
根据测试用例文法规则,生成所述测试用例对应的请求报文;所述测试用例文法规则包括数据字段名、数据类型、符号和字段取值条件;
调用接口执行脚本向所述待测试接口发送所述请求报文,并获取所述待测试接口针对所述请求报文的响应结果;
根据所述响应结果与所述预期输出结果,确定所述待测试接口对应的测试结果;
所述根据测试用例文法规则,生成所述测试用例对应的请求报文包括:
针对所述待测试接口对应的每个所述测试用例,基于请求报文request模板,按照所述输入字段说明信息中的嵌套层级,根据所述测试用例文法规则,生成所述测试用例对应的请求报文。
2.根据权利要求1所述的方法,其特征在于,所述根据所述接口定义规则表中包括所述输出标识的行内容,生成预期输出结果,包括:
判断所述数据取值是否为空;若是,则记录对应的所述预期输出结果;若否,则读取所述数据取值,根据所述数据取值记录对应的所述预期输出结果。
3.根据权利要求1所述的方法,其特征在于,所述根据所述响应结果与所述预期输出结果,确定所述待测试接口对应的测试结果,包括:
将所述响应结果的字段名与所述预期输出结果的字段名进行对比,得到第一对比结果;
将所述响应结果中的字段值与所述预期输出结果中的字段值进行对比,得到第二对比结果;
根据所述第一对比结果和所述第二对比结果,生成所述待测试接口对应的测试结果。
4.一种自动化接口测试装置,其特征在于,所述装置包括:
需求获取模块,用于获取待测试接口对应的输入字段说明信息和输出字段说明信息,待测试接口对应的输入字段包括:准入流水号、应收账款编号;
规则表构建模块,用于根据所述输入字段说明信息和所述输出字段说明信息,构建所述待测试接口对应的接口定义规则表,所述接口定义规则表中包括所述待测试接口对应于不同字段的行内容,所述行内容中包括以下至少一种信息:接口名、输入标识或输出标识、嵌套层级、字段英文名、字段中文名、数据类型、数据长度、必输标识和数据取值,所述嵌套层级用于记录接口定义中字段所在的嵌套层数;
测试用例生成子模块,用于根据所述接口定义规则表中包括所述输入标识的行内容,生成所述待测试接口对应的测试用例;
所述测试用例生成子模块还用于:
读取所述接口名,填充到所述测试用例对应行的需求名称栏,并且设置对应的编号后缀填充到测试用例对应行的编号栏;
读取所述字段英文名和所述字段中文名,对所述字段英文名和所述字段中文名进行拼接处理得到目标字段名,填充到所述测试用例对应行的用例描述栏;
读取所述字段英文名、所述数据类型、所述数据长度、所述数据取值和所述必输标识,根据所述数据类型、所述数据长度、所述数据取值和所述必输标识这四个属性信息组合起来的不同情况,构建所述测试用例对应的测试条件,填充到所述测试用例对应行的步骤栏,所述测试用例对应的测试条件为所述接口定义规则表中的输入字段对应的测试条件;
预期输出结果生成子模块,用于根据所述接口定义规则表中包括所述输出标识的行内容,生成预期输出结果;
请求报文生成模块,用于根据测试用例文法规则,生成所述测试用例对应的请求报文;所述测试用例文法规则包括数据字段名、数据类型、符号和字段取值条件;
响应结果获取模块,用于调用接口执行脚本向所述待测试接口发送所述请求报文,并获取所述待测试接口针对所述请求报文的响应结果;
测试结果确定模块,用于根据所述响应结果与所述预期输出结果,确定所述待测试接口对应的测试结果;
所述请求报文生成模块还用于:
针对所述待测试接口对应的每个所述测试用例,基于请求报文request模板,按照所述输入字段说明信息中的嵌套层级,根据所述测试用例文法规则,生成所述测试用例对应的请求报文。
5.根据权利要求4所述的装置,其特征在于,所述预期输出结果生成子模块具体用于:
判断所述数据取值是否为空;若是,则记录对应的所述预期输出结果;若否,则读取所述数据取值,根据所述数据取值记录对应的所述预期输出结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011569167.1A CN112597033B (zh) | 2020-12-26 | 2020-12-26 | 一种自动化接口测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011569167.1A CN112597033B (zh) | 2020-12-26 | 2020-12-26 | 一种自动化接口测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112597033A CN112597033A (zh) | 2021-04-02 |
CN112597033B true CN112597033B (zh) | 2024-08-06 |
Family
ID=75202536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011569167.1A Active CN112597033B (zh) | 2020-12-26 | 2020-12-26 | 一种自动化接口测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112597033B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113542416B (zh) * | 2021-07-16 | 2022-10-21 | 中国银行股份有限公司 | 一种报文收发方法和装置 |
CN114064486B (zh) * | 2021-11-18 | 2023-07-18 | 北京京航计算通讯研究所 | 一种接口自动化测试方法 |
CN116561014B (zh) * | 2023-07-07 | 2023-09-29 | 国电南瑞科技股份有限公司 | 一种电力二次设备测试用例的生成装置及测试方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287113A (zh) * | 2019-06-25 | 2019-09-27 | 四川长虹电器股份有限公司 | 自动化接口测试方法 |
CN110990276A (zh) * | 2019-11-29 | 2020-04-10 | 泰康保险集团股份有限公司 | 接口字段自动化测试方法、装置和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189666A (zh) * | 2018-08-02 | 2019-01-11 | 腾讯科技(北京)有限公司 | 接口测试方法、装置和计算机设备 |
CN109474488B (zh) * | 2018-10-31 | 2020-10-27 | 中国银行股份有限公司 | 接口测试方法、装置及计算机设备 |
CN110716870B (zh) * | 2019-09-23 | 2023-01-31 | 中国建设银行股份有限公司 | 服务的自动化测试方法及装置 |
CN110806973A (zh) * | 2019-10-11 | 2020-02-18 | 苏宁云计算有限公司 | 一种接口报文的自动生成方法及装置 |
-
2020
- 2020-12-26 CN CN202011569167.1A patent/CN112597033B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287113A (zh) * | 2019-06-25 | 2019-09-27 | 四川长虹电器股份有限公司 | 自动化接口测试方法 |
CN110990276A (zh) * | 2019-11-29 | 2020-04-10 | 泰康保险集团股份有限公司 | 接口字段自动化测试方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112597033A (zh) | 2021-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112597033B (zh) | 一种自动化接口测试方法及装置 | |
CN111367886B (zh) | 数据库中数据迁移的方法及装置 | |
CN107807982B (zh) | 一种异构数据库的一致性校验方法及装置 | |
CN107665171B (zh) | 自动回归测试方法及装置 | |
CN102831052B (zh) | 测试用例自动化生成装置及方法 | |
CN111813680B (zh) | 测试脚本的生成方法、装置、计算机设备和存储介质 | |
CN105446865A (zh) | 多种环境下的测试方法及装置 | |
CN111159040A (zh) | 一种测试数据生成方法、装置、设备及存储介质 | |
CN112181854A (zh) | 一种生成流程自动化脚本的方法、装置、设备及存储介质 | |
CN115567607A (zh) | 调用链路的处理方法、装置、系统、电子设备及存储介质 | |
CN113836014A (zh) | 一种接口测试方法、装置、电子设备和存储介质 | |
CN113032275A (zh) | 字段测试方法、装置、电子设备及存储介质 | |
CN111339055B (zh) | 大数据集群扩容方法及装置 | |
CN111124883B (zh) | 一种基于树形表格的测试用例库引入方法、系统及设备 | |
CN110727828B (zh) | 一种业务功能执行方法、装置、电子设备及存储介质 | |
CN116089275A (zh) | 数据库测试方法、数据库系统、电子设备和存储介质 | |
CN1115628C (zh) | 一种软件模拟测试方法 | |
CN114385155A (zh) | vue项目可视化工具生成方法、装置、设备及存储介质 | |
CN109992293B (zh) | Android系统组件版本信息的组装方法及装置 | |
CN112749061B (zh) | 一种日志记录方法和系统 | |
CN115567444B (zh) | 一种控制器路由地址查找调用方法及系统 | |
CN118349479B (zh) | 一种自动生成测试用例的报文和断言的方法及装置 | |
CN112948266B (zh) | 一种数据库语法测试系统、方法、装置、设备及存储介质 | |
CN113742225B (zh) | 一种测试数据生成方法、装置、设备及存储介质 | |
CN113792048B (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 |