API测试方法和装置与流程

文档序号:11276207阅读:247来源:国知局
API测试方法和装置与流程

本发明涉及api测试技术领域,具体涉及一种api测试方法和一种api测试装置。



背景技术:

api(applicationprogramminginterface,应用编程接口)作为系统的重要组成部分,也是系统测试过程中必不可少的一个环节。

目前,api测试是一种作为集成测试的一部分,通过直接控制被测应用的接口(api)来确定是否在功能、可靠性、性能和安全方面达到预期的软件测试活动。由于api都没有gui(graphicaluserinterface,图形用户接口)界面,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测试装置,通过获取模块获取测试数据,并通过提取模块提取测试数据中的多个节点路径,并将多个节点路径添加至节点路径集合,而后通过遍历模块历节点路径集合,对节点路径集合中的多个节点路径以及多个节点路径对应的节点值进行验证,以及生成模块根据验证结果生成测试数据的测试结果。由此,该装置能够自动验证测试数据并返回测试结果,无需人为干扰,在给用户带来便利的同时,还提高了效率和精准度,从而提升了用户体验。

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要 性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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