CN115827417A - 一种接口测试方法、相关设备、存储介质及程序产品 - Google Patents

一种接口测试方法、相关设备、存储介质及程序产品 Download PDF

Info

Publication number
CN115827417A
CN115827417A CN202111089930.5A CN202111089930A CN115827417A CN 115827417 A CN115827417 A CN 115827417A CN 202111089930 A CN202111089930 A CN 202111089930A CN 115827417 A CN115827417 A CN 115827417A
Authority
CN
China
Prior art keywords
test
interface
code
target program
function
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.)
Pending
Application number
CN202111089930.5A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202111089930.5A priority Critical patent/CN115827417A/zh
Publication of CN115827417A publication Critical patent/CN115827417A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种接口测试方法、相关设备、存储介质及程序产品,方法包括:获取待测试的目标程序接口的接口参数,并将接口参数输出给测试用户;获取测试用户按照目标编程规则,并根据接口参数输入的文本代码,文本代码用于对目标程序接口进行接口测试;对文本代码进行代码转换,得到对目标程序接口进行接口测试所使用的结构代码,结构代码是指能被调用执行的代码;解析结构代码,获取目标程序接口的测试函数及测试参数,并基于测试参数运行测试函数,得到目标程序接口的测试结果,可以提升接口测试的便捷性。

Description

一种接口测试方法、相关设备、存储介质及程序产品
技术领域
本申请涉及计算机技术领域,尤其涉及一种接口测试方法、相关设备、存储介质及程序产品。
背景技术
随着互联网技术的蓬勃发展,形形色色的计算机程序产品应运而生,用户的互联网需求也在日益增长。为了满足用户需求,计算机程序产品的快速迭代成了必然趋势。在计算机程序产品在迭代的过程中,对接口功能进行自动化测试这一过程是不可或缺的。传统的接口测试方法包括以下两种:一是采用接口测试平台等接口测试工具来对接口进行测试,此方法的灵活性不够高,只适用于一些简单的接口测试用例;二是采用Python、Java等高级编程语言编写测试用例来对接口进行测试,此方法需要技术人员具备较强的编程能力,也就使得采用此方法对接口进行测试的难度较大。因此,如何提升接口测试的便捷性成了当下的研究热点。
发明内容
本申请实施例提供了一种接口测试方法、相关设备、存储介质及程序产品,可提升接口测试的便捷性。
一方面,本申请实施例提供了一种接口测试方法,包括:
获取待测试的目标程序接口的接口参数,并将所述接口参数输出给测试用户;
获取所述测试用户按照目标编程规则,根据所述接口参数输入的文本代码,所述文本代码用于对所述目标程序接口进行接口测试;
对所述文本代码进行代码转换,得到对所述目标程序接口进行接口测试所使用的结构代码,所述结构代码是指能被调用执行的代码;
解析所述结构代码,获取所述目标程序接口的测试函数及测试参数,并基于所述测试参数运行所述测试函数,得到所述目标程序接口的测试结果。
再一方面,本申请实施例提供了一种接口测试装置,包括:
获取单元,用于获取待测试的目标程序接口的接口参数,并将所述接口参数输出给测试用户;
所述获取单元,还用于获取所述测试用户按照目标编程规则,并根据所述接口参数输入的文本代码,所述文本代码用于对所述目标程序接口进行接口测试;
代码转换单元,用于对所述文本代码进行代码转换,得到对所述目标程序接口进行接口测试所使用的结构代码,所述结构代码是指能被调用执行的代码;
执行单元,用于解析所述结构代码,获取所述目标程序接口的测试函数及测试参数,并基于所述测试参数运行所述测试函数,得到所述目标程序接口的测试结果。
再一方面,本申请实施例提供了一种计算机设备,包括:
处理器,所述处理器适于实现一条或多条计算机指令;
存储介质,所述存储介质存储有一条或多条计算机指令,所述一条或多条计算机指令适于由所述处理器加载并执行上述接口测试方法。
再一方面,本申请实施例提供了一种存储介质,所述存储介质存储有一条或多条计算机指令,所述一条或多条计算机指令适于由处理器加载并执行上述接口测试方法。
再一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序存储在存储介质中;处理器从存储介质中读取所述计算机程序,所述处理器加载并执行上述接口测试方法。
在本申请实施例中,由于计算机设备可以对测试用户输入的文本代码进行代码转换,从而得到可以被目标程序接口识别以及调用的结构代码,此方法避免了测试用户需要手动输入结构代码这一操作,一方面降低了测试用例的编写门槛,进而使得目标程序接口的维护成本得到了降低,另一方面提升了接口测试的便捷性。此外,计算机设备还可以进一步基于代码转换得到的结构代码,对目标程序接口进行接口测试,并生成对应的测试结果,实现了接口测试的自动化。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种接口测试系统的示意图;
图2是本申请实施例提供的一种接口测试方法的示意流程图;
图3是本申请实施例提供的一种用于接口测试的文本代码的示意图;
图4是本申请实施例提供的又一种接口测试方法的示意流程图;
图5a是本申请实施例提供的一种结构代码的示意图;
图5b是本申请实施例提供的一种对多个测试用例进行代码转换的示意流程图;
图5c是本申请实施例提供的一种运行上下文对应数据结构的示意图;
图6是本申请实施例提供的一种语言解释器的结构以及数据流向示意图;
图7是本申请实施例提供的一种接口测试装置的结构示意图;
图8是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
本申请实施例提出了一种接口测试方案,可以通过对测试用户输入的文本代码进行代码转换得到结构代码,从而基于结构代码来对程序接口的接口功能进行自动化测试。由于传统的接口测试方案中,测试用户需要手动输入结构代码来实现对程序接口的接口测试,那么可以理解,若测试用户采用本申请实施例提供的接口测试方案来对程序接口进行接口测试,使得测试用户可以只输入文本代码,而无需输入结构代码,那么,也就不难看出,本申请提出的接口测试方案可以有效提升接口测试的便捷性。其中,上述提及的文本代码可以理解为:测试用户按照接口测试逻辑,并采用目标编程规则在代码行中输入的一条或多条代码语句,其主要用于对程序接口进行接口测试。其中,文本代码与结构代码相比,更专注于进行接口测试,弱化流程控制,条件判断、数据类型等常见高级程序语言的概念,且文本代码只有变量函数的概念,使得文本代码更易编写和调试,从而提升接口测试效率。此外,上述提及的自动化测试是指软件测试的自动化,软件测试可以理解为:在预设条件下运行系统或应用程序,从而基于预设条件来评估系统或应用程序的运行结果,预设条件可以包括正常条件和异常条件。上述提及的结构代码可以理解为:对文本代码进行代码转换后,得到的计算机设备可以调用并执行的代码,其本质上是由一个或多个测试变量组成的数据结构。此处的数据结构可以理解为:相互之间存在一种或多种特定关系的测试变量的集合。
具体实施例中,上述提及的接口测试方案可以由计算机设备来执行,计算机设备可以是终端设备,也可以是服务器。基于此,该接口测试方案的大致原理可以如下:计算机设备先获取待测试的目标程序接口的接口参数,并将获取到的接口参数输出给测试用户,以使得测试用户可以基于接收到的接口参数编写文本代码;进一步地,计算机设备可以获取测试用户编写的文本代码,并对该文本代码进行代码转换,以得到结构代码,进而使得计算机设备可以基于该结构代码来对上述提及的目标程序接口进行接口测试。其中,接口参数可以指目标程序接口的接口信息,接口信息包括但不限于:目标程序接口的接口路径,目标程序接口中可被计算机设备调用的测试参数,以及目标程序接口的调用要求(如:调用目标程序接口时,采用的文本代码的代码格式)等。可选地,上述提及的接口测试方案也可应用于如图1所示的接口测试系统中,如图1所示,该接口测试系统包括终端设备10以及服务器11,且终端设备10与服务器11建立有通信连接。那么可以理解,在具体应用中,上述提及的接口测试方案可以由图1所示的终端设备10以及服务器11协同执行。具体执行方式可以如下:由服务器11获取目标程序接口的接口参数,并将获取的接口参数发送至终端设备10,进而实现将接口参数输出给使用该终端设备10的测试用户;进一步地,服务器11可以从终端设备10中获取用于对目标程序接口进行接口测试的文本代码,可以理解,该文本代码是由测试用户基于接口参数在该终端设备10上输入的;那么,进一步地,服务器11对获取到的文本代码进行代码转换,并基于转换得到的结构代码对目标程序接口进行接口测试。
需要说明的是,上述提及的终端设备可以包括但不限于:智能手机、平板电脑、笔记本电脑、台式计算机、车载终端、智能家电、智能手表、智能语音交互设备等。对应地,上述提及的服务器可以包括但不限于:独立的物理服务器、多个物理服务器构成的服务器集群或者分布式系统,以及提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。本申请对终端设备和服务器的类型不作具体限制,此外,还需要说明的是,为了便于更好的理解本申请,在无特殊说明的情况下,以下以接口测试方案由计算机设备执行为例,来对本申请实施例的具体实施方式进行详细阐述。
请参见图2,图2是本申请实施例提供的一种接口测试方法的示意流程图,该接口测试方法是基于上述接口测试方案提出的,那么,可以理解,该接口测试方法当然可以由上述提及的计算机设备来执行。如图2所示,该方法包括步骤S201-步骤S204:
S201,获取待测试的目标程序接口的接口参数,并将接口参数输出给测试用户。
其中,目标程序接口可以理解为应用程序中需要进行接口测试的程序接口(简称:接口)。所谓的接口是指:应用程序接口(Application Programming Interface,API),可选地,接口可以是:预先定义的函数或HTTP(Hyper Text Transfer Protocol,超文本传输协议)接口;可选地,接口也可以是:软件系统不同组成部分进行衔接时需要遵守的约定。在实际应用中,接口可以用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,以使计算机设备在访问应用程序时无需访问该应用程序的源码,甚至无需理解该应用程序的内部工作机制的细节。那么,基于此,不难理解,计算机设备通过调用接口来用于实现(或协助实现)应用程序中的业务功能,可以有效提升应用程序的开发效率。
实际应用中,测试用户通常可以参考目标程序接口的接口参数,来编写对目标程序接口进行接口测试所用的测试代码(如文本代码)。具体地,目标程序接口的接口参数可以是计算机设备在接收到接口测试请求后,从目标程序接口处获取到的,该接口测试请求还可以携带待测试的目标程序接口的接口标识。示例性地,接口测试请求可以是测试用户根据测试需求在终端设备中生成的,且该接口测试请求可以是测试用户通过终端设备发送至计算机设备的。那么,基于此,计算机设备将接口参数输出给测试用户的方式可以具体如下:计算机设备将获取到的接口参数发送至终端设备,从而使得终端设备可以输出显示接口参数,也就进一步实现了将接口参数输出给测试用户。
S202,获取测试用户按照目标编程规则,并根据接口参数输入的文本代码。
其中,文本代码可以用于指示测试用例,所谓的测试用例可以理解为:用于对特定的某项业务功能(或程序产品)进行测试任务的代码描述,其可以体现计算机设备对目标程序接口进行接口测试所采用的测试方案、方法、技术或策略等。示例性地,文本代码可参见图3所示。目标编程规则可以用于指示:测试用户编写文本代码时需要遵循的规则,该规则可以是预先设定的。具体地,目标编程规则可以包括但不限于:函数调用规则、代码语句编写格式(如:后续提及的声明部分的编写格式、请求头部分的编写格式等)、优先级标识规则、变量使用规则、全局函数声明规则以及注释规则等。以下将对上述提及的各个目标编程规则进行详细阐述。
(1)函数调用规则。
函数调用规则可以是:计算机设备在函数调用标识符的标识范围内,输入需要被调用的目标函数的函数名以及目标函数的参数,并用目标分隔符将目标函数的函数名以及目标函数的参数隔开,以表示对目标函数的调用。示例性地,函数调用标识符可以用小括号表示,即:函数调用标识符可以用“()”表示;目标分隔符可以用空格符号表示。当然,函数调用标识符和目标分隔符也可以采用其他符号来表示,如:函数调用标识符还可以用单引号(即:‘’)表示,目标分隔符还可以用短横线(即:-)表示,本申请对此不作具体限制。需要说明的是,在具体应用中,函数调用规则可以具体包括:函数的非嵌套调用规则和函数的嵌套调用规则,以下将结合具体示例对函数非嵌套调用规则和函数嵌套调用规则进行详细阐述。
①函数的非嵌套调用规则:在进行函数的非嵌套调用时,可以采用函数调用标识符对被调用的目标函数及该目标函数的参数进行标记,也可以不采用函数调用标识符对被调用的目标函数及该目标函数的参数进行标记。那么,也就是说,计算机设备在进行函数的非嵌套调用时,可以省略函数调用标识符。其中,“函数的非嵌套调用”可以理解为:任一函数在被调用时,其采用的参数是普通的变量,而非具体的函数。如:函数调用代码语句(print XXX)即可表示对print函数的非嵌套调用。其中,print为被调用的目标函数的函数名,具体指字符打印函数;XXX为print的参数,具体指print函数需要输出的字符。那么,由于计算机设备在进行函数的非嵌套调用时,可以省略函数调用标识符,因此,函数调用代码语句(print XXX)也可以简写为print XXX。
②函数的嵌套调用规则:在进行函数的嵌套调用时,需要采用函数调用标识符对被调用的目标函数及该目标函数的参数进行标记。那么,也就是说,计算机设备在进行函数的嵌套调用时,不可省略函数调用标识符。其中,“函数的嵌套调用”可以理解为:任一函数在被调用时,其采用的参数为具体的函数,而非普通的变量。如:函数调用代码语句(print(add X Y))即可表示print函数与add函数的嵌套调用。其中,add函数是指:加法运算函数,print函数的参数为add函数的调用结果。那么,在此情况下,函数调用代码语句(print(addXY))中的两个函数调用标识符均不可省略。
(2)优先级标识规则。
优先级标识规则可以是:计算机设备在需要被优先执行的代码语句的句首处添加优先级标识符,以表示在接口测试过程中该代码语句需要在目标程序接口被调用前执行。示例性地,优先级标识符可以是感叹号(即:!),也可以是其他符号,如:星号(即:*)、波浪号(即:~)等,以下以优先级标识符为“!”为例来对优先级标识规则进行详细阐述。若文本代码中存在代码语句“!print XXX”(此处的双引号不属于代码语句的组成部分,后续类似情况不再赘述),则说明计算机设备在对目标程序接口进行调用前,需要执行print XXX这一代码语句。
(3)变量使用规则。
变量使用规则可以是:计算机设备在文本代码的任意执行语句中需要使用变量时,采用“${变量名}”的格式来引用变量。例如:在图3所示的代码语句“POST https://${变量A}/XX”中,计算机设备通过${变量A}的形式来使用变量A,其表示:目标程序接口的请求路径信息中,域名部分为变量A的值。又如:在图3所示的函数调用语句“print${res.body.Id}”中,计算机设备可以使用${res.body.Id}的形式来使用变量res.body.Id,其表示:计算机设备可以打印返回结果的字段标识。
(4)全局函数声明规则。
全局函数声明规则可以是:在用于对全局函数进行声明的执行语句的句首处,添加上述提及的优先级标识符。那么,也就是说,全局函数可以理解为:计算机设备在测试用例执行之前需要执行的函数。需要说明的是,文本代码中可以不存在全局函数,或者,不存在用于对全局函数进行声明的执行语句。
(5)注释规则。
注释规则可以是:计算机设备在文本代码中需要被注释的内容前面添加注释标识符。示例性地,注释标识符可以是双斜线(即://)、单斜线加星号(即:/*)等,本申请对此不作限制,但在以下实施例中,均以双斜线为注释标识符为例对本申请进行说明。那么,举例来说,若文本代码中存在“print XXX;//输出XXX”这一内容,则可以理解,“输出XXX”即为计算机设备对print XXX这一代码语句的注释内容,其表示print XXX的作用为“输出XXX”。
S203,对文本代码进行代码转换,得到对目标程序接口进行接口测试所使用的结构代码。
其中,结构代码是指能被目标程序接口或计算机设备调用执行的代码;在具体应用中,计算机设备对文本代码进行代码转换可以具体指:计算机设备对文本代码进行结构化处理,也就是说,计算机设备将一条或多条代码语句转换为数据结构(具体如:结构体)。
S204,解析结构代码,获取目标程序接口的测试函数及测试参数,并基于测试参数运行测试函数,得到目标程序接口的测试结果。
其中,目标程序接口的测试函数可以指:计算机设备在对目标程序接口进行接口测试时,需要执行的各个函数。那么,测试参数则可以理解为:函数在执行时所需要的参数。进一步地,测试结果则可以理解为:计算机设备在运行测试函数得到的函数执行结果之后,基于预设结果与函数执行结果进行结果对比及分析得到的分析结果。那么,示例性地,测试结果可以具体用于指示:目标程序接口调用成功(或称:目标程序接口的功能正常)、或目标程序接口调用失败(或称:目标程序接口的功能异常)等。
在本申请实施例中,计算机设备可以对获取到的文本代码进行代码转换,使得计算机设备可以得到目标程序接口能调用并执行的结构代码,基于此,在具体应用中,计算机设备可以定时触发对文本代码的获取及代码转换,并进一步基于代码转换得到的结构代码进行接口测试,有效提升了计算机设备在进行接口测试时的自动化能力。此外,由于结构代码的编写难度高于文本代码的编写难度,那么,若计算机设备可以对文本代码进行代码转换得到结构代码,可以避免测试用户手动编写结构代码,可见,采用本申请实施例提供的接口测试方法,可以有效降低测试用户编写测试用例的难度,从而有效提升了接口测试的便捷性。
请参见图4,图4是本申请实施例提供的又一种接口测试方法的示意流程图,该接口测试方法是基于上述提及的接口测试方法提出的,那么,可以理解,该接口测试方法当然也可以由上述提及的计算机设备来执行。如图4所示,该方法包括步骤S401-步骤S407:
S401,获取待测试的目标程序接口的接口参数,并将接口参数输出给测试用户。
在一个实施例中,步骤S401的具体实施例可以参见上述步骤S201的相关描述,本申请在此不做赘述。
S402,获取测试用户按照目标编程规则,并根据接口参数输入的文本代码。
其中,文本代码可以包括:声明部分、请求头部分、请求体部分以及函数部分。以下将结合具体示例对上述提及的各个部分及其生成方式进行详细阐述。
(1)声明部分。
声明部分可以具体包括:①测试名称,②目标程序接口的请求路径信息和请求方法名。声明部分可以用于指示:计算机设备采用请求方法名指示的请求方法,向请求路径信息指示的目标程序接口发起调用请求,该调用请求是基于测试用例名称对应的测试用例(即:文本代码)生成的。示例性地,文本代码的声明部分可参见图3中的代码块31所示,不难看出,在文本代码中,请求方法名及请求路径信息处于同一代码行,测试名称及请求方法名处于不同的代码行。为了更清楚地了解本申请,以下将结合具体示例来对声明部分包括的各项内容进行详细说明。
①测试名称:
测试名称可以是文本代码对应的测试用例的用例名称,且该测试名称所在的代码语句的格式可以为“目标指示符+测试名称”,且该代码语句独占一行代码行。那么,计算机设备在生成声明部分时,可以在测试名称之前添加目标指示符,以生成用于指示测试名称的代码语句,该代码语句在编写时需独占一行代码行。示例性地,目标指示符可以是@符号,基于此,测试名称所在的代码语句的格式可以为“@+测试名称”,具体可如图3中声明部分31的代码语句“@CreateUser”所示,其表示:用于对目标程序接口进行接口测试的测试用例名称为CreateUser。需要说明的是,目标指示符也可以是#符号,或^符号等,本申请对此不作具体限制,但在后续实施例中均以@为目标指示符为例,来对本申请的相关实施例进行详细说明。
②目标程序接口的请求路径信息和请求方法名:
请求路径信息用于指示:目标程序接口的接口路径,该请求路径信息是测试用户根据目标程序接口的接口参数确定的;请求方法名用于指示:向目标程序接口发起调用请求的方法(如:POST方法、GET方法、PUT方法等),该请求方法名也是测试用户根据目标程序接口的接口参数确定的。请求路径信息和请求方法名所在代码语句的格式可以为“请求方法名+目标分隔符+请求路径信息”,且该代码语句独占一行代码行。那么,计算机设备在生成声明部分时,还可以通过获取测试用户输入的目标程序接口的请求方法名及请求路径信息,并进一步采用目标分隔符将所述请求方法名及所述请求路径信息隔开,以生成用于指示目标程序接口的请求路径信息和请求方法名的代码语句,该代码语句在编写时需独占一行代码行。示例性地,目标分隔符可以是空格符,基于此,请求路径信息和请求方法名所在代码语句的格式可以为“请求方法名+空格符+请求路径信息”,如图3中声明部分31的代码语句“POSThttp://127.0.X.X:XXX/XX”,其表示:请求方法名为POST,请求路径信息为http://127.0.X.X:XXX/XX。
(2)请求头部分。
请求头部分可以具体包括:请求头字段名以及该请求头字段名对应的请求头字段值。其中,请求头字段名用于指示:计算机设备与目标程序接口之间进行http传输时所需的操作参数;请求头字段值用于指示:操作参数的参数值。那么,也就是说,文本代码的请求头部分可以用于指示:计算机设备在对目标程序接口进行测试时需要遵循的调用要求,或者需要调用的操作参数。以下将结合具体示例来对计算机设备生成请求头部分的方式进行详细说明。
计算机设备在生成请求头部分时,可以先获取测试用户输入的目标程序接口的调用要求,并根据调用要求生成请求头字段值;进一步地,计算机设备可以将该请求头字段值添加至目标请求结构中,以生成文本代码的请求头部分。其中,目标请求结构可以为“请求头字段名+“:”+空格符号+请求头字段值”。那么,具体来说,计算机设备可以将请求头字段值输入至“请求头字段名+“:”+空格符号+请求头字段值”中的“请求头字段值”的位置处,如:将请求头字段名HOST对应的请求头字段值www.XX.com输入至“请求头字段名+“:”+空格符号+请求头字段值”中,以得到代码语句HOST:www.XX.com,该代码语句表示:计算机设备在调用目标程序接口时,需要访问的服务器域名为www.XX.com、端口号为服务请求标准端口号(如:8080)。
需要说明的是,请求头部分可以包括一个或多个请求头字段名,那么,对应地,请求头部分还可以包括一个或多个请求头字段值,并且一个请求头字段名对应一个请求头字段值,任一请求头字段名和该任一请求头字段名对应的请求头字段值位于同一代码行中。示例性地,可参见图3中的请求体部分32所示,可见,图3所示的文本代码包括三个请求头字段名和三个请求头字段值,其中,HOST、Content-Type以及Origin均表示请求头字段名,www.XX.com、application/json;charset=UTF-8以及http://www.XX.com均表示请求头字段值。
(3)请求体部分。
请求体部分可以具体包括:目标程序接口中需要被调用的测试参数以及该测试参数的参数值。在实际应用中,被调用的测试参数以及该测试参数的参数值可以是测试用户按照目标代码格式输入的,目标代码格式则可以是测试用户基于目标程序接口的接口参数来确定的。那么,也就是说,计算机设备在生成文本代码的请求体部分时,可以通过获取测试用户按照目标代码格式输入的目标程序接口的测试参数及参数值,来生成文本代码的请求体部分。具体地,目标代码格式包括JSON(JavaScript Object Notation,JS对象简谱)格式和http表单格式。
①JSON格式。JSON格式是一种轻量级的数据交换格式,其采用完全独立于编程语言的文本格式来存储和表示数据,使得JSON格式的请求体部分具有简洁和清晰的层次结构,也就进一步使得JSON格式的请求体部分易于测试用户进行阅读和编写,同时易于计算机设备的解析和生成。那么,可以理解,目标程序接口若规定测试用户采用JSON格式来编写请求体部分,可以有效地提升计算机设备与目标程序接口之间的数据传输效率。示例性地,JSON格式的请求体部分可以参见图3中的请求体部分33所示,可见,JSON格式的请求体部分可以占用多个代码行。
②http表单格式。示例性地,图3中的请求体部分33转换为http表单格式后,可以表示为Action=CreateUser&UserName=testname。
(4)函数部分。
函数部分可以具体包括以下一项或多项内容:测试函数及该测试函数对应的测试参数、优先级标识符、函数调用标识符。其中,测试函数至少包括断言函数和功能函数。计算机设备在生成函数部分时,可以获取测试用户输入的断言函数和功能函数,进而可以直接将包括断言函数及功能函数的代码部分作为文本代码的函数部分。需要说明的是,任一测试函数的本质可以理解为:可以直接被另一段程序(或代码)引用的程序(或代码)。为了更清楚地了解本申请,以下将结合具体示例来对函数部分包括的各项内容进行详细阐述。
①断言函数。断言函数一般在目标程序接口被调用之后执行,用于对目标程序接口返回的执行结果进行判断或分析,如:用于判断执行结果是否符合预期结果。需要说明的是,断言函数的本质可以理解为布尔表达(即:仅有两个执行结果),且断言函数可以预先定义并存储于计算机设备对应的数据存储空间中,以使得测试用户可以从该存储空间中调用断言函数来实现对实际测试结果的判断或分析。示例性地,本申请实施例中预先定义的部分断言函数可以参见内置断言函数表(即表1)所示。
表1
Figure BDA0003266528850000121
Figure BDA0003266528850000131
②功能函数。功能函数可以指:测试用户在编写文本代码时,自定义的一段用于实现某个特定功能(如:打印变量值、设置请求头、定义变量等)的程序或代码。具体应用中,功能函数可以用于:在调用目标程序接口基于测试参数运行测试函数之前,对测试参数进行预处理。那么,也就是说,计算机设备在执行函数部分时,可以先基于测试函数中的功能函数对测试参数进行预处理,然后再进一步基于预处理后的测试参数运行测试函数,从而得到目标程序接口的测试结果。
③优先级标识符。
计算机设备可以在函数部分中的任一测试函数前面添加优先级标识符,以表示该测试函数需要在目标程序接口被调用前执行。那么,由于添加了优先级标识符的代码语句将在目标程序接口被调用前执行,且请求头部分和请求体部分也需要在目标程序接口被调用前执行,那么,不难理解,计算机设备可以利用优先级标识符在函数部分定义文本代码的请求头部分或请求体部分。
④函数调用标识符。
在一个实施例中,函数调用标识符的相关实施例可参见步骤S202的描述,本申请在此不再赘述。
S403,对文本代码进行代码转换,得到对目标程序接口进行接口测试所使用的结构代码。
在一个实施例中,计算机设备可以调用代码转换模块来对文本代码中的声明部分、请求头部分、请求体部分以及函数部分依次进行代码转换,以得到该文本代码对应的结构代码。其中,代码转换可以理解为:计算机设备调用代码转换模块将文本代码中各条代码语句,转换成变量以及该变量的数据类型,并基于生成的所有变量和所有变量中每个变量的数据类型构建结构代码的过程。示例性地,结构代码可以如图5a所示,那么,以下以计算机设备生成图5a中的变量Name的过程为例,来对本申请提出的“调用代码转换模块来对文本代码进行代码转换”的过程进行说明。基于图5a不难看出,变量Name用于指示:文本代码的声明部分中的测试名称(具体可以是:用例名称)。基于此,若文本代码的声明部分包括用于声明测试名称的代码语句“@CreateUser”,由于测试名称是字符串形式,因此,计算机设备调用代码转换模块对该文本代码进行代码转换后,得到的变量Name的数据类型可以为string类型(即:字符串类型),变量Name的值则可以为CreateUser。
在又一个实施例中,文本代码可以存在于测试数据包中,测试数据包可以用于对目标应用程序中的多个程序接口进行接口测试,那么,不难理解,计算机设备还可以对测试数据包进行代码转换处理。其中,目标应用程序中的多个程序接口可以具体指:目标程序接口及其他程序接口,且目标程序接口和其他程序接口之间存在关联关系。具体应用中,“目标程序接口和其他程序接口之间存在关联关系”可以理解为:目标程序接口和其他程序接口之间可以相互进行接口数据(如:变量)的调用,这可以使得本申请提出的接口测试方法具备较高的灵活性。由于测试数据包可以用于对目标应用程序的多个程序接口进行接口测试,那么,不难理解,测试数据包可以包括多个测试用例,每个测试用例均有对应的文本代码。基于此,计算机设备调用代码转换模块对测试数据包进行代码转换的流程可以如图5b所示;如图5b所示,计算机设备可以依次对各个测试用例对应的文本代码进行代码转换,以实现对测试数据包的代码转换。
基于上述描述,不难理解的是,计算机设备可以将当前测试用例在执行期间产生的业务参数,作为下一个测试用例的测试参数。可见,本申请提供的接口测试方法在实际应用过程中,可以使得测试用例与测试用例之间具备关联性。为了更好地理解本申请提供的接口测试方法,以下将结合具体示例来对测试用例之间的关联性进行详细阐述:假设目标应用程序为音乐播放应用程序,该音乐播放应用程序包括歌单创建接口和歌单查询接口;那么,计算机设备对歌单创建接口和歌单查询接口进行接口测试时,采用的测试数据包可以包括两个测试用例(如:测试用例A和测试用例B),具体地,测试用例A用来对歌单创建接口进行测试,测试用例B用来对歌单查询接口进行接口测试。那么,基于此,计算机设备可以先基于测试用例A调用歌单创建接口,以创建得到一个新的歌单,假设歌单创建接口成功创建了歌单a,那么,歌单a则可以理解为测试用例A在执行时产生的业务参数。进一步地,计算机设备在测试歌单查询接口对应的业务功能是否正常时,可以基于歌单a来实现;具体地,计算机设备可以基于测试用例B来调用歌单查询接口查询已存在的歌单a,若成功查询到了歌单a,则说明该歌单查询接口对应的业务功能正常,对应地,若未成功查询到歌单a,则说明该歌单查询接口对应的业务功能异常,从而测试人员可以基于测试结果对歌单查询接口进行其他业务处理,如:修改该歌单查询接口的某些参数,以使该歌单查询接口对应的业务功能正常。那么,不难看出,测试用例B是基于测试用例A执行后得到的业务参数(即:歌单a)来对歌单查询接口进行接口测试的,也就不难理解,测试用例A和测试用例B之间存在关联关系。
S404,解析结构代码,并生成针对目标程序接口的调用请求。
在一个实施例中,计算机设备可以在调用代码转换模块对文本代码进行代码转换得到结构代码之后,调用代码执行模块来执行结构代码,以实现对目标程序接口的接口测试。其中,代码执行模块的主要功能包括:向目标程序接口发起调用请求,以及执行函数部分中的测试函数。在实际应用中,计算机设备可以先解析结构代码,以获取对目标程序接口进行调用时所需要的结构化数据(具体如:结构代码中的变量)。进一步地,计算机设备可以调用代码执行模块来生成接口请求会话,该接口请求会话用于向目标程序接口发送调用请求。
可选地,若上述提及的测试数据包中存在全局函数,计算机设备可以在调用代码执行模块生成接口请求会话之后执行全局函数,并将全局函数的执行结果存储至执行上下文中;然后计算机设备可以调用代码执行模块,基于文本代码对应的结构代码中的请求路径信息、请求方法名以及请求头字段值等数据生成对目标程序接口进行调用的调用请求。其中,执行上下文可以理解为:用于存储数据(如:临时变量)的存储空间,其贯串整个接口测试流程。示例性地,用于构建执行上下文的数据结构可以如图5c所示。对应可选地,若测试数据包中不存在全局函数,计算机设备则可以直接调用代码执行模块来基于文本代码对应的结构代码中的请求路径信息、请求方法名以及请求头字段值等数据生成对目标程序接口进行调用的调用请求。
S405,将调用请求发送给目标程序接口,并从目标程序接口处获取针对目标程序接口的请求结果。
具体实现中,计算机设备可以继续调用上述提及的代码执行模块,来将调用请求发送给目标程序接口,并调用代码执行模块从目标程序接口处获取调用请求的请求结果。进一步地,计算机设备可以将获取到的请求结果存储至上述提及的执行上下文中,以待计算机设备查询或使用。
S406,在请求结果指示成功调用目标程序接口时,获取目标程序接口的测试函数及测试参数。
具体实现中,若计算机设备获取到的请求结果指示:计算机设备成功调用目标程序接口;那么,计算机设备可以进一步调用代码执行模块从结构代码中获取测试函数以及测试参数,以使得计算机设备可以基于测试参数运行测试函数。
S407,调用目标程序接口基于测试参数运行测试函数,得到测试函数的执行结果,并根据执行结果确定目标程序接口的测试结果。
其中,当计算机设备调用代码执行模块运行测试函数之后,可以得到测试函数的执行结果。那么,计算机设备可以调用结果分析模块来对测试函数的执行结果进行分析,从而根据执行结果确定目标程序接口的测试结果。具体地,计算机设备可以预先将测试函数的预期执行结果存储至结果分析模块,那么,也就使得计算机设备可以调用结果分析模块来基于预设执行结果和实际得到的执行结果进行对比,从而实现对测试函数的执行结果进行分析,进而可以得到目标程序接口的测试结果。
进一步地,当计算机设备得到测试函数的执行结果之后,还可以继续调用结果分析模块对测试结果进行可视化处理,此处提及的可视化处理可以理解为:将测试结果转换为可视化的测试报告。那么,基于此,计算机设备也就可以进一步地将可视化的测试报告输出给测试用户,从而使得测试用户可以更加直观地查看对目标程序接口的测试结果,也就使得测试用户可以快速地基于测试结果确定出需要对目标程序接口执行的业务处理,如:发布该目标程序接口对应的业务功能、修改该目标程序接口对应的业务功能等。
在一个实施例中,上述提及的代码转换模块、代码执行模块、结果分析模块以及执行上下文可以组成语言解释器。具体地,语言解释器可以理解为一款可跨平台运行的应用程序,跨平台运行可以理解为:可以在Windows(一种操作系统)、Linux(GNU/Linux,一种操作系统)、macOS(一种可运行于电脑上的操作系统)等系统中运行。示例性地,语言解释器可以是基于golang(一种编程语言)开发的。那么,基于步骤S403-S407的相关描述,不难理解,该语言解释器中的数据流向可以参见图6所示;可见,在语言解释器中,主要是通过代码转换模块来获取文本代码,进而将文本代码转换为结构代码;然后由代码执行模块获取结构代码并执行结构代码,以及生成执行结果;最终,由语言解释器中的结果分析器来对代码执行模块生成的执行结果进行分析处理,以得到最终的测试结果。
在本申请实施例中,测试用户在编写文本代码时,可以采用优先级标识符来指示计算机设备优先执行被优先级标识符标识的程序代码,这使得测试用户无需过多关注流程控制,从而使得用户可以更加专注于接口测试。此外,本申请示例中,测试用户在编写文本代码时,只需使用用例、变量、测试函数等概念,这使得文本代码的编写门槛得到了有效降低,从而使得软件开发商无需雇佣高级运维人员,从而降低了软件开发商对目标程序的维护成本。此外,由于本申请实施例提出了多项专门用于编写测试用例的目标编程规则,以及预先定义了一个或多个内置的断言函数,这使得测试用户可以更加轻松地编写完整的测试用例,从而能够更加快捷地完成对目标程序接口的接口测试,有效提升了接口测试的速率。
基于上述接口测试方法相关实施例的描述,本申请实施例还公开了一种接口测试装置,该接口测试装置可以是运行于上述所提及的计算机设备中的一个计算机程序(包括程序代码)。该接口测试装置可以执行图2或图4所示的方法。请参见图7,所述接口测试装置可以包括:获取单元701,代码转换单元702以及执行单元703。
获取单元701,用于获取待测试的目标程序接口的接口参数,并将所述接口参数输出给测试用户;
所述获取单元701,还用于获取所述测试用户按照目标编程规则,并根据所述接口参数输入的文本代码,所述文本代码用于对所述目标程序接口进行接口测试;
代码转换单元702,用于对所述文本代码进行代码转换,得到对所述目标程序接口进行接口测试所使用的结构代码,所述结构代码是指能被调用执行的代码;
执行单元703,用于解析所述结构代码,获取所述目标程序接口的测试函数及测试参数,并基于所述测试参数运行所述测试函数,得到所述目标程序接口的测试结果。
在一种实施方式中,所述执行单元703还用于执行:
解析所述结构代码,并生成针对所述目标程序接口的调用请求;
将所述调用请求发送给所述目标程序接口,并从所述目标程序接口处获取针对所述目标程序接口的请求结果;
在所述请求结果指示成功调用所述目标程序接口时,获取所述目标程序接口的测试函数及测试参数;
调用所述目标程序接口基于所述测试参数运行所述测试函数,得到所述测试函数的执行结果,并根据所述执行结果确定所述目标程序接口的测试结果。
在又一种实施方式中,所述文本代码包括声明部分;所述文本代码的声明部分的生成过程包括:
获取所述测试用户输入的所述目标程序接口的请求方法名及请求路径信息,所述请求方法名及所述请求路径信息是所述测试用户根据所述接口参数确定的;
采用目标分隔符将所述请求方法名及所述请求路径信息隔开,并在所述测试用户输入的测试名称之前添加目标指示符,以生成所述文本代码的声明部分;
其中,所述请求方法名及所述请求路径信息处于同一代码行,所述测试名称及所述请求方法名处于不同的代码行。
在又一种实施方式中,所述文本代码包括请求头部分;所述文本代码的请求头部分的生成过程包括:
获取所述测试用户输入的所述目标程序接口的调用要求,并根据所述调用要求生成请求头字段值;
将所述请求头字段值添加至目标请求结构中,以生成所述文本代码的请求头部分。
在又一种实施方式中,所述文本代码包括请求体部分;所述文本代码的请求体部分的生成过程包括:
获取所述测试用户按照目标代码格式输入的所述目标程序接口的测试参数及参数值,以生成所述文本代码的请求体部分,所述目标代码格式和所述测试参数均是所述测试用户根据所述接口参数确定的。
在又一种实施方式中,所述文本代码包括函数部分;所述文本代码的函数部分的生成过程包括:
获取所述测试用户输入的测试函数,所述测试函数至少包括断言函数和功能函数;所述功能函数用于:在调用所述目标程序接口基于所述测试参数运行所述测试函数之前,对所述测试参数进行预处理;
将包括所述断言函数及所述功能函数的代码部分直接作为所述文本代码的函数部分。
在又一种实施方式中,所述目标程序接口所在目标应用程序包括多个程序接口,所述多个程序接口包括所述目标程序接口及其他程序接口,且所述其他程序接口和所述目标程序接口相关联;所述执行单元703还可以执行:
获取在对所述目标程序接口进行接口测试过程中得到的业务参数;
根据所述业务参数,生成对所述其他程序接口进行接口测试时的测试参数。
根据本申请的另一个实施例,图2和图4所示的方法所涉及的各个步骤可以是由图7所示的接口测试装置中的各个单元来执行的。例如:图2所示的步骤S201和步骤S202均可由图7所示的接口测试装置中的获取单元701来执行,步骤S203可由图7所示的接口测试装置中的代码转换单元702来执行,步骤S204可由图7所示的接口测试装置中的执行单元703来执行。再如:图4所示的步骤S401和步骤S402均可由图7所示的接口测试装置中的获取单元701来执行,步骤S403可由图7所示的接口测试装置中的代码转换单元702来执行,步骤S404至步骤S407均可由图7所示的接口测试装置中的执行单元703来执行。
根据本申请的另一个实施例,图7所示的接口测试装置中的各个单元是基于逻辑功能划分的,上述各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请实施例的技术效果的实现。在本申请实施例的其它实施例中,接口测试装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请实施例的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2或图4所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图7所示的接口测试装置,以及来实现本申请实施例的接口测试方法。所述计算机程序可以记载于例如存储介质上,并通过存储介质装载于上述计算设备中,并在其中运行。
在本申请实施例中,由于接口测试装置可以对测试用户输入的文本代码进行代码转换,从而得到可以被目标程序接口识别以及调用的结构代码,此方法避免了测试用户需要手动输入结构代码这一操作,一方面降低了测试用例的编写门槛,进而使得目标程序接口的维护成本得到了降低,另一方面提升了接口测试的便捷性。此外,接口测试装置还可以进一步基于代码转换得到的结构代码,对目标程序接口进行接口测试,并生成对应的测试结果,实现了接口测试的自动化。
基于上述方法实施例以及装置实施例的相关描述,本申请实施例还提出了一种计算机设备。请参见图8,该计算机设备至少包括处理器801以及存储介质802,且该计算机设备内的处理器801和存储介质802可通过总线或其他方式连接。
所述存储介质802是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储介质802既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。存储介质802提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了适于被处理器801加载并执行的一条或多条计算机指令,这些计算机指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的存储介质。所述处理器801(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条计算机指令,具体适于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。
在一个实施例中,可由处理器801加载并执行存储介质802中存放的一条或多条计算机指令,以实现上述有关图2和图4所示的接口测试方法实施例中的相应方法步骤;具体实现中,计算机存储介质802中的一条或多条计算机指令由处理器801加载并执行如下步骤:
获取待测试的目标程序接口的接口参数,并将所述接口参数输出给测试用户;
获取所述测试用户按照目标编程规则,并根据所述接口参数输入的文本代码,所述文本代码用于对所述目标程序接口进行接口测试;
对所述文本代码进行代码转换,得到对所述目标程序接口进行接口测试所使用的结构代码,所述结构代码是指能被调用执行的代码;
解析所述结构代码,获取所述目标程序接口的测试函数及测试参数,并基于所述测试参数运行所述测试函数,得到所述目标程序接口的测试结果。
在一种实施方式中,所述处理器801还用于加载并执行:
解析所述结构代码,并生成针对所述目标程序接口的调用请求;
将所述调用请求发送给所述目标程序接口,并从所述目标程序接口处获取针对所述目标程序接口的请求结果;
在所述请求结果指示成功调用所述目标程序接口时,获取所述目标程序接口的测试函数及测试参数;
调用所述目标程序接口基于所述测试参数运行所述测试函数,得到所述测试函数的执行结果,并根据所述执行结果确定所述目标程序接口的测试结果。
在又一种实施方式中,所述文本代码包括声明部分;所述文本代码的声明部分的生成过程包括:
获取所述测试用户输入的所述目标程序接口的请求方法名及请求路径信息,所述请求方法名及所述请求路径信息是所述测试用户根据所述接口参数确定的;
采用目标分隔符将所述请求方法名及所述请求路径信息隔开,并在所述测试用户输入的测试名称之前添加目标指示符,以生成所述文本代码的声明部分;
其中,所述请求方法名及所述请求路径信息处于同一代码行,所述测试名称及所述请求方法名处于不同的代码行。
在又一种实施方式中,所述文本代码包括请求头部分;所述文本代码的请求头部分的生成过程包括:
获取所述测试用户输入的所述目标程序接口的调用要求,并根据所述调用要求生成请求头字段值;
将所述请求头字段值添加至目标请求结构中,以生成所述文本代码的请求头部分。
在又一种实施方式中,所述文本代码包括请求体部分;所述文本代码的请求体部分的生成过程包括:
获取所述测试用户按照目标代码格式输入的所述目标程序接口的测试参数及参数值,以生成所述文本代码的请求体部分,所述目标代码格式和所述测试参数均是所述测试用户根据所述接口参数确定的。
在又一种实施方式中,所述文本代码包括函数部分;所述文本代码的函数部分的生成过程包括:
获取所述测试用户输入的测试函数,所述测试函数至少包括断言函数和功能函数;所述功能函数用于:在调用所述目标程序接口基于所述测试参数运行所述测试函数之前,对所述测试参数进行预处理;
将包括所述断言函数及所述功能函数的代码部分直接作为所述文本代码的函数部分。
在又一种实施方式中,所述目标程序接口所在目标应用程序包括多个程序接口,所述多个程序接口包括所述目标程序接口及其他程序接口,且所述其他程序接口和所述目标程序接口相关联;所述处理器801还用于加载并执行:
获取在对所述目标程序接口进行接口测试过程中得到的业务参数;
根据所述业务参数,生成对所述其他程序接口进行接口测试时的测试参数。
在本申请实施例中,由于计算机设备可以对测试用户输入的文本代码进行代码转换,从而得到可以被目标程序接口识别以及调用的结构代码,此方法避免了测试用户需要手动输入结构代码这一操作,一方面降低了测试用例的编写门槛,进而使得目标程序接口的维护成本得到了降低,另一方面提升了接口测试的便捷性。此外,计算机设备还可以进一步基于代码转换得到的结构代码,对目标程序接口进行接口测试,并生成对应的测试结果,实现了接口测试的自动化。
本申请实施例还提供了一种存储介质,该存储介质中存储了上述接口测试方法的一条或多条计算机指令,当一个或多个处理器加载并执行该计算机指令,可以实现接口测试方法实施例中对接口测试方法的描述,在此不再赘述。对采用相同方法的有益效果的描述,在此不再赘述。可以理解的是,计算机指令可以被部署在一个或多个能够相互通信的设备上执行。
需要说明的是,根据本申请实施例的一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在存储介质中。计算机设备的处理器从存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图2和图4所示的接口测试方法相关实施例方面的各种可选方式中提供的方法。
此外,应当理解的是,以上所揭露的各个实施例仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (11)

1.一种接口测试方法,其特征在于,包括:
获取待测试的目标程序接口的接口参数,并将所述接口参数输出给测试用户;
获取所述测试用户按照目标编程规则,并根据所述接口参数输入的文本代码,所述文本代码用于对所述目标程序接口进行接口测试;
对所述文本代码进行代码转换,得到对所述目标程序接口进行接口测试所使用的结构代码,所述结构代码是指能被调用执行的代码;
解析所述结构代码,获取所述目标程序接口的测试函数及测试参数,并基于所述测试参数运行所述测试函数,得到所述目标程序接口的测试结果。
2.如权利要求1所述的方法,其特征在于,所述解析所述结构代码,获取所述目标程序接口的测试函数及测试参数,并基于所述测试参数运行所述测试函数,得到所述目标程序接口的测试结果,包括:
解析所述结构代码,并生成针对所述目标程序接口的调用请求;
将所述调用请求发送给所述目标程序接口,并从所述目标程序接口处获取针对所述目标程序接口的请求结果;
在所述请求结果指示成功调用所述目标程序接口时,获取所述目标程序接口的测试函数及测试参数;
调用所述目标程序接口基于所述测试参数运行所述测试函数,得到所述测试函数的执行结果,并根据所述执行结果确定所述目标程序接口的测试结果。
3.如权利要求1所述的方法,其特征在于,所述文本代码包括声明部分;所述文本代码的声明部分的生成过程包括:
获取所述测试用户输入的所述目标程序接口的请求方法名及请求路径信息,所述请求方法名及所述请求路径信息是所述测试用户根据所述接口参数确定的;
采用目标分隔符将所述请求方法名及所述请求路径信息隔开,并在所述测试用户输入的测试名称之前添加目标指示符,以生成所述文本代码的声明部分;
其中,所述请求方法名及所述请求路径信息处于同一代码行,所述测试名称及所述请求方法名处于不同的代码行。
4.如权利要求1所述的方法,其特征在于,所述文本代码包括请求头部分;所述文本代码的请求头部分的生成过程包括:
获取所述测试用户输入的所述目标程序接口的调用要求,并根据所述调用要求生成请求头字段值;
将所述请求头字段值添加至目标请求结构中,以生成所述文本代码的请求头部分。
5.如权利要求1所述的方法,其特征在于,所述文本代码包括请求体部分;所述文本代码的请求体部分的生成过程包括:
获取所述测试用户按照目标代码格式输入的所述目标程序接口的测试参数及参数值,以生成所述文本代码的请求体部分,所述目标代码格式和所述测试参数均是所述测试用户根据所述接口参数确定的。
6.如权利要求1所述的方法,其特征在于,所述文本代码包括函数部分;所述文本代码的函数部分的生成过程包括:
获取所述测试用户输入的测试函数,所述测试函数至少包括断言函数和功能函数;所述功能函数用于:在调用所述目标程序接口基于所述测试参数运行所述测试函数之前,对所述测试参数进行预处理;
将包括所述断言函数及所述功能函数的代码部分直接作为所述文本代码的函数部分。
7.如权利要求1所述的方法,其特征在于,所述目标程序接口所在目标应用程序包括多个程序接口,所述多个程序接口包括所述目标程序接口及其他程序接口,且所述其他程序接口和所述目标程序接口相关联;所述方法还包括:
获取在对所述目标程序接口进行接口测试过程中得到的业务参数;
根据所述业务参数,生成对所述其他程序接口进行接口测试时的测试参数。
8.一种接口测试装置,其特征在于,包括:
获取单元,用于获取待测试的目标程序接口的接口参数,并将所述接口参数输出给测试用户;
所述获取单元,还用于获取所述测试用户按照目标编程规则,并根据所述接口参数输入的文本代码,所述文本代码用于对所述目标程序接口进行接口测试;
代码转换单元,用于对所述文本代码进行代码转换,得到对所述目标程序接口进行接口测试所使用的结构代码,所述结构代码是指能被调用执行的代码;
执行单元,用于解析所述结构代码,获取所述目标程序接口的测试函数及测试参数,并基于所述测试参数运行所述测试函数,得到所述目标程序接口的测试结果。
9.一种计算机设备,其特征在于,包括:
处理器,所述处理器适于实现一条或多条计算机指令;
存储介质,所述存储介质存储有一条或多条计算机指令,所述一条或多条计算机指令适于由所述处理器加载并执行如权利要求1-7任一项所述的接口测试方法。
10.一种存储介质,其特征在于,所述存储介质存储有一条或多条计算机指令,所述一条或多条计算机指令适于由处理器加载并执行如权利要求1-7任一项所述的接口测试方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在存储介质中,由处理器从存储介质中读取所述计算机程序,所述处理器加载并执行如权利要求1-7任一项所述的接口测试方法。
CN202111089930.5A 2021-09-16 2021-09-16 一种接口测试方法、相关设备、存储介质及程序产品 Pending CN115827417A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111089930.5A CN115827417A (zh) 2021-09-16 2021-09-16 一种接口测试方法、相关设备、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111089930.5A CN115827417A (zh) 2021-09-16 2021-09-16 一种接口测试方法、相关设备、存储介质及程序产品

Publications (1)

Publication Number Publication Date
CN115827417A true CN115827417A (zh) 2023-03-21

Family

ID=85515156

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111089930.5A Pending CN115827417A (zh) 2021-09-16 2021-09-16 一种接口测试方法、相关设备、存储介质及程序产品

Country Status (1)

Country Link
CN (1) CN115827417A (zh)

Similar Documents

Publication Publication Date Title
JP7371141B2 (ja) リアルタイムデータフロープログラミング言語のためのツールおよび方法
US20090282136A1 (en) Automatic Generation of Web Service client for Web Services Interoperability Testing
US8615750B1 (en) Optimizing application compiling
US20110289484A1 (en) Method and System for Script Processing for Web-Based Applications
CN113900958A (zh) 测试用例脚本的生成方法、系统、介质及电子设备
CN110941655B (zh) 一种数据格式转换方法及装置
CN116126347B (zh) 一种低代码应用程序的文件编译系统和方法
CN115016784B (zh) 低代码应用复用方法、应用解析系统、设备及存储介质
CN116028028B (zh) 请求函数生成方法、装置、设备及存储介质
CN113032244A (zh) 接口测试方法、装置、计算机系统和计算机可读存储介质
CN113419740B (zh) 程序数据流的分析方法、装置、电子设备及可读存储介质
CN111814449B (zh) 表单解析方法、装置、设备及存储介质
CN111221841A (zh) 基于大数据的实时处理方法及装置
CN110737631A (zh) 一种基于Flink引擎的数据解析方法及装置
CN113778897A (zh) 接口的自动测试方法、装置、设备及存储介质
CN111221888A (zh) 大数据分析系统及方法
CN110633162B (zh) 远程调用实现方法、装置、计算机设备及存储介质
CN111596905A (zh) 生成java对象的方法、装置、存储介质及终端
CN111506305A (zh) 工具包生成方法、装置、计算机设备及可读存储介质
CN116483479A (zh) 多维度调用接口的方法和装置、设备、介质
CN115934537A (zh) 接口测试工具生成方法、装置、设备、介质及产品
CN115827417A (zh) 一种接口测试方法、相关设备、存储介质及程序产品
CN116382640A (zh) 微服务的治理方法、装置、设备及存储介质
CN113515285B (zh) 生成实时计算逻辑数据的方法和装置
CN112650502A (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