CN114265778A - 一种接口模拟测试方法、插件,终端设备及存储介质 - Google Patents
一种接口模拟测试方法、插件,终端设备及存储介质 Download PDFInfo
- Publication number
- CN114265778A CN114265778A CN202111596062.XA CN202111596062A CN114265778A CN 114265778 A CN114265778 A CN 114265778A CN 202111596062 A CN202111596062 A CN 202111596062A CN 114265778 A CN114265778 A CN 114265778A
- Authority
- CN
- China
- Prior art keywords
- simulation
- request message
- api
- object set
- request
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种接口模拟测试方法、插件,终端设备及存储介质。该方法包括:接收并解析终端设备发送的请求报文;在确定模拟API功能开启后,将请求报文中的URL和请求报文中的请求方法与本地的模拟API对象集合进行匹配;其中,模拟API对象集合中包括请求URL、与请求URL对应的请求方法,以及与该请求方法对应的模拟数据;当模拟API对象集合中存在请求报文中的URL和请求报文中的请求方法时,输出模拟API对象集合中与请求报文对应的模拟数据。在本申请实施例中,通过构建的本地模拟API对象集合,可以使得前后端(即终端设备和服务器)彻底分离,前端可以自身完成开发任务,提高开发效率。
Description
技术领域
本申请涉及前端开发技术领域,具体而言,涉及一种接口模拟测试方法、插件,终端设备及存储介质。
背景技术
随着Web(World Wide Web,全球广域网)前端技术的不断发展,如今前后端分离的开发模式已成为Web应用开发的首选。在此模式中,API(Application ProgrammingInterface,应用程序接口)是前后端交互的桥梁,前端开发者只需要关注API返回的数据,然后将数据渲染到页面上,无需关注后台的具体实现逻辑。
在如今的Web应用开发过程中,前后端的开发进度往往是不一致的,后端提供API需要一定的时间,然而前端在开发时又需要数据支持,这时就需要前端开发者自己模拟数据,如定义“假数据”。但是,定义“假数据”会造成前端代码污染,增加后期的代码清理工作,且由于“假数据”缺少API调用的部分代码,也增加了后期对接工作。
发明内容
本申请实施例的目的在于提供一种接口模拟测试方法、插件,终端设备及存储介质,以解决定义“假数据”会造成前端代码污染,增加后期的代码清理工作,且由于“假数据”缺少API调用的部分代码,也增加了后期对接工作的问题。
本发明是这样实现的:
第一方面,本申请实施例提供一种接口模拟测试方法,应用于终端设备中配置的接口模拟插件,所述方法包括:接收并解析所述终端设备发送的请求报文;在确定模拟API功能开启后,将所述请求报文中的URL和所述请求报文中的请求方法与本地的模拟API对象集合进行匹配;其中,所述模拟API对象集合中包括请求URL、与所述请求URL对应的请求方法,以及与该请求方法对应的模拟数据;当所述模拟API对象集合中存在所述请求报文中的URL和所述请求报文中的请求方法时,输出所述模拟API对象集合中与所述请求报文对应的模拟数据。
在本申请实施例中,通过构建的本地模拟API对象集合,可以使得前后端(即终端设备和服务器)彻底分离,前端可以自身完成开发任务,提高开发效率,同时,本地模拟API对象集合与通过代码构建的“假数据”不同,通过该方式可以减少前端代码污染及后期的代码清理工作。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,通过如下步骤生成所述模拟API对象集合:获取用户配置的模拟API;调用所述模拟API,获取所述模拟API返回的数据,保存至模拟API配置文件;读取所述模拟API配置文件,创建所述模拟API对象集合;其中,所述模拟API对象集合采用Map数据结构。
在本申请实施例中,会预先构建简单的平台提供模拟API,进而使得接口模拟插件能够通过调用用户配置的模拟API,获取模拟API返回的数据并保存至本地,在后续的前端开发过程中,可以直接通过接口模拟插件实现调用,进而使得前后端彻底分离。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述方法还包括:每隔预设时间,检测所述模拟API配置文件是否更新;若是,则重新读取所述模拟API配置文件,以对所述模拟API对象集合进行更新。
在本申请实施例中,通过设置预设时间进行配置文件的检测,以便于及时的对模拟API对象集合进行更新。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,当所述模拟API对象集合中存在所述请求报文中的URL和所述请求报文中的请求方法,且所述请求报文的请求为条件查询时,所述方法还包括:在所述模拟API对象集合中确定与所述请求报文对应的模拟数据;基于所述请求报文对应的查询条件,对该模拟数据进行过滤;输出过滤后的模拟数据。
本申请实施例中提供的接口模拟测试可支持条件查询功能。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述方法还包括:当所述模拟API对象集合中不存在所述请求报文中的URL和所述请求报文中的请求方法,或在确定模拟API功能未开启时,将所述请求报文中的主机信息和所述请求报文中的端口信息与本地的代理对象集合进行匹配;其中,所述代理对象集合包括本地主机信息、本地端口信息以及与所述本地主机信息和所述本地端口信息二者对应的真实API服务器地址;当所述代理对象集合中存在所述请求报文中的主机信息和所述请求报文中的端口信息,则直接将所述请求报文发送至与所述请求报文中的主机信息和所述请求报文中的端口信息二者对应的真实API服务器。
在本申请实施例中,还可以构建代理对象集合进而实现真实API转发。也即,本申请实施例提供的接口模拟测试方法可以支持URL相同的真实API和模拟API共存,且二者互不影响。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,通过如下步骤生成所述代理对象集合:获取用户配置的代理配置文件;其中,所述代理配置文件包括代理对象;所述代理对象包括所述本地主机信息、所述本地端口信息以及与所述本地主机信息和所述本地端口信息二者对应的真实API服务器地址;读取所述代理配置文件,创建所述代理对象集合;其中,所述代理对象集合为存放代理对象的列表;每个代理对象均包括所述本地主机信息、所述本地端口信息及二者对应的真实API服务器地址。
在本申请实施例中,通过读取用户配置的代理配置文件,以实现对代理对象集合的创建。
第二方面,本申请实施例提供一种接口模拟插件,配置于终端设备,包括:接收模块,用于接收并解析所述终端设备发送的请求报文;模拟API对象匹配模块,在确定模拟API功能开启后,将所述请求报文中的URL和所述请求报文中的请求方法与本地的模拟API对象集合进行匹配;其中,所述模拟API对象集合中包括请求URL、与所述请求URL对应的请求方法,以及与该请求方法对应的模拟数据;模拟API输出模块,当所述模拟API对象集合中存在所述请求报文中的URL和所述请求报文中的请求方法时,输出所述模拟API对象集合中与所述请求报文对应的模拟数据。
结合上述第二方面提供的技术方案,在一些可能的实现方式中,所述接口模拟插件还包括:配置模块;所述配置模块用于获取用户配置的模拟API;调用所述模拟API,获取所述模拟API返回的数据,保存至模拟API配置文件;读取所述模拟API配置文件,创建所述模拟API对象集合;其中,所述模拟API对象集合采用Map数据结构。
第三方面,本申请实施例提供一种终端设备,包括:处理器和存储器,所述处理器和所述存储器连接;所述存储器用于存储程序;所述处理器用于调用存储在所述存储器中的程序,执行如上述第一方面实施例和/或结合上述第一方面实施例的一些可能的实现方式提供的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时执行如上述第一方面实施例和/或结合上述第一方面实施例的一些可能的实现方式提供的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种终端设备的模块框图。
图2为本申请实施例提供的一种接口模拟测试方法的流程图。
图3为本申请实施例提供的一种Map数据结构的示意图。
图4为本申请实施例提供的一种接口模拟插件的模块框图。
图标:100-终端设备;110-处理器;120-存储器;200-接口模拟插件;210-接收模块;220-模拟API对象匹配模块;230-模拟API输出模块。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
请参阅图1,本申请实施例提供的一种应用接口模拟测试方法及装置的终端设备100的示意性结构框图。本申请实施例中,终端设备100可以是但不限于个人计算机(Personal Computer,PC)、笔记本电脑等。
需要说明的是,终端设备100即为后续实施例中的前端,而后端指的服务器。
在结构上,终端设备100可以包括处理器110和存储器120。
处理器110与存储器120直接或间接地电性连接,以实现数据的传输或交互,例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。接口模拟插件包括至少一个可以软件或固件(Firmware)的形式存储在存储器120中或固化在终端设备100的操作系统(OperatingSystem,OS)中的软件模块。处理器110用于执行存储器120中存储的可执行模块,例如,接口模拟插件所包括的软件功能模块及计算机程序等,以实现接口模拟测试方法。处理器110可以在接收到执行指令后,执行计算机程序。
其中,处理器110可以是一种集成电路芯片,具有信号处理能力。处理器110也可以是通用处理器,例如,可以是中央处理器(Central ProcessingUnit,CPU)、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、分立门或晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。此外,通用处理器可以是微处理器或者任何常规处理器等。
存储器120可以是,但不限于,随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦可编程序只读存储器(Erasable Programmable Read-Only Memory,EPROM),以及电可擦编程只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)。存储器120用于存储程序,处理器110在接收到执行指令后,执行该程序。
需要说明的是,图1所示的结构仅为示意,本申请实施例提供的终端设备100还可以具有比图1更少或更多的组件,或是具有与图1所示不同的配置。此外,图1所示的各组件可以通过软件、硬件或其组合实现。
请参阅图2,图2为本申请实施例提供的接口模拟测试方法的步骤流程图,该方法应用于图1所示的终端设备100。需要说明的是,本申请实施例提供的接口模拟测试方法不以图2及以下所示的顺序为限制,该方法包括:步骤S101-步骤S104。
步骤S101:接收并解析终端设备发送的请求报文。
本申请实施例所提供的接口模拟测试方法可以通过接口模拟插件实现。
其中,接口模拟插件可以为vscode插件,通过vscode插件API和nodeJs(一个基于Chrome V8引擎的JavaScript运行环境)可以实现API模拟和转发功能。该插件的大小仅1M(单位:兆),轻量方便,使用简单。
在接口模拟插件启动后,进行初始化,首先检测配置文件夹是否存在,如果不存在,在项目目录下创建.vscode/good-tool/文件夹。需要说明的是,.vscode/good-tool/文件夹为统一存放配置的文件夹,该文件夹下的文件更新可以自动触发读取配置文件操作。
然后,对接口模拟插件进行配置,于本申请实施例中,配置的文件包括:模拟API配置文件和代理配置文件。
其中,接口模拟插件具体用于获取用户配置的模拟API;然后调用模拟API,获取模拟API返回的数据,保存至模拟API配置文件中。即,如果用户自己搭建了简单的后台,后台提供了查询API定义列表的API,那么接口模拟插件调用该API,得到API返回的数据,并保存到模拟API配置文件中。
而代理配置文件直接由用户进行配置。代理配置文件包括本地主机信息、本地端口信息以及与本地主机信息和本地端口信息二者对应的真实API服务器地址。
接口模拟插件在获取到模拟API配置文件后,基于模拟API配置文件,创建模拟API对象集合。其中,模拟API对象集合包括请求URL、与请求URL对应的请求方法,以及与该请求方法对应的模拟数据。
也即,模拟API对象集合包括多个模拟API对象,每个模拟API对象包括请求URL、与请求URL对应的请求方法、以及与该请求方法对应的模拟数据。
于本申请实施例中,模拟API对象集合可以采用Map数据结构。Map是键-值的集合,Map类型通常可以理解为关联数组:可使用键作为下标来获取一个值,正如内置数组类型一样。而关联的本质在于元素的值与某个特定的键相关联,而并非通过元素在数组中的位置来获取。请参阅图3,模拟API对象集合包括键:GET、POST、PUT、DELETE。GET对应的值为请求方法为GET的模拟API对象数组(即对应的模拟数据)、POST对应的值为请求方法为POST的模拟API对象数组(即对应的模拟数据)、PUT对应的值为请求方法为PUT的模拟API对象数组(即对应的模拟数据)、DELETE对应的值为请求方法为DELETE的模拟API对象数组(即对应的模拟数据)。
通过上述方式实现异步修改配置查询配置进度。对于一些耗时较长的配置操作的API,后台步骤较多,往往需要下发异步后台任务,同时前端需要实时展示当前执行步骤以及执行进度,而在执行后台任务的过程中可能存在多种状态,如:异常、成功、失败等,并且不同的状态要展示不同的UI(User Interface,用户界面)。在后台没有提供API的情况下难以模拟出各种状态和实时进度,阻碍了前端页面的开发。采用上述方案时,配置好模拟API后,只需要修改配置中字段对应的值,即可即时更新状态和进度,这样前端就可以很方便地编写逻辑代码,调整页面UI。
相应的,接口模拟插件在获取用户配置的代理配置文件后,读取代理配置文件,创建代理对象集合;其中,代理对象集合为存放代理对象的列表;每个代理对象均包括本地主机信息、本地端口信息及二者对应的真实API服务器地址。
接口模拟插件在创建完成模拟API对象集合及代理对象集合后,均存储在配置文件夹,在本地开启一个HTTP(Hyper Text Transfer Protocol,超文本传输协议)服务,进而以接收所有的请求。也即,接口模拟插件执行步骤S101:接收并解析终端设备发送的请求报文。
可见,在本申请实施例中,会预先构建简单的平台提供模拟API,进而使得接口模拟插件能够通过调用用户配置的模拟API,获取模拟API返回的数据并保存至本地,在后续的前端开发过程中,可以直接通过接口模拟插件实现调用,进而使得前后端彻底分离。同时,通过读取用户配置的代理配置文件,以实现对代理对象集合的创建,也便于后续实现真实API转发。
在其他实施例中,接口模拟插件也可以仅创建模拟API对象集合,对此,本申请不作限定。
步骤S102:在确定模拟API功能开启后,将请求报文中的URL(UniformResourceLocator,统一资源定位器)和请求报文中的请求方法与本地的模拟API对象集合进行匹配;其中,模拟API对象集合中包括请求URL、与请求URL对应的请求方法,以及与该请求方法对应的模拟数据。
接口模拟插件在接收到请求报文后,首先会确定自身是否开启模拟API功能(在接口模拟插件配置中可进行设置,默认为开启)。接口模拟插件在确定模拟API功能开启后,将请求报文中的URL和请求报文中的请求方法与本地的模拟API对象集合进行匹配,若匹配到相同的URL和请求方法则执行步骤S103。
步骤S103:当模拟API对象集合中存在请求报文中的URL和请求报文中的请求方法时,输出模拟API对象集合中与请求报文对应的模拟数据。
当模拟API对象集合中存在请求报文中的URL和请求报文中的请求方法时,则直接输出模拟API对象集合中与请求报文对应的模拟数据。需要说明的是,模拟数据是从本地存储的配置文件夹中输出的,而并非从后台调取或通过代码模拟假数据产生。
此外,在实际开发中,代码中写的URL往往与真实请求的URL不同,请求API的方法常常会被封装,并且有固定的前缀,所以在进行匹配时可以默认采用模糊匹配,只要请求的URL中包含配置的URL即可匹配成功,也可以在插件配置中开启精确匹配,对此,本申请不作限定。
可见,在本申请实施例中,通过构建的本地模拟API对象集合,可以使得前后端(即终端设备和服务器)彻底分离,前端可以自身完成开发任务,提高开发效率,同时,本地模拟API对象集合与通过代码构建的“假数据”不同,通过该方式可以减少前端代码污染及后期的代码清理工作。
一实施例中,当模拟API对象集合中存在请求报文中的URL和请求报文中的请求方法,且请求报文的请求为条件查询时,上述方法还包括:在模拟API对象集合中确定与请求报文对应的模拟数据;基于请求报文对应的查询条件,对该模拟数据进行过滤;输出过滤后的模拟数据。
对于GET请求中的条件查询功能,可以在插件配置中进行选择参数模块,默认使用antd中Table组件的筛选查询的请求参数。
在做综合条件查询的时候,后台API返回的数据列表中的对象可能不一样,前端需要对不同的对象进行不同的处理,显示不同的UI,如果在代码中定义数据,会制造出大量的垃圾代码,修改也麻烦,并且无法编写API调用代码。采用上述方案时,可以一次性在配置文件中加入所有可能出现的数据,在开发或者测试时传入条件查询参数,即可得到开发者想要的数据,从而进行渲染、调试。
一实施例中,上述方法还包括:每隔预设时间,检测模拟API配置文件是否更新;若是,则重新读取模拟API配置文件,以对模拟API对象集合进行更新。
当然,也可以每个预设时间,检测代理配置文件是否更新;若是,则重新读取代理配置文件,以对代理对象集合进行更新。
其中,预设时间可以是但不限于3秒、5秒、10秒,通过设置预设时间进行配置文件的检测,以便于及时的对模拟API对象集合进行更新。
具体的,上述配置文件可以统一采用前端熟悉的.json格式文件,并指定代理配置文件为proxy.json,而模拟API配置文件名则可以没有其他限制,并且可以创建多个。针对模拟API配置文件,在读取配置文件时会获取配置文件夹下的所有文件,过滤掉非.json格式的文件,然后将所有配置文件中的对象放到一个数组中,再进行遍历,根据请求方法区分不同的模拟API对象,最终会统一放到一个key(键)为请求方法,value(值)为模拟API对象数组的Map中(按照请求方法进行分类,是为了能够方便的对不同类型的请求做出不同操作,易于后期功能扩展)。在插件初始化时会设置一个定时器,每隔3秒(预设时间)检查配置文件夹中是否有文件更新,如果有,重新执行读取配置文件操作。检查配置文件更新的间隔时间可以在插件配置中进行修改。
而在确定当模拟API功能未开启后,或当模拟API对象集合中不存在请求报文中的URL和请求报文中的请求方法时,该方法还包括:将请求报文中的主机信息和请求报文中的端口信息与本地的代理对象集合进行匹配;其中,代理对象集合包括本地主机信息、本地端口信息以及与本地主机信息和本地端口信息二者对应的真实API服务器地址;当代理对象集合中存在请求报文中的主机信息和所述请求报文中的端口信息,则直接将请求报文发送至与请求报文中的主机信息和请求报文中的端口信息二者对应的真实API服务器。
也即,接口模拟插件支持真实API转发,进而使得本申请实施例提供的接口模拟测试方法可以支持URL相同的真实API和模拟API共存,互不影响。
同时,API转发功能支持两种配置模式,一种是统一配置,在插件配置中直接配置目的API服务器(真实API服务器地址)即可。另一种是批量配置,在proxy.json中配置,可以配置多个不同的源地址(项目启动使用的主机信息+本地端口)和目的地址(真实API服务器的主机信息+端口),如果存在多个相同的源地址,对应不同的目的地址,则匹配的结果将会是配置文件中最后的那个。
在大型项目中,前端需要对接的后台可能不止一个,他们都有各自的开发环境,有时候一个bug在测试环境中被发现,而因为某些原因在开发环境中难以复现,前端需要切换后台环境。通常情况下,需要修改项目代理配置并重启项目,或者通过Nginx(高性能的HTTP和反向代理web服务器)代理修改Nginx配置并重启,操作比较繁琐,浪费大量时间。采用上述方案时,只需要修改proxy.json文件中的配置便可立即生效。
请参阅图4,基于同一发明构思,本申请实施例还提供一种接口模拟插件200,该装置包括:
接收模块210,用于接收并解析所述终端设备发送的请求报文。
模拟API对象匹配模块220,在确定模拟API功能开启后,将所述请求报文中的URL和所述请求报文中的请求方法与本地的模拟API对象集合进行匹配;其中,所述模拟API对象集合中包括请求URL、与所述请求URL对应的请求方法,以及与该请求方法对应的模拟数据。
模拟API输出模块230,当所述模拟API对象集合中存在所述请求报文中的URL和所述请求报文中的请求方法时,输出所述模拟API对象集合中与所述请求报文对应的模拟数据。
可选地,该接口模拟插件还包括:配置模块。
所述配置模块用于获取用户配置的模拟API;调用所述模拟API,获取所述模拟API返回的数据,保存至模拟API配置文件;读取所述模拟API配置文件,创建所述模拟API对象集合;其中,所述模拟API对象集合采用Map数据结构。
可选地,配置模块还用于每隔预设时间,检测所述模拟API配置文件是否更新;若是,则重新读取所述模拟API配置文件,以对所述模拟API对象集合进行更新。
可选地,模拟API输出模块,还用于当所述模拟API对象集合中存在所述请求报文中的URL和所述请求报文中的请求方法,且所述请求报文的请求为条件查询时,在所述模拟API对象集合中确定与所述请求报文对应的模拟数据;基于所述请求报文对应的查询条件,对该模拟数据进行过滤;输出过滤后的模拟数据。
可选地,该装置还包括真实API对象匹配模块。真实API对象匹配模块用于当所述模拟API对象集合中不存在所述请求报文中的URL和所述请求报文中的请求方法,或在确定模拟API功能未开启时,将所述请求报文中的主机信息和所述请求报文中的端口信息与本地的代理对象集合进行匹配;其中,所述代理对象集合包括本地主机信息、本地端口信息以及与所述本地主机信息和所述本地端口信息二者对应的真实API服务器地址;当所述代理对象集合中存在所述请求报文中的主机信息和所述请求报文中的端口信息,则直接将所述请求报文发送至与所述请求报文中的主机信息和所述请求报文中的端口信息二者对应的真实API服务器。
相应的,配置模块还用于获取用户配置的代理配置文件;其中,所述代理配置文件包括代理对象;所述代理对象包括所述本地主机信息、所述本地端口信息以及与所述本地主机信息和所述本地端口信息二者对应的真实API服务器地址;读取所述代理配置文件,创建所述代理对象集合;其中,所述代理对象集合为存放代理对象的列表;每个代理对象均包括所述本地主机信息、所述本地端口信息及二者对应的真实API服务器地址。
需要说明的是,由于所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
基于同一发明构思,本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被运行时执行上述实施例中提供的方法。
该存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种接口模拟测试方法,其特征在于,应用于终端设备中配置的接口模拟插件,所述方法包括:
接收并解析所述终端设备发送的请求报文;
在确定模拟API功能开启后,将所述请求报文中的URL和所述请求报文中的请求方法与本地的模拟API对象集合进行匹配;其中,所述模拟API对象集合中包括请求URL、与所述请求URL对应的请求方法,以及与该请求方法对应的模拟数据;
当所述模拟API对象集合中存在所述请求报文中的URL和所述请求报文中的请求方法时,输出所述模拟API对象集合中与所述请求报文对应的模拟数据。
2.根据权利要求1所述的方法,其特征在于,通过如下步骤生成所述模拟API对象集合:
获取用户配置的模拟API;
调用所述模拟API,获取所述模拟API返回的数据,保存至模拟API配置文件;
读取所述模拟API配置文件,创建所述模拟API对象集合;其中,所述模拟API对象集合采用Map数据结构。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
每隔预设时间,检测所述模拟API配置文件是否更新;
若是,则重新读取所述模拟API配置文件,以对所述模拟API对象集合进行更新。
4.根据权利要求1所述的方法,其特征在于,当所述模拟API对象集合中存在所述请求报文中的URL和所述请求报文中的请求方法,且所述请求报文的请求为条件查询时,所述方法还包括:
在所述模拟API对象集合中确定与所述请求报文对应的模拟数据;
基于所述请求报文对应的查询条件,对该模拟数据进行过滤;
输出过滤后的模拟数据。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述模拟API对象集合中不存在所述请求报文中的URL和所述请求报文中的请求方法,或在确定模拟API功能未开启时,将所述请求报文中的主机信息和所述请求报文中的端口信息与本地的代理对象集合进行匹配;其中,所述代理对象集合包括本地主机信息、本地端口信息以及与所述本地主机信息和所述本地端口信息二者对应的真实API服务器地址;
当所述代理对象集合中存在所述请求报文中的主机信息和所述请求报文中的端口信息,则直接将所述请求报文发送至与所述请求报文中的主机信息和所述请求报文中的端口信息二者对应的真实API服务器。
6.根据权利要求5所述的方法,其特征在于,通过如下步骤生成所述代理对象集合:
获取用户配置的代理配置文件;其中,所述代理配置文件包括代理对象;所述代理对象包括所述本地主机信息、所述本地端口信息以及与所述本地主机信息和所述本地端口信息二者对应的真实API服务器地址;
读取所述代理配置文件,创建所述代理对象集合;其中,所述代理对象集合为存放代理对象的列表;每个代理对象均包括所述本地主机信息、所述本地端口信息及二者对应的真实API服务器地址。
7.一种接口模拟插件,其特征在于,配置于终端设备,包括:
接收模块,用于接收并解析所述终端设备发送的请求报文;
模拟API对象匹配模块,在确定模拟API功能开启后,将所述请求报文中的URL和所述请求报文中的请求方法与本地的模拟API对象集合进行匹配;其中,所述模拟API对象集合中包括请求URL、与所述请求URL对应的请求方法,以及与该请求方法对应的模拟数据;
模拟API输出模块,当所述模拟API对象集合中存在所述请求报文中的URL和所述请求报文中的请求方法时,输出所述模拟API对象集合中与所述请求报文对应的模拟数据。
8.根据权利要求7所述的接口模拟插件,其特征在于,所述接口模拟插件还包括:配置模块;
所述配置模块用于获取用户配置的模拟API;调用所述模拟API,获取所述模拟API返回的数据,保存至模拟API配置文件;读取所述模拟API配置文件,创建所述模拟API对象集合;其中,所述模拟API对象集合采用Map数据结构。
9.一种终端设备,其特征在于,包括:处理器和存储器,所述处理器和所述存储器连接;
所述存储器用于存储程序;
所述处理器用于运行存储在所述存储器中的程序,执行如权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序在被计算机运行时执行如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111596062.XA CN114265778A (zh) | 2021-12-24 | 2021-12-24 | 一种接口模拟测试方法、插件,终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111596062.XA CN114265778A (zh) | 2021-12-24 | 2021-12-24 | 一种接口模拟测试方法、插件,终端设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114265778A true CN114265778A (zh) | 2022-04-01 |
Family
ID=80829546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111596062.XA Pending CN114265778A (zh) | 2021-12-24 | 2021-12-24 | 一种接口模拟测试方法、插件,终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114265778A (zh) |
-
2021
- 2021-12-24 CN CN202111596062.XA patent/CN114265778A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140149995A1 (en) | Browser Kernel Switching Method | |
WO2018108041A1 (zh) | 一种远程调试方法及装置、计算机存储介质 | |
US10592312B2 (en) | Message oriented middleware with integrated rules engine | |
CN111782339A (zh) | 一种容器创建方法、装置、电子设备及存储介质 | |
US9116808B2 (en) | Method and system for determining device configuration settings | |
CN107644075B (zh) | 收集页面信息的方法和装置 | |
CN111274512A (zh) | 一种页面加载方法、装置及介质 | |
CN112149035A (zh) | 网站静态资源处理方法及装置 | |
CN103617055A (zh) | 一种在浏览器中启动应用程序的方法、装置和浏览器 | |
CN113704281A (zh) | 一种数据格式转换方法、装置、存储介质和电子设备 | |
CN114978963B (zh) | 一种网络系统监控分析方法、装置、电子设备及存储介质 | |
CN114265778A (zh) | 一种接口模拟测试方法、插件,终端设备及存储介质 | |
CN111880996B (zh) | 一种裸机数据采集方法、装置、设备及可读存储介质 | |
CN111338928A (zh) | 基于chrome浏览器测试的方法及装置 | |
JP2011164785A (ja) | 動作検証装置、動作検証方法および動作検証プログラム | |
CN115495372A (zh) | 一种模拟数据处理方法、装置、设备及介质 | |
CN114996955A (zh) | 一种云原生混沌工程实验的靶场环境构建方法及装置 | |
CN107423096A (zh) | 一种实现软件安装的方法及装置 | |
CN112416698B (zh) | 监控系统的扩展方法及装置、存储介质及电子设备 | |
CN113110846A (zh) | 一种环境变量的获取方法及装置 | |
CN107302605B (zh) | 电视代理服务器的配置方法及装置、电视及存储介质 | |
CN112379943A (zh) | Electron应用程序的插件应用方法及装置、存储介质 | |
CN116225576B (zh) | 应用程序的数据环境切换方法、装置、电子设备及介质 | |
CN112988592B (zh) | 代码检测方法、装置、设备和存储介质 | |
CN115454827B (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 |