CN111240967A - 一种代码生成方法及装置 - Google Patents

一种代码生成方法及装置 Download PDF

Info

Publication number
CN111240967A
CN111240967A CN202010006885.1A CN202010006885A CN111240967A CN 111240967 A CN111240967 A CN 111240967A CN 202010006885 A CN202010006885 A CN 202010006885A CN 111240967 A CN111240967 A CN 111240967A
Authority
CN
China
Prior art keywords
interface
code
characteristic information
information
preset database
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.)
Granted
Application number
CN202010006885.1A
Other languages
English (en)
Other versions
CN111240967B (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.)
Douyin Vision Co Ltd
Douyin Vision Beijing Co Ltd
Original Assignee
Beijing ByteDance Network Technology 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 Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202010006885.1A priority Critical patent/CN111240967B/zh
Publication of CN111240967A publication Critical patent/CN111240967A/zh
Application granted granted Critical
Publication of CN111240967B publication Critical patent/CN111240967B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/368Test management for test version control, e.g. updating test cases to a new software version

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

一种代码生成方法及装置
技术领域
本申请涉及计算机软件技术领域,具体而言,涉及一种代码生成方法及装置。
背景技术
目前,计算机软件技术迅速发展,给人们的生活带来了更多的自动化和智能化。随着需求的增加,软件程序中需要的接口越来越多,同时,对接口的更新也在持续进行。接口更新后,为了实现对接口的正常使用,保证服务质量,需要对接口进行测试。
在测试接口的过程中,就需要根据新的接口代码,重新编写接口测试代码,那么,在接口数量巨大,并且接口更新频繁的今天,就需要投入很多的人力资源来完成接口代码的编写,同时,接口代码的编写效率和接口测试效率也会相应地降低。
发明内容
有鉴于此,本申请至少提供一种代码生成方法及装置,有利于提高接口的测试效率和接口代码的编写效率。
第一方面,本申请提供了一种代码生成方法,包括:
在目标接口的接口代码发生代码更新时,获取更新后的接口代码;
从所述更新后的接口代码中提取当前接口特征信息;
若所述当前接口特征信息与更新前的接口代码对应的接口特征信息不同,则基于所述当前接口特征信息生成用于测试所述目标接口的接口功能的接口测试代码。
在一种可能的实施方式中,所述接口特征信息包括以下至少一项:
接口路由信息、接口请求方式信息、接口格式信息、接口功能描述信息、接口代码头部信息、接口代码参数信息、接口代码体信息。
在一种可能的实施方式中,从所述更新后的接口代码中提取当前接口特征信息之后,上述代码生成方法还包括:
若所述当前接口特征信息与更新前的接口代码对应的接口特征信息不同,则将所述当前接口特征信息存入预设数据库中;其中,所述预设数据库用于存储发生更新的接口特征信息;
在基于所述当前接口特征信息生成用于测试所述目标接口的接口功能的接口测试代码之前,还包括:
从所述预设数据库中,获取更新前的接口代码对应的接口特征信息。
在一种可能的实施方式中,从所述更新后的接口代码中提取当前接口特征信息之后,上述代码生成方法还包括:
获取用于存储接口特征信息的、具有预设结构的结构体,并按照所述预设结构,将所述当前接口特征信息存入所述结构体;
所述将所述当前接口特征信息存入预设数据库中,包括:
从所述结构体中获取所述当前接口特征信息,并按照所述结构体的预设结构对应的数据存储格式,将所述当前接口特征信息存入预设数据库中。
在一种可能的实施方式中,上述代码生成方法还包括:
建立所述结构体与所述预设数据库的映射关系;
在将所述当前接口特征信息存入预设数据库中之前,或从所述预设数据库中,获取更新前的接口代码对应的接口特征信息之前,还包括:
基于所述映射关系,定位所述预设数据库。
在一种可能的实施方式中,基于所述映射关系,定位所述预设数据库,包括:
在将所述当前接口特征信息存入预设数据库中之前,基于存储所述当前接口特征信息的结构体,确定与该结构体具有映射关系的所述预设数据库;
从所述预设数据库中,获取更新前的接口代码对应的接口特征信息之前,基于存储更新前的接口代码对应的接口特征信息的结构体,确定与该结构体具有映射关系的所述预设数据库。
在一种可能的实施方式中,上述代码生成方法还包括:
若首次生成所述目标接口的接口代码,则从首次生成的所述接口代码中提取初始接口特征信息;
基于提取的初始接口特征信息生成用于测试所述目标接口的接口功能的接口测试代码。
第二方面,本申请提供了一种代码生成装置,包括:
代码扫描模块,用于在目标接口的接口代码发生代码更新时,获取更新后的接口代码;
信息提取模块,用于从所述更新后的接口代码中提取当前接口特征信息;
代码生成模块,用于在所述当前接口特征信息与更新前的接口代码对应的接口特征信息不同时,基于所述当前接口特征信息生成用于测试所述目标接口的接口功能的接口测试代码。
在一种可能的实施方式中,所述接口特征信息包括以下至少一项:
接口路由信息、接口请求方式信息、接口格式信息、接口功能描述信息、接口代码头部信息、接口代码参数信息、接口代码体信息。
在一种可能的实施方式中,所述代码生成装置还包括:
信息存储模块,用以在所述当前接口特征信息与更新前的接口代码对应的接口特征信息不同时,将所述当前接口特征信息存入预设数据库中;其中,所述预设数据库用于存储发生更新的接口特征信息;
信息获取模块,用于从所述预设数据库中,获取更新前的接口代码对应的接口特征信息。
在一种可能的实施方式中,所述信息存储模块还用于获取用于存储接口特征信息的、具有预设结构的结构体,并按照所述预设结构,将所述当前接口特征信息存入所述结构体;以及从所述结构体中获取所述当前接口特征信息,并按照所述结构体的预设结构对应的数据存储格式,将所述当前接口特征信息存入预设数据库中。
在一种可能的实施方式中,上述代码生成装置还包括:
映射建立模块,用于建立所述结构体与所述预设数据库的映射关系;
数据库定位模块,用于基于所述映射关系,定位所述预设数据库。
在一种可能的实施方式中,所述数据库定位模块具体用于,在将所述当前接口特征信息存入预设数据库中之前,基于存储所述当前接口特征信息的结构体,确定与该结构体具有映射关系的所述预设数据库;以及,从所述预设数据库中,获取更新前的接口代码对应的接口特征信息之前,基于存储更新前的接口代码对应的接口特征信息的结构体,确定与该结构体具有映射关系的所述预设数据库。
在一种可能的实施方式中,所述信息提取模块还用于,在首次生成所述目标接口的接口代码时,从首次生成的所述接口代码中提取初始接口特征信息;
所述代码生成模块还用于基于提取的初始接口特征信息生成用于测试所述目标接口的接口功能的接口测试代码。
第三方面,本申请提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的代码生成方法的步骤。
第四方面,本申请还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的代码生成方法的步骤。
本申请提供了一种代码生成方法及装置,其中,本申请能够在接口代码发生更新时,从更新后的接口代码中获取新的接口特征信息,并在接口特征信息也发生更新时,基于新的接口特征信息生成用于接口功能测试的接口测试代码。上述技术方案避免了人工编写和更新接口测试代码,有效提高了接口代码的编写效率和接口的测试效率,同时节省了人力资源。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的一种代码生成方法的流程图;
图2示出了本申请实施例提供的另一种代码生成方法的流程图;
图3示出了本申请实施例提供的一种代码生成装置的结构示意图;
图4示出了本申请实施例提供的另一种代码生成装置的结构示意图;
图5示出了本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
如图1所示,本申请实施例提供了一种代码生成方法,该方法应用于需要进行代码自动生成的终端设备,具体的,包括如下步骤:
S110、在目标接口的接口代码发生代码更新时,获取更新后的接口代码。
这里,接口代码由相关的研发人员进行编写和更新,在研发人员更新了接口代码的时候,触发接口代码扫描脚本,自动扫描接口代码,从而能够自动获取到更新后的接口代码。
上述是由研发人员在更新了接口代码后,通过触发接口代码扫描脚本来获取更新后的接口代码的,在实际应用中,也可以利用其他方式获取更新后的接口代码,例如,可以每隔预设时间,自动执行接口代码扫描脚本,以获取当前的接口代码,并将当前获取的接口代码与上一次获取的接口代码进行比较,如果比较结果显示两者不同,则将当前获取的接口代码作为更新后的接口代码。本申请对触发获取更新后的接口代码的方式并不进行限定。
S120、从所述更新后的接口代码中提取当前接口特征信息。
这里,具体可以通过接口特征信息提取脚本,自动从更新后的接口代码中提取接口特征信息。在具体实施中,上述接口特征信息可以包括以下至少一项:接口路由信息、接口请求方式信息、接口格式信息、接口功能描述信息、接口代码头部信息、接口代码参数信息、接口代码体信息。
在执行此步骤之前,需要根据应用场景的不同,编写适用的接口特征信息提取脚本,例如,根据应用场景,编写适用于WEB框架的接口特征信息提取脚本。以用gin编写的WEB框架下的接口特征信息提取脚本为例,可以根据Router的定义方式,提取接口的请求"Method"(即接口请求方式信息)、"Path"(即接口路由信息);根据调用的controller,获取具体的接口处理方式,并通过读取"DefaultQuery"关键字获取"code","state"两个query参数(即接口代码参数信息);通过读取到bind关键字,分析UserLoginReq结构体,获取到Format为"json"的Body体参数分别为"username"、"password"(即接口代码体信息)。
S130、若所述当前接口特征信息与更新前的接口代码对应的接口特征信息不同,则基于所述当前接口特征信息生成用于测试所述目标接口的接口功能的接口测试代码。
在执行此步骤之前,首选需要获取更新前的接口代码对应的接口特征信息。具体地,可以从存储接口特征信息的预设数据库中提取更新前的接口特征信息。
在执行此步骤之前,还需要将当前接口特征信息与更新前的接口代码对应的接口特征信息进行比较,若相同,则不必生成新的接口测试代码,利用原来的接口测试代码进行接口功能测试即可,如果不相同,则需要生成新的接口测试代码,以进行接口功能的测试。
此步骤中,在当前接口特征信息与更新前的接口代码对应的接口特征信息不同时,具体可以利用预设设置好的代码生成脚本,例如,java的apachefreemark,基于提取得到的接口特征信息自动生成接口测试代码。
本申请中,需要预先设置代码生成脚本,在设置代码生成脚本的时候,需要考虑各类HTTP请求方式的特征等。
在一些实施例中,从所述更新后的接口代码中提取当前接口特征信息之后,上述代码生成方法还包括:
若所述当前接口特征信息与更新前的接口代码对应的接口特征信息不同,则将所述当前接口特征信息存入预设数据库中;其中,所述预设数据库用于存储发生更新的接口特征信息。
上述预设数据库用于存储每次发生更新的接口特征信息,在将接口特征信息存入预设数据库之前,需要将当前获取的当前接口特征信息与更新前的接口代码对应的接口特征信息进行比较,若不相同,再将当前接口特征信息存入预设数据库;若相同,则不将当前接口特征信息存入预设数据库。
在一些实施例中,在基于所述当前接口特征信息生成用于测试所述目标接口的接口功能的接口测试代码之前,上述代码生成方法还包括:
从所述预设数据库中,获取更新前的接口代码对应的接口特征信息。
由于接口特征信息存储在预设数据库中,因此,在获取到当前接口特征信息之后,需要从预设数据库中获取更新前的接口代码对应的接口特征信息。
在一些实施例中,从所述更新后的接口代码中提取当前接口特征信息之后,上述代码生成方法还包括如下步骤:获取用于存储接口特征信息的、具有预设结构的结构体,并按照所述预设结构,将所述当前接口特征信息存入所述结构体。
上述结构体的具体结构可以根据实际应用场景灵活设置,例如,可以将结构体设置为HTTP Restful风格,如下:
Figure BDA0002355581140000091
在提取到上述接口特征信息之后,可以将提取的接口特征信息赋值给上述结构体。
在设置好结构体之后,可以基于结构体的特征,设置预设数据库的数据存储格式。之后,从所述结构体中获取所述当前接口特征信息,并按照所述结构体的预设结构对应的数据存储格式,将所述当前接口特征信息存入预设数据库中。
另外,在生成接口测试代码的时候,可基于提取到的当前接口特征信息直接进行生成处理,也可以从预设数据库中提取当前接口特征信息,再基于从预设数据库提取的当前接口特征信息生成接口测试代码。
在具体实施时,可以利用mysql关系数据库作为预设数据库。在数据库中可以建立应用程序接口API表,利用API表存储结构体中的接口特征信息。
在一些实施例中,上述代码生成方法还包括如下步骤:建立所述结构体与所述预设数据库的映射关系。也可以是建立结构体与预设数据库中的API表的映射关系。
基于上面建立的映射关系,在将所述当前接口特征信息存入预设数据库中之前,或从所述预设数据库中,获取更新前的接口代码对应的接口特征信息之前,可以定位到所述预设数据库,继而可以将当前接口特征信息存入预设数据库,或从预设数据库中获取接口特征信息。
在具体实施时,可以利用ORM框架建立结构体与预设数据库的映射关系。
在一些实施例中,基于所述映射关系,定位所述预设数据库,具体可以利用如下步骤实现:
在将所述当前接口特征信息存入预设数据库中之前,基于存储所述当前接口特征信息的结构体,确定与该结构体具有映射关系的所述预设数据库。
从所述预设数据库中,获取更新前的接口代码对应的接口特征信息之前,基于存储更新前的接口代码对应的接口特征信息的结构体,确定与该结构体具有映射关系的所述预设数据库。
上述实施例中,对接口代码更新后生成接口测试代码的过程进行了说明,本申请还公开了首次生成接口代码后生成接口测试代码的步骤,具体的,如图2所示:
S210、若首次生成所述目标接口的接口代码,则从首次生成的所述接口代码中提取初始接口特征信息。
这里,可以是研发人员首次生成接口代码后,手动触发代码扫描脚本获取接口代码,之后由接口特征信息提取脚本提取初始接口特征信息。也可以是,代码扫描脚本在预设时间到达时,自动扫描得到接口代码,并经过判断,确定该接口代码是首次生成的接口代码,再由接口特征信息提取脚本提取初始接口特征信息。
S220、基于提取的初始接口特征信息生成用于测试所述目标接口的接口功能的接口测试代码。
这里,由于接口代码是首次生成的,因此只有初始接口特征信息,可以直接利用初始接口特征信息生成接口测试代码。
上述实施例中的代码生成方法能够在接口代码首次生成后,或接口代码发生更新后,自动扫描得到新的接口代码,以及进行后续的接口特征信息提取、接口测试代码生成等,在需要有大量的接口需要维护时,上述方法能够提高接口测试代码生成效率和接口测试效率,降低接口维护成本。
对应于上述代码生成方法,本申请实施例还提供了一种代码生成装置,该代码生成装置应用于具有代码生成功能的终端设备,并且该代码生成装置及其各个模块能够执行与上述代码生成方法相同的方法步骤,并且能够达到相同的有益效果,因此对于重复的部分不再赘述。
具体地,如图3所示,本申请实施例提供的代码生成装置包括:
代码扫描模块310,用于在目标接口的接口代码发生代码更新时,获取更新后的接口代码。
信息提取模块320,用于从所述更新后的接口代码中提取当前接口特征信息。
代码生成模块330,用于在所述当前接口特征信息与更新前的接口代码对应的接口特征信息不同时,基于所述当前接口特征信息生成用于测试所述目标接口的接口功能的接口测试代码。
在一些实施例中,所述接口特征信息包括以下至少一项:
接口路由信息、接口请求方式信息、接口格式信息、接口功能描述信息、接口代码头部信息、接口代码参数信息、接口代码体信息。
如图4所示,本申请实施例还提供了一种代码生成装置,包括代码扫描模块410、信息提取模块420、代码生成模块430、信息存储模块440、信息获取模块450。
代码扫描模块410、信息提取模块420、代码生成模块430与上一个实施例中的代码扫描模块310、信息提取模块320和代码生成模块330作用相同,这里不再赘述。
信息存储模块440用以在所述当前接口特征信息与更新前的接口代码对应的接口特征信息不同时,将所述当前接口特征信息存入预设数据库中;其中,所述预设数据库用于存储发生更新的接口特征信息;
信息获取模块450用于从所述预设数据库中,获取更新前的接口代码对应的接口特征信息。
在一些实施例中,所述信息存储模块440还用于获取用于存储接口特征信息的、具有预设结构的结构体,并按照所述预设结构,将所述当前接口特征信息存入所述结构体;以及从所述结构体中获取所述当前接口特征信息,并按照所述结构体的预设结构对应的数据存储格式,将所述当前接口特征信息存入预设数据库中。
在一些实施例中,上述代码生成装置还包括:
映射建立模块460,用于建立所述结构体与所述预设数据库的映射关系;
数据库定位模块470,用于基于所述映射关系,定位所述预设数据库。
在一些实施例中,所述数据库定位模块470具体用于,在将所述当前接口特征信息存入预设数据库中之前,基于存储所述当前接口特征信息的结构体,确定与该结构体具有映射关系的所述预设数据库;以及,从所述预设数据库中,获取更新前的接口代码对应的接口特征信息之前,基于存储更新前的接口代码对应的接口特征信息的结构体,确定与该结构体具有映射关系的所述预设数据库。
在一些实施例中,所述信息提取模块420还用于,在首次生成所述目标接口的接口代码时,从首次生成的所述接口代码中提取初始接口特征信息;
所述代码生成模块430还用于基于提取的初始接口特征信息生成用于测试所述目标接口的接口功能的接口测试代码。
本申请实施例公开了一种电子设备,如图5所示,包括:处理器501、存储器502和总线503,所述存储器502存储有所述处理器501可执行的机器可读指令,当电子设备运行时,所述处理器501与所述存储器502之间通过总线503通信。
所述机器可读指令被所述处理器501执行时执行以下代码生成方法的步骤:
在目标接口的接口代码发生代码更新时,获取更新后的接口代码;
从所述更新后的接口代码中提取当前接口特征信息;
若所述当前接口特征信息与更新前的接口代码对应的接口特征信息不同,则基于所述当前接口特征信息生成用于测试所述目标接口的接口功能的接口测试代码。
本申请实施例还提供的一种对应于代码生成方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,本文不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (16)

1.一种代码生成方法,其特征在于,包括:
在目标接口的接口代码发生代码更新时,获取更新后的接口代码;
从所述更新后的接口代码中提取当前接口特征信息;
若所述当前接口特征信息与更新前的接口代码对应的接口特征信息不同,则基于所述当前接口特征信息生成用于测试所述目标接口的接口功能的接口测试代码。
2.根据权利要求1所述的代码生成方法,其特征在于,所述接口特征信息包括以下至少一项:
接口路由信息、接口请求方式信息、接口格式信息、接口功能描述信息、接口代码头部信息、接口代码参数信息、接口代码体信息。
3.根据权利要求1或2所述的代码生成方法,其特征在于,从所述更新后的接口代码中提取当前接口特征信息之后,还包括:
若所述当前接口特征信息与更新前的接口代码对应的接口特征信息不同,则将所述当前接口特征信息存入预设数据库中;其中,所述预设数据库用于存储发生更新的接口特征信息;
在基于所述当前接口特征信息生成用于测试所述目标接口的接口功能的接口测试代码之前,还包括:
从所述预设数据库中,获取更新前的接口代码对应的接口特征信息。
4.根据权利要求3所述的代码生成方法,其特征在于,从所述更新后的接口代码中提取当前接口特征信息之后,还包括:
获取用于存储接口特征信息的、具有预设结构的结构体,并按照所述预设结构,将所述当前接口特征信息存入所述结构体;
所述将所述当前接口特征信息存入预设数据库中,包括:
从所述结构体中获取所述当前接口特征信息,并按照所述结构体的预设结构对应的数据存储格式,将所述当前接口特征信息存入预设数据库中。
5.根据权利要求4所述的代码生成方法,其特征在于,还包括:
建立所述结构体与所述预设数据库的映射关系;
在将所述当前接口特征信息存入预设数据库中之前,或从所述预设数据库中,获取更新前的接口代码对应的接口特征信息之前,还包括:
基于所述映射关系,定位所述预设数据库。
6.根据权利要求5所述的代码生成方法,其特征在于,基于所述映射关系,定位所述预设数据库,包括:
在将所述当前接口特征信息存入预设数据库中之前,基于存储所述当前接口特征信息的结构体,确定与该结构体具有映射关系的所述预设数据库;
从所述预设数据库中,获取更新前的接口代码对应的接口特征信息之前,基于存储更新前的接口代码对应的接口特征信息的结构体,确定与该结构体具有映射关系的所述预设数据库。
7.根据权利要求1所述的代码生成方法,其特征在于,还包括:
若首次生成所述目标接口的接口代码,则从首次生成的所述接口代码中提取初始接口特征信息;
基于提取的初始接口特征信息生成用于测试所述目标接口的接口功能的接口测试代码。
8.一种代码生成装置,其特征在于,包括:
代码扫描模块,用于在目标接口的接口代码发生代码更新时,获取更新后的接口代码;
信息提取模块,用于从所述更新后的接口代码中提取当前接口特征信息;
代码生成模块,用于在所述当前接口特征信息与更新前的接口代码对应的接口特征信息不同时,基于所述当前接口特征信息生成用于测试所述目标接口的接口功能的接口测试代码。
9.根据权利要求8所述的代码生成装置,其特征在于,所述接口特征信息包括以下至少一项:
接口路由信息、接口请求方式信息、接口格式信息、接口功能描述信息、接口代码头部信息、接口代码参数信息、接口代码体信息。
10.根据权利要求8或9所述的代码生成装置,其特征在于,还包括:
信息存储模块,用以在所述当前接口特征信息与更新前的接口代码对应的接口特征信息不同时,将所述当前接口特征信息存入预设数据库中;其中,所述预设数据库用于存储发生更新的接口特征信息;
信息获取模块,用于从所述预设数据库中,获取更新前的接口代码对应的接口特征信息。
11.根据权利要求10所述的代码生成装置,其特征在于,
所述信息存储模块还用于获取用于存储接口特征信息的、具有预设结构的结构体,并按照所述预设结构,将所述当前接口特征信息存入所述结构体;以及从所述结构体中获取所述当前接口特征信息,并按照所述结构体的预设结构对应的数据存储格式,将所述当前接口特征信息存入预设数据库中。
12.根据权利要求11所述的代码生成装置,其特征在于,还包括:
映射建立模块,用于建立所述结构体与所述预设数据库的映射关系;
数据库定位模块,用于基于所述映射关系,定位所述预设数据库。
13.根据权利要求12所述的代码生成装置,其特征在于,所述数据库定位模块具体用于,在将所述当前接口特征信息存入预设数据库中之前,基于存储所述当前接口特征信息的结构体,确定与该结构体具有映射关系的所述预设数据库;以及,从所述预设数据库中,获取更新前的接口代码对应的接口特征信息之前,基于存储更新前的接口代码对应的接口特征信息的结构体,确定与该结构体具有映射关系的所述预设数据库。
14.根据权利要求8所述的代码生成装置,其特征在于:
所述信息提取模块还用于,在首次生成所述目标接口的接口代码时,从首次生成的所述接口代码中提取初始接口特征信息;
所述代码生成模块还用于基于提取的初始接口特征信息生成用于测试所述目标接口的接口功能的接口测试代码。
15.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至7任一所述的代码生成方法的步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7任一所述的代码生成方法的步骤。
CN202010006885.1A 2020-01-03 2020-01-03 一种代码生成方法及装置 Active CN111240967B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010006885.1A CN111240967B (zh) 2020-01-03 2020-01-03 一种代码生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010006885.1A CN111240967B (zh) 2020-01-03 2020-01-03 一种代码生成方法及装置

Publications (2)

Publication Number Publication Date
CN111240967A true CN111240967A (zh) 2020-06-05
CN111240967B CN111240967B (zh) 2023-09-15

Family

ID=70874242

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010006885.1A Active CN111240967B (zh) 2020-01-03 2020-01-03 一种代码生成方法及装置

Country Status (1)

Country Link
CN (1) CN111240967B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113835996A (zh) * 2020-06-24 2021-12-24 北京字节跳动网络技术有限公司 生成测试脚本的方法和装置

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754760A (en) * 1996-05-30 1998-05-19 Integrity Qa Software, Inc. Automatic software testing tool
CN102270126A (zh) * 2010-06-07 2011-12-07 大唐移动通信设备有限公司 一种快速确定接口代码和测试脚本参数值的方法及设备
US20150254173A1 (en) * 2014-03-07 2015-09-10 Ca, Inc. Automated generation of test cases for regression testing
WO2016137035A1 (ko) * 2015-02-25 2016-09-01 슈어소프트테크주식회사 테스트 케이스 생성 장치와 방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
CN106919509A (zh) * 2017-03-09 2017-07-04 腾讯科技(深圳)有限公司 一种客户端生成方法、装置及电子设备
CN107273281A (zh) * 2016-04-06 2017-10-20 阿里巴巴集团控股有限公司 基于代码变更的服务化接口测试方法、系统
CN107402884A (zh) * 2017-07-31 2017-11-28 深圳乐信软件技术有限公司 生成接口测试代码的方法及装置
CN107608889A (zh) * 2017-09-15 2018-01-19 杭州销冠网络科技有限公司 一种测试脚本自动生成方法及系统
CN109298882A (zh) * 2018-09-26 2019-02-01 深圳壹账通智能科技有限公司 接口的管理方法、计算机可读存储介质和终端设备
CN109344063A (zh) * 2018-09-26 2019-02-15 深圳竹云科技有限公司 一种api接口的自动化测试方法
WO2019165691A1 (zh) * 2018-02-28 2019-09-06 平安科技(深圳)有限公司 自动生成测试案例的方法、装置、设备及可读存储介质
CN110245081A (zh) * 2019-05-31 2019-09-17 厦门美柚信息科技有限公司 生成最小测试范围的方法及装置
CN110287109A (zh) * 2019-06-18 2019-09-27 广州华多网络科技有限公司 协议接口的测试方法、装置、计算机设备及其存储介质
CN110309071A (zh) * 2019-06-27 2019-10-08 杭州数梦工场科技有限公司 测试代码的生成方法及模块、测试方法及系统
CN110321142A (zh) * 2019-06-05 2019-10-11 平安科技(深圳)有限公司 一种接口文档更新方法、装置、电子设备及存储介质
CN110389896A (zh) * 2019-06-18 2019-10-29 中国平安人寿保险股份有限公司 代码自动化分析和测试方法、装置及计算机可读存储介质

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754760A (en) * 1996-05-30 1998-05-19 Integrity Qa Software, Inc. Automatic software testing tool
CN102270126A (zh) * 2010-06-07 2011-12-07 大唐移动通信设备有限公司 一种快速确定接口代码和测试脚本参数值的方法及设备
US20150254173A1 (en) * 2014-03-07 2015-09-10 Ca, Inc. Automated generation of test cases for regression testing
WO2016137035A1 (ko) * 2015-02-25 2016-09-01 슈어소프트테크주식회사 테스트 케이스 생성 장치와 방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
CN107273281A (zh) * 2016-04-06 2017-10-20 阿里巴巴集团控股有限公司 基于代码变更的服务化接口测试方法、系统
CN106919509A (zh) * 2017-03-09 2017-07-04 腾讯科技(深圳)有限公司 一种客户端生成方法、装置及电子设备
CN107402884A (zh) * 2017-07-31 2017-11-28 深圳乐信软件技术有限公司 生成接口测试代码的方法及装置
CN107608889A (zh) * 2017-09-15 2018-01-19 杭州销冠网络科技有限公司 一种测试脚本自动生成方法及系统
WO2019165691A1 (zh) * 2018-02-28 2019-09-06 平安科技(深圳)有限公司 自动生成测试案例的方法、装置、设备及可读存储介质
CN109298882A (zh) * 2018-09-26 2019-02-01 深圳壹账通智能科技有限公司 接口的管理方法、计算机可读存储介质和终端设备
CN109344063A (zh) * 2018-09-26 2019-02-15 深圳竹云科技有限公司 一种api接口的自动化测试方法
CN110245081A (zh) * 2019-05-31 2019-09-17 厦门美柚信息科技有限公司 生成最小测试范围的方法及装置
CN110321142A (zh) * 2019-06-05 2019-10-11 平安科技(深圳)有限公司 一种接口文档更新方法、装置、电子设备及存储介质
CN110287109A (zh) * 2019-06-18 2019-09-27 广州华多网络科技有限公司 协议接口的测试方法、装置、计算机设备及其存储介质
CN110389896A (zh) * 2019-06-18 2019-10-29 中国平安人寿保险股份有限公司 代码自动化分析和测试方法、装置及计算机可读存储介质
CN110309071A (zh) * 2019-06-27 2019-10-08 杭州数梦工场科技有限公司 测试代码的生成方法及模块、测试方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨清玉;李金丽;陈吉兰;李志伟;: "HTTP接口自动化测试方法研究", no. 18 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113835996A (zh) * 2020-06-24 2021-12-24 北京字节跳动网络技术有限公司 生成测试脚本的方法和装置

Also Published As

Publication number Publication date
CN111240967B (zh) 2023-09-15

Similar Documents

Publication Publication Date Title
CN107453960B (zh) 一种在服务测试中处理测试数据的方法、装置和系统
CN109634970B (zh) 表数据同步方法、设备、存储介质及装置
CN108536597A (zh) 一种终端测试方法、装置、终端设备及存储介质
CN110851209A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN109614325B (zh) 一种确定控件属性的方法及装置、电子设备和存储介质
CN114003451B (zh) 一种接口测试方法、装置、系统及介质
CN112817866A (zh) 录制回放方法、装置、系统、计算机设备以及存储介质
CN112905441A (zh) 测试用例生成方法、测试方法、装置及设备
CN112445693A (zh) 一种页面更新检测方法、装置、设备及存储介质
CN111240967A (zh) 一种代码生成方法及装置
JP6723976B2 (ja) テスト実行装置及びプログラム
JP2018116497A (ja) 画面判定装置及びプログラム
CN112559343A (zh) 测试路径生成方法及相关设备
CN112181822A (zh) 一种测试方法和应用程序的启动耗时测试方法
CN114650211A (zh) 故障修复方法、装置、电子设备和计算机可读存储介质
CN111400193B (zh) 测试用例生成方法、装置、设备及存储介质
CN111400245B (zh) 美术资源迁移方法及装置
CN113051178A (zh) 测试数据构造方法、装置、设备及介质
CN109815145B (zh) 一种批量程序测试方法及装置
CN113238901A (zh) 多设备的自动化测试方法及装置、存储介质、计算机设备
CN113468451A (zh) 一种页面展示方法和装置
CN107870854B (zh) 图表库数据准确性测试方法和测试装置
CN110245075A (zh) 测试数据配置方法、装置、计算机设备和存储介质
CN107102938B (zh) 测试脚本的更新方法及装置
CN112035373B (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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee after: Douyin Vision Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee before: Tiktok vision (Beijing) Co.,Ltd.

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee after: Tiktok vision (Beijing) Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.