CN107608708A - 一种接口数据伪造方法 - Google Patents

一种接口数据伪造方法 Download PDF

Info

Publication number
CN107608708A
CN107608708A CN201710715427.3A CN201710715427A CN107608708A CN 107608708 A CN107608708 A CN 107608708A CN 201710715427 A CN201710715427 A CN 201710715427A CN 107608708 A CN107608708 A CN 107608708A
Authority
CN
China
Prior art keywords
interface
parsing module
document
module
interface document
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
CN201710715427.3A
Other languages
English (en)
Other versions
CN107608708B (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.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity 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 DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN201710715427.3A priority Critical patent/CN107608708B/zh
Publication of CN107608708A publication Critical patent/CN107608708A/zh
Application granted granted Critical
Publication of CN107608708B publication Critical patent/CN107608708B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

本发明涉及一种接口数据伪造方法,服务器查找接口文档解析模块库,查找适配接口文档的接口文档解析模块,若存在则直接使用或修改以解析接口文档,若不存在则自定义并利用自定义的接口文档解析模块解析接口文档,得到标准化的接口配置文档,进而利用数据伪造模块产出伪造用接口数据。本发明原则上可以应对所有接口文档类型,可以实现接口文档解析模块复用、定制并存储,无限趋近“彻底地自动化”,对于接口字段变化非常友好,当接口文档的某接口或者某字段变更之后,无需人工去修改配置文件,只需重新运行程序即可,可以帮助用户在海量接口解析模块中,自动筛选出高度符合用户需求的解析模块,解决了人工难以快速定位合适的解析模块的问题。

Description

一种接口数据伪造方法
技术领域
本发明涉及数字信息的传输,例如电报通信,特别涉及一种适配性更高、使用更为便利的接口数据伪造方法。
背景技术
在Web开发快速迭代、前后端趋于分离的今天,为了更好的分工合作,让前端能在不依赖后端环境的情况下进行开发,其中一种手段就是为前端伪造接口假数据。接口假数据是后端接口的真实反映,需要严格地遵循后端接口的字段名称、字段类型、层级结构、格式等规范,同时应当尽可能全面的涵盖每个字段的各种情况,以模拟一个接近真实的后端环境,来便于前后端的协作。
对于网站项目而言,接口文档一般包含四部分:
1.方法,主要包含新增(post)、修改(put)、删除(delete)、获取(get)等;
2.uri,即接口的请求路径;
3.请求参数,即前端需要给后端传递的参数,一般包含如下信息:字段、说明、类型、备注、是否必填等;
4.返回数据结构,即后端接到前端请求之后,返回的数据结构,一般会包含:请求状态码、字段、说明、类型、备注、是否必有等。
在现有技术中,接口文档大多具有统一的格式,这也为通过编程解析文档,从而产出接口假数据提供了便利。当前实际应用较广的伪造接口假数据的方法主要有三种。
方法一:将编写接口文档和伪造接口假数据合二为一。
由于接口文档描述了关于接口的全部信息,而接口假数据是基于接口文档产生的,所以这两者在内容上有极大的重合,如遵循一定的格式,编写接口配置文件,程序通过解析配置文件,即可同时产出接口文档和接口假数据。
此方法的优点是仅需一次编辑,可同时产出接口文档和接口假数据,大大提高了效率。
此方法的缺点包括:
1)只有在新项目中才适合使用此方法,对于老项目需要根据老的接口文档重新逐一编辑接口配置文件;
2)现有工具只能在线使用,无法本地化,存在泄密等风险;
3)大多需要付费使用。
方法二:基于现存的接口文档,逐一按照规定的格式,编写配置文件。程序通过解析配置文件,自动产出接口假数据。
此方法的优点是:对在先项目友好、可本地化、免费开源工具丰富。
此方法的缺点包括:
1)针对每个接口都需要进行一次配置,浪费人力;
2)接口若出现变化,即需要重新编辑配置文件。
方法三:纯手工伪造。此方法的缺点不言而喻,会耗费大量的人力。
综上所述,借助工具来伪造接口假数据已经成为趋势,而现有技术的方法需要针对每一个接口,逐个编写配置,基于实际上每个接口的格式几乎是统一的现实,为每个接口手工编写配置除了耗时耗力,同时对于变化也不友好,假设某个接口改变,就需要同时改变接口文档和接口假数据的配置文件,效率低下。
发明内容
本发明要解决的技术问题是,针对当前主流接口数据伪造工具需要为每个接口进行配置的缺点,基于“同一份接口文档,每个接口具有统一格式”这一客观现实,提供一种通过动态装配文档解析模块、自动解析接口文档、生成接口配置文件、进而自动伪造出接口假数据的接口数据伪造方法。
本发明所采用的技术方案是,一种接口数据伪造方法,所述方法包括以下步骤:
步骤1:上传待配置接口文档至服务器;
步骤2:服务器查找接口文档解析模块库,对接口文档自动匹配,查找适配的接口文档解析模块;若存在,则直接使用或修改匹配成功的接口文档解析模块解析接口文档,下载最终的接口文档解析模块;若不存在,则自定义接口文档解析模块,得到最终的接口文档解析模块;
步骤3:以最终的接口文档解析模块解析接口文档,得到标准化的接口配置文档;
步骤4:根据接口配置文档,利用数据伪造模块产出伪造用接口数据。
优选地,所述步骤2中,查找适配的解析模块具体包括以下步骤:
步骤2.1:将接口文档解析模块库中的所有接口文档解析模块形成队列;
步骤2.2:设置解析的总轮数N;
步骤2.3:依次运行队列中的接口文档解析模块对接口文档进行解析,在第k轮,需要遍历k/N的文档;若解析时抛出的异常数A≤N-k+1,则将当前接口文档解析模块加入下一轮匹配的队列,否则抛弃,开始下一个接口文档解析模块对接口文档的解析;
步骤2.4:当k=N时,若剩余的接口文档解析模块数量大于0,则直接使用或修改匹配成功的接口文档解析模块,若剩余的接口文档解析模块数量等于0,则自定义接口文档解析模块。
优选地,所述步骤2.4中,自定义接口文档解析模块包括以下步骤:
步骤2.4.1:设置模块文件,模块文件接口的入参为接口文档路径和将被导出的接口配置文件路径;
步骤2.4.2:模块文件逐行扫描接口文档,查找每个字段的字段名和字段类型,修改为标准化的接口配置文档;
步骤2.4.3:将模块文件保存至本地;
步骤2.4.4:将自定义的模块文件通过服务器传输至接口文档解析模块库保存为接口文档解析模块。
优选地,所述步骤3中,得到标准化的接口配置文档包括以下步骤:
步骤3.1:检测存放接口文档的文件夹,以文件名查找接口文档解析模块;若当前文件夹不存在接口文档解析模块,则依序在父级目录中检测;
步骤3.2:若检测到接口文档解析模块,则使用命令行工具,将接口文档地址和被导出的接口配置文档地址作为参数,执行接口文档解析模块;若直至根目录均未检测到接口文档解析模块,提示错误,退出;
步骤3.3:得到标准化的接口配置文档。
优选地,所述步骤4中,利用数据伪造模块产出伪造用接口数据包括以下步骤:
步骤4.1:使用命令行工具,将接口配置文档地址和伪造用接口数据的文档地址作为参数,执行接口数据伪造模块;
步骤4.2:接口数据伪造模块逐行扫描接口配置文档,生成伪造用接口数据。
本发明通过动态装配文档解析模块,匹配到与接口文档适配的接口文档解析模块即直接使用或修改,匹配不到则自定义接口文档解析模块,使得接口文档的可以被任一接口文档解析模块解析,并能产生对应与后来的接口文档的接口文档解析模块,利用匹配完成的接口文档解析模块自动解析接口文档并生成接口配置文档,进而通过接口配置文档产出伪造用接口数据。
本发明的有益效果主要表现在:
(1)提出一种无需为每个接口单独进行配置的方式,由程序自行解析接口文档,自动产出配置文件和自动伪造假数据。由于接口文档解析模块是动态的,可以针对不同格式的接口文档,做不同的定制,所以原则上可以应对所有的接口文档类型;
(2)提出接口文档解析模块库的概念,完善线上模块库思想,使得接口文档解析模块可以实现大规模的复用、定制并存储,解决了每次需重写接口文档解析模块的问题。随着解析模块库的不断扩容,无限趋近“彻底地自动化”;
(3)对于接口字段变化非常友好,当接口文档的某接口或者某字段变更之后,无需人工去修改配置文件,只需重新运行程序即可;
(4)可以帮助用户在海量接口解析模块中,自动筛选出高度符合用户需求的解析模块,解决了人工难以快速定位合适的解析模块的问题。
附图说明
图1为本发明的方法的流程示意图。
具体实施方式
下面结合实施例对本发明做进一步的详细描述,但本发明的保护范围并不限于此。
本发明涉及一种接口数据伪造方法,所述方法包括以下步骤。
步骤1:上传待配置接口文档至服务器。
步骤2:服务器查找接口文档解析模块库,对接口文档自动匹配,查找适配的接口文档解析模块;若存在,则直接使用或修改匹配成功的接口文档解析模块解析接口文档,下载最终的接口文档解析模块;若不存在,则自定义接口文档解析模块,得到最终的接口文档解析模块。
所述步骤2中,查找适配的解析模块具体包括以下步骤:
步骤2.1:将接口文档解析模块库中的所有接口文档解析模块形成队列;
步骤2.2:设置解析的总轮数N;
步骤2.3:依次运行队列中的接口文档解析模块对接口文档进行解析,在第k轮,需要遍历k/N的文档;若解析时抛出的异常数A≤N-k+1,则将当前接口文档解析模块加入下一轮匹配的队列,否则抛弃,开始下一个接口文档解析模块对接口文档的解析;
步骤2.4:当k=N时,若剩余的接口文档解析模块数量大于0,则直接使用或修改匹配成功的接口文档解析模块,若剩余的接口文档解析模块数量等于0,则自定义接口文档解析模块。
所述步骤2.4中,自定义接口文档解析模块包括以下步骤:
步骤2.4.1:设置模块文件,模块文件接口的入参为接口文档路径和将被导出的接口配置文件路径;
步骤2.4.2:模块文件逐行扫描接口文档,查找每个字段的字段名和字段类型,修改为标准化的接口配置文档;
步骤2.4.3:将模块文件保存至本地;
步骤2.4.4:将自定义的模块文件通过服务器传输至接口文档解析模块库保存为接口文档解析模块。
本发明中,上传已有的接口文档至服务器,上传完成后,服务器开始进行自动匹配,具体方法是将所有解析模块形成队列,每次从队列中取一个解析模块对接口文档进行解析。
本发明中,假设存在10个解析模块,有1个文档需要适配,设置解析的总轮数N为5。即有:第一轮,10个模块依次去解析文档的1/5,对于抛出异常数≤5-1+1=5的解析模块,进入下一轮适配,其余的模块则抛弃;假设第一轮淘汰了3个模块;第二轮,剩下的7个模块依次去解析文档的2/5,对于抛出异常数≤5-2+1=4的模块保留,其余抛弃;依次类推。在本发明的方法中,新一轮的筛选相比前一轮解析的文档内容会更多,而对于异常数的限定表示抛出的异常需要更少才会进入下一轮,保证了解析的精确性和稳定性。
本发明中,若不存在适合的接口文档解析模块,则需自定义。具体方法是基于JavaScript ES6语法,对外导出一个名为‘parse’接口的js模块文件,该parse接口的入参为接口文档路径和被导出的接口配置文件路径。parse函数的主要功能是逐行扫描接口文档,找出每个字段的字段名、字段类型等信息,并将它们改编成统一的标准化接口配置文件。
本发明中,步骤2.5.4可以通过命令行工具完成,输入“APM upload [接口文档解析模块名称]”,即可将自定义的接口文档解析模块传至云端的接口文档解析模块库,以实现更高效的代码复用。客户端与云端模块库的交互。
步骤3:以最终的接口文档解析模块解析接口文档,得到标准化的接口配置文档。
所述步骤3中,得到标准化的接口配置文档包括以下步骤:
步骤3.1:检测存放接口文档的文件夹,以文件名查找接口文档解析模块;若当前文件夹不存在接口文档解析模块,则依序在父级目录中检测;
步骤3.2:若检测到接口文档解析模块,则使用命令行工具,将接口文档地址和被导出的接口配置文档地址作为参数,执行接口文档解析模块;若直至根目录均未检测到接口文档解析模块,提示错误,退出;
步骤3.3:得到标准化的接口配置文档。
本发明中,接口文档解析模块下载到本地后,可以存在任何地方;待解析的接口文档也可以存放在本地的任何地方,它们两者不必须要放在同一路径下,步骤3的自动寻找解析模块的方案,就是为了使得操作起来更方便、智能、灵活。
本发明中,给出一种检测的实施例。检测当前文件夹内,是否存在文件名为APIDocParsr的文件,文件后缀顺序优先级为:[‘js’,‘json’,‘’],即先查找有无‘APIDocParsr.js’,再查找‘APIDocParsr.json’,最后查找‘‘APIDocParsr’文件。若当前文件夹内不存在解析模块文件,则继续在父级目录中查找,以此类推,一直到根目录。
本发明中,命令行工具的使用模式为输入“APM run –i [接口文档地址] –o [被导出的接口配置文件地址]”。
本发明中,产出的接口文档配置文件格式为“[对象名称]#[字段名1]:[字段类型]:[备注]| [字段名2]:[字段类型]:[备注]”。
步骤4:根据接口配置文档,利用数据伪造模块产出伪造用接口数据。
所述步骤4中,利用数据伪造模块产出伪造用接口数据包括以下步骤:
步骤4.1:使用命令行工具,将接口配置文档地址和伪造用接口数据的文档地址作为参数,执行接口数据伪造模块;
步骤4.2:接口数据伪造模块逐行扫描接口配置文档,生成伪造用接口数据。
本发明中,命令行工具的使用模式为输入“APM fake –i [接口配置文档地址] –o[被导出的假数据文档地址]”。
本发明中,接口数据伪造模块的功能是根据标准化的接口配置文档,产出实际的假数据。当前存在很多开源的类似工具,每种模块或引擎均有一套标准化接口配置文件的规范,本领域技术人员可以依据实际的需求选择开源工具或自行设定规范并定义接口数据伪造模块。

Claims (5)

1.一种接口数据伪造方法,其特征在于:所述方法包括以下步骤:
步骤1:上传待配置接口文档至服务器;
步骤2:服务器查找接口文档解析模块库,对接口文档自动匹配,查找适配的接口文档解析模块;若存在,则直接使用或修改匹配成功的接口文档解析模块解析接口文档,下载最终的接口文档解析模块;若不存在,则自定义接口文档解析模块,得到最终的接口文档解析模块;
步骤3:以最终的接口文档解析模块解析接口文档,得到标准化的接口配置文档;
步骤4:根据接口配置文档,利用数据伪造模块产出伪造用接口数据。
2.根据权利要求1所述的一种接口数据伪造方法,其特征在于:所述步骤2中,查找适配的解析模块具体包括以下步骤:
步骤2.1:将接口文档解析模块库中的所有接口文档解析模块形成队列;
步骤2.2:设置解析的总轮数N;
步骤2.3:依次运行队列中的接口文档解析模块对接口文档进行解析,在第k轮,需要遍历k/N的文档;若解析时抛出的异常数A≤N-k+1,则将当前接口文档解析模块加入下一轮匹配的队列,否则抛弃,开始下一个接口文档解析模块对接口文档的解析;
步骤2.4:当k=N时,若剩余的接口文档解析模块数量大于0,则直接使用或修改匹配成功的接口文档解析模块,若剩余的接口文档解析模块数量等于0,则自定义接口文档解析模块。
3.根据权利要求2所述的一种接口数据伪造方法,其特征在于:所述步骤2.4中,自定义接口文档解析模块包括以下步骤:
步骤2.4.1:设置模块文件,模块文件接口的入参为接口文档路径和将被导出的接口配置文件路径;
步骤2.4.2:模块文件逐行扫描接口文档,查找每个字段的字段名和字段类型,修改为标准化的接口配置文档;
步骤2.4.3:将模块文件保存至本地;
步骤2.4.4:将自定义的模块文件通过服务器传输至接口文档解析模块库保存为接口文档解析模块。
4.根据权利要求1所述的一种接口数据伪造方法,其特征在于:所述步骤3中,得到标准化的接口配置文档包括以下步骤:
步骤3.1:检测存放接口文档的文件夹,以文件名查找接口文档解析模块;若当前文件夹不存在接口文档解析模块,则依序在父级目录中检测;
步骤3.2:若检测到接口文档解析模块,则使用命令行工具,将接口文档地址和被导出的接口配置文档地址作为参数,执行接口文档解析模块;若直至根目录均未检测到接口文档解析模块,提示错误,退出;
步骤3.3:得到标准化的接口配置文档。
5.根据权利要求1所述的一种接口数据伪造方法,其特征在于:所述步骤4中,利用数据伪造模块产出伪造用接口数据包括以下步骤:
步骤4.1:使用命令行工具,将接口配置文档地址和伪造用接口数据的文档地址作为参数,执行接口数据伪造模块;
步骤4.2:接口数据伪造模块逐行扫描接口配置文档,生成伪造用接口数据。
CN201710715427.3A 2017-08-20 2017-08-20 一种接口数据伪造方法 Active CN107608708B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710715427.3A CN107608708B (zh) 2017-08-20 2017-08-20 一种接口数据伪造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710715427.3A CN107608708B (zh) 2017-08-20 2017-08-20 一种接口数据伪造方法

Publications (2)

Publication Number Publication Date
CN107608708A true CN107608708A (zh) 2018-01-19
CN107608708B CN107608708B (zh) 2020-05-01

Family

ID=61065116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710715427.3A Active CN107608708B (zh) 2017-08-20 2017-08-20 一种接口数据伪造方法

Country Status (1)

Country Link
CN (1) CN107608708B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086145A (zh) * 2018-07-05 2018-12-25 平安科技(深圳)有限公司 数据伪造方法、装置及计算机存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020174209A1 (en) * 2001-05-16 2002-11-21 Robert Sesek Device configuration in a distributed environment
CN104199725A (zh) * 2014-09-27 2014-12-10 上海瀚之友信息技术服务有限公司 一种服务接口数据模拟方法和系统
CN106777290A (zh) * 2016-12-29 2017-05-31 中国建设银行股份有限公司 一种导出数据的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020174209A1 (en) * 2001-05-16 2002-11-21 Robert Sesek Device configuration in a distributed environment
CN104199725A (zh) * 2014-09-27 2014-12-10 上海瀚之友信息技术服务有限公司 一种服务接口数据模拟方法和系统
CN106777290A (zh) * 2016-12-29 2017-05-31 中国建设银行股份有限公司 一种导出数据的方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086145A (zh) * 2018-07-05 2018-12-25 平安科技(深圳)有限公司 数据伪造方法、装置及计算机存储介质
CN109086145B (zh) * 2018-07-05 2023-04-07 平安科技(深圳)有限公司 数据生成方法、装置及计算机存储介质

Also Published As

Publication number Publication date
CN107608708B (zh) 2020-05-01

Similar Documents

Publication Publication Date Title
CN100492319C (zh) 配置存储区网络的系统和方法
US8185877B1 (en) System and method for testing applications
CN101958987B (zh) 电信业务数据动态转换的方法及其系统
US8839107B2 (en) Context based script generation
EP1387305B1 (fr) Procédé et systeme d'établissement automatique d'un modèle global de simulation d'une architecture
CN102368261A (zh) 一种可扩展的运维报表生成方法
CN107958028A (zh) 数据采集的方法、装置、存储介质及终端
AU2015331025A1 (en) Emulating manual system of filing using electronic document and electronic file
CN109542412A (zh) 接口信息生成方法、装置、计算机设备和存储介质
CN101499057A (zh) 电子文档生成系统及方法
CN111782117B (zh) 界面的展示方法和装置、存储介质、电子装置
US20060047723A1 (en) Custom database system and method of building the same
US20030110175A1 (en) Deploying predefined data warehouse process models
CN101645935B (zh) 基于QoS指标和Web服务输出参数的Web服务组合方法和装置
CN105446819B (zh) 一种服务连接系统及其设计方法
CN109726295A (zh) 品牌知识图谱显示方法、装置、图服务器及存储介质
EP1909170B1 (en) Method and system for automatically generating a communication interface
CN107608708A (zh) 一种接口数据伪造方法
CN101976196B (zh) 一种面向“服务质量”的代码自动生成方法
CN111625595A (zh) 基于自启动爬虫技术的区块链管理方法、系统及存储介质
CN109460318A (zh) 一种可回滚档案采集数据的导入方法、计算机装置及计算机可读存储介质
CN109656588A (zh) 一种远程快速实现用电信息采集终端软件更新的方法及系统
Le Zou et al. On synchronizing with web service evolution
CN108334313A (zh) 用于大型soc研发的持续集成方法、装置及代码管理系统
CN103678054B (zh) 用于BACnet设备的测试方法及装置

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Zhejiang Zhongcai Building No. 68 Binjiang District road Hangzhou City, Zhejiang Province, the 310052 and 15 layer

Applicant after: DBAPPSECURITY Ltd.

Address before: Zhejiang Zhongcai Building No. 68 Binjiang District road Hangzhou City, Zhejiang Province, the 310052 and 15 layer

Applicant before: DBAPPSECURITY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant