CN107203466B - Api测试方法和装置 - Google Patents

Api测试方法和装置 Download PDF

Info

Publication number
CN107203466B
CN107203466B CN201610158553.9A CN201610158553A CN107203466B CN 107203466 B CN107203466 B CN 107203466B CN 201610158553 A CN201610158553 A CN 201610158553A CN 107203466 B CN107203466 B CN 107203466B
Authority
CN
China
Prior art keywords
node
test
data
node path
fixed format
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.)
Expired - Fee Related
Application number
CN201610158553.9A
Other languages
English (en)
Other versions
CN107203466A (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.)
Midea Group Co Ltd
Original Assignee
Midea Group Co Ltd
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 Midea Group Co Ltd filed Critical Midea Group Co Ltd
Priority to CN201610158553.9A priority Critical patent/CN107203466B/zh
Publication of CN107203466A publication Critical patent/CN107203466A/zh
Application granted granted Critical
Publication of CN107203466B publication Critical patent/CN107203466B/zh
Expired - Fee Related 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/3688Test management for test execution, e.g. scheduling of test suites
    • 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/3692Test management for test results analysis

Abstract

本发明公开了一种API测试方法和装置,其中,所述方法包括以下步骤:获取测试数据,其中,测试数据是解析API的返回数据后得到的;提取测试数据中的多个节点路径,并将多个节点路径添加至节点路径集合;遍历节点路径集合,对节点路径集合中的多个节点路径以及多个节点路径对应的节点值进行验证;以及根据验证结果生成测试数据的测试结果。由此,本发明实施例的API测试方法,能够自动验证测试数据并返回测试结果,无需人为干扰,在给用户带来便利的同时,还提高了效率和精准度,从而提升了用户体验。

Description

API测试方法和装置
技术领域
本发明涉及API测试技术领域,具体涉及一种API测试方法和一种API测试装置。
背景技术
API(Application Programming Interface,应用编程接口)作为系统的重要组成部分,也是系统测试过程中必不可少的一个环节。
目前,API测试是一种作为集成测试的一部分,通过直接控制被测应用的接口(API)来确定是否在功能、可靠性、性能和安全方面达到预期的软件测试活动。由于API都没有GUI(Graphical User Interface,图形用户接口)界面,API测试都是在通讯层进行的。在现有的API测试过程当中,一般都需要人为的去确认API的返回数据是否正确,这无疑增加了测试人员的工作强度,并且效率和精准度较低。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种API测试方法,该方法能够自动验证测试数据并返回测试结果,无需人为干扰,在给用户带来便利的同时,还提高了效率和精准度,从而提升了用户体验。
本发明的第二个目的在于提出一种API测试装置。
为实现上述目的,本发明第一方面实施例提出了一种API测试方法,包括以下步骤:获取测试数据,其中,所述测试数据是解析API的返回数据后得到的;提取所述测试数据中的多个节点路径,并将所述多个节点路径添加至节点路径集合;遍历所述节点路径集合,对所述节点路径集合中的多个节点路径以及所述多个节点路径对应的节点值进行验证;以及根据验证结果生成所述测试数据的测试结果。
根据本发明实施例的API测试方法,通过获取测试数据,提取测试数据中的多个节点路径,并将多个节点路径添加至节点路径集合,而后遍历节点路径集合,对节点路径集合中的多个节点路径以及多个节点路径对应的节点值进行验证,以及根据验证结果生成测试数据的测试结果,由此,该方法能够自动验证测试数据并返回测试结果,无需人为干扰,在给用户带来便利的同时,还提高了效率和精准度,从而提升了用户体验。
另外,根据本发明上述API测试方法还可以具有如下附加的技术特征:
在本发明的一个实施例中,所述对所述节点路径集合中的多个节点路径以及所述多个节点路径对应的节点值进行验证,包括:判断所述节点路径集合中的当前节点路径是否存在;若所述当前节点路径存在,则根据所述当前节点路径获取所述当前节点路径对应的节点值;将所述当前节点路径对应的节点值与预期节点值进行比较,以判断所述当前节点路径以及所述当前节点路径对应的节点值是否符合预设要求。
在本发明的一个实施例中,在所述判断所述节点路径集合中的当前节点路径是否存在之后,还包括:若所述当前节点路径不存在,则判断所述当前节点路径验证失败,并进一步判断所述当前节点路径的下一个节点路径是否存在。
在本发明的一个实施例中,上述API测试方法还包括:若所述节点路径集合的所述多个节点路径中验证失败的节点路径的数量超过预设阈值时,生成所述测试数据测试失败的测试结果。
在本发明的一个实施例中,在所述获取测试数据之前,还包括:编写多个固定格式的测试方法,其中,所述多个固定格式的测试方法具有不同的名称和注释;根据所述固定格式的测试方法的名称和注释配置请求报文,并编写所述请求报文对应的请求数据文件;根据所述请求报文和所述请求数据文件执行所述固定格式的测试方法,并判断所述固定格式的测试方法是否执行成功;如果所述固定格式的测试方法执行成功,则根据所述固定格式的测试方法对应的预期数据对所述测试数据进行测试。
在本发明的一个实施例中,所述请求报文为Excel文件,所述请求数据文件为JSON文件,所述预期数据和所述测试数据均为JSON数据。
在本发明的一个实施例中,通过配置文件来确定所述请求数据的加密方案。
在本发明的一个实施例中,上述API测试方法还包括:如果所述固定格式的测试方法执行失败,则终止执行后续的所述固定格式的测试方法,并对所述固定格式的测试方法、所述请求报文和请求数据文件中的至少一个进行检测和修改。
在本发明的一个实施例中,所述请求报文包含方法名称、接口描述、接口请求地址和请求方式。
为实现上述目的,本发明第二方面实施例提出了一种API测试装置,包括:获取模块,用于获取测试数据,其中,所述测试数据是解析API的返回数据后得到的;提取模块,用于提取所述测试数据中的多个节点路径,并将所述多个节点路径添加至节点路径集合;验证模块,用于遍历所述节点路径集合,对所述节点路径集合中的多个节点路径以及所述多个节点路径对应的节点值进行验证;以及生成模块,用于根据验证结果生成所述测试数据的测试结果。
根据本发明实施例的API测试装置,通过获取模块获取测试数据,并通过提取模块提取测试数据中的多个节点路径,并将多个节点路径添加至节点路径集合,而后通过遍历模块历节点路径集合,对节点路径集合中的多个节点路径以及多个节点路径对应的节点值进行验证,以及生成模块根据验证结果生成测试数据的测试结果。由此,该装置能够自动验证测试数据并返回测试结果,无需人为干扰,在给用户带来便利的同时,还提高了效率和精准度,从而提升了用户体验。
另外,根据本发明上述API测试装置还可以具有如下附加的技术特征:
在本发明的一个实施例中,所述验证模块,包括:第一判断单元,用于判断所述节点路径集合中的当前节点路径是否存在;获取单元,用于若所述当前节点路径存在,则根据所述当前节点路径获取所述当前节点路径对应的节点值;第二判断单元,用于将所述当前节点路径对应的节点值与预期节点值进行比较,以判断所述当前节点路径以及所述当前节点路径对应的节点值是否符合预设要求。
在本发明的一个实施例中,所述验证模块,还包括:第三判断单元,用于若所述当前节点路径不存在,则判断所述当前节点路径验证失败,并进一步判断所述当前节点路径的下一个节点路径是否存在。
在本发明的一个实施例中,所述验证模块,还包括:生成单元,用于在所述节点路径集合的所述多个节点路径中验证失败的节点路径的数量超过预设阈值时,生成所述测试数据测试失败的测试结果。
在本发明的一个实施例中,上述API测试装置还包括:编写模块,用于编写多个固定格式的测试方法,其中,所述多个固定格式的测试方法具有不同的名称和注释;配置模块,用于根据所述固定格式的测试方法的名称和注释配置请求报文,并编写所述请求报文对应的请求数据文件;判断模块,用于根据所述请求报文和所述请求数据文件执行所述固定格式的测试方法,并判断所述固定格式的测试方法是否执行成功;测试模块,用于在所述固定格式的测试方法执行成功时,根据所述固定格式的测试方法对应的预期数据对所述测试数据进行测试。
在本发明的一个实施例中,所述请求报文为Excel文件,所述请求数据文件为JSON文件,所述预期数据和所述测试数据均为JSON数据。
在本发明的一个实施例中,通过配置文件来确定所述请求数据的加密方案。
在本发明的一个实施例中,上述API测试装置还包括:修改模块,用于在所述固定格式的测试方法执行失败时,终止执行后续的所述固定格式的测试方法,并对所述固定格式的测试方法、所述请求报文和请求数据文件中的至少一个进行检测和修改。
在本发明的一个实施例中,所述请求报文包含方法名称、接口描述、接口请求地址和请求方式。
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1是根据本发明一个实施例的API测试方法的流程图。
图2是根据本发明另一个实施例的API测试方法的流程图。
图3是根据本发明一个实施例的固定格式的测试方法的代码示意图。
图4是根据本发明一个实施例的请求文件的示意图。
图5是根据本发明一个实施例的固定格式的测试方法执行输出结果示意图。
图6是根据本发明一个实施例的API测试装置的方框示意图。
图7是根据本发明另一个实施例的API测试装置的方框示意图。
图8是根据本发明又一个实施例的API测试装置的方框示意图。
图9是根据本发明再一个实施例的API测试装置的方框示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图来描述根据本发明实施例提出的API测试方法和装置。
图1为根据本发明一个实施例的API测试方法的流程图。
如图1所示,本发明实施例的API测试方法,包括以下步骤:
S1,获取测试数据。
其中,测试数据是解析API的返回数据后得到的,测试数据可为JSON数据。
在本发明的一个实施例中,如图2所示,在获取测试数据之前,还可以包括以下步骤:
S101,编写多个固定格式的测试方法,其中,多个固定格式的测试方法具有不同的名称和注释。
具体地,上述API测试方法可提供一段固定格式的测试代码,用户可以通过将该段固定格式的测试代码进行粘贴复制,并修改其名称和注释,来编写多个固定格式的测试方法,其中,多个固定格式的测试方法具有不同的名称和注释。例如,如图3所示,是用户登录API的测试方法。由此,用户即使不会编程,也可以轻松编写自动化测试代码,以便完成接口(API)自动化的测试。
S102,根据固定格式的测试方法的名称和注释配置请求报文,并编写请求报文对应的请求数据文件。其中,请求报文可包含方法名称、接口描述、接口请求地址和请求方式等,并且请求报文可为Excel文件,请求数据文件可为JSON文件,并且请求数据文件中含有测试参数。
需要理解的是,如图4所示,请求报文中的方法名称与固定格式的测试方法的名称相同,并且一一对应,接口描述可与固定格式的测试方法的注释相同,以便固定格式的测试方法在测试的时候顺利的连接待测的API。
在本发明的实施例中,可通过配置文件来确定请求数据的加密方案,其中,配置文件可为Parameters.xml文件。
S103,根据请求报文和请求数据文件执行固定格式的测试方法,并判断固定格式的测试方法是否执行成功。
具体地,根据请求报文找到相应的待测API,然后将请求数据文件中的参数代入待测的API中并执行相应的固定格式的测试方法,以及根据输出结果判断该固定格式的测试方法是否执行成功。例如,如图5所示,如果输出结果中包含请求返回参数,则表明该固定格式的测试方法执行成功,否则执行失败。
进一步地,在本发明的一个实施例中,如果固定格式的测试方法执行失败,则终止执行后续的固定格式的测试方法,并对固定格式的测试方法、请求报文和请求数据文件中的至少一个进行检测和修改。
S104,如果固定格式的测试方法执行成功,则根据固定格式的测试方法对应的预期数据对测试数据进行测试。其中,预期数据是用户根据实际情况进行编写的,预期数据可为JSON数据。
S2,提取测试数据中的多个节点路径,并将多个节点路径添加至节点路径集合。
S3,遍历节点路径集合,对节点路径集合中的多个节点路径以及多个节点路径对应的节点值进行验证。
在本发明的一个实施例中,对节点路径集合中的多个节点路径以及多个节点路径对应的节点值进行验证,具体可包括,判断节点路径集合中的当前节点路径是否存在,若当前节点路径存在,则根据当前节点路径获取当前节点路径对应的节点值,并将当前节点路径对应的节点值与预期节点值进行比较,以判断当前节点路径以及当前节点路径对应的节点值是否符合预设要求,其中,预设要求可根据实际情况进行标定;若当前节点路径不存在,则判断当前节点路径验证失败,并进一步判断当前节点路径的下一个节点路径是否存在。其中,需要理解的是,上述预期节点值是从预期数据中解析而来的。
在本发明的另一个实施例中,上述API测试方法还可包括:若节点路径集合的多个节点路径中验证失败的节点路径的数量超过预设阈值时,生成测试数据测试失败的测试结果。其中,预设阀值可根据实际情况进行标定,例如,预设阀值可为2。
举例而言,判断节点路径集合中的当前节点路径是否存在,若当前节点路径不存在,则可将本次验证标记为“FAIL”,并且抛出异常,同时进入下一个循环,继续判断下一个节点路径;若当前节点路径存在,则可根据当前节点路径获取当前节点路径对应的节点值,并将当前节点路径对应的节点值与预期节点值进行比较,如果该节点值与预期节点值相等,则可将本次验证标记为“PASS”,如果该节点值与预期节点值不相等,则可将本次验证标记为“FAIL”,同时进入下一个循环,继续判断下一个节点路径,直至出现标记为“FAIL”的次数大于或等于预设阀值(例如2),或者节点路径集合遍历完毕,则该API的测试结束,并生成相应的测试结果。由此,能够自动验证测试数据并返回测试结果,无需人为干扰,在给用户带来便利的同时,还提高了效率和精准度,从而提升了用户体验。
S4,根据验证结果生成测试数据的测试结果。
根据本发明实施例的API测试方法,通过获取测试数据,提取测试数据中的多个节点路径,并将多个节点路径添加至节点路径集合,而后遍历节点路径集合,对节点路径集合中的多个节点路径以及多个节点路径对应的节点值进行验证,以及根据验证结果生成测试数据的测试结果,由此,能够自动验证测试数据并返回测试结果,无需人为干扰,在给用户带来便利的同时,还提高了效率和精准度,从而提升了用户体验。
为了实现上述实施例,本发明还提出一种API测试装置。
图6是根据本发明一个实施例的API测试装置的方框示意图。
如图6所示,该API测试装置包括获取模块100、提取模块200、验证模块300和生成模块400。
具体地,获取模块100用于获取测试数据。
其中,测试数据是解析API的返回数据后得到的,测试数据可为JSON数据。
在本发明的一个实施例中,如图7所示,上述API测试装置还可包括编写模块500、配置模块600、判断模块700和测试模块800。
具体地,编写模块500用于编写多个固定格式的测试方法,其中,多个固定格式的测试方法具有不同的名称和注释。
具体地,编写模块500可提供一段固定格式的测试代码,用户可以通过将该段固定格式的测试代码进行粘贴复制,并修改其名称和注释,来编写多个固定格式的测试方法,其中,多个固定格式的测试方法具有不同的名称和注释。例如,如图3所示,是用户登录API的测试方法。由此,用户即使不会编程,也可以轻松编写自动化测试代码,以便完成接口(API)自动化的测试。
配置模块600用于根据固定格式的测试方法的名称和注释配置请求报文,并编写请求报文对应的请求数据文件。其中,请求报文可包含方法名称、接口描述、接口请求地址和请求方式等,并且请求报文可为Excel文件,请求数据文件可为JSON文件,并且请求数据文件中含有测试参数。
需要理解的是,如图4所示,请求报文中的方法名称与固定格式的测试方法的名称相同,并且一一对应,接口描述可与固定格式的测试方法的注释相同,以便固定格式的测试方法在测试的时候顺利的连接待测的API。
在本发明的实施例中,可通过配置文件来确定请求数据的加密方案,其中,配置文件可为Parameters.xml文件。
判断模块700用于根据请求报文和请求数据文件执行固定格式的测试方法,并判断固定格式的测试方法是否执行成功。
具体地,判断模块700根据请求报文找到相应的待测API,然后将请求数据文件中的参数代入待测的API中并执行相应的固定格式的测试方法,以及根据输出结果判断该固定格式的测试方法是否执行成功。例如,如图5所示,如果输出结果中包含请求返回参数,则表明该固定格式的测试方法执行成功,否则执行失败。
进一步地,在本发明的一个实施例中,如图8所示,上述API测试装置还可包括修改模块900用于在固定格式的测试方法执行失败时,终止执行后续的固定格式的测试方法,并对固定格式的测试方法、请求报文和请求数据文件中的至少一个进行检测和修改。
测试模块800用于在固定格式的测试方法执行成功时,根据固定格式的测试方法对应的预期数据对测试数据进行测试。其中,预期数据是用户根据实际情况进行编写的,预期数据可为JSON数据。
提取模块200用于提取测试数据中的多个节点路径,并将多个节点路径添加至节点路径集合。
验证模块300用于遍历节点路径集合,对节点路径集合中的多个节点路径以及多个节点路径对应的节点值进行验证。
在本发明的一个实施例中,如图9所示,验证模块,可包括:第一判断单元310、获取单元320、第二判断单元330、第三判断单元340和生成单元350。
具体地,第一判断单元310用于判断节点路径集合中的当前节点路径是否存在。
获取单元320用于若当前节点路径存在,则根据当前节点路径获取当前节点路径对应的节点值;
第二判断单元330用于将当前节点路径对应的节点值与预期节点值进行比较,以判断当前节点路径以及当前节点路径对应的节点值是否符合预设要求。其中,预设要求可根据实际情况进行标定。
其中,需要理解的是,上述预期节点值是从预期数据中解析而来的。
第三判断单元340用于若当前节点路径不存在,则判断当前节点路径验证失败,并进一步判断当前节点路径的下一个节点路径是否存在。
生成单元350用于在节点路径集合的多个节点路径中验证失败的节点路径的数量超过预设阈值时,生成测试数据测试失败的测试结果。其中,预设阀值可根据实际情况进行标定,例如,预设阀值可为2。
举例而言,第一判断单元310判断节点路径集合中的当前节点路径是否存在,第三判断单元340在第一判断单元310判断当前节点路径不存在时,可将本次验证标记为“FAIL”,并且抛出异常,同时进入下一个循环,并进一步判断当前节点路径的下一个节点路径,获取单元320在第一判断单元310判断当前节点路径存在时,可根据当前节点路径获取当前节点路径对应的节点值,而后第二判断单元330将当前节点路径对应的节点值与预期节点值进行比较,如果该节点值与预期节点值相等,则可将本次验证标记为“PASS”,如果该节点值与预期节点值不相等,则可将本次验证标记为“FAIL”,同时进入下一个循环,继续判断下一个节点路径,生成单元350检测出现标记为“FAIL”的次数,直至该次数大于或等于预设阀值(例如2),或者节点路径集合遍历完毕,则该API的测试结束,并生成相应的测试结果。由此,能够自动验证测试数据并返回测试结果,无需人为干扰,在给用户带来便利的同时,还提高了效率和精准度,从而提升了用户体验。
生成模块400用于根据验证结果生成测试数据的测试结果。
根据本发明实施例的API测试装置,通过获取模块获取测试数据,并通过提取模块提取测试数据中的多个节点路径,并将多个节点路径添加至节点路径集合,而后通过遍历模块历节点路径集合,对节点路径集合中的多个节点路径以及多个节点路径对应的节点值进行验证,以及生成模块根据验证结果生成测试数据的测试结果。由此,该装置能够自动验证测试数据并返回测试结果,无需人为干扰,在给用户带来便利的同时,还提高了效率和精准度,从而提升了用户体验。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (12)

1.一种API测试方法,其特征在于,包括以下步骤:
获取测试数据,其中,所述测试数据是解析API的返回数据后得到的;
提取所述测试数据中的多个节点路径,并将所述多个节点路径添加至节点路径集合;
遍历所述节点路径集合,对所述节点路径集合中的多个节点路径以及所述多个节点路径对应的节点值进行验证,其中,判断所述节点路径集合中的当前节点路径是否存在;若所述当前节点路径不存在,则判断所述当前节点路径验证失败,并进一步判断所述当前节点路径的下一个节点路径是否存在;若所述当前节点路径存在,则根据所述当前节点路径获取所述当前节点路径对应的节点值;将所述当前节点路径对应的节点值与预期节点值进行比较,以判断所述当前节点路径以及所述当前节点路径对应的节点值是否符合预设要求,所述预期节点值是从预期数据中解析得到;
根据验证结果生成所述测试数据的测试结果;
在所述获取测试数据之前,还包括:
编写多个固定格式的测试方法,其中,所述多个固定格式的测试方法具有不同的名称和注释;
根据所述固定格式的测试方法的名称和注释配置请求报文,并编写所述请求报文对应的请求数据文件;
根据所述请求报文和所述请求数据文件执行所述固定格式的测试方法,并判断所述固定格式的测试方法是否执行成功,其中,根据所述请求报文找到相应的待测API,将所述请求数据文件中的参数代入所述待测API并执行相应的固定格式的测试方法,根据输出结果判断所述固定格式的测试方法是否执行成功;
如果所述固定格式的测试方法执行成功,则根据所述固定格式的测试方法对应的预期数据对所述测试数据进行测试,所述预期数据包括所述预期节点值。
2.根据权利要求1所述的API测试方法,其特征在于,还包括:
若所述节点路径集合的所述多个节点路径中验证失败的节点路径的数量超过预设阈值时,生成所述测试数据测试失败的测试结果。
3.根据权利要求1所述的API测试方法,其特征在于,所述请求报文为Excel文件,所述请求数据文件为JSON文件,所述预期数据和所述测试数据均为JSON数据。
4.根据权利要求1所述的API测试方法,其特征在于,通过配置文件来确定所述请求数据的加密方案。
5.根据权利要求1所述的API测试方法,其特征在于,还包括:
如果所述固定格式的测试方法执行失败,则终止执行后续的所述固定格式的测试方法,并对所述固定格式的测试方法、所述请求报文和请求数据文件中的至少一个进行检测和修改。
6.根据权利要求1所述的API测试方法,其特征在于,所述请求报文包含方法名称、接口描述、接口请求地址和请求方式。
7.一种API测试装置,其特征在于,包括:
获取模块,用于获取测试数据,其中,所述测试数据是解析API的返回数据后得到的;
提取模块,用于提取所述测试数据中的多个节点路径,并将所述多个节点路径添加至节点路径集合;
验证模块,用于遍历所述节点路径集合,对所述节点路径集合中的多个节点路径以及所述多个节点路径对应的节点值进行验证,其中,所述验证模块,包括:第一判断单元,用于判断所述节点路径集合中的当前节点路径是否存在;获取单元,用于若所述当前节点路径存在,则根据所述当前节点路径获取所述当前节点路径对应的节点值;第二判断单元,用于将所述当前节点路径对应的节点值与预期节点值进行比较,以判断所述当前节点路径以及所述当前节点路径对应的节点值是否符合预设要求,所述预期节点值是从预期数据中解析得到;第三判断单元,用于若所述当前节点路径不存在,则判断所述当前节点路径验证失败,并进一步判断所述当前节点路径的下一个节点路径是否存在;
生成模块,用于根据验证结果生成所述测试数据的测试结果;
所述API测试装置还包括:
编写模块,用于编写多个固定格式的测试方法,其中,所述多个固定格式的测试方法具有不同的名称和注释;
配置模块,用于根据所述固定格式的测试方法的名称和注释配置请求报文,并编写所述请求报文对应的请求数据文件;
判断模块,用于根据所述请求报文和所述请求数据文件执行所述固定格式的测试方法,并判断所述固定格式的测试方法是否执行成功,其中,根据所述请求报文找到相应的待测API,将所述请求数据文件中的参数代入所述待测API并执行相应的固定格式的测试方法,根据输出结果判断所述固定格式的测试方法是否执行成功;
测试模块,用于在所述固定格式的测试方法执行成功时,根据所述固定格式的测试方法对应的预期数据对所述测试数据进行测试,所述预期数据包括所述预期节点值。
8.根据权利要求7所述的API测试装置,其特征在于,所述验证模块,还包括:
生成单元,用于在所述节点路径集合的所述多个节点路径中验证失败的节点路径的数量超过预设阈值时,生成所述测试数据测试失败的测试结果。
9.根据权利要求7所述的API测试装置,其特征在于,所述请求报文为Excel文件,所述请求数据文件为JSON文件,所述预期数据和所述测试数据均为JSON数据。
10.根据权利要求7所述的API测试装置,其特征在于,通过配置文件来确定所述请求数据的加密方案。
11.根据权利要求7所述的API测试装置,其特征在于,还包括:
修改模块,用于在所述固定格式的测试方法执行失败时,终止执行后续的所述固定格式的测试方法,并对所述固定格式的测试方法、所述请求报文和请求数据文件中的至少一个进行检测和修改。
12.根据权利要求7所述的API测试装置,其特征在于,所述请求报文包含方法名称、接口描述、接口请求地址和请求方式。
CN201610158553.9A 2016-03-17 2016-03-17 Api测试方法和装置 Expired - Fee Related CN107203466B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610158553.9A CN107203466B (zh) 2016-03-17 2016-03-17 Api测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610158553.9A CN107203466B (zh) 2016-03-17 2016-03-17 Api测试方法和装置

Publications (2)

Publication Number Publication Date
CN107203466A CN107203466A (zh) 2017-09-26
CN107203466B true CN107203466B (zh) 2020-12-04

Family

ID=59904820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610158553.9A Expired - Fee Related CN107203466B (zh) 2016-03-17 2016-03-17 Api测试方法和装置

Country Status (1)

Country Link
CN (1) CN107203466B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107733894B (zh) * 2017-10-19 2019-12-10 携程旅游网络技术(上海)有限公司 逻辑接口报文的比对方法、系统、设备及存储介质
CN108108305A (zh) * 2018-01-02 2018-06-01 中国银行股份有限公司 一种环境可用性测试方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035873A (zh) * 2014-06-30 2014-09-10 青岛海信电器股份有限公司 测试代码生成方法及生成装置
CN104298592A (zh) * 2014-09-09 2015-01-21 南京国电南自电网自动化有限公司 面向对象的继电保护测试用例模板的实例化方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103312551B (zh) * 2012-03-12 2016-02-17 腾讯科技(深圳)有限公司 通用网关接口的测试方法及测试装置
US9208044B2 (en) * 2012-06-25 2015-12-08 Infosys Limited Methods for simulating message-oriented services and devices thereof
CN103778052B (zh) * 2012-10-17 2017-12-19 百度在线网络技术(北京)有限公司 一种前端javascript代码的测试方法和装置
CN104111885B (zh) * 2013-04-22 2017-09-15 腾讯科技(深圳)有限公司 接口测试结果的校验方法和装置
CN103399816A (zh) * 2013-07-31 2013-11-20 上海云端广告有限公司 一种数据检查方法及装置
CN105373469B (zh) * 2014-08-25 2018-09-04 广东金赋科技股份有限公司 一种基于接口的软件自动化测试系统和方法
CN104317713A (zh) * 2014-10-27 2015-01-28 北京锐安科技有限公司 一种基于模板的自动化测试工具及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035873A (zh) * 2014-06-30 2014-09-10 青岛海信电器股份有限公司 测试代码生成方法及生成装置
CN104298592A (zh) * 2014-09-09 2015-01-21 南京国电南自电网自动化有限公司 面向对象的继电保护测试用例模板的实例化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"A Framework for Testing RESTful Web Services";Hassan Reza等;《2010 Seventh International Conference on Information Technology: New Generations》;20100414;第216-221页 *
"基于模型检测的类测试自动生成技术研究";唐春艳;《中国优秀硕士学位论文全文数据库 信息科技辑》;20071115(第05期);I138-446 *

Also Published As

Publication number Publication date
CN107203466A (zh) 2017-09-26

Similar Documents

Publication Publication Date Title
CN107145437B (zh) 一种java注解测试方法及装置
CN107203466B (zh) Api测试方法和装置
CN110908888A (zh) 服务器测试方法及装置
CN103699485B (zh) 应用程序调试方法和装置
CN106940647B (zh) 代码管理方法和装置
CN106326089A (zh) 一种自动化测试的方法、装置及系统
CN110704319B (zh) 一种测试用例风险分析方法及装置
CN106933713B (zh) 硬件加速器的验证方法和验证系统
CN105608006B (zh) 一种基于概率模型的程序错误检测方法及系统
CN110795142B (zh) 一种配置文件的生成方法及装置
US8739130B2 (en) Quality assurance testing
CN110187202B (zh) 电器设备开机密码的测试方法、装置和系统
CN114327981A (zh) 一种功能安全机制的安全校验系统、方法及装置
CN110198249B (zh) 一种配电自动化系统测试方法及系统
CN110855526B (zh) 检测数据源连接的方法、装置、存储介质及电子设备
CN108845932B (zh) 一种网络库的单元测试方法、装置、存储介质及终端
CN113360389A (zh) 一种性能测试方法、装置、设备及存储介质
CN111124726B (zh) 打开modem端口异常检测方法及装置
CN107102938B (zh) 测试脚本的更新方法及装置
CN112069749B (zh) 一种电源连接验证方法、装置、电子设备和存储介质
WO2015172488A1 (zh) 无线通信设备上网故障检测方法、装置及其无线通信设备
CN117331847B (zh) 支持图形界面的自动化测试方法和系统
CN108446228A (zh) 检测安装包的方法、装置、设备及计算机可读存储介质
KR102610756B1 (ko) 소프트웨어 테스트를 위한 테스트케이스 관리 장치 및 관리 방법
ES2718128T3 (es) Prueba coordinada

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20201204

Termination date: 20210317

CF01 Termination of patent right due to non-payment of annual fee