CN113778897B - 接口的自动测试方法、装置、设备及存储介质 - Google Patents

接口的自动测试方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113778897B
CN113778897B CN202111129798.6A CN202111129798A CN113778897B CN 113778897 B CN113778897 B CN 113778897B CN 202111129798 A CN202111129798 A CN 202111129798A CN 113778897 B CN113778897 B CN 113778897B
Authority
CN
China
Prior art keywords
test
interface
code
data
key information
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
Application number
CN202111129798.6A
Other languages
English (en)
Other versions
CN113778897A (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.)
Netease Youdao Information Technology Jiangsu Co ltd
Original Assignee
Netease Youdao Information Technology Jiangsu 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 Netease Youdao Information Technology Jiangsu Co ltd filed Critical Netease Youdao Information Technology Jiangsu Co ltd
Priority to CN202111129798.6A priority Critical patent/CN113778897B/zh
Publication of CN113778897A publication Critical patent/CN113778897A/zh
Application granted granted Critical
Publication of CN113778897B publication Critical patent/CN113778897B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/3684Test management for test design, e.g. generating new test cases
    • 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

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

接口的自动测试方法、装置、设备及存储介质
技术领域
本公开涉及测试技术领域,尤其涉及一种接口的自动测试方法、装置、设备及存储介质。
背景技术
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
随着前后端分离开发模式的普及,越来越多个人和企业采用了前后端分离的开发模式进行开发。在其带来显而易见的效率提升的同时,也存在着一些问题。在前后端分离开发模式中,接口文档(Application Interface Document,API Doc)成为了前端与后端沟通的桥梁与纽带,通过接口文档,后端可以知道前端所传递的数据内容通信方式以及数据形式,也可以知道后端会返回给前端的数据以及数据类型。然而,在接口文档定义好之后,目前通常需要将接口文档人工翻译成相应的前端代码,再与后端联合进行接口测试,才能够发现接口的可用性与准确性问题,使得接口测试的效率降低,从而影响系统的整体开发效率,延长了开发的时间。
发明内容
有鉴于此,非常需要一种改进的方法,能够有效地改善开发过程中接口测试效率低的问题。
本公开示例性实施例提供了一种接口的自动测试方法,包括:
获取与所述接口相关联的原始数据;
基于所述原始数据提取第一关键信息,并基于所述第一关键信息生成所述接口的测试代码;
基于所述原始数据提取第二关键信息,并基于所述第二关键信息生成所述接口的测试用例;
基于所述测试代码和所述测试用例对所述接口进行测试,得到所述接口的测试结果。
在一些实施例中,基于所述第一关键信息生成所述接口的测试代码,包括:
基于抽象语法树结构表示所述第一关键信息,生成第一抽象语法树;
基于所述第一关键信息和所述第一抽象语法树生成所述接口的请求方法语法树;
基于抽象语法树结构表示预定义代码,生成预设代码语法树;
基于所述第一抽象语法树、所述请求方法语法树和所述预设代码语法树生成测试语法树;
基于所述测试语法树生成所述测试代码。
在一些实施例中,所述方法还包括:将所述测试代码和所述测试用例基于预设文件基础信息生成目标文件,并将所述目标文件输出至对应的目标目录;
基于所述测试代码和所述测试用例对所述接口进行测试进一步包括:
基于所述目标文件中的所述测试代码和所述测试用例对所述接口进行测试。
在一些实施例中,基于所述第一关键信息生成所述接口的测试代码,包括:
基于所述第一关键信息生成第一关键信息代码,并将所述第一关键信息代码进行拼接以生成所述测试代码。
在一些实施例中,所述方法还包括:通过设置插件对所述接口的自动测试方法中的至少一个步骤进行拦截或自定义修改。
在一些实施例中,所述第一关键信息包括如下至少一种:基础URL、请求URI、请求参数结构、接口请求路径、接口请求方法或响应参数结构。
在一些实施例中,所述第二关键信息包括如下至少一种:请求参数默认值、模拟后台数据或响应参数默认值。
在一些实施例中,所述方法还包括:基于所述测试结果生成测试报告,并将所述测试报告发送至预设用户。
基于同一发明构思,本公开示例性实施例还提供了一种接口的自动测试装置,包括:
数据源获取模块,用于获取与所述接口相关联的原始数据;
测试信息生成模块,基于所述原始数据提取第一关键信息,并基于所述第一关键信息生成所述接口的测试代码;以及基于所述原始数据提取第二关键信息,并基于所述第二关键信息生成所述接口的测试用例;
测试模块,用于基于所述测试代码和所述测试用例对所述接口进行测试,得到所述接口的测试结果。
在一些实施例中,所述测试信息生成模块包括:
数据转换层,用于基于所述原始数据提取第一关键信息;
模型层,用于基于抽象语法树结构表示所述第一关键信息,生成第一抽象语法树;
服务层,用于基于所述第一关键信息和所述第一抽象语法树生成所述接口的请求方法语法树;
模板层,用于基于抽象语法树结构表示预定义代码,生成预设代码语法树;
测试用例层,用于基于所述第一抽象语法树、所述请求方法语法树和所述预设代码语法树生成测试语法树;以及基于所述原始数据提取第二关键信息,并基于所述第二关键信息生成测试用例;
代码生成层,用于基于所述测试语法树生成所述测试代码;
文件管理层,用于将所述测试代码和所述测试用例基于预设文件基础信息生成目标文件,并将所述目标文件输出至对应的目标目录。
在一些实施例中,所述原始数据通过第一单向数据通道流向所述数据转换层,并将所述原始数据与所述第一关键信息合并形成第一数据流;
所述第一数据流通过第二单向数据通道流向所述模型层,并将所述第一抽象语法树与所述第一数据流合并形成第二数据流;
所述第二数据流通过第三单向数据通道流向所述服务层,并将所述请求方法语法树与所述第二数据流合并形成第三数据流;
所述第三数据流通过第四单向数据通道流向所述模板层,并将所述预设代码语法树与所述第三数据流合并形成第四数据流;
所述第四数据流通过第五单向数据通道流向所述测试用例层,并将所述测试语法树和所述测试用例与所述第四数据流合并形成第五数据流;
所述第五数据流通过第六单向数据通道流向所述代码生成层,并将测试代码和所述测试用例与所述第五数据流合并形成第六数据流;
所述第六数据流通过第七单向数据通道流向所述文件管理层,并将所述目标文件和所述第六数据流合并形成第七数据流。
基于同一发明构思,本公开示例性实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一项所述的接口的自动测试方法。
基于同一发明构思,本公开示例性实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如上任一项所述的接口的自动测试方法。
从上面所述可以看出,本公开提供的接口的自动测试方法、装置、设备及存储介质,在接口开发完后直接提取接口文档中的关键性数据,生成前端的测试代码和测试用例,无需人工生成代码以及人工执行接口测试,减少了前端生成代码以及前端与后端进行接口联调的时间,实现了开发过程中自动对接口的可用性和准确性进行测试,从而提升系统整体开发效率,缩短开发时间。
附图说明
为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开示例性实施例提供的接口的自动测试方法的应用场景示意图;
图2为本公开示例性实施例提供的接口的自动测试方法的流程示意图;
图3为本公开示例性实施例提供的生成测试代码的流程示意图;
图4为本公开示例性实施例提供的接口的自动测试装置的结构示意图;
图5为本公开示例性实施例的循环训练子模型的训练框架示意图;
图6为本公开示例性实施例的接口的自动测试装置中数据流的示意性原理图;
图7为本公开示例性实施例的电子设备结构示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
根据本公开的实施方式,提出了一种接口的自动测试方法、装置、设备及存储介质。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
为了方便理解,下面对本公开实施例中涉及的名词进行解释:
接口文档(Application Interface Document,API Doc):在进行软件应用开发时采用前后端分离的方式协同开发时,前端与后端之间就需要一个文档用于约定彼此传递信息的格式、具体内容、方式等,这个文档被称为接口文档。接口文档的表现形式可以包括多种,例如,表现形式和灵活性都较好的JSON格式接口文档。
前端(Frontend):软件应用中与用户交互的应用部分,用于接收用户的数据、向后端请求数据、接收后端的返回数据、向用户展示数据以及处理渲染逻辑等。
后端(Backend):为软件应用的前端提供与服务器的数据请求交互的通道,以及处理业务逻辑。
YAPI:一种可视化的接口管理平台,可以本地部署,并打通前端、后端及QA(QUALITY ASSURANCE,质量保证)之间的交互。
Swagger 2.0:OpenAPI规范(OAS)接口开发工具框架,支持从设计和文档到测试和部署的整个接口生命周期的开发。
抽象语法树(Abstract Syntax Tree,AST):在计算机科学中,抽象语法树可以简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。
单向数据通道(Pipe):在进行数据传输时,数据流保持单向流动的数据通道。
关键信息提取引擎:用于从数据源中分析提取关键信息,并将这些关键信息有机整合成关键信息数据,为后续生成抽象语法树(AST)的生成提供关键且必要数据。
测试用例提取器:从接口文档的有限信息中提取中关键的可以作为测试用例的关键数据,并整合成测试用例集,用于之后进行接口测试提供用例支持。
接口测试员:使用单元测试的手段,对待测试的接口进行动态构建单元测试用例,并根据测试用例集对接口的可用性与准确性进行判断,最终出具测试报告。
消息通知员:将出具的测试报告的信息通过诸如邮件、自定义消息等消息发送方式发送给指定的开发人员。
下面参考本公开的若干代表性实施方式,详细阐释本申请的原理和精神。
发明概述
本公开的方案旨在提供接口的自动测试方法、装置、设备及存储介质,以实现一种改进的实现接口测试任务的方案。
目前的软件开发一般采用前后端分离的方式实现,前端和后端通过接口实现数据的交换。现有技术中,接口测试通常由前端开发人员人工根据接口文档翻译成接口的目标前端代码,以及人工编写测试用例,再基于目标前端代码和测试用例进行接口测试。存在一些通过接口文档生成代码的方案,一种是,直接将接口文档按照一定的规则生成目标前端代码字符串,另一种是,将接口文档先转换成抽象语法树,再将抽象语法树翻译成目标前端代码字符串。
在实现本公开的过程中,发明人发现上述现有技术均存在明显不足。现有技术大多只关心目标前端代码的生成,但对于生成目标前端代码的接口的可靠性与准确性并没有进行测试,前端开发人员依然需要人工编写测试用例,并对接口进行逐一检查核实后与后端开发人员联调来解决接口的可靠性测试问题。
基于上述接口测试过程的特点,以及针对于上述现有技术存在的问题,本公开提供了一种接口的自动测试方法、装置、设备及存储介质,在前端和后端对接口开发完后,直接提取接口文档中的关键性数据,生成前端的测试代码和测试用例,无需人工生成代码以及人工执行接口测试,减少了前端生成代码以及前端与后端进行接口联调的时间,实现了开发过程中自动对接口的可用性和准确性进行测试,从而提升系统整体开发效率,缩短开发时间。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
应用场景总览
参考图1,其为本公开实施例提供的接口的自动测试方法的应用场景示意图。该应用场景包括软件应用(包括Web应用和APP应用)的前端101和后端102。其中,前端101和后端102之间可通过有线或无线的通信网络连接,后端102还可以包括接口103,前端101通过调用接口103来完成与后端102的数据交互。
在软件应用的实际使用时,前端101可以部署于电子设备上,该电子设备包括但不限于桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备视、个人数字助理(personal digital assistant,PDA)或其它能够实现上述功能的电子设备等;而后端102可以部署于独立的物理服务器,也可以部署于多个物理服务器构成的服务器集群或者分布式系统,还可以部署于提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器;前端101可以向用户提供交互界面,用户在该交互界面上进行操作,前端101基于用户的操作生成相应的请求,该请求包括请求参数和请求访问的地址,后端102经由接口103接收到该请求,并根据该请求返回数据,该返回数据经由接口103发送至前端101,前端101接收到该返回数据后进行交互界面的渲染,以将该返回数据显示给用户。
在开发阶段,前端101和后端102分别由不同的开发人员独立进行开发,后端开发人员进行接口开发、编写和维护接口文档,在接口变化时更新接口文档。后端开发人员可以在进行后端102开发的同时,将其维护的接口文档提供给前端开发人员,前端开发人员根据该接口文档进行前端开发,前端101和后端102均开发完成后进行接口测试,以验证接口103的可用性与准确性,例如接口103和前端所写的目标前端代码是否对应,是否存在错误的接口,接口是否正常运行等与接口相关联的性能。
下面结合图1的应用场景,来描述根据本公开示例性实施方式的接口的自动测试方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
示例性方法
首先,本公开实施例提供了一种接口的自动测试方法,可以由前端的开发工具执行,如图1中的前端101的开发工具(未示出)。参考图2,本公开实施例的接口的自动测试方法200,包括以下步骤:
在步骤S201处,获取与所述接口相关联的原始数据。
其中,与接口相关联的原始数据可以包括该接口的接口文档中的至少部分数据,具体实施中,前端开发工具可以通过对接口文档中的数据进行清洗和过滤,将与接口测试无关的数据移除,得到与接口相关联的原始数据。前端开发工具可以将该原始数据进行封装,形成一数据源对象,以数据流的形式进行传输,以进行后续数据处理。
在一些实施例中,在步骤S201之前,可以通过后端开发工具生成接口文档。例如,后端开发工具中的接口管理平台YAPI可以生成Swagger 2.0标准结构的接口文档。进一步地,在一些实施例中,可以向前端开发工具提供该接口文档的存储地址,以便前端开发工具获取该接口文档。进一步地,在一些实施例中,接口文档的存储地址可以是本地路径地址,也可以是远程URL(uniform resource locator,统一资源定位系统)地址。
在一些实施例中,在步骤S201之前,还可以通过前端开发工具配置开发人员信息。其中,开发人员信息可以包括联系方式、邮箱、姓名、ID等等。
在步骤S202处,基于所述原始数据提取第一关键信息,并基于所述第一关键信息生成所述接口的测试代码。
其中,原始数据是基于接口文档进行预处理得到的数据,可以利用关键信息提取引擎对其进行进一步的关键信息提取,得到用于生成测试代码的第一关键信息。
在一些实施例中,所述第一关键信息包括如下至少一种:基础URL、请求URI、请求参数结构、接口请求路径、接口请求方法或响应参数结构。
在一些实施例中,基于所述第一关键信息生成所述接口的测试代码,还可以包括:
基于所述第一关键信息生成第一关键信息代码,并将所述第一关键信息代码进行拼接以生成所述测试代码。
在一些实施例中,如图3所示,基于所述第一关键信息生成所述接口的测试代码,包括:
步骤S301,基于抽象语法树结构表示所述第一关键信息,生成第一抽象语法树。
具体实施中,可以采用抽象语法树的结构表示第一关键信息中的各类参数,构建其抽象语法树结构,生成第一抽象语法树。可以识别各个参数字段类型,再基于识别的参数字段数据构建相应的抽象语法树。例如,通过请求参数字段类型的识别,得到请求参数字段,构建请求参数的抽象语法树结构;通过枚举字段类型的识别,得到枚举对象字段,构建相关枚举对象的抽象语法树结构;通过自定义字段类型的识别,得到自定义数据字段,构建自定义数据的抽象语法树结构;通过结构对象字段类型的识别,得到结构对象字段,构建结构对象的抽象语法树结构等等,可以将第一关键信息中的所有参数的抽象语法树形成抽象语法树队列。
步骤S302,基于所述第一关键信息和所述第一抽象语法树生成所述接口的请求方法语法树。
具体实施中,可以通过第一关键信息中的基础请求方法及其调用逻辑,结合请求参数的抽象语法树结构、响应参数结构的抽象语法树结构生成请求方法抽象语法树。
步骤S303,基于抽象语法树结构表示预定义代码,生成预设代码语法树。
其中,预设代码可以是预先定义的某些参数或功能的代码模板。
步骤S304,基于所述第一抽象语法树、所述请求方法语法树和所述预设代码语法树生成测试语法树。
具体实施中,将第一抽象语法树、请求方法语法树和预设代码语法树克隆一份作为测试用例的测试语法树。
步骤S305,基于所述测试语法树生成所述测试代码。
具体实施中,基于测试语法树逐一生成Typescript或JavaScript代码字符串,作为测试代码。
实际应用中,相比于通过第一关键信息直接拼接代码字符串生成测试代码,使用抽象语法树作为生成测试代码的中间层,具有更高的灵活性更高。
在步骤S203处,基于所述原始数据提取第二关键信息,并基于所述第二关键信息生成所述接口的测试用例。
在一些实施例中,所述第二关键信息包括如下至少一种:请求参数默认值、模拟后台数据(mock数据)或响应参数默认值。
具体实施中,可以采用测试用例提取器提取原始数据中用于生成测试用例的第二关键信息,并将该第二关键信息进行数据整合,生成测试用例。这样,利用接口文档中有限的关键数据生成的测试用例,对接口进行可用性与准确性的测试,能够有效的减少前端与后端的接口联调时间,提升了开发效率。
在一些实施例中,方法200还包括:
将所述测试代码和所述测试用例基于预设文件基础信息生成目标文件,并将所述目标文件输出至对应的目标目录;
基于所述测试代码和所述测试用例对所述接口进行测试进一步包括:
基于所述目标文件中的所述测试代码和所述测试用例对所述接口进行测试。
具体实施中,预设文件基础信息可以在步骤S201之前,通过前端开发工具进行配置,例如文件保存路径等。该目标文件包括测试代码和测试用例,可以根据预设配置的保存路径,将测试代码和测试用例分别输出到各自的目标目录进行保存。在进行接口测试时,可以通过目标文件中的测试代码及测试用例进行统一的单元测试。
在步骤S204处,基于所述测试代码和所述测试用例对所述接口进行测试,得到所述接口的测试结果。
具体实施中,通过目标文件中的测试代码及测试用例进行统一的单元测试,单元测试包括但不限于接口请求方法生成是否异常、接口请求状态码是否符合预期、接口请求业务码是否符合预期、接口请求响应参数结构是否符合预期、接口请求响应参数数量是否符合预期、接口请求响应参数的数据类型是否符合预期。
在一些实施例中,所述测试结果可以包括:接口请求方法生成正常或接口请求方法生成异常。
在一些实施例中,所述测试结果还可以包括:接口请求状态码符合预期或接口请求状态码不符合预期。
在一些实施例中,所述测试结果还可以包括:接口请求业务码符合预期或接口请求业务码不符合预期。
在一些实施例中,所述测试结果还可以包括:接口请求响应参数结构符合预期或接口请求响应参数结构不符合预期。
在一些实施例中,所述测试结果还可以包括:接口请求响应参数数量符合预期或接口请求响应参数数量不符合预期。
在一些实施例中,所述测试结果还可以包括:接口请求响应参数的数据类型符合预期或接口请求响应参数的数据类型不符合预期。
在一些实施例中,方法200还包括:基于所述测试结果生成测试报告,并将所述测试报告发送至预设用户。
具体实施中,可以设置向预设用户发送该测试报告的通知消息,将该通知消息加入到发送消息队列,消息通知员接收到发送消息队列后,根据其中的通知消息,将测试报告发送至预设用户。其中,预设用户可以在步骤S201之前,通过前端开发工具进行配置,例如开发人员信息等。
由上述实施例可见,本公开的接口的自动测试方法,使用抽象语法树作为生成测试代码的中间层,能够更加灵活的翻译成其他各种语言,保证了测试代码生成的灵活性,大大减少了前端开发的时间;以及利用接口文档中有限的关键数据生成的测试用例,对接口进行可用性与准确性的测试,能够有效的减少前端与后端的接口联调时间,提升了开发效率。还使用了单向数据通道的数据流的方式来控制和管理数据的流向,能够确定从上一个单向数据通道输入到每个模块的数据内容,能够实现通过增加或减少单向数据通道的数量对开发工具进行增减功能的目的。同时,将每个模块的输出数据合并为同一数据流,在单向数据通道中传递信息保证在测试代码生成和接口测试等流程的确定性。
示例性设备
参考图4,基于与上述接口的自动测试方法实施例相同的发明构思,本公开实施例还提供了一种接口的自动测试装置。图4中的接口的自动测试装置400包括:
数据源获取模块410,用于获取与所述接口相关联的原始数据;
测试信息生成模块420,基于所述原始数据提取第一关键信息,并基于所述第一关键信息生成所述接口的测试代码;以及基于所述原始数据提取第二关键信息,并基于所述第二关键信息生成所述接口的测试用例;
测试模块430,用于基于所述测试代码和所述测试用例对所述接口进行测试,得到所述接口的测试结果。
参见图5和图6,图5示出了根据本公开实施例的接口的自动测试装置的示意性原理图,图6示出了根据本公开实施例的接口的自动测试装置中数据流的示意性原理图。
图5中,数据源501可以是存储接口文档的数据源,该数据源可以是本地数据源,也可以是远程数据源。本地数据源可以基于本地路径进行访问,远程数据源可以基于远程URL进行访问。
数据源层(Datasource)502从数据源501中获取接口文档,例如可以访问本地的符合Swagger 2.0标准的JSON文件路径以从本地数据源获取接口文档,还可以访问远端的符合Swagger 2.0标准的JSON文件URL以从远程数据源获取接口文档。然后,对接口文档数据进行诸如数据提取、数据清洗、数据过滤等处理,得到与接口相关的原始数据。数据源层502可以是图4中的数据源获取模块410。
如图6所示,数据源层502输出的原始数据通过第一单向数据通道601流向数据转换层503。
图5中,数据转换层(Transform)503对原始数据进行提取得到用于生成测试代码的第一关键信息。其中,第一关键信息可以包括但不限于:请求协议、基础URL(BaseURL)、请求URI、请求头部、请求参数query、请求参数body、响应参数结构、枚举类型、依赖信息收集、文件路径整理、自定义结构类型等。如图6所示,该第一关键信息和原始数据合并形成第一数据流,经由数据转换层503输出,再通过第二单向数据通道602流向模型层504。数据转换层503可以是关键信息提取引擎。
图5中,模型层(Model)504将第一数据流中的第一关键信息,以抽象语法树的结构进行表示,对于第一关键信息中的各类参数构建其抽象语法树结构,生成第一抽象语法树。可以识别各个参数字段类型,再基于识别的参数字段数据构建相应的抽象语法树。例如,通过请求参数字段类型的识别,得到请求参数字段,构建请求参数的抽象语法树结构;通过枚举字段类型的识别,得到枚举对象字段,构建相关枚举对象的抽象语法树结构;通过自定义字段类型的识别,得到自定义数据字段,构建自定义数据的抽象语法树结构;通过结构对象字段类型的识别,得到结构对象字段,构建结构对象的抽象语法树结构等等,可以将第一关键信息中的所有参数的抽象语法树形成抽象语法树队列。如图6所示,该抽象语法树队列和第一数据流合并形成第二数据流,经由模型层504输出,再通过第三单向数据通道603流向服务层505。
图5中,服务层(Service)505将第二数据流中的第一关键信息和抽象语法树队列,生成接口的请求方法抽象语法树。例如,可以通过第一关键信息中的基础请求方法及其调用逻辑,结合请求参数的抽象语法树结构、响应参数结构的抽象语法树结构生成请求方法抽象语法树。如图6所示,该请求方法抽象语法树和第二数据流合并形成第三数据流,经由服务层505输出,再通过第四单向数据通道604流向模板层506。
图5中,模板层(Template)506采用抽象语法树表示预定义代码,生成预设代码语法树。其中,预设代码可以是预先定义的某些参数或功能的代码模板。例如,通用代码模板,或其他代码模板。如图6所示,该预设代码语法树和第三数据流合并形成第四数据流,经由模板层506输出,再通过第五单向数据通道605流向测试用例层507。
图5中,测试用例层(TestCase)507将第四数据流中的第一抽象语法树、请求方法语法树和预设代码语法树克隆一份作为测试用例的测试语法树。测试用例层507还将第三数据流中的原始数据进行数据提取,得到用于生成测试用例的第二关键信息。其中,第二关键信息包括但不限于请求参数默认值、模拟后台数据(mock数据)或响应参数默认值。如图6所示,该第二关键信息、测试语法树和第四数据流合并形成第五数据流,经由测试用例层507输出,再通过第六单向数据通道606流向代码生成层508。测试用例层507可以包括测试用例提取器。
图5中,代码生成层(CodeGen)508将第五数据流中的测试语法树生成Typescript或JavaScript代码字符串,作为测试代码。具体的字符串类型可以基于实际需要进行设置,例如,由于TypeScript面向对象的编程语言结构,代码清洁、一致且调试简单,适用于大型开发项目;而相对较小的开发项目,可以使用更灵活的JavaScript。如图6所示,该测试代码和第五数据流合并形成第六数据流,经由代码生成层508输出,再通过第七单向数据通道607流向文件管理层509。
在一些实施例中,代码生成层508还可以生成实际可用的代码,例如,与请求相关的实体与请求方法等代码。其中,实际可用的代码可以部署在前端,例如图1中的前端101,在实际使用时,当前端101检测到用户的操作,则可以利用该实际可用的代码生成相应的请求,该请求经由接口103发送至后端102,后端102根据该请求返回相应的返回数据,再经由接口103返回至前端101,前端101处理该返回数据以想用户显示,从而完成实际的数据交互。相应地,该实际可用的代码也可以与测试代码类似,合并到第六数据流中,一起通过第七单向数据通道607流向文件管理层509。
图5中,文件管理层(FileManager)509将第六数据流中的测试代码、测试用例以及实际可用的代码均基于预设文件基础信息生成目标文件。其中,预设文件基础信息可以在图2中的步骤S201之前,通过前端开发工具进行配置,例如文件保存路径等。该目标文件可以包括测试代码、测试用例和实际可用的代码,可以根据预设配置的保存路径,将测试代码、测试用例和和实际可用的代码分别输出到各自的目标目录进行保存。例如,可以将测试代码和测试用例通过第一保存路径存储至第一目标目录,将实际可用的代码通过第二保存路径存储至第二目标目录;还可以,将测试代码通过第三保存路径存储至第三目标目录,将测试用例通过第四保存路径存储至第四目标目录,将实际可用的代码通过第五保存路径存储至第五目标目录。进一步地,该目标文件还可以包括测试代码、测试用例和实际可用的代码各自的存储路径和/或目标目录。如图6所示,该目标文件和第六数据流合并形成第七数据流,经由文件管理层509输出,再通过第八单向数据通道608流向测试层510。图5中的数据转换层503、模型层504、服务层505、模板层506、测试用例层507、代码生成层508、文件管理层509可以构成图4中的测试信息生成模块420。
图5中,测试层(Tester)510基于第七数流中的测试代码、测试用例进行接口的可用性测试。例如,测试层510可以是接口测试员,该接口测试员接收到目标文件的测试任务后,通过目标文件中的测试代码及测试用例进行统一的单元测试,单元测试包括但不限于接口请求方法生成是否异常、接口请求状态码是否符合预期、接口请求业务码是否符合预期、接口请求响应参数结构、接口请求响应参数数量、接口请求响应参数数据类型是否符合预期。测试层510根据需要将该接口的测试结果生成测试报告,以及根据需要设置相应的向预设用户发送该测试报告的通知消息,将该通知消息加入到发送消息队列。测试层510可以是图4中的测试模块430。如图6所示,该测试报告、发送消息队列和第七数据流合并形成第八数据流,经由测试层510输出,再通过第九单向数据通道609流向消息通知层511。
图5中,消息通知层(MessageNotify)511接收到第八数据流中的发送消息队列后,根据其中的通知消息,将测试报告以指定方式发送至预设用户。例如,指定方式可以是通过邮件、微信、短信等通信软件的方式发送。其中,指定方式和预设用户可以在图2中的步骤S201之前,通过前端开发工具进行配置,例如开发人员信息、发送消息方式等。消息通知层511可以是消息通知员。至此,可以形成由开发人员发起接口测试到将测试报告返回至开发人员,形成了接口可用性和准确性的自动测试的闭环流程和架构。
可见,根据本公开实施例,使用抽象语法树作为生成测试代码的中间层,能够更加灵活的翻译成其他各种语言,保证了测试代码生成的灵活性,大大减少了前端开发的时间;以及利用接口文档中有限的关键数据生成的测试用例,对接口进行可用性与准确性的测试,能够有效的减少前端与后端的接口联调时间,提升了开发效率。还使用了单向数据通道的数据流的方式来控制和管理数据的流向,能够确定从上一个单向数据通道输入到每个模块的数据内容,能够实现通过增加或减少单向数据通道的数量对开发工具进行增减功能的目的。同时,将每个模块的输出数据合并为同一数据流,在单向数据通道中传递信息保证在测试代码生成和接口测试等流程的确定性。
在一些实施例中,可以在数据源层502、数据转换层503、模型层504、服务层505、模板层506、测试用例层507、代码生成层508、文件管理层509、测试层510、消息通知层511中的至少一个位置设置插件,以进行拦截或自定义修改。这样,可以通过自定义插件的安装,对整个接口测试过程的测试代码和测试用例的解析和生成、测试流程进行功能扩展。
应了解,本公开中的“第一”、“第二”等序数词仅是标识,不具有任何其他含义,例如特定的顺序等。
上述实施例的装置用于实现前述示例性接口的自动测试方法中至少部分步骤,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于与上述接口的自动测试方法实施例相同的发明构思,本公开实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的接口的自动测试方法。
图7示出了根据本公开实施例的电子设备的结构示意图,该设备可以包括:处理器710、存储器720、输入/输出接口730、通信接口740和总线750。其中处理器710、存储器720、输入/输出接口730和通信接口740通过总线750实现彼此之间在设备内部的通信连接。
处理器710可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器720可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器720可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器720中,并由处理器710来调用执行。
输入/输出接口730用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口740用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线750包括一通路,在设备的各个组件(例如处理器710、存储器720、输入/输出接口730和通信接口740)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器710、存储器720、输入/输出接口730、通信接口740以及总线750,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述示例性方法部分中任一实施例中相应的接口的自动测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
示例性程序产品
基于与上述接口的自动测试方法实施例相同的发明构思,本公开实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行前述示例性方法部分中任一实施例中相应的接口的自动测试方法。
上述非暂态计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上示例性方法部分中任一实施例所述的接口的自动测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的产品。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
申请文件中提及的动词“包括”、“包含”及其词形变化的使用不排除除了申请文件中记载的那些元素或步骤之外的元素或步骤的存在。元素前的冠词“一”或“一个”不排除多个这种元素的存在。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

Claims (12)

1.一种接口的自动测试方法,包括:
获取与所述接口相关联的原始数据;
基于所述原始数据提取第一关键信息,并基于所述第一关键信息生成所述接口的测试代码,包括:基于抽象语法树结构表示所述第一关键信息,生成第一抽象语法树;基于所述第一关键信息和所述第一抽象语法树生成所述接口的请求方法语法树;基于抽象语法树结构表示预定义代码,生成预设代码语法树;基于所述第一抽象语法树、所述请求方法语法树和所述预设代码语法树生成测试语法树;基于所述测试语法树生成所述测试代码;
基于所述原始数据提取第二关键信息,并基于所述第二关键信息生成所述接口的测试用例;基于所述测试代码和所述测试用例对所述接口进行测试,得到所述接口的测试结果。
2.根据权利要求1所述的方法,还包括:
将所述测试代码和所述测试用例基于预设文件基础信息生成目标文件,并将所述目标文件输出至对应的目标目录;
基于所述测试代码和所述测试用例对所述接口进行测试进一步包括:
基于所述目标文件中的所述测试代码和所述测试用例对所述接口进行测试。
3.根据权利要求1所述的方法,其中,基于所述第一关键信息生成所述接口的测试代码,包括:
基于所述第一关键信息生成第一关键信息代码,并将所述第一关键信息代码进行拼接以生成所述测试代码。
4.根据权利要求1所述的方法,还包括:通过设置插件对所述接口的自动测试方法中的至少一个步骤进行拦截或自定义修改。
5.根据权利要求1所述的方法,其中,所述第一关键信息包括如下至少一种:基本URL、请求URI、请求参数结构、接口请求路径、接口请求方法或响应参数结构。
6.根据权利要求1所述的方法,其中,所述第二关键信息包括如下至少一种:请求参数默认值、模拟后台数据或响应参数默认值。
7.根据权利要求1所述的方法,还包括:基于所述测试结果生成测试报告,并将所述测试报告发送至预设用户。
8.一种接口的自动测试装置,包括:
数据源获取模块,用于获取与所述接口相关联的原始数据;
测试信息生成模块,基于所述原始数据提取第一关键信息,并基于所述第一关键信息生成所述接口的测试代码;以及基于所述原始数据提取第二关键信息,并基于所述第二关键信息生成所述接口的测试用例;
测试模块,用于基于所述测试代码和所述测试用例对所述接口进行测试,得到所述接口的测试结果;
所述测试信息生成模块包括:数据转换层,用于基于所述原始数据提取第一关键信息;模型层,用于基于抽象语法树结构表示所述第一关键信息,生成第一抽象语法树;服务层,用于基于所述第一关键信息和所述第一抽象语法树生成所述接口的请求方法语法树;模板层,用于基于抽象语法树结构表示预定义代码,生成预设代码语法树;测试用例层,用于基于所述第一抽象语法树、所述请求方法语法树和所述预设代码语法树生成测试语法树;以及基于所述原始数据提取第二关键信息,并基于所述第二关键信息生成测试用例;代码生成层,用于基于所述测试语法树生成所述测试代码。
9.根据权利要求8所述的装置,其中,所述测试信息生成模块还包括:
文件管理层,用于将所述测试代码和所述测试用例基于预设文件基础信息生成目标文件,并将所述目标文件输出至对应的目标目录。
10.根据权利要求9所述的装置,其中,
所述原始数据通过第一单向数据通道流向所述数据转换层,并将所述原始数据与所述第一关键信息合并形成第一数据流;
所述第一数据流通过第二单向数据通道流向所述模型层,并将所述第一抽象语法树与所述第一数据流合并形成第二数据流;
所述第二数据流通过第三单向数据通道流向所述服务层,并将所述请求方法语法树与所述第二数据流合并形成第三数据流;
所述第三数据流通过第四单向数据通道流向所述模板层,并将所述预设代码语法树与所述第三数据流合并形成第四数据流;
所述第四数据流通过第五单向数据通道流向所述测试用例层,并将所述测试语法树和所述测试用例与所述第四数据流合并形成第五数据流;
所述第五数据流通过第六单向数据通道流向所述代码生成层,并将测试代码和所述测试用例与所述第五数据流合并形成第六数据流;
所述第六数据流通过第七单向数据通道流向所述文件管理层,并将所述目标文件和所述第六数据流合并形成第七数据流。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至7任意一项所述的方法。
12.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行权利要求1至7任一所述方法。
CN202111129798.6A 2021-09-26 2021-09-26 接口的自动测试方法、装置、设备及存储介质 Active CN113778897B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111129798.6A CN113778897B (zh) 2021-09-26 2021-09-26 接口的自动测试方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111129798.6A CN113778897B (zh) 2021-09-26 2021-09-26 接口的自动测试方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113778897A CN113778897A (zh) 2021-12-10
CN113778897B true CN113778897B (zh) 2024-03-29

Family

ID=78853533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111129798.6A Active CN113778897B (zh) 2021-09-26 2021-09-26 接口的自动测试方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113778897B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116094973B (zh) * 2023-03-06 2023-06-16 深圳市华曦达科技股份有限公司 用于用户端设备广域网管理协议的测试方法和装置
CN116501303B (zh) * 2023-06-25 2023-11-14 北京长亭科技有限公司 Api代码自动生成方法与装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262783A (zh) * 2019-05-22 2019-09-20 深圳华科云动力科技有限公司 一种接口生成方法、装置及终端设备
CN110309071A (zh) * 2019-06-27 2019-10-08 杭州数梦工场科技有限公司 测试代码的生成方法及模块、测试方法及系统
CN111930635A (zh) * 2020-09-17 2020-11-13 深圳微品致远信息科技有限公司 基于swagger快速自动化测试的方法及系统
CN112380142A (zh) * 2020-12-11 2021-02-19 上海中通吉网络技术有限公司 接口文档管理方法、装置和测试设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262783A (zh) * 2019-05-22 2019-09-20 深圳华科云动力科技有限公司 一种接口生成方法、装置及终端设备
CN110309071A (zh) * 2019-06-27 2019-10-08 杭州数梦工场科技有限公司 测试代码的生成方法及模块、测试方法及系统
CN111930635A (zh) * 2020-09-17 2020-11-13 深圳微品致远信息科技有限公司 基于swagger快速自动化测试的方法及系统
CN112380142A (zh) * 2020-12-11 2021-02-19 上海中通吉网络技术有限公司 接口文档管理方法、装置和测试设备

Also Published As

Publication number Publication date
CN113778897A (zh) 2021-12-10

Similar Documents

Publication Publication Date Title
CN108345531B (zh) 一种测试方法、装置及系统
CN112104709B (zh) 智能合约的处理方法、装置、介质及电子设备
CN107615239B (zh) 用于托管和发布软件包的基础架构
Sumaray et al. A comparison of data serialization formats for optimal efficiency on a mobile platform
US10067957B1 (en) Process for serializing and deserializing data described by a schema
WO2019072110A1 (zh) 应用程序的生成方法、装置、系统、设备和介质
CN111740948B (zh) 数据包发布方法、动态更新方法、装置、设备及介质
US8615750B1 (en) Optimizing application compiling
CN113778897B (zh) 接口的自动测试方法、装置、设备及存储介质
US10164848B1 (en) Web service fuzzy tester
CN110955409B (zh) 在云平台上创建资源的方法和装置
CN109873735B (zh) H5页面的性能测试方法、装置和计算机设备
CN110365724B (zh) 任务处理方法、装置及电子设备
CN111443920B (zh) 一种框架迁移方法及装置
TW201504947A (zh) 一種跨平臺轉換應用代碼的方法及裝置
CN110888794B (zh) 接口测试方法和装置
CN110727417A (zh) 一种数据处理方法和装置
CN114398673A (zh) 应用程序的合规检测方法、装置、存储介质与电子设备
CN116360735A (zh) 一种表单生成方法、装置、设备和介质
CN113238739A (zh) 一种插件开发和数据获取方法、装置、电子设备及介质
CN107239265B (zh) Java函数与C函数的绑定方法及装置
CN111752644A (zh) 接口模拟方法、装置、设备及存储介质
CN110647331A (zh) 开发工具的获取方法及装置、存储介质、电子设备
CN115357319A (zh) 一种用户界面渲染方法及装置
CN111539200B (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