掌桥专利:专业的专利平台
掌桥专利
首页

API接口封装方法、装置、终端设备以及存储介质

文献发布时间:2024-04-18 19:58:30


API接口封装方法、装置、终端设备以及存储介质

技术领域

本发明涉及自动化测试领域,尤其涉及一种API接口封装方法、装置、终端设备以及存储介质。

背景技术

随着软件迭代速度日益加快、业务系统复杂度不断提升,自动化测试在软件测试过程中变得越来越重要,测试人员会编写自动化脚本实现自动化测试过程中的数据准备、业务系统执行调用、环境清理等步骤。在此过程中,不同部门不同业务线的测试人员各自为自动化测试沉淀了大量的自动化脚本,这些脚本需要封装成API接口,以在同业务线不同项目组间、上下游业务间、不同分层的业务间进行复用和共享。

但是,目前的自动化脚本通常为编程函数或编程框架关键字,而人工基于编程函数封装API重复工作量大且门槛高,人工基于编程框架关键字封装API难度大。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

发明内容

本申请的主要目的在于提供一种API接口封装方法、装置、终端设备以及存储介质,旨在解决基于编程函数和编程框架关键字利用人工封装API工作量和难度大且门槛高的问题。

为实现上述目的,本申请提供一种API接口封装方法,所述API接口封装方法包括:

对预先获取的工程代码文件进行解析,获取解析结果,其中,所述解析结果包括编程函数以及编程框架关键字;

对所述编程函数以及编程框架关键字分别进行封装,生成对应的API接口。

可选地,所述工程代码文件包括函数文件和关键字文件,所述对预先获取的工程代码文件进行解析,获取解析结果的步骤包括:

基于预设的虚拟环境,通过预设的函数解析模块对所述函数文件进行解析,获取编程函数;

通过预设的关键字解析模块对所述关键字文件进行解析,获取编程框架关键字。

可选地,所述基于预设的虚拟环境,通过预设的函数解析模块对所述函数文件进行解析,获取编程函数的步骤之前还包括:

根据所述工程代码文件中的环境配置文件,构建虚拟环境并将所述函数文件导入到所述虚拟环境中。

可选地,所述对所述编程函数和编程框架关键字分别进行封装,生成对应的API接口的步骤包括:

对python编程函数进行封装,生成函数API接口;

对robot编程框架关键字进行封装,生成关键字API接口。

可选地,所述对python编程函数进行封装,生成函数API接口的步骤包括:

根据所述python编程函数中的参数定义,生成python请求报文类;

根据所述python编程函数和所述python请求报文类,生成python接口层函数;

通过所述python接口层函数结合对应的装饰器,生成函数API接口。

可选地,所述对robot编程框架关键字进行封装,生成关键字API接口的步骤包括:

根据所述robot编程框架关键字中的关键字名称和参数,生成robot请求报文类;

根据所述robot请求报文类,基于robot包的running模块,对robot编程框架关键字及对应关键字资源路径进行封装,生成robot接口层函数;

通过所述robot接口层函数结合对应的装饰器,生成关键字API接口。

可选地,所述对所述编程函数和编程框架关键字分别进行封装,生成对应的API接口的步骤之后还包括:

根据所述API接口,生成路由注册文件;

根据所述路由注册文件,获取路由注册代码;

根据所述API接口,获取依赖导入语句、环境变量处理语句和API启动代码;

根据所述路由注册代码、依赖导入语句、环境变量处理语句和API启动代码,生成API启动文件;

执行所述API启动文件,以启动对应的API接口。

可选地,所述执行所述API启动文件,以启动对应的API接口的步骤之后还包括:

接收关键字API请求;

根据所述关键字API请求和所述robot接口层函数,创建robot框架用例;

通过所述关键字API接口执行所述robot框架用例对应的robot编程框架关键字,获取关键字返回值;

通过所述robot框架用例的结果收集关键字对所述关键字返回值进行收集,获取用例执行结果并发送到全局变量中进行存储;

通过robot接口层函数读取所述全局变量中的用例执行结果,生成关键字API响应报文。

本申请实施例还提出一种API接口封装装置,所述API接口封装装置包括:

代码解析模块,用于对预先获取的工程代码文件进行解析,获取解析结果,其中,所述解析结果包括编程函数以及编程框架关键字;

接口封装模块,用于对所述编程函数和编程框架关键字分别进行封装,生成对应的API接口。

本申请实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的API接口封装程序,所述API接口封装程序被所述处理器执行时实现如上所述的API接口封装方法的步骤。

本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有API接口封装程序,所述API接口封装程序被处理器执行时实现如上所述的API接口封装方法的步骤。

本申请实施例提出的API接口封装方法、装置、终端设备以及存储介质,对预先获取的工程代码文件进行解析,获取解析结果,其中,所述解析结果包括编程函数以及编程框架关键字;对所述编程函数以及编程框架关键字分别进行封装,生成对应的API接口。实现存量编程函数和编程框架关键字的API自动封装,从而降低封装API的门槛和人工编写封装代码的开销,提高存量函数关键字的共享和复用效率。

附图说明

图1是本申请API接口封装装置所属终端设备的功能模块示意图;

图2为本申请API接口封装方法第一示例性实施例的流程示意图;

图3为本申请API接口封装方法第二示例性实施例的流程示意图;

图4为本申请API接口封装方法解析工程代码目录结构的流程示意图;

图5为本申请API接口封装方法第三示例性实施例的流程示意图;

图6为本申请API接口封装方法python编程函数封装API接口的流程示意图;

图7为本申请API接口封装方法robot编程框架关键字封装API接口的流程示意图;

图8为本申请API接口封装方法第四示例性实施例的流程示意图;

图9为本申请API接口封装方法从工程代码到生成API启动文件的流程示意图;

图10为本申请API接口封装方法生成API启动文件的流程示意图;

图11为本申请API接口封装方法第五示例性实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本申请实施例的主要解决方案是:对预先获取的工程代码文件进行解析,获取解析结果,其中,所述解析结果包括编程函数以及编程框架关键字;对所述编程函数和编程框架关键字分别进行封装,生成对应的API接口。方案基于编程函数和编程框架关键字进行封装,获取相应的API接口,有效解决基于编程函数和编程框架关键字利用人工封装API工作量和难度大且门槛高的问题,实现存量编程函数和编程框架关键字的API自动封装,从而降低封装API的门槛和人工编写封装代码的开销,提高存量函数关键字的共享和复用效率。

本申请涉及的技术术语:

API接口:是一组定义了软件组件或系统之间交互的规范和方法,使不同的软件系统能够相互通信、交换数据和共享功能。API接口定义了请求和响应的格式和结构,以及允许使用者和提供者之间进行的操作,描述了如何通过特定的协议(例如HTTP/HTTPS)在不同的软件组件之间进行通信,并规定了可以使用的数据格式(例如JSON、XML)以及可用的操作(例如GET、POST、PUT、DELETE)。

inspect模块:是Python内置的一个用于获取关于对象(如模块、类、方法、函数等)信息的模块,提供了一系列函数,可以帮助开发者获取和分析目标对象的结构、属性、参数等相关信息。

robotframework:即robot框架,是一个开源的自动化测试框架,使用关键字驱动的方式编写测试用例,提供了易读易写的语法,并支持多种测试库和插件的扩展,使得测试用例的编写和执行变得简单高效。

parsing模块:是robot包提供的用于解析和处理测试文件(如.robot文件)的功能并提取其中的信息。

API响应报文:是指在进行API调用后,服务器返回给客户端的数据,通常是一个结构化的数据格式,例如JSON或XML,其中包含了请求的结果、状态码、错误信息等。

装饰器:是一个Python函数,在不改变被装饰函数源代码的情况下,动态地修改被装饰函数的行为。在Python中,可以使用装饰器(decorator)来扩展或修改函数的功能。

存量脚本:是指已经开发完成并且在生产环境中正在运行的脚本,也称为遗留脚本,通常根据特定的业务逻辑或系统需求来实现自动化操作,例如数据处理、文件备份、系统监控等。

requirements文件:requirements文件是在工程代码中用于记录项目所依赖的外部软件包及其对应版本的文件,其主要作用是方便项目的部署和依赖管理。通过明确列出项目所需的外部库及其版本要求,可以确保在不同环境中正确安装并使用相同的软件包版本,提高代码的可重复性和可移植性。

本申请实施例考虑到,相关技术方案目前较常见的自动化脚本是以python语言或robot框架编写,基于存量自动化脚本封装API中面临如下问题:

1.目前API的封装都是由人工完成的,对于已有的存量脚本,逐个为其封装API是非常耗时的,且需要学习和了解Web框架,对人员的能力提出了较高的要求;

2.除了编程函数脚本之外,测试人员会使用自动化测试编程框架实现关键字,用这种关键字封装API需要熟悉编程框架底层的处理方法以及Web框架,对API提供方来说难度较大。

基于此,本申请实施例提出一种解决方案,能够自动将存量编程函数和编程框架关键字封装成API,降低封装API的门槛和人工封装代码的开销,提高存量函数关键字的共享和复用效率。

具体地,参照图1,图1为本申请API接口封装装置所属终端设备的功能模块示意图。该API接口封装装置可以为独立于终端设备的、能够进行API接口封装的装置,其可以通过硬件或者软件的形式承载于终端设备上。该终端设备可以为手机、平板电脑等具有API接口封装功能的智能移动设备,还可以为具有API接口封装功能的固定终端设备或服务器等。

在本实施例中,该API接口封装装置所属终端设备至少包括输出模块110、处理器120、存储器130以及通信模块140。

存储器130中存储有操作系统以及API接口封装程序,API接口封装装置可以将接收到的和处理的数据信息存储于该存储器130中;输出模块110可为显示屏、扬声器等。通信模块140可以包括WIFI模块、移动通信模块以及蓝牙模块等,通过通信模块140与外部设备或服务器进行通信。

其中,存储器130中的API接口封装程序被处理器执行时实现以下步骤:

对预先获取的工程代码文件进行解析,获取解析结果,其中,所述解析结果包括编程函数以及编程框架关键字;

对所述编程函数和编程框架关键字分别进行封装,生成对应的API接口。

进一步地,存储器130中的API接口封装程序被处理器执行时还实现以下步骤:

基于预设的虚拟环境,通过预设的函数解析模块对所述函数文件进行解析,获取编程函数;

通过预设的关键字解析模块对所述关键字文件进行解析,获取编程框架关键字。

进一步地,存储器130中的API接口封装程序被处理器执行时还实现以下步骤:

根据所述工程代码文件中的环境配置文件,构建虚拟环境并将所述函数文件导入到所述虚拟环境中。

进一步地,存储器130中的API接口封装程序被处理器执行时还实现以下步骤:

对python编程函数进行封装,生成函数API接口;

对robot编程框架关键字进行封装,生成关键字API接口。

进一步地,存储器130中的API接口封装程序被处理器执行时还实现以下步骤:

根据所述python编程函数中的参数定义,生成python请求报文类;

根据所述python编程函数和所述python请求报文类,生成python接口层函数;

通过所述python接口层函数结合对应的装饰器,生成函数API接口。

进一步地,存储器130中的API接口封装程序被处理器执行时还实现以下步骤:

根据所述robot编程框架关键字中的关键字名称和参数,生成robot请求报文类;

根据所述robot请求报文类,基于robot包的running模块,对robot编程框架关键字及对应关键字资源路径进行封装,生成robot接口层函数;

通过所述robot接口层函数结合对应的装饰器,生成关键字API接口。

进一步地,存储器130中的API接口封装程序被处理器执行时还实现以下步骤:

根据所述API接口,生成路由注册文件;

根据所述路由注册文件,获取路由注册代码;

根据所述API接口,获取依赖导入语句、环境变量处理语句和API启动代码;

根据所述路由注册代码、依赖导入语句、环境变量处理语句和API启动代码,生成API启动文件;

执行所述API启动文件,以启动对应的API接口。

进一步地,存储器130中的API接口封装程序被处理器执行时还实现以下步骤:

接收关键字API请求;

根据所述关键字API请求和所述robot接口层函数,创建robot框架用例;

通过所述关键字API接口执行所述robot框架用例对应的robot编程框架关键字,获取关键字返回值;

通过所述robot框架用例的结果收集关键字对所述关键字返回值进行收集,获取用例执行结果并发送到全局变量中进行存储;

通过robot接口层函数读取所述全局变量中的用例执行结果,生成关键字API响应报文。

本实施例通过上述方案,具体通过对预先获取的工程代码文件进行解析,获取解析结果,其中,所述解析结果包括编程函数以及编程框架关键字;对所述编程函数和编程框架关键字分别进行封装,生成对应的API接口。实现存量编程函数和编程框架关键字的API自动封装,从而降低封装API的门槛和人工编写封装代码的开销,提高存量函数关键字的共享和复用效率。

基于上述终端设备架构但不限于上述架构,提出本申请方法实施例。

参照图2,图2为本申请API接口封装方法第一示例性实施例的流程示意图。所述API接口封装方法包括:

步骤S10:对预先获取的工程代码文件进行解析,获取解析结果,其中,所述解析结果包括编程函数以及编程框架关键字;

本实施例方法的执行主体可以是一种API接口封装装置,也可以是一种API接口封装终端设备或服务器,本实施例以API接口封装装置进行举例,该API接口封装装置可以集成在具有数据处理功能终端设备上。

本实施例方案主要对预先获取的工程代码文件进行解析,然后封装解析得到的编程函数和编程框架关键字,生成API接口。

其中,预先获取工程代码文件可以是版本资源库中预先存储的,也可以是通过网络或本地上传的。工程代码文件除了包含可以进行封装的编程函数和编程框架关键字的代码文件外,还可能会引入或导入其他模块或库,以便使用其提供的功能和资源,也可能包括注释、文档说明和配置文件,以解释代码的用途、实现细节、参数说明等,配置各种参数、环境变量、数据库连接等,以便他人理解和维护代码。另外,可以使用适当的工具或技术来解析代码文件,识别其中的函数和关键字,并进行提取。编程函数可以是Python编程语言的函数,也可以是Java、C#等编程语言编写的函数。编程框架关键字可以是RobotFramework的关键字,也可以是其他测试编程框架的关键字,例如:FitNesse、Cucumber和SpecFlow等。

步骤S20:对所述编程函数以及编程框架关键字分别进行封装,生成对应的API接口。

对解析得到的编程函数和编程框架关键字进行封装,生成对应的API接口,其中,该步骤的封装指的是将函数和关键字包装成可供其他程序调用的接口形式。对于编程函数,可以根据其输入参数和输出结果定义相应的API接口,并编写封装代码。对于编程框架关键字,可以将其转化为等效的测试用例调用,并进行相应的API接口封装处理。

将编程函数和编程框架关键字封装成API接口后,可以在多个测试用例中重复调用,避免了重复编写相同的代码。这样可以节省时间和精力,提高开发和维护效率。当测试需要进行修改或者更新时,只需修改API接口的代码,所有依赖该接口的测试用例都会自动生效。API接口可以实现对测试功能的抽象化,屏蔽底层的细节实现,提供更高层次的功能操作。这样可以减少维护工作量,并降低修改引起的风险,提高测试脚本的稳定性和可维护性,同时也便于进行测试环境变更和迁移。无论是使用编程函数还是编程框架关键字进行封装,都能够将常用的操作和逻辑封装成可被复用的API接口。通过合理地设计和组织这些接口,实现测试功能的高度复用,提高测试的效率和质量。

本实施例通过上述方案,具体通过对预先获取的工程代码文件进行解析,获取解析结果,其中,所述解析结果包括编程函数以及编程框架关键字;对所述编程函数和编程框架关键字分别进行封装,生成对应的API接口。实现存量编程函数和编程框架关键字的API自动封装,从而降低封装API的门槛和人工编写封装代码的开销,提高存量函数关键字的共享和复用效率。

参照图3,图3为本发明API接口封装方法第二示例性实施例的流程示意图。

基于第一实施例,提出本申请第二实施例,本申请第二实施例与第一实施例的区别在于:

在本实施例中,所述工程代码文件包括函数文件和关键字文件,所述对预先获取的工程代码文件进行解析,获取解析结果,其中,所述解析结果包括编程函数以及编程框架关键字的步骤包括:

步骤S101:基于预设的虚拟环境,通过预设的函数解析模块对所述函数文件进行解析,获取编程函数;

步骤S102:通过预设的关键字解析模块对所述关键字文件进行解析,获取编程框架关键字。

具体地,为了对预先获取的工程代码文件进行解析,获取所需的函数和关键字信息,首先,创建一个虚拟环境,使用对应编程语言的函数解析模块来解析函数文件并获取其中的编程函数。其中,函数解析模块提供了对编程对象进行解析的功能,包括获取函数、类、模块的信息。假如编程语言是python,那么对应编程语言的函数解析模块可以是python的inspect模块,可以使用inspect模块中inspect.getmembers()方法来获取函数文件中的成员函数。

然后,使用关键字解析模块来解析关键字文件并获取其中的编程框架关键字。其中,关键字解析模块提供了一些方便的函数和类,可以帮助我们解析和处理编程框架的测试案例文件。假如编程框架是robotframe,那么可以使用robot包中parsing模块的TestCaseFile类加载关键字文件,并使用该类的属性和方法来获取测试案例中定义的关键字。

进一步地,作为一种实施方式,所述基于预设的虚拟环境,通过预设的函数解析模块对所述函数文件进行解析,获取编程函数的步骤之前还包括:

步骤S1011:根据所述工程代码文件中的环境配置文件,构建虚拟环境并将所述函数文件导入到所述虚拟环境中。

具体地,首先,根据所述工程代码的环境配置文件,确定需要安装哪些依赖库。然后,根据确定的依赖库版本,可以在本地使用虚拟环境管理工具(如virtualenv、conda等)创建一个新的虚拟环境并在该虚拟环境中安装所需的依赖库。最后,将所述工程代码的函数文件导入到虚拟环境中,在虚拟环境中导入相应的模块或函数进一步处理。其中,环境配置文件可以是工程代码的requirements文件。

更具体地,如图4所示,解析工程代码目录结构是解析工程中的文件夹层次结构,解析文件中定义的编程函数和编程框架关键字,并得到函数定义的名字、参数、返回等信息。

在本实施例中,编程函数可以用python函数,编程框架关键字可以用robot框架关键字进一步说明。python函数解析利用工程中的requirements文件创建并切换虚拟环境,导入指定的python文件代码,利用python内置的inspect模块解析得到文件中定义的类名、函数名、参数定义等信息。

robot框架关键字解析利用robot包中自带的parsing模块解析,从而得到关键字名、参数定义、返回定义等信息。

本实施例通过上述方案,具体通过基于预设的虚拟环境,通过预设的函数解析模块对所述函数文件进行解析,获取编程函数;通过预设的关键字解析模块对所述关键字文件进行解析,获取编程框架关键字。提高了开发和测试的效率,减少人工重复操作,同时为后续的API接口自动封装提供基础。

参照图5,图5为本发明API接口封装方法第三示例性实施例的流程示意图。

基于第一实施例,提出本申请第三实施例,本申请第三实施例与第一实施例的区别在于:

在本实施例中,所述对所述编程函数和编程框架关键字分别进行封装,生成对应的API接口的步骤包括:

步骤S201:对python编程函数进行封装,生成函数API接口;

步骤S202:对robot编程框架关键字进行封装,生成关键字API接口。

具体地,为了生成编程函数和编程框架关键字对应的API接口,首先,对python函数进行封装,生成函数API接口。其中,函数API接口是一种用于封装和暴露python函数功能的编程接口,其他模块或系统可以调用函数并获取其返回值,实现代码的复用和模块间的交互。函数API接口具体的实现方式可能会因python函数、封装的方法以及设计需求而有所不同。

最后,对robot编程框架关键字进行封装,生成关键字API接口。其中,通过将robot编程框架关键字封装成API接口,可以实现更加灵活的测试执行方式。测试人员可以使用各种编程语言或工具调用API接口来执行测试用例,不仅可以方便地与其他系统集成,还可以根据需要进行自定义扩展和集成。

python编程函数和robot编程框架关键字都是用于测试的脚本,通过API接口,可以将测试脚本的内部实现细节隐藏起来,仅将脚本的核心功能暴露给外部调用者。这样可以提高代码的封装性和安全性,同时也方便了测试脚本的复用和维护。

进一步地,作为一种实施方式,所述对python编程函数进行封装,生成函数API接口的步骤包括:

步骤S2011:根据所述python编程函数中的参数定义,生成python请求报文类;

步骤S2012:根据所述python编程函数和所述python请求报文类,生成python接口层函数;

步骤S2013:通过所述python接口层函数结合对应的装饰器,生成函数API接口。

具体地,首先,根据python编程函数中的参数定义,生成python请求报文类。其中,在python编程函数中,可以定义一系列参数来接收外部传入的数据。为了在函数API接口中能够准确地传递这些参数,需要创建一个python请求报文类来表示函数的参数。请求报文类的属性对应python编程函数的参数,可以根据需要设置数据类型和默认值。

然后,根据python编程函数和python请求报文类,生成python接口层函数。其中,生成python接口层函数的目的是接收请求报文并调用对应的python编程函数。在接口层函数内部,也可以使用请求报文类的属性值作为实际的函数参数,并调用原始的python编程函数。

最后,通过所述python接口层函数结合对应的装饰器,生成函数API接口。其中,函数API接口是外部系统或客户端访问我们封装的函数的入口点。为了创建函数API接口,可以使用一种Web框架或库,如Flask、Django等。在具体的API接口中,可以使用相应的装饰器将接口层函数绑定到特定的URL路径上,以便能够通过HTTP请求访问这个函数。

能够将原始的python编程函数封装成函数API接口,使得外部系统或客户端可以通过通信请求来调用这个函数,并获得相应的结果,使得函数能够更加灵活地被使用和集成到其他系统中。

进一步地,作为一种实施方式,所述对robot编程框架关键字进行封装,生成关键字API接口的步骤包括:

步骤S2021:根据所述robot编程框架关键字中的关键字名称和参数,生成robot请求报文类;

步骤S2022:根据所述robot请求报文类,基于robot包的running模块,对robot编程框架关键字及对应关键字资源路径进行封装,生成robot接口层函数;

步骤S2023:通过所述robot接口层函数结合对应的装饰器,生成关键字API接口。

具体地,首先,根据robot编程框架关键字的关键字名称和参数创建请求报文类。其中,robot请求报文类的作用是用于表示关键字API接口中传递的请求参数,可以使用python的class语法来定义robot请求报文类,并根据特定的需求在类中设置合适的属性。该步骤根据robot编程框架关键字的名称和参数定义,提供一个结构化的对象来封装这些参数,能够传递关键字的执行所需的参数,减少参数传递的复杂性。

然后,根据robot请求报文类,基于robot包的running模块,对robot编程框架关键字及对应关键字资源路径进行封装,生成robot接口层函数。其中,导入所需的robot框架的running模块,并获取关键字执行器的实例,可以使用该实例来执行关键字操作。创建的robot接口层函数名称可以对应所述robot编程框架关键字的名称,使用python的def语法来对这个函数进行定义。在函数中,能够使用所述robot请求报文类的实例来获取关键字的名称和参数,能够通过调用关键字的相应方法来执行关键字。

最后,通过所述robot接口层函数结合对应的装饰器,生成关键字API接口。其中,使用装饰器将特定的资源路径绑定到robot接口层函数上。装饰器起到了路由绑定、访问控制、请求参数解析和响应处理等作用,使robot接口层函数能够通过接收通信请求来调用,并提供了灵活、安全和可靠的API接口。

更具体地,如图6所示,针对指定python函数封装API是根据解析得到的python函数定义,按照python函数的参数定义生成请求报文的model或schema类,生成接口层函数并添加相应装饰器代码,在接口层函数中调用目标python函数并通过请求报文取值和传参。将目标python函数的导入语句生成到接口层代码文件中,得到最终的接口层函数。

如图7所示,针对指定robot框架关键字封装API是通过解析robot文件中的关键字信息,提取关键字名称和参数,生成相应的请求报文model或schema类。新建接口层函数,函数内通过robot包内置的running模块动态导入关键字资源路径、动态将被调用关键字封装到自动新建的robot框架用例中,通过python方法调用启动执行该用例。

为了构建请求报文model或schema类,对于存量python函数,本方案通过动态创建和切换虚拟环境,自动读入python文件中定义的类和函数,解析其参数定义并组成请求报文model或schema类;对于存量robot框架关键字,本发明利用robot包内置的解析模块获得关键字的入参和返回定义,并自动组成请求和响应报文model或schema类。

本实施例通过上述方案,具体通过对python编程函数进行封装,生成函数API接口;对robot编程框架关键字进行封装,生成关键字API接口。可以将python编程函数和robot编程框架的关键字封装成关键字API接口,使得外部系统或客户端能够通过通信请求来调用这些关键字,并获得相应的执行结果,实现代码复用,提高了系统可维护性和安全性,降低了人工封装API接口的开发成本。

参照图8,图8为本发明API接口封装方法第四示例性实施例的流程示意图。

基于第三实施例,提出本申请第四实施例,本申请第四实施例与第三实施例的区别在于:

在本实施例中,所述对所述编程函数和编程框架关键字分别进行封装,生成对应的API接口的步骤之后还包括:

步骤S203:根据所述API接口,生成路由注册文件;

步骤S204:根据所述路由注册文件,获取路由注册代码;

步骤S205:根据所述API接口,获取依赖导入语句、环境变量处理语句和API启动代码;

步骤S206:根据所述路由注册代码、依赖导入语句、环境变量处理语句和API启动代码,生成API启动文件;

步骤S207:执行所述API启动文件,以启动对应的API接口。

具体地,首先,根据所述API接口,生成路由注册文件。其中,路由注册文件可以包含将API接口与URL路径绑定的代码,可以使用编程语言提供的路由注册函数或装饰器来实现。另外,根据具体的框架和语言,路由注册文件的形式可能有所不同。

然后,根据所述路由注册文件,获取路由注册代码。其中,需要读取所生成的路由注册文件,并提取其中的路由注册代码,可以是用于将API接口与URL路径进行绑定的代码,也可以是函数调用、装饰器使用或其他形式的代码。

然后,根据API接口,获取依赖导入语句、环境变量处理语句和API启动代码。其中,依赖导入语句用于导入所需的库或模块,环境变量处理语句用于设置python解释器的搜索路径,而API启动代码用于启动对应的API接口。

然后,根据路由注册代码、依赖导入语句、环境变量处理语句和API启动代码,生成API启动文件。其中,API启动文件包含了完整的API接口的启动逻辑,可以直接执行来启动对应的API接口。环境变量处理语句可以是指定python解释器在导入模块时搜索模块的路径的pythonpath处理语句。

最后,执行API启动文件,以启动对应的API接口。其中,只需执行生成的API启动文件即可启动对应的API接口。根据具体的语言和框架,可以通过设置特定的方式自动启动API接口,也可以手动在命令行终端中运行相应的启动命令。

更具体地,如图6和图7所示,在生成API接口后,会生成相应的路由注册文件,可以将API接口绑定到对应的URL地址,使得客户端可以通过特定的URL调用API接口。

进一步地,如图9和图10所示,生成API启动文件是每次API接口生成后都将读取文件夹下所有路由注册文件,自动生成启动API所需的启动文件,包含依赖导入语句、环境变量pythonpath处理语句、路由注册代码以及API启动代码等,执行自动生成的启动文件即可启动API,实现通过API调用指定方法或关键字。

进一步地,对于存量python函数封装API,本方案为目标python函数自动生成接口层函数,包括装饰器代码、目标函数调用和结果返回,自动生成路由注册文件。

进一步地,对于存量robot框架关键字封装API,本实施例为目标关键字自动生成python接口层函数和路由注册文件。自动生成API启动文件,遍历生成目录下所有路由注册文件,自动生成依赖导入语句、路由注册语句、pythonpath处理语句以及API启动代码等。

本实施例通过上述方案,具体通过根据所述API接口,生成路由注册文件;根据所述路由注册文件,获取路由注册代码;根据所述API接口,获取依赖导入语句、pythonpath处理语句和API启动代码;根据所述路由注册代码、依赖导入语句、pythonpath处理语句和API启动代码,生成API启动文件;执行所述API启动文件,以启动对应的API接口。将编写好的API接口变为可用的服务,以便客户端可以方便地使用和访问API接口,并获取对应的数据和功能,实现系统之间的集成、数据交互和业务处理,提高系统的灵活性和可扩展性。

参照图11,图11为本发明API接口封装方法第五示例性实施例的流程示意图。

基于第四实施例,提出本申请第五实施例,本申请第五实施例与第四实施例的区别在于:

在本实施例中,所述执行所述API启动文件,以启动对应的API接口的步骤之后还包括:

步骤S2071:接收关键字API请求;

步骤S2072:根据所述关键字API请求和所述robot接口层函数,创建robot框架用例;

步骤S2073:通过所述关键字API接口执行所述robot框架用例对应的robot编程框架关键字,获取关键字返回值;

步骤S2074:通过所述robot框架用例的结果收集关键字对所述关键字返回值进行收集,获取用例执行结果并发送到全局变量中进行存储;

步骤S2075:通过robot接口层函数读取所述全局变量中的用例执行结果,生成关键字API响应报文。

具体地,为了得到API请求的响应结果,首先,接收关键字API请求。其中,API接口会监听指定的端口,并接收来自客户端的关键字API请求。关键字API请求可以使用HTTP协议进行通信,API接口会解析和处理客户端发送的HTTP请求,提取其中的参数和数据。

然后,根据关键字API请求和robot接口层函数,创建robot框架用例。其中,创建与关键字API请求和robot接口层函数对应的robot框架用例,robot框架用例是一个特定的执行逻辑,可以包含调用不同的robot框架关键字和数据参数,以实现特定的功能。

然后,通过关键字API接口执行所述robot框架用例对应的robot框架关键字,获取关键字返回值。其中,API接口会逐步执行创建的robot框架用例,并根据robot框架用例调用对应的关键字。关键字执行相应的操作和逻辑,并可以返回一个或多个关键字返回值。

然后,通过robot框架用例的结果收集关键字对关键字返回值进行收集,获取用例执行结果并发送到全局变量中进行存储。其中,结果收集关键字将关键字的执行结果进行收集,包括成功与失败、错误信息等,执行结果会被发送到全局变量中进行存储,以便后续操作进行取用。

最后,通过robot接口层函数读取全局变量中的用例执行结果,生成关键字API响应报文。其中,关键字API响应报文可以包含执行结果的状态码、错误信息、返回值等,以便客户端能够理解用例的执行情况和获取关键字的返回值。

如图7所示,为了获取robot框架用例中目标关键字的返回结果,本发明通过向自动新建的robot框架用例中注入结果收集关键字,实现关键字返回值获取。结果收集关键字将返回值存储到全局变量的代码,在用例执行结束后接口层函数从全局变量中读取到执行结果并将其写入API响应报文中。

接口层函数中实现自动创建robot框架用例调用目标关键字,通过在动态生成的用例中注入结果收集关键字得到目标关键字运行结果,实现响应报文的组装。

本实施例通过上述方案,具体通过接收关键字API请求;根据所述关键字API请求和所述robot接口层函数,创建robot框架用例;通过所述关键字API接口执行所述robot框架用例对应的robot编程框架关键字,获取关键字返回值;通过所述robot框架用例的结果收集关键字对所述关键字返回值进行收集,获取用例执行结果并发送到全局变量中进行存储;通过robot接口层函数读取所述全局变量中的用例执行结果,生成关键字API响应报文。能够通过API响应报文提供自动化测试过程中有关潜在漏洞和安全问题的关键信息,以确保系统的质量和可靠性。

此外,本申请实施例还提出一种API接口封装装置,所述API接口封装装置包括:

代码解析模块,用于对预先获取的工程代码文件进行解析,获取解析结果,其中,所述解析结果包括编程函数以及编程框架关键字;

接口封装模块,用于对所述编程函数和编程框架关键字分别进行封装,生成对应的API接口。

本实施例实现API接口封装的原理及实施过程,请参照上述各实施例,在此不再赘述。

此外,本申请实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的API接口封装程序,所述API接口封装程序被所述处理器执行时实现如上所述的API接口封装方法的步骤。

由于本API接口封装程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。

此外,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有API接口封装程序,所述API接口封装程序被处理器执行时实现如上所述的API接口封装方法的步骤。

由于本API接口封装程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。

相比现有技术,本申请实施例提出的API接口封装方法、装置、终端设备以及存储介质,通过对预先获取的工程代码文件进行解析,获取解析结果,其中,所述解析结果包括编程函数以及编程框架关键字;对所述编程函数和编程框架关键字分别进行封装,生成对应的API接口。方案基于编程函数和编程框架关键字进行封装,获取相应的API接口,有效解决利用人工封装python和robot框架存量函数API接口工作量和难度大且门槛高的问题,实现存量编程函数和编程框架关键字的API自动封装,从而降低封装API的门槛和人工编写封装代码的开销,提高存量函数关键字的共享和复用效率。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 综合报告生成方法、装置、终端设备和可读存储介质
  • 分体式终端设备的屏显控制方法、装置及存储介质
  • 限制网速的方法、装置、终端设备和存储介质
  • 一种着装检查方法、装置、终端设备及计算机存储介质
  • API接口漏洞分析方法及装置、终端设备以及存储介质
  • 终端设备控制方法及装置、应用程序配置文件的封装方法、终端设备及计算机可读存储介质
技术分类

06120116496977