CN116841900A - 接口文档、测试用例生成方法、装置、计算机设备和存储介质 - Google Patents

接口文档、测试用例生成方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN116841900A
CN116841900A CN202310866450.8A CN202310866450A CN116841900A CN 116841900 A CN116841900 A CN 116841900A CN 202310866450 A CN202310866450 A CN 202310866450A CN 116841900 A CN116841900 A CN 116841900A
Authority
CN
China
Prior art keywords
interface
document
interface document
test case
metadata
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
CN202310866450.8A
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.)
Kangjian Information Technology Shenzhen Co Ltd
Original Assignee
Kangjian Information 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 Kangjian Information Technology Shenzhen Co Ltd filed Critical Kangjian Information Technology Shenzhen Co Ltd
Priority to CN202310866450.8A priority Critical patent/CN116841900A/zh
Publication of CN116841900A publication Critical patent/CN116841900A/zh
Pending legal-status Critical Current

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)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种接口文档、测试用例生成方法方法、装置、计算机设备和存储介质,方法包括:获取接口文档生成指令,读取接口对应的方法、类和项目的上下文信息;对方法、类和项目的上下文信息进行解析获取接口的元数据;根据元数据进行预定义的接口文档模板的渲染,生成接口的接口文档;根据元数据进行预定义的测试用例模板的渲染,生成接口的测试用例。上述方法可以减少测试的工作量,提高测试的效率。

Description

接口文档、测试用例生成方法、装置、计算机设备和存储介质
技术领域
本发明涉及测试领域及数字医疗技术领域,特别是涉及接口文档、测试用例生成方法、装置、计算机设备和存储介质。
背景技术
现在市场存在的大部分都是基于特定注解生成接口文档,以及根据接口文档生成接口测试用例,技术人员需要对项目进行改造以及测试。使用特定方法或者规范接入。随项目代码启动时,植入代码收集接口地址、接口参数信息。随后拓展出一个后台网页用于快速查阅文档、测试项目接口。现有实现已有:Swagger、springfox等诸多实现。
现有方案不足:对项目代码侵入性较强(越复杂的文档需要越多的注解)、对于文档格式支持白电度很低、接口开发与文档撰写流程混乱(需要先定义好接口,部署项目后,才能生成文档)、只支持HTTP接口等。
发明内容
基于此,有必要针对在进行接口文档、测试用例生成方法时,技术人员需要人工编写大量的代码,工作量大,从而降低了测试的效率的问题,提供一种接口文档、测试用例生成方法、装置、计算机设备和存储介质。
一种接口文档、测试用例生成方法,所述方法包括:
获取接口文档生成指令,读取接口对应的方法、类和项目的上下文信息;
对所述方法、类和项目的上下文信息进行解析获取接口的元数据;
根据所述元数据进行预定义的接口文档模板的渲染,生成所述接口的接口文档;
根据所述元数据进行预定义的测试用例模板的渲染,生成所述接口的测试用例。
在其中一些实施例中,所述获取接口文档生成指令,读取接口的接口对应的方法、类和项目的上下文信息,包括:
通过PsiElement的对象获取接口对应方法的源代码和上下文信息,所述上下文信息包含方法的依赖引用关系、层级信息、出入参实体对象代码、接口访问地址信息
通过PsiElement获取方法对应类的源代码;
使用文件流直接读取所述项目。
在其中一些实施例中,所述对所述接口对应的方法、类和项目的上下文信息进行解析获取接口的元数据,包括:
根据预定义的正则表达式集以将所述源代码信息进行语法分析得到元数据。
在其中一些实施例中,所述根据预定义的正则表达式集以将所述源代码信息进行语法分析得到元数据,包括:
通过所调用的汤普森算法将调用的第一正则表达式集转换为非确定有限状态自动机;
通过子集构造法将非确定有限状态自动机转换为确定有限状态机;
通过分割法将所述确定有限状态机简化为最小状态确定有限状态机,以得到与所述最小状态确定有限状态机相对应的转换表;
调用预先设置的确定有限状态机模拟器以与所述转换表组成词法分析器;
将所述源代码信息输入至所述词法分析器,以转换得到词法分析结果。
在其中一些实施例中,在根据所述预定义的接口文档模板生成接口文档之后,还包括:
为所述接口文档建立对应的索引,并将所述索引以及所述接口文档上传至预设的文档数据库,其中所述接口文档为所述文档数据库包含的所有接口文档中的任意一个接口文档;
判断是否接收到用户输入的文档搜索指令;
若接收到用户输入的文档搜索指令,则提取出所述文档搜索指令中的搜索关键词;
判断所述文档数据库预存储的索引中,是否存在与所述搜索关键词对应的索引项;
若存在与所述搜索关键词对应的索引项,则获取所述索引项对应的指定接口文档;
通过指定显示页面展示所述指定接口文档。
在其中一些实施例中,在所述通过指定显示页面展示所述指定接口文档的步骤之后,包括:
判断是否接收到所述用户在所述指定显示界面内输入的修改信息;
若是,根据所述修改信息对所述指定接口文档进行修改,得到修改后的接口文档;
使用所述修改后的接口文档替换所述指定接口文档。
在其中一些实施例中,根据所述预定义的接口文档模板生成接口文档之后,还包括:
根据所述接口文档,生成用于验证所述接口文档的文档测试用例;
使用所述文档测试用例向所述接口发送请求,获取所述接口返回的测试数据,根据所述根据所述测试数据,验证所述接口文档是否正确。
一种接口文档、测试用例生成装置,所述装置包括:
代码获取单元,用于获取接口文档生成指令,读取接口对应的方法、类和项目的上下文信息;
元数据提取单元,用于对所述方法、类和项目的上下文信息进行解析获取接口的元数据;
接口文档生成单元,用于根据所述元数据进行预定义的接口文档模板的渲染,生成所述接口的接口文档;
测试用例生成单元,用于根据所述元数据进行预定义的测试用例模板的渲染,生成所述接口的测试用例。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述接口文档、测试用例生成方法的步骤。
一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述所述接口文档、测试用例生成方法的步骤。
上述接口文档、测试用例生成方法、装置、计算机设备和存储介质,通过获取接口文档生成指令,根据接口文档生成指令获取接口的源代码信息;对接口对应的方法、类和项目的上下文信息进行解析获取接口的元数据;将元数据添加至预定义的接口文档模板内,根据预定义的接口文档模板生成接口文档;将元数据添加至预定义的测试用例模板内,根据预定义的测试用例模板生成单元测试用例。因此,本发明:1、有效降低了对于第三方框架的代码耦合度:无需添加第三方依赖,只对javadoc注释进行解析。2、降低了开发人员使用成本:只需要引用本发明插件,可离线/在线安装,本发明对代码片段、类提供了一个【生成文档】入口。开发人员选中后只需简单配置即可生成对应的接口、类的文档。3、静态文档更利于项目管理:相比于swagger类似的在线接口文档等动态接口平台。本发明通过javadoc读取解析出接口的元数据,根据用户配置的模板生成静态文档。依托于其他文档平台,更有利于对于接口版本、其他补充说明的管理。4、更灵活的支持:不在局限于HTTP的接口文档。本发明可以对RPC类型的框架、简单接口方法均可以生成文档。也支持常用的参数校验框架(JSR303BeanValidation),自动标识出接口参数中的是否必传、参数限制。本发明在生成的同时获取上下文信息,智能收集代码分支中的异常信息。同时本插件解析后生成的元数据会使用JSON/XML格式存储。生成文档时根据用户配置的模板进行渲染。渲染格式均可灵活配置。5、支持生成单元测试用例代码:本发明根据元数据自动构建单元自测测试场景,支持REST形式的.http格式、方法层面的.java/.groovy/.kt的单元测试脚本,为每次调用接口/API/方法自动生成输入输出参数,在JSR303规范的基础上自动加载好复杂参数结构,大大减少人工构造测试场景及测试参数的步骤。6、拓展性强:解析接口的上下文、请求返回参数类型、接口名称、接口异常信息、接口请求地址(HTTP)、项目环境信息、项目结构信息后生成通用的元数据格式(XML/JSON),数据结构简单易读,并且本发明支持元数据的解析拓展。对于生成的接口文档。均可灵活调整模板、格式。也支持HOOK机制,再生成文档后执行用户配置流程。
附图说明
图1是本发明一实施例中接口文档、测试用例生成方法的一应用环境示意图;
图2是本发明一实施例中接口文档、测试用例生成方法的一流程示意图;
图3是本发明一实施例中接口文档、测试用例生成方法的再一流程示意图;
图4是本发明一实施例中接口文档、测试用例生成方法的用户可从编辑器中选中方法示意图;
图5是本发明一实施例中接口文档、测试用例生成方法的词法分析器流程示意图;
图6是本发明一实施例中接口文档、测试用例生成方法的元数据设计;
图7是本发明一实施例中接口文档、测试用例生成方法的生成了对应模板的文档、单元测试用例输出到指定目录示意图;
图8是本发明一实施例中接口文档、测试用例生成装置的一结构示意图;
图9是本发明一实施例中计算机设备的一结构示意图;
图10是本发明一实施例中计算机设备的另一结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
图1为一个实施例中提供的接口文档、测试用例生成方法的实施环境图,如图1所示,在该实施环境中,包括计算机设备110以及终端120。
计算机设备110为支持前端医疗相关平台(如手机app)运行的后端运行的服务器,这里的医疗相关平台可以是例如在线问诊平台,该在线问诊平台能够提供用户在线医疗的多个功能模块,用户通过这些功能模块,将相应的在线医疗数据通过接口传输给后端的服务器,后端的服务器通过接口反馈相应的数据给前端。例如,接收用户发送的本次问诊相关的信息,本次问诊相关的信息包括用户注册时上传的用户基本信息,包括年龄、性别;用户终端发起在线问诊请求时携带的主诉信息等。需要说明的是,终端120以及计算机设备110可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。计算机设备110以及终端110可以通过蓝牙、USB(Universal Serial Bus,通用串行总线)或者其他通讯连接方式进行连接,本发明在此不做限制。
请参阅图2所示,图2为本发明实施例提供的接口文档、测试用例生成方法的一个流程示意图,包括如下步骤:
S10、获取接口文档生成指令,读取接口对应的方法、类和项目的上下文信息;
在一些实施例中,上述S10获取接口文档生成指令,读取接口对应的方法、类和项目的上下文信息,可以包括:
通过PsiElement的对象获取光标所在元素即可得到接口对应方法的源代码/上下文信息(包含方法的依赖引用关系、层级信息、出入参实体对象代码、接口访问地址信息
通过PsiElement获取到PsiClass即可得到方法对应类的源代码(包含类的继承关系)
使用文件流直接读取本项目基础信息文件即可得到项目信息。
S20、对所述接口对应的方法、类和项目的上下文信息进行解析获取接口的元数据;
其中,元数据(meta-data),是指用来描述数据的数据,它往往以标签的形式出现,主要用于描述代码块之间的联系。它是一种代码级别的说明,与类、接口、枚举是在同一个层次,它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明和注释。
在一些实施例中,上述S20对所述接口对应的方法、类和项目的上下文信息进行解析获取接口的元数据,可以包括:
S201、根据预定义的正则表达式集以将所述源代码信息进行语法分析得到元数据。
可理解,需要先根据不同接口的接口对应的方法、类和项目的上下文信息的特性设置正则表达式,然后通过正则表达式提取出该接口文档中各接口的接口对应的方法、类和项目的上下文信息。
在一些实施例中,上述根据预定义的正则表达式集以将所述源代码信息进行语法分析得到元数据,可以包括:
S201a、通过所调用的汤普森算法将调用的第一正则表达式集转换为非确定有限状态自动机;
S201b、通过子集构造法将非确定有限状态自动机转换为确定有限状态机;
S201c、通过分割法将所述确定有限状态机简化为最小状态确定有限状态机,以得到与所述最小状态确定有限状态机相对应的转换表;
S201d、调用预先设置的确定有限状态机模拟器以与所述转换表组成词法分析器;
S201e、将所述源代码信息输入至所述词法分析器,以转换得到词法分析结果。
其中,在本实施例中,非确定有限状态自动机是指(NFA是NondeterministicFinite Automation的简写),确定有限状态机是指DFA(DFA是Deterministic FiniteAutomation的简写)。
其中,汤普森算法(即Thompson算法)用于将正则表达式转换为NFA。汤普森算法中最常使用的两种基本转换为:普通转换(是将输入字符转化为另一状态)和epsilon转换(无需输入,只是将一个状态转换为另一个状态)。之后在得到了非确定有限状态自动机后,通过编译原理中的子集构造法来讲NFA转换为DFA。子集构造法的基本思想是让构造得到的DFA的每个状态对应NFA的一个状态集合。
最后,通过分割法将所述确定有限状态机简化为最小状态确定有限状态机时,是将其中的多余状态(多余状态是指这个状态没有通路到达终态)进行删除,从而简化为最小状态确定有限状态机。
在定义了模式的正则表达式,经过NFA转换、DFA转换和NFA化简后,可以对应得到一个转换表,这张转换表加上一个固定的DFA模拟器,就组成了词法分析器。
S30、将所述元数据添加至预定义的接口文档模板内,根据所述预定义的接口文档模板生成接口文档;
S40、将所述元数据添加至预定义的测试用例模板内,根据所述预定义的测试用例模板生成单元测试用例。
在一些实施例中,在S40根据所述预定义的接口文档模板生成接口文档之后,还可以包括:
S401、为所述接口文档建立对应的索引,并将所述索引以及所述接口文档上传至预设的文档数据库,其中所述接口文档为所述文档数据库包含的所有接口文档中的任意一个接口文档;
S4011、判断是否接收到用户输入的文档搜索指令;
S402、若接收到用户输入的文档搜索指令,则提取出所述文档搜索指令中的搜索关键词;
S403、判断所述文档数据库预存储的索引中,是否存在与所述搜索关键词对应的索引项;
S404、若存在与所述搜索关键词对应的索引项,则获取所述索引项对应的指定接口文档;
S405、通过指定显示页面展示所述指定接口文档。
其中,预先创建一个用于存储接口文档的文档数据库,在生成了上述接口文档后,便可以将该接口文档上传至该文档数据库内进行存储,并且后续生成的其它项目的接口文档也会上传至该文档数据库进行存储,从而使得该文档数据库存储有所有项目的接口文档,进一步可为所有项目的接口文档建立索引,并将接口文档和对应的索引一起上传至该文档数据库进行存储,以通过该文档数据库实现对于所有项目的接口文档的统一集中式管理和查询。从而后续用户在需要阅读接口文档时,可快速地从文档数据库中已上传的所有接口文档中索引出上述接口文档。在本实施例,在生成上述接口文档后,首先为接口文档建立对应的索引,将所述索引以及所述接口文档上传至预设的文档数据库,其中上述接口文档为文档数据库包含的所有接口文档中的任意一个接口文档。然后判断是否接收到用户输入的携带有搜索关键词的文档搜索指令,如果接收到上述文档搜索指令,则提取出上述文档搜索指令中的搜索关键词,并判断上述文档数据库预存储的索引中是否存在与该搜索关键词对应的索引项,其中上述搜索关键词与上述指定接口文档具有对应关系,该搜索关键词可包括该指定接口文档内的某些关键性词语,且上述文档数据库为已上传的所有接口文档建立了对应的索引。如果存在与上述搜索关键词对应的索引项,则获取与上述索引项对应的指定接口文档,并通过指定显示页面向上述用户展示上述指定接口文档。在本实施例,用户只需要输入与指定接口文档对应的携带有搜索关键词的文档搜索指令,便可以从文档数据库的索引匹配出与该搜索关键词对应的索引项,从而快速地获取得到与该索引项对应的指定接口文档。通过上述文档数据库有利于实现对于接口文档的统一管理和查询,实现对所有的接口文档的集中式管理,提高了查找接口文档的便捷性。
示例性的,如图3所示,本发明可以是基于IntelliIDEA开发的一款插件,用户可从编辑器中,右键类或方法中找到入口【generate/生成】→【生成文档】实现了接口对应的方法、类和项目的上下文信息自动收集且生成接口文档、单元测试用例代码,从而大大减轻了开发人员编写接口文档和单元测试的工作量。如图4所示,步骤1,用户点击【生成文档】按钮,触发接口文档解析流程,此按钮可以在类、方法上触发,对应生成范围是全部方法、单个方法。步骤2,收到用户触发的生成指令后。开始收集用户点击处接口/类的上下文信息。解析定位到用户需要生成的接口标识。如是单个方法则获取当前接口源代码信息(包含层级调用、依赖引用)、接口出入参实体对象代码(JavaBean)、接口访问地址信息(URL)、接口调用方法信息。步骤3,步骤2完成后,即获取到了需要生成的接口源代码信息,将源代码(包含层级调用、依赖引用)使用正则表达式和词法分析器获取到关键的元数据:接口出入参实体注释、接口方法名称、项目环境信息、接口依赖信息、当前类的信息。作为缓存提供给接下来的步骤使用。词法分析器流程如图5所示,词法分析器主要流程,本实施例预先定义好解析元数据的正则表达式,因接口实体代码可能有嵌套逻辑。递归匹配较为复杂。本发明引入一种专门为机器设计的表达形式-有穷自动机。本发明通过Thompson算法把正则表达式转换成有穷自动机。元数据数据类别整理成若干个正则表达式,通过Thompson算法分别转换成ε-NFA,再把ε-NFA连接起来,组成一个大的NFA,通过子集法把NFA转换成DFA,必要时,把转换成的DFA使用分割法化简成最小的DFA,再通过基于DFA的词法分析驱动程序即可进行词法分析,得到匹配结果最终组装元数据,元数据设计如图6所示。步骤4.1/4.2,如图7所示,使用步骤3生成的元数据后,匹配常用的测试用例模型。根据接口参数推断出用例模型需要的参数。生成模型代码。使用常用的模板引擎框架(Freemarker、Velocity..)按照用户配置的对应语法配置的模板。就生成了对应模板的文档、单元测试用例输出到指定目录。步骤5,当文档输出后,程序自动调用用户配置的HOOK程序,完成回调。
在一些实施例中,在S405所述通过指定显示页面展示所述指定接口文档的步骤之后,包括:
判断是否接收到所述用户在所述指定显示界面内输入的修改信息;
若是,根据所述修改信息对所述指定接口文档进行修改,得到修改后的接口文档;
使用所述修改后的接口文档替换所述指定接口文档。
在一些实施例中,在S40根据所述预定义的接口文档模板生成接口文档之后,还可以包括:
根据所述接口文档,生成用于验证所述接口文档的文档测试用例;使用所述文档测试用例向所述接口发送请求,获取所述接口返回的测试数据,根据所述根据所述测试数据,验证所述接口文档是否正确。
从上述方案可以看出,提供了接口文档、测试用例生成方法方案中,可以通过获取预生成的场景覆盖测试用例,其中场景覆盖测试用例对应于前端的业务;根据场景覆盖测试用例,确定不同测试场景的测试应用文件;根据测试应用文件,复现测试场景的前端与后端的交互过程,测试场景的各个运行步骤,生成对应的运行日志信息;根据日志信息生成接口文档、测试用例生成报告。在本发明中,利用Node中间层的接口代理转发能力,可以实现快速稳定的场景数据与接口返回的切换。提升以前需要独立mock数据、修改调用环境等繁琐的问题。通过前端场景覆盖检查的用例分析,可以提供给开发人员开发时对于不同场景下可能会出现问题的考虑范围,提升开发的全面性与考虑接口异常时前端业务的容灾能力。接口的模拟能力可以提供前端开发人员利用场景覆盖率检查平台针对单一场景特定接口的联调能力。前端场景覆盖率报告可以从接口覆盖率、数据达成率、UI覆盖率、异常报告等维度进行综合研判,提供给前端开发人员全面的报告与优化方向。综合日志平台能够提供可靠的日志数据支持、与关联性分析。配置中心可以灵活的配置场景与环境,达到产线问题排查时所需要的脱敏数据模拟和产线异常场景的复现果。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种接口文档、测试用例生成装置,该接口文档、测试用例生成装置与上述实施例中接口文档、测试用例生成方法一一对应。如图8所示,该接口文档、测试用例生成装置包括代码获取单元11、元数据提取单元12、接口文档生成单元13、和测试用例生成单元14。各评价属性详细说明如下:
代码获取单元11,用于获取接口文档生成指令,根据所述接口文档生成指令获取接口的源代码信息;
元数据提取单元12,用于对所述接口对应的方法、类和项目的上下文信息进行解析获取接口的元数据;
接口文档生成单元13,用于将所述元数据添加至预定义的接口文档模板内,根据所述预定义的接口文档模板生成接口文档;
测试用例生成单元14,用于将所述元数据添加至预定义的测试用例模板内,根据所述预定义的测试用例模板生成单元测试用例。
在一些实施例中,代码获取单元11,具体用于:
解析所述接口文档生成指令,确定所述接口文档生成指令针对单个方法或者方法类;
如果是针对单个方法,则获取所述方法对应的源代码信息;
如果是针对方法类,则获取所述方法类对应的源代码信息,解析所述源代码信息,获取所述方法类中每个方法对应的源代码信息。
在一些实施例中,元数据提取单元12,具体用于:
根据预定义的正则表达式集以将所述源代码信息进行语法分析得到元数据。
在一些实施例中,元数据提取单元12,具体用于:
通过所调用的汤普森算法将调用的第一正则表达式集转换为非确定有限状态自动机;
通过子集构造法将非确定有限状态自动机转换为确定有限状态机;
通过分割法将所述确定有限状态机简化为最小状态确定有限状态机,以得到与所述最小状态确定有限状态机相对应的转换表;
调用预先设置的确定有限状态机模拟器以与所述转换表组成词法分析器;
将所述源代码信息输入至所述词法分析器,以转换得到词法分析结果。
在一些实施例中,测试用例生成单元14,具体用于:
为所述接口文档建立对应的索引,并将所述索引以及所述接口文档上传至预设的文档数据库,其中所述接口文档为所述文档数据库包含的所有接口文档中的任意一个接口文档;
判断是否接收到用户输入的文档搜索指令;
若接收到用户输入的文档搜索指令,则提取出所述文档搜索指令中的搜索关键词;
判断所述文档数据库预存储的索引中,是否存在与所述搜索关键词对应的索引项;
若存在与所述搜索关键词对应的索引项,则获取所述索引项对应的指定接口文档;
通过指定显示页面展示所述指定接口文档。
在一些实施例中,测试用例生成单元14,还具体用于:
判断是否接收到所述用户在所述指定显示界面内输入的修改信息;
若是,根据所述修改信息对所述指定接口文档进行修改,得到修改后的接口文档;
使用所述修改后的接口文档替换所述指定接口文档。
在一些实施例中,测试用例生成单元14,还具体用于:根据所述接口文档,生成用于验证所述接口文档的文档测试用例;
使用所述文档测试用例向所述接口发送请求,获取所述接口返回的测试数据,根据所述根据所述测试数据,验证所述接口文档是否正确。
关于接口文档、测试用例生成装置的具体限定可以参见上文中对于智能问答处方法的限定,在此不再赘述。上述接口文档、测试用例生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性和/或易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的客户端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于人工智能的接口文档、测试用例生成方法服务端侧的功能或步骤。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是客户端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机程序被处理器执行时以实现一种基于人工智能的接口文档、测试用例生成方法客户端侧的功能或步骤
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取接口文档生成指令,根据所述接口文档生成指令获取接口的源代码信息;
对所述接口对应的方法、类和项目的上下文信息进行解析获取接口的元数据;
将所述元数据添加至预定义的接口文档模板内,根据所述预定义的接口文档模板生成接口文档;
将所述元数据添加至预定义的测试用例模板内,根据所述预定义的测试用例模板生成单元测试用例。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取接口文档生成指令,根据所述接口文档生成指令获取接口的源代码信息;
对所述接口对应的方法、类和项目的上下文信息进行解析获取接口的元数据;
将所述元数据添加至预定义的接口文档模板内,根据所述预定义的接口文档模板生成接口文档;
将所述元数据添加至预定义的测试用例模板内,根据所述预定义的测试用例模板生成单元测试用例。
需要说明的是,上述关于计算机可读存储介质或计算机设备所能实现的功能或步骤,可对应参阅前述方法实施例中,服务端侧以及客户端侧的相关描述,为避免重复,这里不再一一描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)等非易失性存储介质,或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种接口文档、测试用例生成方法,其特征在于,所述方法包括:
获取接口文档生成指令,读取接口对应的方法、类和项目的上下文信息;
对所述方法、类和项目的上下文信息进行解析获取接口的元数据;
根据所述元数据进行预定义的接口文档模板的渲染,生成所述接口的接口文档;
根据所述元数据进行预定义的测试用例模板的渲染,生成所述接口的测试用例。
2.如权利要求1所述的接口文档、测试用例生成方法,其特征在于,所述获取接口文档生成指令,读取接口的接口对应的方法、类和项目的上下文信息,包括:
通过PsiElement的对象获取接口对应方法的源代码和上下文信息,所述上下文信息包含方法的依赖引用关系、层级信息、出入参实体对象代码、接口访问地址信息
通过PsiElement获取方法对应类的源代码;
使用文件流直接读取所述项目。
3.如权利要求1所述的接口文档、测试用例生成方法,其特征在于,所述对所述接口对应的方法、类和项目的上下文信息进行解析获取接口的元数据,包括:
根据预定义的正则表达式集以将所述源代码信息进行语法分析得到元数据。
4.如权利要求3所述的接口文档、测试用例生成方法,其特征在于,所述根据预定义的正则表达式集以将所述源代码信息进行语法分析得到元数据,包括:
通过所调用的汤普森算法将调用的第一正则表达式集转换为非确定有限状态自动机;
通过子集构造法将非确定有限状态自动机转换为确定有限状态机;
通过分割法将所述确定有限状态机简化为最小状态确定有限状态机,以得到与所述最小状态确定有限状态机相对应的转换表;
调用预先设置的确定有限状态机模拟器以与所述转换表组成词法分析器;
将所述源代码信息输入至所述词法分析器,以转换得到词法分析结果。
5.如权利要求1所述的接口文档、测试用例生成方法,其特征在于,在根据所述预定义的接口文档模板生成接口文档之后,还包括:
为生成的所述接口文档建立对应的索引,并将所述索引以及所述接口文档上传至预设的文档数据库,其中所述文档数据库用于存储生成的所述接口文档;
判断是否接收到用户输入的文档搜索指令;
若接收到用户输入的文档搜索指令,则提取出所述文档搜索指令中的搜索关键词;
判断所述文档数据库预存储的索引中,是否存在与所述搜索关键词对应的索引项;
若存在与所述搜索关键词对应的索引项,则获取所述索引项对应的指定接口文档;
通过指定显示页面展示所述指定接口文档。
6.如权利要求5所述的接口文档、测试用例生成方法,其特征在于,在所述通过指定显示页面展示所述指定接口文档的步骤之后,包括:
判断是否接收到所述用户在所述指定显示界面内输入的修改信息;
若是,根据所述修改信息对所述指定接口文档进行修改,得到修改后的接口文档;
使用所述修改后的接口文档替换所述指定接口文档。
7.如权利要求1所述的接口文档、测试用例生成方法,其特征在于,在根据所述预定义的接口文档模板生成接口文档之后,还包括:
根据所述接口文档,生成用于验证所述接口文档的文档测试用例;
使用所述文档测试用例向所述接口发送请求,获取所述接口返回的测试数据,根据所述根据所述测试数据,验证所述接口文档是否正确。
8.一种接口文档、测试用例生成装置,其特征在于,所述装置包括:
代码获取单元,用于获取接口文档生成指令,读取接口对应的方法、类和项目的上下文信息;
元数据提取单元,用于对所述方法、类和项目的上下文信息进行解析获取接口的元数据;
接口文档生成单元,用于根据所述元数据进行预定义的接口文档模板的渲染,生成所述接口的接口文档;
测试用例生成单元,用于根据所述元数据进行预定义的测试用例模板的渲染,生成所述接口的测试用例。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述接口文档、测试用例生成方法的步骤。
10.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述接口文档、测试用例生成方法的步骤。
CN202310866450.8A 2023-07-13 2023-07-13 接口文档、测试用例生成方法、装置、计算机设备和存储介质 Pending CN116841900A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310866450.8A CN116841900A (zh) 2023-07-13 2023-07-13 接口文档、测试用例生成方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310866450.8A CN116841900A (zh) 2023-07-13 2023-07-13 接口文档、测试用例生成方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN116841900A true CN116841900A (zh) 2023-10-03

Family

ID=88161577

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310866450.8A Pending CN116841900A (zh) 2023-07-13 2023-07-13 接口文档、测试用例生成方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN116841900A (zh)

Similar Documents

Publication Publication Date Title
JP7371141B2 (ja) リアルタイムデータフロープログラミング言語のためのツールおよび方法
US20030167423A1 (en) Program product, method, and system for testing consistency of machine code files and source files
US20100017792A1 (en) Open application lifecycle management framework
EP1810131A2 (en) Services oriented architecture for data integration services
CN102541731B (zh) 平台不可知诊断数据收集与显示
KR20090009834A (ko) 프로그래밍 언어에서 수식 트리의 깊은 임베딩을 위한 범용인터페이스를 제공하는 시스템, 컴퓨터 구현 방법 및 컴퓨터 구현 시스템
KR20060104505A (ko) 종합 문자열 분석기 및 그 분석 방법
CN113900958A (zh) 测试用例脚本的生成方法、系统、介质及电子设备
CN111309317A (zh) 一种实现数据可视化的代码自动化方法和装置
CN113050953A (zh) 基于注释生成代码的方法、装置及存储介质
CN111324619B (zh) 微服务系统中的对象更新方法、装置、设备和存储介质
CN113778897A (zh) 接口的自动测试方法、装置、设备及存储介质
CN114356964A (zh) 数据血缘构建方法、装置、存储介质及电子设备
CN113836014A (zh) 一种接口测试方法、装置、电子设备和存储介质
CN117112060A (zh) 组件库构建方法、装置、电子设备及存储介质
CN111488144A (zh) 一种数据处理方法以及设备
CN115640279A (zh) 一种数据血缘关系的构建方法和装置
CN116841900A (zh) 接口文档、测试用例生成方法、装置、计算机设备和存储介质
US11544179B2 (en) Source traceability-based impact analysis
CN114297057A (zh) 一种自动化测试用例的设计及使用方法
CN112286784B (zh) 一种测试用例生成方法、装置、服务器及存储介质
Lombardi et al. Co-evolution of Metamodel and Generators: Higher-order Templating to the Rescue.
CN110737431A (zh) 软件开发方法、开发平台、终端设备及存储介质
Habibi et al. Sharif-TaaWS: a tool to automate unit testing of web services
CN112732254B (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