CN113938473A - 基于流量的自动Mock方法、装置、设备及存储介质 - Google Patents
基于流量的自动Mock方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113938473A CN113938473A CN202111187825.5A CN202111187825A CN113938473A CN 113938473 A CN113938473 A CN 113938473A CN 202111187825 A CN202111187825 A CN 202111187825A CN 113938473 A CN113938473 A CN 113938473A
- Authority
- CN
- China
- Prior art keywords
- interface
- matching
- data
- mock
- strategy
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000004044 response Effects 0.000 claims abstract description 63
- 238000012216 screening Methods 0.000 claims abstract description 13
- 238000012544 monitoring process Methods 0.000 claims abstract description 9
- 238000004364 calculation method Methods 0.000 claims description 70
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004140 cleaning Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 abstract description 9
- 238000013473 artificial intelligence Methods 0.000 abstract description 6
- 238000012360 testing method Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000000586 desensitisation Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及人工智能及数字医疗领域,具体公开了一种基于流量的自动Mock方法、装置、设备及存储介质。该方法包括:基于部署在服务端上的Agent实时监听并采集各个接口的历史流量数据,基于历史流量数据构建数据库;获取客户端发送的当前数据请求,根据当前数据请求获取接口信息;响应于当前数据请求调用预设的接口匹配策略,根据所述接口匹配策略对接口信息进行筛选确定目标mock接口;调用目标mock接口并从数据库中提取与目标mock接口对应的接口流量数据;根据预设的数据匹配策略从接口流量数据中获取与当前数据请求对应的响应数据,并将响应数据发送给客户端。本发明能够减少维护工作量以及提高数据数量效率。
Description
技术领域
本发明涉及人工智能技术领域,特别是涉及一种基于流量的自动Mock方法、装置、设备及存储介质。
背景技术
Mock服务根据用户配置匹配规则判断当前访问是否需要Mock,需要则在Mock平台上匹配配置的响应报文,如果匹配成功,则直接返回原在Mock平台上配置的匹配成功的响应报文,而不用访问第三方接口,如果匹配不成功,则由Mock服务转发到第三方接口,返回真实访问的结果。目前Mock方案中,用户必须清楚接口的请求参数、响应报文的格式,才可以配置符合要求的匹配规则,而对于不同场景的业务测试,需要配置不同的Mock匹配规则,如果接口繁多,那么配置工作量较大,后续业务调整后,也需要花费大量时间去维护,时间成本高,效率低,而且对于不同的接口,用户必须要清楚对应接口的请求报文和响应报文,否则无法配置参数匹配规则和需要的响应报文数据。
发明内容
本发明提供一种基于流量的自动Mock方法、装置、设备及存储介质,能够解决规则配置的困难和业务调整而引起的大量维护工作,导致数据处理效率低的问题。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种基于流量的自动Mock方法,包括:
基于部署在服务端上的Agent实时监听并采集各个接口的历史流量数据,基于所述历史流量数据构建数据库;
获取客户端发送的当前数据请求,根据所述当前数据请求获取接口信息;
响应于所述当前数据请求调用预设的接口匹配策略,根据所述接口匹配策略对所述接口信息进行筛选确定目标mock接口;
调用所述目标mock接口并从所述数据库中提取与所述目标mock接口对应的接口流量数据;
根据预设的数据匹配策略从所述接口流量数据中获取与所述当前数据请求对应的响应数据,并将所述响应数据发送给所述客户端。
根据本发明的一个实施例,所述基于所述历史流量数据构建数据库还包括:
对所述历史流量数据进行脱敏处理和数据清洗处理;
基于处理后的所述历史流量数据构建数据库并将处理后的所述历史流量数据存储于所述数据库中。
根据本发明的一个实施例,所述响应于所述当前数据请求调用预设的接口匹配策略,根据所述接口匹配策略对所述接口信息进行筛选确定目标mock接口还包括:
响应于所述当前数据请求调用预设的接口匹配策略,所述接口匹配策略包括url匹配策略和参数匹配策略;
若所述接口匹配策略为所述url匹配策略,则根据所述接口信息获取url信息,根据所述url信息和所述url匹配策略确定目标mock接口;
若所述接口匹配策略为所述参数匹配策略,则根据所述接口信息获取参数信息,根据所述参数信息和所述参数匹配策略确定目标mock接口。
根据本发明的一个实施例,所述响应于所述当前数据请求调用预设的接口匹配策略,根据所述接口匹配策略对所述接口信息进行筛选确定目标mock接口的步骤之后,还包括:
查询所述目标mock接口的开关状态;
若所述目标mock接口的开关状态为开启状态,则调用所述目标mock接口;
若所述目标mock接口的开关状态为关闭状态,则将所述当前数据请求转发至第三方平台以获取与所述当前数据请求对应的实时响应数据。
根据本发明的一个实施例,所述根据预设的数据匹配策略从所述接口流量数据中获取与所述当前数据请求对应的响应数据,并将所述响应数据发送给所述客户端还包括:
调用预设的所述数据匹配策略,所述数据匹配策略包括参数最优策略、参数最多策略、最常用策略和最近使用策略;
将所述接口流量数据按照所述参数最优策略、所述参数最多策略、所述最常用策略以及所述最近使用策略的顺序与所述当前数据请求进行匹配计算,当最先计算得到匹配计算结果时,则不进行后续数据匹配策略,并将计算得到的匹配计算结果作为所述接口流量数据的匹配计算结果;
根据所述匹配计算结果从所述接口流量数据中获得与所述当前数据请求相匹配的目标流量数据;
从所述目标流量数据中获取与所述目标数据请求对应的响应数据,并将所述响应数据发送给所述客户端。
根据本发明的一个实施例,所述将所述接口流量数据按照所述参数最优策略、所述参数最多策略、所述最常用策略以及所述最近使用策略的顺序与所述当前数据请求进行匹配计算的步骤之后还包括:
判断匹配计算结果是否存在;
若存在所述匹配计算结果,则当最先计算得到匹配计算结果时,则不进行后续数据匹配策略,并将计算得到的匹配计算结果作为所述接口流量数据的匹配计算结果;
若不存在所述匹配计算结果,则获取用户配置匹配策略,根据所述用户配置匹配策略确定目标流量数据。
根据本发明的一个实施例,所述用户配置匹配策略包括所述参数最优策略、所述参数最多策略、所述最常用策略以及所述最近使用策略中的一种或多种。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种基于流量的自动Mock装置,包括:
采集模块,用于基于部署在服务端上的Agent实时监听并采集各个接口的历史流量数据,基于所述历史流量数据构建数据库;
获取模块,用于获取客户端发送的当前数据请求,根据所述当前数据请求获取接口信息;
第一匹配模块,用于响应于所述当前数据请求调用预设的接口匹配策略,根据所述接口匹配策略对所述接口信息进行筛选确定目标mock接口;
提取模块,用于调用所述目标mock接口并从所述数据库中提取与所述目标mock接口对应的接口流量数据;
第二匹配模块,用于根据预设的数据匹配策略从所述接口流量数据中获取与所述当前数据请求对应的响应数据,并将所述响应数据发送给所述客户端。
为解决上述技术问题,本发明采用的再一个技术方案是:提供一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的基于流量的自动Mock方法。
为解决上述技术问题,本发明采用的再一个技术方案是:提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于流量的自动Mock方法。
本发明的有益效果是:通过接口匹配策略确定目标Mock接口,调用目标Mock接口并从数据库中提取对应的接口流量数据,能够满足不同参数或场景的自动Mock,减少了开发人员的工作量,降低了维护成本,提高维护效率,通过数据匹配策略从接口流量数据中获取与当前数据请求对应的响应数据实现自动Mock,提高数据处理效率,解决了规则配置的困难和业务调整而引起的大量维护工作,导致数据处理效率低的问题。
附图说明
图1是本发明第一实施例的基于流量的自动Mock方法的流程示意图;
图2是本发明实施例的基于流量的自动Mock方法中步骤S101的流程示意图;
图3是本发明实施例的基于流量的自动Mock方法中步骤S103的流程示意图;
图4是本发明实施例的基于流量的自动Mock方法中步骤S105的流程示意图;
图5是本发明第二实施例的基于流量的自动Mock方法的流程示意图;
图6是本发明实施例的基于流量的自动Mock装置的结构示意图;
图7是本发明实施例的计算机设备的结构示意图;
图8是本发明实施例的计算机存储介质的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
图1是本发明第一实施例的基于流量的自动Mock方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括步骤:
步骤S101:基于部署在服务端上的Agent实时监听并采集各个接口的历史流量数据,基于历史流量数据构建数据库。
在步骤S101中,启动服务端应用服务,同时启动对应的Agent服务,Agent用于实时监听并采集对应接口的历史流量数据,历史流量数据包括请求数据、响应数据以及接口信息。在后续步骤中,通过接口信息匹配能够获取对应接口的请求数据以及与请求数据对应的响应数据,通过请求数据匹配能够获得关联的响应数据。本实施例基于历史流量数据构建数据库,数据库中存储的历史流量数据为Mock平台提供Mock数据,Mock平台可以为能够为客户端提供Mock数据的终端或程序模块。
进一步地,请参见图2,步骤S101还包括以下步骤:
步骤S201:基于部署在服务端上的Agent实时监听并采集各个接口的历史流量数据。
步骤S202:对历史流量数据进行脱敏处理和数据清洗处理。
在步骤S102中,从历史流量数据提取用户的敏感信息,敏感信息包括手机号码、姓名、身份证号码、卡号以及客户号等,将用户的敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。进一步地,对脱敏处理后的历史流量数据进行数据清洗处理,数据清洗处理包括去重、筛选、过滤、降噪等操作。通过数据清洗处理进一步提高数据的可靠性,同时减少数据处理量,提高数据处理效率。
步骤S203:基于处理后的历史流量数据构建数据库并将处理后的历史流量数据存储于数据库中。
本实施例基于数据库,在获取相同或相似的数据请求时,可以从数据库中根据数据请求直接调用对应的响应数据,从而进一步提高数据的复用率和数据处理效率。
步骤S102:获取客户端发送的当前数据请求,根据当前数据请求获取接口信息。
在步骤S102中,Mock平台可以包括多个不同的Mock接口,各个Mock接口均可设置Mock服务以及人工干预服务,各个不同的Mock接口适用相同的接口规则。Mock接口通过接口信息配置,接口信息包括url信息和参数信息。例如,当前数据请求的URL为http://xxx.xxx.xx/test/api?name=test&context=test,则接口的url信息为http://xxx.xxx.xx/test/api,参数信息为name=test&context=test。
步骤S103:响应于当前数据请求调用预设的接口匹配策略,根据接口匹配策略对接口信息进行筛选确定目标mock接口。
在步骤S103中,接口匹配策略包括url匹配策略和参数匹配策略,本实施例可以通过url匹配策略或参数匹配策略确定目标mock接口。url匹配策略即将接口信息中的url与所有Mock接口进行匹配,当接口信息中的url与Mock接口的url匹配成功,则将匹配成功的Mock接口确定为目标mock接口。参数匹配策略即将接口信息中的参数与所有Mock接口的参数进行匹配,当接口信息中的参数与Mock接口的参数匹配成功,则将匹配成功的Mock接口确定为目标mock接口。进一步地,本实施例确定目标mock接口之后,需查询目标mock接口的开关状态;若目标mock接口的开关状态为开启状态,则执行步骤S104;若目标mock接口的开关状态为关闭状态,则将当前数据请求转发至第三方平台以获取与当前数据请求对应的实时响应数据。
进一步地,请参见图3,步骤S103还包括以下步骤:
步骤S301:响应于当前数据请求调用预设的接口匹配策略,接口匹配策略包括url匹配策略和参数匹配策略。
在步骤S301中,url匹配策略为将当前数据请求的url与接口url进行相似性匹配,匹配成功则将对应的接口确定为目标mock接口;参数匹配策略为将当前数据请求的参数与接口参数进行相似性匹配,匹配成功则将对应的接口确定为目标mock接口。
步骤S302:若接口匹配策略为url匹配策略,则根据接口信息获取url信息,根据url信息和url匹配策略确定目标mock接口。
在步骤S302中,为将当前数据请求的url与接口url进行相似性匹配,若url匹配成功,表明存在mock接口,则确定目标mock接口,若url匹配不成功,表明不存在mock接口,则将当前数据请求转发至第三方平台以获取与当前数据请求对应的实时响应数据。
具体地,url匹配策略包括精确匹配或模糊匹配,例如,接口url为:http://xxx.xxx.xx/test/api,精确匹配时,url必须等于“/test/api”才能匹配成功,模糊匹配时,url=/test或url=/test/a或url=/tes均能匹配成功。
步骤S303:若接口匹配策略为参数匹配策略,则根据接口信息获取参数信息,根据参数信息和参数匹配策略确定目标mock接口。
在步骤S303中,将当前数据请求的参数与接口参数进行相似性匹配,若参数匹配成功,表明存在mock接口,则确定目标mock接口,若参数匹配不成功,表明不存在mock接口,则将当前数据请求转发至第三方平台以获取与当前数据请求对应的实时响应数据。
本实施例的参数匹配包括url参数匹配和参数body匹配,每种匹配策略包括精确匹配或模糊匹配。具体地,例如,url参数匹配,url为:http://xxx.xxx.xx/test/api?name=test&context=test,精确匹配需要配置name=test,或context=test,或name=test并且context=test,模糊匹配则可以配置name=tes或context=t或name=tes并且context=st等类似配置。精确匹配则要求配置里的每个值都必须完全等于,模糊匹配则要求配置里的每个值都必须包含即可。
步骤S104:调用目标mock接口并从数据库中提取与目标mock接口对应的接口流量数据。
在步骤S104中,以POST接口:http://xxx.xxx.xx/test/api作为实例,与该接口对应的接口流量数据有6条,接口流量数据列表具体如下:
步骤S105:根据预设的数据匹配策略从接口流量数据中获取与当前数据请求对应的响应数据,并将响应数据发送给客户端。
在步骤S105中,本实施例利用数据匹配策略将接口流量数据中的请求数据与当前数据请求进行匹配,若接口流量数据中存在与当前数据请求对应的请求数据,则匹配成功,将与该请求数据对应的响应数据作为当前数据请求的响应数据,并将响应数据返回给客户端。本实施的数据匹配策略包括参数最优策略、参数最多策略、最常用策略、最近使用策略,按照参数最优匹配策略、参数最多匹配策略、最常用匹配策略、最近使用匹配策略依序逐项进行匹配计算,直到匹配到响应数据则从响应数据中返回采集时间最新的一条响应数据给客户端,若后续仍有未进行的匹配策略则不再进行匹配计算,本实施例的参数最优策略和参数最多策略中的参数匹配即将当前数据请求与上述接口流量数据列表中的“request”值进行比较。最常用匹配策略则选择上述接口流量数据列表中的“use_num”值最多的一条,最近使用匹配策略则选择上述接口流量数据列表中的“time”值最新的一条。
进一步地,请参见图4,步骤S105还包括以下步骤:
步骤S401:调用预设的数据匹配策略,数据匹配策略包括参数最优策略、参数最多策略、最常用策略和最近使用策略。
在步骤S401中,参数最优策略为参数完全相等,即每个参数的值都一一相等,例如,当前数据请求的参数body为:
则与上述接口流量数据列表的匹配计算结果为id、name、context值都相等的流量数据,即id=1的流量数据。
本实施例的参数最多策略为参数不完全相等时,参数相等最多流量数据。例如请求参数body为:
则与上述接口流量数据列表的匹配计算结果为id为1和5的流量数据。
本实施例的最常用策略为历史被使用的次数最多的那条记录。例如,上述接口流量数据列表中使用次数use_num最大的是120,对应记录id为3的流量数据。
本实施例的最近使用策略为采集时间最新的记录,例如,上述接口流量数据列表中的id为6的流量数据。
步骤S402:将接口流量数据按照参数最优策略、参数最多策略、最常用策略以及最近使用策略的顺序与当前数据请求进行匹配计算,当最先计算得到匹配计算结果时,则不进行后续数据匹配策略,并将计算得到的匹配计算结果作为接口流量数据的匹配计算结果。
在步骤S402中,目标流量数据包括请求数据和响应数据,目标流量数据可以为每项策略的匹配计算结果进行汇总后的结果,即各个策略之间不存在关联关系,也可以为依次经过参数最优策略、参数最多策略、最常用策略以及最近使用策略层层递进筛选出来的结果,即在参数最优策略的匹配计算上执行参数最多策略,在参数最多策略的结果上执行最常用策略或最近使用策略。若匹配计算结果不止一个时,则将最新的采集时间对应的接口流量数据作为最后的匹配计算结果。但是,在本实施例中,在进行匹配时,只要在一个策略中获得匹配计算结果,则不再继续进行后续策略的匹配计算,因此,若参数最优策略和/或参数最多策略中获得匹配计算结果,则不执行最常用策略和/或最近使用策略,在参数最优策略和/或参数最多策略中的匹配计算结果往往不止一个,若参数最优策略和/或参数最多策略中未获得匹配计算结果,则继续进行最常用策略和/或最近使用策略,最常用策略和最近使用策略的匹配计算结果通常仅有一个。
步骤S403:根据匹配计算结果从接口流量数据中获得与当前数据请求相匹配的目标流量数据。
在步骤S403中,如上表所示,将表中6条接口流量数据按照参数最优策略与当前数据请求进行匹配计算,即按照参数最优策略将当前数据请求与表中的“request”参数进行匹配,若当前数据请求的参数body为:
则匹配计算结果为id=1的接口流量数据,即id=1的接口流量数据为与当前数据请求相匹配的目标流量数据。
步骤S404:从目标流量数据中获取与目标数据请求对应的响应数据,并将响应数据发送给客户端。
在步骤S404中,以id=1的接口流量数据为与当前数据请求相匹配的目标流量数据,则id=1的接口流量数据中“response”为对应的响应数据。本实施例若目标流量数据具有多个,则获取目标流量数据的采集时间,将最新的采集时间对应的目标流量数据中的响应数据发送给客户端。
本发明第一实施例的基于流量的自动Mock方法通过接口匹配策略确定目标Mock接口,调用目标Mock接口并从数据库中提取对应的接口流量数据,能够满足不同参数或场景的自动Mock,减少了开发人员的工作量,降低了维护成本,提高维护效率,通过数据匹配策略从接口流量数据中获取与当前数据请求对应的响应数据实现自动Mock,提高数据处理效率,解决了规则配置的困难和业务调整而引起的大量维护工作,导致数据处理效率低的问题。
图5是本发明第二实施例的基于流量的自动Mock方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图5所示的流程顺序为限。如图5所示,该方法包括步骤:
步骤S501:基于部署在服务端上的Agent实时监听并采集各个接口的历史流量数据,基于历史流量数据构建数据库。
在本实施例中,图5中的步骤S501和图1中的步骤S101类似,为简约起见,在此不再赘述。
步骤S502:获取客户端发送的当前数据请求,根据当前数据请求获取接口信息。
在本实施例中,图5中的步骤S502和图1中的步骤S102类似,为简约起见,在此不再赘述。
步骤S503:响应于当前数据请求调用预设的接口匹配策略,根据接口匹配策略对接口信息进行筛选确定目标mock接口。
在本实施例中,图5中的步骤S503和图1中的步骤S103类似,为简约起见,在此不再赘述。
步骤S504:调用目标mock接口并从数据库中提取与目标mock接口对应的接口流量数据。
在本实施例中,图5中的步骤S504和图1中的步骤S104类似,为简约起见,在此不再赘述。
步骤S505:调用预设的数据匹配策略,数据匹配策略包括参数最优策略、参数最多策略、最常用策略和最近使用策略。
在本实施例中,图5中的步骤S505和图4中的步骤S401类似,为简约起见,在此不再赘述。
步骤S506:将接口流量数据按照参数最优策略、参数最多策略、最常用策略以及最近使用策略的顺序与当前数据请求进行匹配计算。
在本实施例中,图5中的步骤S506和图4中的步骤S402类似,为简约起见,在此不再赘述。
步骤S507:判断匹配计算结果是否存在。
在步骤S507,在逐项匹配过程中,若产生匹配计算结果,则执行步骤S508,再执行步骤S509、511;若未产生匹配计算结果,则执行步骤S510,再执行步骤S511。
步骤S508:若存在匹配计算结果,根据当最先计算得到匹配计算结果时,则不进行后续数据匹配策略,并将计算得到的匹配计算结果作为接口流量数据的匹配计算结果。
在本实施例中,图5中的步骤S508和图4中的步骤S402类似,为简约起见,在此不再赘述。
步骤S509:根据匹配计算结果从接口流量数据中获得与当前数据请求相匹配的目标流量数据。
在本实施例中,图5中的步骤S509和图4中的步骤S403类似,为简约起见,在此不再赘述。
步骤S510:若不存在匹配计算结果,则获取用户配置匹配策略,根据用户配置匹配策略确定目标流量数据。
在步骤S510中,若不存在匹配计算结果,则获取用户配置匹配策略,根据用户配置匹配策略从接口流量数据中获取与当前数据请求对应的目标数据请求,并将目标数据请求对应的接口流量数据确定为目标流量数据。本实施例的用户配置匹配策略为用户手动进行选择,用户配置匹配策略包括参数最优策略、参数最多策略、最常用策略以及最近使用策略的一个或多个,当用户配置匹配策略包括多个时,按照优先级从高到底即参数最优策略、参数最多策略、最常用策略、最近使用策略逐项进行匹配计算。匹配计算可能会存在多条流量数据,进一步地,在返回响应数据过程中,用户可以手动勾选预设的返回策略,利用返回策略进一步对匹配计算进行筛选,返回策略例如:参数匹配返回、自动返回,按规则返回,其中,参数匹配返回包括参数最优、参数最多,按规则返回包括最近使用和最常使用,自动返回则默认返回采集时间最新的一条响应数据。
进一步地,响应数据设置支持固定报文、函数动态报文、数据库动态报文三种设置,
固定报文:即直接返回设置的固定报文数据。
函数动态报文:根据系统提供的函数格式设置,mock自动解析函数格式内容,转换为函数计算,然后把计算得到的值替换报文数据返回。
数据库动态报文:据配置的数据库sql,动态查询返回相应报文。
进一步地,在获取用户配置匹配策略之前还包括获取人工干预状态,若人工干预开启,则获取用户配置匹配策略,若人工干预关闭,则转发当前数据请求至第三方平台以获取与当前数据请求对应的实时响应数据。
进一步地,步骤S510之后还包括,将响应数据存储于数据库中,作为下次可自动mock的数据源。
步骤S511:从目标流量数据中获取与目标数据请求对应的响应数据,并将响应数据发送给客户端。
在本实施例中,图5中的步骤S511和图4中的步骤S404类似,为简约起见,在此不再赘述。
本发明第二实施例的基于流量的自动Mock方法在第一实施例的基础上,通过在匹配计算结果不存在时,增加了用户配置匹配策略,提高了数据获取的灵活性和适用范围。
图6是本发明实施例的基于流量的自动Mock装置的结构示意图。如图6所示,该装置60包括采集模块61、获取模块62、第一匹配模块63、提取模块64以及第二匹配模块65。
采集模块61用于基于部署在服务端上的Agent实时监听并采集各个接口的历史流量数据,基于历史流量数据构建数据库;
获取模块62用于获取客户端发送的当前数据请求,根据当前数据请求获取接口信息;
第一匹配模块63用于响应于当前数据请求调用预设的接口匹配策略,根据接口匹配策略对接口信息进行筛选确定目标mock接口;
提取模块64用于调用目标mock接口并从数据库中提取与目标mock接口对应的接口流量数据;
第二匹配模块65用于根据预设的数据匹配策略从接口流量数据中获取与当前数据请求对应的响应数据,并将响应数据发送给客户端。
请参阅图7,图7为本发明实施例的计算机设备的结构示意图。如图7所示,该计算机设备70包括处理器71及和处理器71耦接的存储器72。
存储器72存储有用于实现上述任一实施例所述的基于流量的自动Mock方法的程序指令。
处理器71用于执行存储器72存储的程序指令以实现自动Mock。
其中,处理器71还可以称为CPU(Central Processing Unit,中央处理单元)。处理器71可能是一种集成电路芯片,具有信号的处理能力。处理器71还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
参阅图8,图8为本发明实施例的计算机存储介质的结构示意图。本发明实施例的计算机存储介质存储有能够实现上述所有方法的程序文件81,其中,该程序文件81可以以软件产品的形式存储在上述计算机存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的计算机存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于流量的自动Mock方法,其特征在于,包括:
基于部署在服务端上的Agent实时监听并采集各个接口的历史流量数据,基于所述历史流量数据构建数据库;
获取客户端发送的当前数据请求,根据所述当前数据请求获取接口信息;
响应于所述当前数据请求调用预设的接口匹配策略,根据所述接口匹配策略对所述接口信息进行筛选确定目标mock接口;
调用所述目标mock接口并从所述数据库中提取与所述目标mock接口对应的接口流量数据;
根据预设的数据匹配策略从所述接口流量数据中获取与所述当前数据请求对应的响应数据,并将所述响应数据发送给所述客户端。
2.根据权利要求1所述的自动Mock方法,其特征在于,所述基于所述历史流量数据构建数据库包括:
对所述历史流量数据进行脱敏处理和数据清洗处理;
基于处理后的所述历史流量数据构建数据库并将处理后的所述历史流量数据存储于所述数据库中。
3.根据权利要求1所述的自动Mock方法,其特征在于,所述响应于所述当前数据请求调用预设的接口匹配策略,根据所述接口匹配策略对所述接口信息进行筛选确定目标mock接口还包括:
响应于所述当前数据请求调用预设的接口匹配策略,所述接口匹配策略包括url匹配策略和参数匹配策略;
若所述接口匹配策略为所述url匹配策略,则根据所述接口信息获取url信息,根据所述url信息和所述url匹配策略确定目标mock接口;
若所述接口匹配策略为所述参数匹配策略,则根据所述接口信息获取参数信息,根据所述参数信息和所述参数匹配策略确定目标mock接口。
4.根据权利要求1所述的自动Mock方法,其特征在于,所述响应于所述当前数据请求调用预设的接口匹配策略,根据所述接口匹配策略对所述接口信息进行筛选确定目标mock接口的步骤之后,还包括:
查询所述目标mock接口的开关状态;
若所述目标mock接口的开关状态为开启状态,则调用所述目标mock接口;
若所述目标mock接口的开关状态为关闭状态,则将所述当前数据请求转发至第三方平台以获取与所述当前数据请求对应的实时响应数据。
5.根据权利要求1所述的自动Mock方法,其特征在于,所述根据预设的数据匹配策略从所述接口流量数据中获取与所述当前数据请求对应的响应数据,并将所述响应数据发送给所述客户端还包括:
调用预设的所述数据匹配策略,所述数据匹配策略包括参数最优策略、参数最多策略、最常用策略和最近使用策略;
将所述接口流量数据按照所述参数最优策略、所述参数最多策略、所述最常用策略以及所述最近使用策略的顺序与所述当前数据请求进行匹配计算,当最先计算得到匹配计算结果时,则不进行后续数据匹配策略,并将计算得到的匹配计算结果作为所述接口流量数据的匹配计算结果;
根据所述匹配计算结果从所述接口流量数据中获得与所述当前数据请求相匹配的目标流量数据;
从所述目标流量数据中获取与所述目标数据请求对应的响应数据,并将所述响应数据发送给所述客户端。
6.根据权利要求5所述的自动Mock方法,其特征在于,所述将所述接口流量数据按照所述参数最优策略、所述参数最多策略、所述最常用策略以及所述最近使用策略的顺序与所述当前数据请求进行匹配计算的步骤之后,还包括:
判断匹配计算结果是否存在;
若存在所述匹配计算结果,则当最先计算得到匹配计算结果时,则不进行后续数据匹配策略,并将计算得到的匹配计算结果作为所述接口流量数据的匹配计算结果;
若不存在所述匹配计算结果,则获取用户配置匹配策略,根据所述用户配置匹配策略确定目标流量数据。
7.根据权利要求6所述的自动Mock方法,其特征在于,所述用户配置匹配策略包括所述参数最优策略、所述参数最多策略、所述最常用策略以及所述最近使用策略中的一种或多种。
8.一种基于流量的自动Mock装置,其特征在于,包括:
采集模块,用于基于部署在服务端上的Agent实时监听并采集各个接口的历史流量数据,基于所述历史流量数据构建数据库;
获取模块,用于获取客户端发送的当前数据请求,根据所述当前数据请求获取接口信息;
第一匹配模块,用于响应于所述当前数据请求调用预设的接口匹配策略,根据所述接口匹配策略对所述接口信息进行筛选确定目标mock接口;
提取模块,用于调用所述目标mock接口并从所述数据库中提取与所述目标mock接口对应的接口流量数据;
第二匹配模块,用于根据预设的数据匹配策略从所述接口流量数据中获取与所述当前数据请求对应的响应数据,并将所述响应数据发送给所述客户端。
9.一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述的基于流量的自动Mock方法。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的基于流量的自动Mock方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111187825.5A CN113938473A (zh) | 2021-10-12 | 2021-10-12 | 基于流量的自动Mock方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111187825.5A CN113938473A (zh) | 2021-10-12 | 2021-10-12 | 基于流量的自动Mock方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113938473A true CN113938473A (zh) | 2022-01-14 |
Family
ID=79278461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111187825.5A Pending CN113938473A (zh) | 2021-10-12 | 2021-10-12 | 基于流量的自动Mock方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113938473A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727580A (zh) * | 2019-09-03 | 2020-01-24 | 深圳壹账通智能科技有限公司 | 响应数据生成、全流程接口数据处理方法及相关设备 |
CN110851364A (zh) * | 2019-11-12 | 2020-02-28 | 深圳市前海随手数据服务有限公司 | 一种软件测试方法、系统及相关设备 |
CN112032972A (zh) * | 2020-10-21 | 2020-12-04 | 陕西大唐高科机电科技有限公司 | 基于云计算的物联网中央空调自寻优控制系统及方法 |
CN112685275A (zh) * | 2020-12-30 | 2021-04-20 | 北京迈格威科技有限公司 | 算法策略搜索方法、装置、电子设备及存储介质 |
CN112835808A (zh) * | 2021-03-12 | 2021-05-25 | 中国平安财产保险股份有限公司 | 接口测试方法、装置、计算机设备及存储介质 |
CN113094255A (zh) * | 2020-01-08 | 2021-07-09 | 北京密境和风科技有限公司 | 数据接口的模拟测试方法、装置及系统 |
CN113114490A (zh) * | 2021-03-30 | 2021-07-13 | 海信集团控股股份有限公司 | 一种api调用异常告警方法、装置、设备及介质 |
CN113282515A (zh) * | 2021-06-28 | 2021-08-20 | 中国平安人寿保险股份有限公司 | 系统测试方法、装置、计算机设备及存储介质 |
-
2021
- 2021-10-12 CN CN202111187825.5A patent/CN113938473A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727580A (zh) * | 2019-09-03 | 2020-01-24 | 深圳壹账通智能科技有限公司 | 响应数据生成、全流程接口数据处理方法及相关设备 |
CN110851364A (zh) * | 2019-11-12 | 2020-02-28 | 深圳市前海随手数据服务有限公司 | 一种软件测试方法、系统及相关设备 |
CN113094255A (zh) * | 2020-01-08 | 2021-07-09 | 北京密境和风科技有限公司 | 数据接口的模拟测试方法、装置及系统 |
CN112032972A (zh) * | 2020-10-21 | 2020-12-04 | 陕西大唐高科机电科技有限公司 | 基于云计算的物联网中央空调自寻优控制系统及方法 |
CN112685275A (zh) * | 2020-12-30 | 2021-04-20 | 北京迈格威科技有限公司 | 算法策略搜索方法、装置、电子设备及存储介质 |
CN112835808A (zh) * | 2021-03-12 | 2021-05-25 | 中国平安财产保险股份有限公司 | 接口测试方法、装置、计算机设备及存储介质 |
CN113114490A (zh) * | 2021-03-30 | 2021-07-13 | 海信集团控股股份有限公司 | 一种api调用异常告警方法、装置、设备及介质 |
CN113282515A (zh) * | 2021-06-28 | 2021-08-20 | 中国平安人寿保险股份有限公司 | 系统测试方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
孔庆雍: "《Kong网关 入门 实战与进阶》", 30 September 2021, 机械工业出版社, pages: 259 - 263 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110471749B (zh) | 任务处理方法、装置、计算机可读存储介质和计算机设备 | |
CN109062715B (zh) | 内存时钟频率的确定方法、装置及终端 | |
CN102148889A (zh) | 一种识别骚扰对象的方法、装置及系统 | |
CN109905292B (zh) | 一种终端设备识别方法、系统及存储介质 | |
CN104980472A (zh) | 网络访问量的控制方法及装置 | |
CN109978114B (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN113329345A (zh) | 一种提高短信发送成功率的方法和装置 | |
CN113938473A (zh) | 基于流量的自动Mock方法、装置、设备及存储介质 | |
CN109587248B (zh) | 用户识别方法、装置、服务器及存储介质 | |
CN112732560A (zh) | 文件描述符泄露风险的检测方法及装置 | |
CN108234658B (zh) | 一种感知服务器集群健康状况的方法、装置和服务器 | |
CN114650211B (zh) | 故障修复方法、装置、电子设备和计算机可读存储介质 | |
CN113485855B (zh) | 一种内存共享方法、装置、电子设备及可读存储介质 | |
CN112306797A (zh) | 一种埋点信息上报方法、装置、存储介质及电子设备 | |
CN114282940A (zh) | 用于意图识别的方法及装置、存储介质及电子设备 | |
CN107564250B (zh) | 一种报警方法及系统 | |
CN112907008A (zh) | 带看请求的处理方法、装置、存储介质及设备 | |
CN111444253A (zh) | 数据导入方法、装置、计算机可读存储介质和计算机设备 | |
CN106604244B (zh) | 一种对通知消息进行提示的方法和装置 | |
CN112230815A (zh) | 智能求助方法、装置、设备及存储介质 | |
CN110557324A (zh) | 未读im消息处理方法及装置 | |
CN105426222B (zh) | 一种对终端应用的处理方法、装置及终端 | |
CN108965454B (zh) | 一种在物联网中提供智能服务的感知系统及方法 | |
CN115622988B (zh) | web接口的调用响应方法、装置、电子设备和存储介质 | |
CN114221920B (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 |