CN113722020B - 接口调用方法、装置和计算机可读存储介质 - Google Patents

接口调用方法、装置和计算机可读存储介质 Download PDF

Info

Publication number
CN113722020B
CN113722020B CN202010454247.6A CN202010454247A CN113722020B CN 113722020 B CN113722020 B CN 113722020B CN 202010454247 A CN202010454247 A CN 202010454247A CN 113722020 B CN113722020 B CN 113722020B
Authority
CN
China
Prior art keywords
interface
simulation
target
call
analog
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.)
Active
Application number
CN202010454247.6A
Other languages
English (en)
Other versions
CN113722020A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010454247.6A priority Critical patent/CN113722020B/zh
Priority to PCT/CN2021/091868 priority patent/WO2021238596A1/zh
Publication of CN113722020A publication Critical patent/CN113722020A/zh
Priority to US17/725,424 priority patent/US11809882B2/en
Priority to US18/375,878 priority patent/US20240028349A1/en
Application granted granted Critical
Publication of CN113722020B publication Critical patent/CN113722020B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例公开了一种接口调用方法、装置和计算机可读存储介质;本申请实施例可以接收应用程序中目标接口的接口调用请求,该接口调用请求包括目标接口的接口调用信息,然后,基于该目标接口在模拟接口集合中进行接口查询,当查询到该模拟接口集中存在目标模拟接口时,将该接口调用请求进行拦截,并将拦截到的接口调用信息与该目标模拟接口的接口配置信息进行匹配,当该接口调用信息与该接口配置信息匹配成功时,获取该目标模拟接口对应的模拟响应数据,基于该目标模拟接口对应的模拟响应数据,输出该接口调用请求的调用响应数据;该方案可以有效地提高开发效率。

Description

接口调用方法、装置和计算机可读存储介质
技术领域
本申请涉及计算机领域,具体涉及一种接口调用方法、装置和计算机可读存储介质。
背景技术
在软件的开发过程中,需要前后端联调。前后端联调是一种真实业务数据和本地mock(模拟)数据之间来回切换以达到前后端分离结构下的不同开发速度时数据交换的一种方式方法。在实际的项目研发过程中,前后端同时开发的时候,后端接口数据没有出来,前端的开发就会受到影响。对于前端开发人员,只要拿到数据即可进行前后端联调,因此前端可以mock假数据,模拟开发。由此,API(Application Programming Interface,应用程序接口)Mock这种高效的开发方式为开发者创造了各种便利。
然而,现有的API Mock方案,主要在代码中引入额外的工具库,具有一定的门槛、开发及维护成本,影响开发效率。
发明内容
本申请实施例提供一种接口调用方法、装置和计算机可读存储介质,可以有效地提高开发效率。
本申请实施例提供一种接口调用方法,包括:
接收应用程序中目标接口的接口调用请求,所述接口调用请求包括目标接口的接口调用信息;
基于所述目标接口在模拟接口集合中进行接口查询,其中,所述模拟接口集合包括模拟应用程序中真实接口的模拟接口;
当查询到所述模拟接口集中存在目标模拟接口时,将所述接口调用请求进行拦截,并将拦截到的接口调用信息与所述目标模拟接口的接口配置信息进行匹配;
当所述接口调用信息与所述接口配置信息匹配成功时,获取所述目标模拟接口对应的模拟响应数据;
基于所述目标模拟接口对应的模拟响应数据,输出所述接口调用请求的调用响应数据。
相应的,本申请实施例还提供一种接口调用装置,包括:
接收单元,用于接收应用程序中目标接口的接口调用请求,所述接口调用请求包括目标接口的接口调用信息;
查询单元,用于基于所述目标接口在模拟接口集合中进行接口查询,其中,所述模拟接口集合包括模拟应用程序中真实接口的模拟接口;
匹配单元,用于当查询到所述模拟接口集中存在目标模拟接口时,将所述接口调用请求进行拦截,并将拦截到的接口调用信息与所述目标模拟接口的接口配置信息进行匹配;
获取单元,用于当所述接口调用信息与所述接口配置信息匹配成功时,获取所述目标模拟接口对应的模拟响应数据;
输出单元,用于基于所述目标模拟接口对应的模拟响应数据,输出所述接口调用请求的调用响应数据。
可选的,在一些实施例中,所述查询单元,可以包括获取子单元、遍历子单元和确定子单元,如下:
所述获取子单元,具体可以用于获取模拟接口集合,所述模拟接口集合包括至少一个应用程序的模拟接口;
所述遍历子单元,具体可以用于根据所述目标接口遍历所述模拟接口集合中的模拟接口;
所述确定子单元,具体可以用于当查询到所述模拟接口集中存在与所述目标接口相同的模拟接口时,将所述模拟接口确定为目标模拟接口。
可选的,在一些实施例中,所述确定子单元,具体可以用于当所述模拟接口集合中不存在所述与所述目标接口相同的模拟接口时,对应用程序中目标接口对应的真实接口进行调用,得到调用响应数据;输出所述接口调用请求的调用响应数据。
可选的,在一些实施例中,所述接收单元,具体可以用于当检测到应用程序中的逻辑层调用目标接口时,生成应用程序的接口调用请求;通过应用程序中的通信层对将所述接口调用请求进行接收。
可选的,在一些实施例中,所述匹配单元,可以包括拦截子单元和匹配子单元。所述拦截子单元,具体可以用于当查询到所述模拟接口集中存在目标模拟接口时,触发通信层执行拦截操作;基于所述拦截操作,在所述通信层对所述接口调用请求进行拦截。
可选的,在一些实施例中,所述匹配子单元,具体可以用于将拦截到的接口调用信息发送到应用程序中的接口模拟模块;触发所述接口模拟模块,对所述接口调用信息与所述目标模拟接口的接口配置信息进行匹配。
可选的,在一些实施例中,所述接口调用装置还可以包括配置单元,所述配置单元可以包括显示子单元、添加子单元和配置子单元,如下:
所述显示子单元,具体可以用于显示接口模拟模块的接口模拟页面;
所述添加子单元,具体可以用于在所述接口模拟页面添加应用程序中待模拟的接口,得到应用程序的模拟接口;
所述配置子单元,具体可以用于对应用程序的模拟接口进行参数配置和调用响应设置,得到所述模拟接口的接口配置信息、以及所述模拟接口对应的模拟响应数据。
可选的,在一些实施例中,所述配置子单元,具体可以用于对应用程序的模拟接口进行请求标识、请求路径以及请求参数配置,得到所述模拟接口的接口配置信息;对所述模拟接口的回调类型、数据生成方式以及模拟数据进行设置,得到所述模拟接口对应的模拟响应数据。
此外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例提供的任一种接口调用方法中的步骤。
此外,本申请实施例还提供一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本申请实施例提供的任一种接口调用方法中的步骤。
本申请实施例可以接收应用程序中目标接口的接口调用请求,所述接口调用请求包括目标接口的接口调用信息,然后,基于所述目标接口在模拟接口集合中进行接口查询,其中,所述模拟接口集合包括模拟应用程序中真实接口的模拟接口,接着,当查询到所述模拟接口集中存在目标模拟接口时,将所述接口调用请求进行拦截,并将拦截到的接口调用信息与所述目标模拟接口的接口配置信息进行匹配,再然后,当所述接口调用信息与所述接口配置信息匹配成功时,获取所述目标模拟接口对应的模拟响应数据,基于所述目标模拟接口对应的模拟响应数据,输出所述接口调用请求的调用响应数据。该方案可以有效地提高开发效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的接口调用方法的场景示意图;
图1b是本申请实施例提供的接口调用方法的流程图;
图2a是本申请实施例提供的创建接口模拟模块示意图;
图2b是本申请实施例提供的接口模拟页面示意图;
图2c是本申请实施例提供的数据模板配置示意图;
图2d是本申请实施例提供的接口调用方法的另一流程图;
图2e是本申请实施例提供的小程序运行流程图;
图2f是本申请实施例提供的接口调用流程图;
图2g是本申请实施例提供的接口模拟流程图;
图2h是本申请实施例提供的模拟数据导入导出示意图;
图3是本申请实施例提供的接口调用装置的结构示意图;
图4是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种接口调用方法、装置和计算机可读存储介质。其中,该接口调用可以集成在电子设备中,该电子设备可以是服务器,也可以是终端等设备。
例如,参见图1a,首先,该集成了接口调用装置的终端可以接收应用程序中目标接口的接口调用请求,该接口调用请求包括目标接口的接口调用信息,然后,基于该目标接口在模拟接口集合中进行接口查询,其中,该模拟接口集合包括模拟应用程序中真实接口的模拟接口,接着,当查询到该模拟接口集中存在目标模拟接口时,将该接口调用请求进行拦截,并将拦截到的接口调用信息与该目标模拟接口的接口配置信息进行匹配,再然后,当该接口调用信息与该接口配置信息匹配成功时,获取该目标模拟接口对应的模拟响应数据,基于该目标模拟接口对应的模拟响应数据,输出该接口调用请求的调用响应数据。
由于该方案可以根据接收到的目标接口的接口调用请求,在模拟接口集合中查找与目标接口对应的目标模拟接口,并根据该目标模拟接口对应的模拟响应数据,生成调用响应数据,以使前端在未有后端接口数据支持的情况下,可以mock数据,实现接口调用,完成接口调试,提高接口调试的效率,从而模拟开发,提高开发效率。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本实施例将从接口调用装置的角度进行描述,该接口调用装置具体可以集成在电子设备中,该电子设备可以是服务器,也可以是终端等设备;其中,该终端可以包括手机、平板电脑、笔记本电脑以及个人计算机(Personal Computer,PC)等可以实现接口调用的设备。
一种接口调用方法,包括:接收应用程序中目标接口的接口调用请求,该接口调用请求包括目标接口的接口调用信息,然后,基于该目标接口在模拟接口集合中进行接口查询,其中,该模拟接口集合包括模拟应用程序中真实接口的模拟接口,接着,当查询到该模拟接口集中存在目标模拟接口时,将该接口调用请求进行拦截,并将拦截到的接口调用信息与该目标模拟接口的接口配置信息进行匹配,再然后,当该接口调用信息与该接口配置信息匹配成功时,获取该目标模拟接口对应的模拟响应数据,基于该目标模拟接口对应的模拟响应数据,输出该接口调用请求的调用响应数据。
如图1b所示,该接口调用方法的具体流程可以如下:
101、接收应用程序中目标接口的接口调用请求,该接口调用请求包括目标接口的接口调用信息。
比如,该接口调用装置具体可以集成在电子设备(比如,可以为前端开发客户端)中,用于对应用程序中目标接口的接口调用请求进行Mock测试,得到调用响应数据。为了提高开发的效率,可以对需要模拟的接口进行模拟数据配置,以便在进行接口调用可以模拟接口返回模拟响应数据,以完成接口调试。比如,接口调用装置可以在用户通过客户端向应用程序中目标接口发送接口调用请求时,获取此次请求的数据包,即获取目标接口的接口调用信息。
其中,Mock测试是指对于一些不容易构造、获取的对象,通过创建其Mock对象来模拟该对象的行为,比如,可以通过预先假设某一请求所对应的特定响应,使得每次客户端向服务端发送该请求时,服务端可以将该预先假设好的响应发送给客户端,使得客户端接收到该预先假设的响应,从而模拟出根据某一请求生成真实响应的行为。
例如,具体可以当检测到应用程序中的逻辑层调用目标接口时,生成应用程序的接口调用请求,通过应用程序中的通信层对该接口调用请求进行接收。
其中,应用程序是是电脑软件的主要分类之一,是指为针对使用者的某种应用目的所撰写的软件,比如,在本申请实施例中,应用程序可以指的是小程序。小程序是介于native app(原生应用)和web app(网页应用)之间的一种应用形态。小程序无需下载安装到控制设备中,可以直接在即时通讯客户端中打开并使用,不占用控制设备的内存,使用时更加方便快捷。即时通讯系统为小程序的开发者提供基本SDK(Software DevelopmentKit,软件开发工具包)并开放后台服务器,这使得小程序的性能和流畅度远高于WebApp(网页应用)。其中,即时通讯系统包括终端和后台服务器,终端和服务器通过网络链接,即时通讯系统中还包括网关、路由器等网络设备。终端中集成有即时通讯应用的客户端,后台服务器中集成有即时通讯应用的服务端,服务端和客户端可以进行信息交互。
其中,即时通讯系统为小程序的开发者提供的SDK包括组件、框架API以及开发者调试工具,比如,WX开发者工具(以下称开发者工具)。API(Application ProgrammingInterface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定,比如,小程序与控制设备的操作系统之间衔接的约定。
102、基于该目标接口在模拟接口集合中进行接口查询。
其中,该模拟接口集合包括模拟应用程序中真实接口的模拟接口。例如,具体可以获取模拟接口集合,该模拟接口集合包括至少一个应用程序的模拟接口,根据该目标接口遍历该模拟接口集合中的模拟接口,当查询到该模拟接口集中存在与该目标接口相同的模拟接口时,将该模拟接口确定为目标模拟接口。
例如,可以获取该模拟接口集合的模拟接口列表,从该模拟接口列表的起始位置开始遍历,依次与该目标接口进行匹配。比如,具体可以从该模拟接口列表的起始位置开始遍历,当遍历到该模拟接口列表中当前模拟接口时,将当前模拟接口对应的接口名称,与目标接口的接口名称进行匹配;当匹配成功时,确定匹配到当前模拟接口为目标接口对应的目标模拟接口;当匹配失败时,将当前模拟接口的下一个模拟接口更新为当前模拟接口,返回执行当遍历到该模拟接口列表中当前模拟接口时的步骤,直到该模拟接口列表遍历完毕。
可选的,在一些实施例中,如果遍历该模拟接口列表的所有模拟接口后,仍未匹配到与该目标接口相同的模拟接口时,也就是,如果模拟接口集合中不存在该与该目标接口相同的模拟接口时,可以对真实接口进行调用,即转发给第三方服务器,继续运行接口的正常调用流程,以便确保测试的正常进行,也可以进一步提醒用户,用户可以根据实际情况在模拟接口集合中添加与该目标接口对应的模拟接口。比如,具体可以当该模拟接口集合中不存在该与该目标接口相同的模拟接口时,对应用程序中目标接口对应的真实接口进行调用,得到调用响应数据,输出该接口调用请求的调用响应数据。比如,可以从第三方服务器中继续进行接口的调用,以获取真实的调用响应数据。
又比如,可以利用接口调用装置中的接口模拟模块对模拟接口集合进行调整。比如,具体可以接收用户的模拟接口集合调整请求,根据该调整请求对模拟接口集合进行调整,比如,添加、删除、更改等等。
103、当查询到该模拟接口集中存在目标模拟接口时,将该接口调用请求进行拦截,并将拦截到的接口调用信息与该目标模拟接口的接口配置信息进行匹配。
例如,具体可以当查询到该模拟接口集中存在目标模拟接口时,触发通信层执行拦截操作,基于该拦截操作,在该通信层对该接口调用请求进行拦截。
为了使程序的代码无侵入性,可以在开发者工具中配置接口模拟模块进行调试,以使该前端人员在进行前后端联调时,可以独立于后端,提高开发效率。比如,在将拦截到的接口调用信息与该目标模拟接口的接口配置信息进行匹配之前,可以先对模拟接口集合中的模拟接口进行参数配置,具体可以显示接口模拟模块的接口模拟页面;在该接口模拟页面添加应用程序中待模拟的接口,得到应用程序的模拟接口;对应用程序的模拟接口进行参数配置和调用响应设置,得到该模拟接口的接口配置信息、以及该模拟接口对应的模拟响应数据。
可选的,在一些实施例中,对应用程序的模拟接口进行参数配置和调用响应设置,得到该模拟接口的接口配置信息、以及该模拟接口对应的模拟响应数据,具体可以对应用程序的模拟接口进行请求标识、请求路径以及请求参数配置,得到该模拟接口的接口配置信息;对该模拟接口的回调类型、数据生成方式以及模拟数据进行设置,得到该模拟接口对应的模拟响应数据。
其中,请求标识可以是请求名称、请求编号,等等,比如,请求标识可以是统一资源定位符(Uniform Resource Locator,URL)。请求路径可以是访问路径与资源名称。资源名称指的是要访问资源的直接名称,如:show.jsp,或与要访问资源存在映射关系的间接路径,如show.do。而访问路径,则是通过该路径则可以定位到指定的资源,即在URL资源访问路径中除了资源名称以外的其他部分。比如,http://127.0.0.1:8080/demo/hello.do,其中,http://127.0.0.1:8080/demo/是资源路径,hello.do是资源名称。请求路径根据是否可以唯一的定位一个资源标准,可以划分为两类:绝对路径与相对路径。绝对路径:可以唯一的定位一个资源。在Web应用中,一般情况下,以请求协议开头的路径为绝对路径。绝对路径以URL形式表示。相对路径:仅仅依靠此路径,无法唯一的定位一个资源。但若将其再与一个参照路径相结合后,就可以转换为一个可以定位资源的绝对路径,这样的路径,称为相对路径。在Web应用中,一般情况下,不以请求协议开头的路径为相对路径。相对路径以URI形式表示。他们之间的转换关系可以表示为:绝对路径=参照路径+相对路径。
其中,回调类型可以是模拟成功类型或者模拟失败类型等等。数据生成方式可以是自定义也可以是利用数据模板等方式。模拟数据可以根据用户选择的数据生成方式来设置模拟数据,等等。
比如,在一些实施例中,将拦截到的接口调用信息与该目标模拟接口的接口配置信息进行匹配,具体可以将拦截到的接口调用信息发送到应用程序中的接口模拟模块;触发该接口模拟模块,对该接口调用信息与该目标模拟接口的接口配置信息进行匹配。
其中,预设的接口模拟模块可以根据实际应用的需求灵活设置。
104、当该接口调用信息与该接口配置信息匹配成功时,获取该目标模拟接口对应的模拟响应数据。
其中,一个模拟接口可以配置一个或者多个接口配置信息,比如,当一个模拟接口配置一个接口配置信息时,该接口调用信息匹配该接口配置信息时,则匹配成功;当一个模拟接口配置多个接口配置信息时,该接口调用信息同时匹配该多个接口配置信息时,则匹配成功。
比如,当该接口调用信息与该接口配置信息匹配成功时,可以根据设置的回调类型、数据生成方式以及模拟数据确定该目标模拟接口对应的模拟响应数据。
105、基于该目标模拟接口对应的模拟响应数据,输出该接口调用请求的调用响应数据。
比如,具体可以在确定目标模拟接口对应的模拟响应数据,生成该接口调用请求的调用响应数据,返回给客户端,也就是返回该接口调用请求的调用响应数据,以完成接口调试。
为了方便多人协作,当需要与开发项目中其他成员共享模拟接口的接口配置信息时,可以在接口模拟模块中导出接口配置信息,再把配置文件发送给其他成员导入即可。
由上可知,本实施例可以接收应用程序中目标接口的接口调用请求,该接口调用请求包括目标接口的接口调用信息,然后,基于该目标接口在模拟接口集合中进行接口查询,其中,该模拟接口集合包括模拟应用程序中真实接口的模拟接口,接着,当查询到该模拟接口集中存在目标模拟接口时,将该接口调用请求进行拦截,并将拦截到的接口调用信息与该目标模拟接口的接口配置信息进行匹配,再然后,当该接口调用信息与该接口配置信息匹配成功时,获取该目标模拟接口对应的模拟响应数据,基于该目标模拟接口对应的模拟响应数据,输出该接口调用请求的调用响应数据。由于在前后端同时开发,前端还未有后端接口数据支持时,该方案可以根据目标接口的接口调用请求,在模拟接口集合中查找与目标接口对应的目标模拟接口,并根据该目标模拟接口在接口模拟模块中设置的模拟响应数据,生成调用响应数据,以便前端可以mock假数据,完成接口调试,提高接口调试的效率,进而模拟开发,提高开发效率。该方案通过创建接口模拟模块,不需要在代码中嵌入代码,没有引入别的包或框架,完完全全是自主开发,使得代码可复用,没有过多的依赖,方便移植,支持导入导出,方便多人协作。
根据上一个实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该接口调用装置具体集成在电子设备,应用程序具体为小程序为例进行说明。
由于小程序的底层模型和Web端不同,Web端现有的Mock方案迁移到小程序的话需要开发者进行Mock功能实现,使用WxMock对于代码的侵入性较高,使用起来不是很理想,并且小程序的需要Mock的API有很多,Web端的Mock方案只是针对Ajax请求。
由于Mock.js是基于Web端的,开发者工具与浏览器实现不同,无法识别Mock,且WxMock支持在小程序中使用,但是这种方案对于小程序代码有一定的侵入性,并且只是实现了请求相关的API,其他API的场景无法覆盖,而开发者工具的API Mock能力可以解决小程序的模拟API返回数据的问题。具体实现方式如下详细说明。
(一)首先,可以在电子设备的开发者工具中创建接口模拟模块,具体可以如下:
(1)显示接口模拟模块的接口模拟页面。
为了提高小程序开发者的开发效率,可以通过在开发者工具创建APIMock的来帮忙小程序开发者更顺畅的开发小程序。比如,如图2a所示,可以在开发者工具的工具调试面板顶部的Tab(标签)中选择“Mock”进入Mock入口,点“+”新建规则,以显示接口模拟页面,如图2b所示。
(2)在该接口模拟页面添加小程序中待模拟的接口,得到小程序的模拟接口。
比如,可以在接口模拟页面新建Mock名称,然后,选择要Mock的API,得到小程序的模拟接口。
(3)对小程序的模拟接口进行参数配置和调用响应设置,得到该模拟接口的接口配置信息、以及该模拟接口对应的模拟响应数据。
比如,具体可以对小程序的模拟接口进行请求标识、请求路径以及请求参数配置,得到该模拟接口的接口配置信息,对该模拟接口的回调类型、数据生成方式以及模拟数据进行设置,得到该模拟接口对应的模拟响应数据。
比如,可以配置参数规则,当参数满足正则是使用当前Mock规则,也可以配置多个参数,配置多个参数时需同时满足。然后,选择回调类型,选择需要模拟回调的是成功(success)还是失败(fail)。接着,选择数据生成方式,比如是自定义还是数据模板,再根据生成方式配置Mock数据。
其中,参数满足正则指的是在构造函数中,一些特殊字符需要进行转意(在特殊字符前加“\”)。比如,正则表达式中的特殊字符“\”转意,即通常在“\”后面的字符不按原来意义解释,如/b/匹配字符“b”,当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。或对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*"。
比如,当需要模拟的数据比较复杂的时候,可以使用数据模板快速生成符合要求的数据。比如,若需要返回的list包含10项不同的数据,可以在“数据生成”中选择“数据模板”,填入如下模板:
模板编辑器下方会根据模板实时生成数据预览,方便确认模板的正确性,比如,如图2c所示。
(二)通过创建好的接口模拟模块,便可以模拟接口返回数据,具体可以参见图2d。
如图2d所示,一种接口调用方法,具体流程可以如下:
201、电子设备接收小程序中目标接口的接口调用请求。
其中,该接口调用请求包括目标接口的接口调用信息。比如,为了提高开发的效率,可以对需要模拟的接口进行模拟数据配置,以便在进行接口调用可以模拟接口返回模拟响应数据。比如,电子设备可以在用户发送小程序中目标接口的接口调用请求时,获取此次请求的数据包,即获取目标接口的接口调用信息。
比如,如图2e所示,小程序使用的是一种两个线程并行执行的模式,叫做双线程模型。两个线程合力完成小程序的渲染:一个线程专门负责渲染工作,一般称之为渲染层(Webview);而另外有一个线程执行逻辑代码,一般叫做逻辑层(JsCore)。这两个线程同时运行,并通过Native/开发者工具来交换数据。其中,小程序基础库提供丰富的即时通讯应用的原生API,可以方便的调起即时通讯应用提供的能力,如获取用户信息,本地存储,支付功能等。APIMock主要是针对逻辑层调用的API进行模拟,一般API的调用流程如图2f所示,由图2f可知,图中的API调用对应图2e中的逻辑层(JsCore),指的是逻辑层调用的API。图中的开发者工具(JSBridge)对应图2e中的Native/工具(JSBridge),图中的API实现逻辑对应图2e中的第三方服务器。
比如,具体可以当检测到小程序中的逻辑层调用目标接口时,生成小程序的接口调用请求,通过小程序中的通信层对该接口调用请求进行接收。
202、电子设备基于该目标接口在模拟接口集合中进行接口查询。
其中,该模拟接口集合包括模拟小程序中真实接口的模拟接口。例如,电子设备具体可以获取模拟接口集合,该模拟接口集合包括至少一个小程序的模拟接口,根据该目标接口遍历该模拟接口集合中的模拟接口,当查询到该模拟接口集中存在与该目标接口相同的模拟接口时,将该模拟接口确定为目标模拟接口。
例如,电子设备可以获取该模拟接口集合的模拟接口列表,从该模拟接口列表的起始位置开始遍历,依次与该目标接口进行匹配。比如,电子设备具体可以从该模拟接口列表的起始位置开始遍历,当遍历到该模拟接口列表中当前模拟接口时,将当前模拟接口对应的接口名称,与目标接口的接口名称进行匹配;当匹配成功时,确定匹配到当前模拟接口为目标接口对应的目标模拟接口;当匹配失败时,将当前模拟接口的下一个模拟接口更新为当前模拟接口,返回执行当遍历到该模拟接口列表中当前模拟接口时的步骤,直到该模拟接口列表遍历完毕。
如果遍历该模拟接口列表的所有模拟接口后,仍未匹配到与该目标接口相同的模拟接口时,也就是,如果模拟接口集合中不存在该与该目标接口相同的模拟接口时,可以对真实接口进行调用,比如,转发给第三方服务器,继续运行接口的正常调用流程,获取真实的调用响应数据,以便确保测试的正常进行,也可以进一步提醒用户,用户可以根据实际情况在模拟接口集合中添加与该目标接口对应的模拟接口。比如,电子设备具体可以当该模拟接口集合中不存在该与该目标接口相同的模拟接口时,对小程序中目标接口对应的真实接口进行调用,得到调用响应数据,输出该接口调用请求的调用响应数据。
203、当查询到该模拟接口集中存在目标模拟接口时,电子设备将该接口调用请求进行拦截。
例如,具体可以当查询到该模拟接口集中存在目标模拟接口时,电子设备触发通信层执行拦截操作,基于该拦截操作,在该通信层对该接口调用请求进行拦截。
基于JSBridge,在开发者工具中,可以通过hook API来进行Mock操作。比如,为了实现Mock的功能,开发者工具在JSBridge层(即通信层)把相关API的调用拦截,并通过WebSocket转发到Mock模块,如图2g所示。
其中,JSBridge是JS和Native之前的一种通信方式。也就是说,JSBridge就是定义Native和JS的通信,Native只通过一个固定的桥对象调用JS,JS也只通过固定的桥对象调用Native。
其中,Hook技术又叫做钩子函数,在系统没有调用该函数之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,还可以强制结束消息的传递。
其中,WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得通信客户端(比如,电子设备中的小程序)和Mock模块之间的数据交换变得更加简单,允许Mock模块主动向通信客户端推送数据。通过WebSocket API,通信客户端和Mock模块只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
可选的,Mock模块主要可以分为三部分,如消息处理器、规则编辑器以及API调用匹配模块。其中,消息处理器主要基于WebSocket实现,负责与开发者工具主流程通信,通过消息处理器可以实现启用/关闭Mock、读取/写入规则、接收/返回API调用结果。规则编辑器主要基于Vue实现,可以配置规则的API名、参数匹配规则、模拟结果以及模拟回调的数据。API调用匹配模块主要对开发者工具转发过来的API调用消息,在当前已有的规则里面寻找合适的Mock规则,当命中规则时,通过消息处理器返回相关的模拟数据,否则通知开发者工具当前规则未命中,继续运行API的正常流程。
204、电子设备将拦截到的接口调用信息与该目标模拟接口的接口配置信息进行匹配。
比如,电子设备具体可以将拦截到的接口调用信息发送到小程序中的接口模拟模块;触发该接口模拟模块,对该接口调用信息与该目标模拟接口的接口配置信息进行匹配。比如,开发者工具会把调用信息传递给Mock模块,Mock模块中的消息处理器,在接收到调用信息后传递到匹配模块。
205、当该接口调用信息与该接口配置信息匹配成功时,电子设备获取该目标模拟接口对应的模拟响应数据。
比如,当模拟接口request配置多个接口配置信息时,该接口调用信息同时匹配多个接口配置信息时,则匹配成功。比如,电子设备接收到的接口调用信息可以如下所示:
可以将url:'https://example.com/ajax?dataType=member'与配置的url的请求路径进行匹配,将dataType:'json'与配置的数据类型匹配,当该接口调用信息与该多个接口配置信息同时匹配成功时,可以根据设置的回调类型、数据生成方式以及模拟数据确定该目标模拟接口对应的模拟响应数据,比如,模拟响应数据如图2b中的JSON数据包所示。
206、基于该目标模拟接口对应的模拟响应数据,电子设备输出该接口调用请求的调用响应数据。
比如,具体可以在确定目标模拟接口对应的模拟响应数据,生成该接口调用请求的调用响应数据,返回给客户端,也就是返回该接口调用请求的调用响应数据,比如,调用响应数据可以如下:
当使用数据模板(如图2c中的Mock模板)返回的list包含10项不同的数据时,调用接口可以返回的调用响应数据可以如下:
/>
为了方便多人协作,当需要与开发项目中其他成员共享模拟接口的接口配置信息时,可以在接口模拟模块中导出接口配置信息,再把配置文件发送给其他成员导入即可。比如,如图2h所示,可以通过图中虚线框内的控件对配置好的接口配置信息以及模拟响应数据进行导入或导出操作。
对于小程序来说,除了常用的请求API,还有很多其他的API支持Mock能力,比如,具体的开发场景有:1、模拟特定用户场景,例如wx.getLocation获取的位置;2、模拟异常情况,wx.request配置成fail回调,模拟网络异常;3、部分在工具中不支持调试的API,比如发票相关的wx.chooseInvoice,无须在真机中进行调试,进一步提高了API Mock全面性和完整性。
由上可知,本实施例可以接收小程序中目标接口的接口调用请求,该接口调用请求包括目标接口的接口调用信息,然后,基于该目标接口在模拟接口集合中进行接口查询,其中,该模拟接口集合包括模拟小程序中真实接口的模拟接口,接着,当查询到该模拟接口集中存在目标模拟接口时,将该接口调用请求进行拦截,并将拦截到的接口调用信息与该目标模拟接口的接口配置信息进行匹配,再然后,当该接口调用信息与该接口配置信息匹配成功时,获取该目标模拟接口对应的模拟响应数据,基于该目标模拟接口对应的模拟响应数据,输出该接口调用请求的调用响应数据。由于在前后端同时开发,前端还未有后端接口数据支持时,前端开发人员可以在开发者工具中创建接口模拟模块,然后,根据目标接口的接口调用请求,在模拟接口集合中查找与目标接口对应的目标模拟接口,并根据该目标模拟接口设置的模拟响应数据,生成调用响应数据,以便前端可以mock数据,以完成接口调试,提高接口调试的效率,进而模拟开发,提高开发效率。该方案通过创建接口模拟模块,不需要在代码中嵌入代码,没有引入别的包或框架,完完全全是自主开发,使得代码可复用,没有过多的依赖,方便移植。本方案是根据小程序模型实现的基于JSBridge进行hook的APIMock方案,直接在开发者工具配置就可以进行调试,支持大部分小程序API,包括wx.request、wx.downloadFile、wx.getLocation、wx.checkSession等,并且支持导入导出,方便多人协作。通过开发者工具的APIMock能力,可以让小程序开发者可以拥有更好的开发体验,比如,独立于后端飞驰的开发体验、无侵入性的Mock数据、更好的共享Mock、更全面的单元测试、以及可以与自动化测试相结合,等等。
为了更好地实施以上方法,相应的,本申请实施例还提供一种接口调用装置,该接口调用装置具体可以集成在终端中,该终端可以包括手机、平板电脑、笔记本电脑以及个人计算机等可以实现接口调用的设备。
例如,如图3所示,该接口调用装置可以包括接收单元301、查询单元302、匹配单元303、获取单元304和输出单元305,如下:
(1)接收单元301;
接收单元301,用于接收应用程序中目标接口的接口调用请求,所述接口调用请求包括目标接口的接口调用信息。
可选的,在一些实施例中,所述接收单元301,具体可以用于当检测到应用程序中的逻辑层调用目标接口时,生成应用程序的接口调用请求;通过应用程序中的通信层对将所述接口调用请求进行接收。
(2)查询单元302;
查询单元302,用于基于所述目标接口在模拟接口集合中进行接口查询,其中,所述模拟接口集合包括模拟应用程序中真实接口的模拟接口。
可选的,在一些实施例中,所述查询单元302,可以包括获取子单元、遍历子单元和确定子单元,如下:
获取子单元,具体可以用于获取模拟接口集合,所述模拟接口集合包括至少一个应用程序的模拟接口;
遍历子单元,具体可以用于根据所述目标接口遍历所述模拟接口集合中的模拟接口;
确定子单元,具体可以用于当查询到所述模拟接口集中存在与所述目标接口相同的模拟接口时,将所述模拟接口确定为目标模拟接口。
可选的,在一些实施例中,所述确定子单元,具体可以用于当所述模拟接口集合中不存在所述与所述目标接口相同的模拟接口时,对应用程序中目标接口对应的真实接口进行调用,得到调用响应数据;输出所述接口调用请求的调用响应数据。
(3)匹配单元303;
匹配单元303,用于当查询到所述模拟接口集中存在目标模拟接口时,将所述接口调用请求进行拦截,并将拦截到的接口调用信息与所述目标模拟接口的接口配置信息进行匹配。
可选的,在一些实施例中,所述匹配单元303,可以包括拦截子单元和匹配子单元。所述拦截子单元,具体可以用于当查询到所述模拟接口集中存在目标模拟接口时,触发通信层执行拦截操作;基于所述拦截操作,在所述通信层对所述接口调用请求进行拦截。
可选的,在一些实施例中,所述匹配子单元,具体可以用于将拦截到的接口调用信息发送到应用程序中的接口模拟模块;触发所述接口模拟模块,对所述接口调用信息与所述目标模拟接口的接口配置信息进行匹配。
可选的,在一些实施例中,所述接口调用装置还可以包括配置单元306,所述配置单元可以包括显示子单元、添加子单元和配置子单元,如下:
所述显示子单元,具体可以用于显示接口模拟模块的接口模拟页面;
所述添加子单元,具体可以用于在所述接口模拟页面添加应用程序中待模拟的接口,得到应用程序的模拟接口;
所述配置子单元,具体可以用于对应用程序的模拟接口进行参数配置和调用响应设置,得到所述模拟接口的接口配置信息、以及所述模拟接口对应的模拟响应数据。
可选的,在一些实施例中,所述配置子单元,具体可以用于对应用程序的模拟接口进行请求标识、请求路径以及请求参数配置,得到所述模拟接口的接口配置信息;对所述模拟接口的回调类型、数据生成方式以及模拟数据进行设置,得到所述模拟接口对应的模拟响应数据。
(4)获取单元304;
获取单元304,用于当所述接口调用信息与所述接口配置信息匹配成功时,获取所述目标模拟接口对应的模拟响应数据。
(5)输出单元305;
输出单元305,用于基于所述目标模拟接口对应的模拟响应数据,输出所述接口调用请求的调用响应数据。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本实施例中可以由接收单元301接收应用程序中目标接口的接口调用请求,所述接口调用请求包括目标接口的接口调用信息,然后,由查询单元302基于所述目标接口在模拟接口集合中进行接口查询,其中,所述模拟接口集合包括模拟应用程序中真实接口的模拟接口,接着,由匹配单元303当查询到所述模拟接口集中存在目标模拟接口时,将所述接口调用请求进行拦截,并将拦截到的接口调用信息与所述目标模拟接口的接口配置信息进行匹配,再然后,由获取单元304当所述接口调用信息与所述接口配置信息匹配成功时,获取所述目标模拟接口对应的模拟响应数据,再由输出单元305基于所述目标模拟接口对应的模拟响应数据,输出所述接口调用请求的调用响应数据。由于该方案在前后端同时开发,前端没有后端接口数据支持时,该方案可以根据目标接口的接口调用请求,在模拟接口集合中查找与目标接口对应的目标模拟接口,并根据该目标模拟接口设置的模拟响应数据,生成调用响应数据,以便前端可以mock假数据,以完成接口调试,提高接口调试的效率,进而模拟开发,提高开发效率。该方案通过创建接口模拟模块,不需要在代码中嵌入代码,没有引入别的包或框架,完完全全是自主开发,使得代码可以复用,没有过多的依赖,方便移植,支持导入导出,方便多人协作。
此外,本申请实施例还提供一种电子设备,如图4所示,其示出了本申请实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体控制。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
电子设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
接收应用程序中目标接口的接口调用请求,所述接口调用请求包括目标接口的接口调用信息,然后,基于所述目标接口在模拟接口集合中进行接口查询,其中,所述模拟接口集合包括模拟应用程序中真实接口的模拟接口,接着,当查询到所述模拟接口集中存在目标模拟接口时,将所述接口调用请求进行拦截,并将拦截到的接口调用信息与所述目标模拟接口的接口配置信息进行匹配,再然后,当所述接口调用信息与所述接口配置信息匹配成功时,获取所述目标模拟接口对应的模拟响应数据,基于所述目标模拟接口对应的模拟响应数据,输出所述接口调用请求的调用响应数据。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例可以接收应用程序中目标接口的接口调用请求,所述接口调用请求包括目标接口的接口调用信息,然后,基于所述目标接口在模拟接口集合中进行接口查询,其中,所述模拟接口集合包括模拟应用程序中真实接口的模拟接口,接着,当查询到所述模拟接口集中存在目标模拟接口时,将所述接口调用请求进行拦截,并将拦截到的接口调用信息与所述目标模拟接口的接口配置信息进行匹配,再然后,当所述接口调用信息与所述接口配置信息匹配成功时,获取所述目标模拟接口对应的模拟响应数据,基于所述目标模拟接口对应的模拟响应数据,输出所述接口调用请求的调用响应数据。由于在前后端同时开发,前端还未有后端接口数据支持时,该方案可以根据目标接口的接口调用请求,在模拟接口集合中查找与目标接口对应的目标模拟接口,并根据该目标模拟接口设置的模拟响应数据,生成调用响应数据,以模拟开发,提高开发效率。该方案通过创建接口模拟模块,不需要在代码中嵌入代码,没有引入别的包或框架,完完全全是自主开发,使得代码可复用,没有过多的依赖,方便移植,支持导入导出,方便多人协作。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例还提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种接口调用方法中的步骤。例如,该指令可以执行如下步骤:
接收应用程序中目标接口的接口调用请求,所述接口调用请求包括目标接口的接口调用信息,然后,基于所述目标接口在模拟接口集合中进行接口查询,其中,所述模拟接口集合包括模拟应用程序中真实接口的模拟接口,接着,当查询到所述模拟接口集中存在目标模拟接口时,将所述接口调用请求进行拦截,并将拦截到的接口调用信息与所述目标模拟接口的接口配置信息进行匹配,再然后,当所述接口调用信息与所述接口配置信息匹配成功时,获取所述目标模拟接口对应的模拟响应数据,基于所述目标模拟接口对应的模拟响应数据,输出所述接口调用请求的调用响应数据。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read OnlyMemory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本申请实施例所提供的任一种接口调用方法中的步骤,因此,可以实现本申请实施例所提供的任一种接口调用方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种接口调用方法、装置和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (11)

1.一种接口调用方法,其特征在于,包括:
接收应用程序中目标接口的接口调用请求,所述接口调用请求包括目标接口的接口调用信息;
基于所述目标接口在模拟接口集合中进行接口查询,其中,所述模拟接口集合包括模拟应用程序中真实接口的模拟接口;
当查询到所述模拟接口集合中存在目标模拟接口时,将所述接口调用请求进行拦截,并将拦截到的接口调用信息与所述目标模拟接口的接口配置信息进行匹配;
当所述接口调用信息与所述接口配置信息匹配成功时,获取所述目标模拟接口对应的模拟响应数据;
基于所述目标模拟接口对应的模拟响应数据,输出所述接口调用请求的调用响应数据;
所述将拦截到的接口调用信息与所述目标模拟接口的接口配置信息进行匹配包括:
将所述拦截到的接口调用信息传递给模拟模块的消息处理器,所述消息处理器将所述接口调用信息传递给匹配模块,所述消息处理器基于WebSocket实现,负责与开发者工具主流程通信,所述匹配模块对所述接口调用信息,在当前已有的规则里面寻找合适的Mock规则,所述Mock规则是规则编辑器预先配置的。
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标接口在模拟接口集合中进行接口查询,包括:
获取模拟接口集合,所述模拟接口集合包括至少一个应用程序的模拟接口;
根据所述目标接口遍历所述模拟接口集合中的模拟接口;
当查询到所述模拟接口集合中存在与所述目标接口相同的模拟接口时,将所述模拟接口确定为目标模拟接口。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标接口遍历所述模拟接口集合中的模拟接口之后,还包括:
当所述模拟接口集合中不存在所述与所述目标接口相同的模拟接口时,对应用程序中目标接口对应的真实接口进行调用,得到调用响应数据;
输出所述接口调用请求的调用响应数据。
4.根据权利要求1所述的方法,其特征在于,所述接收应用程序中目标接口的接口调用请求,包括:
当检测到应用程序中的逻辑层调用目标接口时,生成应用程序的接口调用请求;
通过应用程序中的通信层对所述接口调用请求进行接收。
5.根据权利要求4所述的方法,其特征在于,所述当查询到所述模拟接口集合中存在目标模拟接口时,将所述接口调用请求进行拦截,包括:
当查询到所述模拟接口集合中存在目标模拟接口时,触发通信层执行拦截操作;
基于所述拦截操作,在所述通信层对所述接口调用请求进行拦截。
6.根据权利要求1所述的方法,其特征在于,所述将拦截到的接口调用信息与所述目标模拟接口的接口配置信息进行匹配,包括:
将拦截到的接口调用信息发送到应用程序中的接口模拟模块;
触发所述接口模拟模块,对所述接口调用信息与所述目标模拟接口的接口配置信息进行匹配。
7.根据权利要求6所述的方法,其特征在于,所述对所述接口调用信息与所述目标模拟接口的接口配置信息进行匹配之前,还包括:
显示接口模拟模块的接口模拟页面;
在所述接口模拟页面添加应用程序中待模拟的接口,得到应用程序的模拟接口;
对应用程序的模拟接口进行参数配置和调用响应设置,得到所述模拟接口的接口配置信息、以及所述模拟接口对应的模拟响应数据。
8.根据权利要求7所述的方法,其特征在于,所述对应用程序的模拟接口进行参数配置和调用响应设置,得到所述模拟接口的接口配置信息、以及所述模拟接口对应的模拟响应数据,包括:
对应用程序的模拟接口进行请求标识、请求路径以及请求参数配置,得到所述模拟接口的接口配置信息;
对所述模拟接口的回调类型、数据生成方式以及模拟数据进行设置,得到所述模拟接口对应的模拟响应数据。
9.一种接口调用装置,其特征在于,包括:
接收单元,用于接收应用程序中目标接口的接口调用请求,所述接口调用请求包括目标接口的接口调用信息;
查询单元,用于基于所述目标接口在模拟接口集合中进行接口查询,其中,所述模拟接口集合包括模拟应用程序中真实接口的模拟接口;
匹配单元,用于当查询到所述模拟接口集合中存在目标模拟接口时,将所述接口调用请求进行拦截,并将拦截到的接口调用信息与所述目标模拟接口的接口配置信息进行匹配;
获取单元,用于当所述接口调用信息与所述接口配置信息匹配成功时,获取所述目标模拟接口对应的模拟响应数据;
输出单元,用于基于所述目标模拟接口对应的模拟响应数据,输出所述接口调用请求的调用响应数据;
所述将拦截到的接口调用信息与所述目标模拟接口的接口配置信息进行匹配包括:
将所述拦截到的接口调用信息传递给模拟模块的消息处理器,所述消息处理器将所述接口调用信息传递给匹配模块,所述消息处理器基于WebSocket实现,负责与开发者工具主流程通信,所述匹配模块对所述接口调用信息,在当前已有的规则里面寻找合适的Mock规则,所述Mock规则是规则编辑器预先配置的。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至8中任一项所述的接口调用方法中的步骤。
11.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至8任一项所述方法的步骤。
CN202010454247.6A 2020-05-26 2020-05-26 接口调用方法、装置和计算机可读存储介质 Active CN113722020B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202010454247.6A CN113722020B (zh) 2020-05-26 2020-05-26 接口调用方法、装置和计算机可读存储介质
PCT/CN2021/091868 WO2021238596A1 (zh) 2020-05-26 2021-05-06 接口调用方法、装置和计算机可读存储介质
US17/725,424 US11809882B2 (en) 2020-05-26 2022-04-20 Interface calling method and apparatus, and computer-readable storage medium
US18/375,878 US20240028349A1 (en) 2020-05-26 2023-10-02 Interface calling method and apparatus, and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010454247.6A CN113722020B (zh) 2020-05-26 2020-05-26 接口调用方法、装置和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN113722020A CN113722020A (zh) 2021-11-30
CN113722020B true CN113722020B (zh) 2024-06-11

Family

ID=78671989

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010454247.6A Active CN113722020B (zh) 2020-05-26 2020-05-26 接口调用方法、装置和计算机可读存储介质

Country Status (3)

Country Link
US (2) US11809882B2 (zh)
CN (1) CN113722020B (zh)
WO (1) WO2021238596A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113722020B (zh) * 2020-05-26 2024-06-11 腾讯科技(深圳)有限公司 接口调用方法、装置和计算机可读存储介质
CN114238099B (zh) * 2021-12-09 2022-08-09 北京五八信息技术有限公司 灰度测试的方法、装置、电子设备以及可读介质
CN114185799A (zh) * 2021-12-15 2022-03-15 中国建设银行股份有限公司 创建虚拟对象的数据处理方法和装置
CN114416602B (zh) * 2022-03-30 2022-07-05 互联网域名系统北京市工程研究中心有限公司 基于Netty实现Restful接口模拟测试服务的方法及装置
CN115002210A (zh) * 2022-06-06 2022-09-02 北京自如信息科技有限公司 数据处理的方法、平台、电子设备以及存储介质

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6907546B1 (en) * 2000-03-27 2005-06-14 Accenture Llp Language-driven interface for an automated testing framework
CN106776313A (zh) * 2016-12-13 2017-05-31 广州唯品会信息科技有限公司 一种模拟服务的方法、装置及集中管理平台
WO2017113561A1 (zh) * 2015-12-30 2017-07-06 腾讯科技(深圳)有限公司 一种信息拦截处理方法及终端、计算机存储介质
CN107368405A (zh) * 2016-05-11 2017-11-21 腾讯科技(北京)有限公司 测试系统、测试方法、mock平台、拦截器和客户端
CN107728999A (zh) * 2017-11-14 2018-02-23 苏州奇松软件有限公司 一种App、小程序接口模拟的方法和系统
CN107966952A (zh) * 2017-11-30 2018-04-27 无锡宙斯物联网股份有限公司 全车无线通讯电子教练系统的使用方法
US9959198B1 (en) * 2016-05-26 2018-05-01 Google Llc Simulated testing of API
CN108200170A (zh) * 2018-01-02 2018-06-22 武汉斗鱼网络科技有限公司 消息处理方法、装置及可读存储介质
CN108268570A (zh) * 2017-01-04 2018-07-10 武汉斗鱼网络科技有限公司 一种开发接口的方法及装置
CN108345543A (zh) * 2018-03-02 2018-07-31 财付通支付科技有限公司 一种数据处理方法、装置、设备及存储介质
CN108427631A (zh) * 2017-02-14 2018-08-21 北京京东尚科信息技术有限公司 一种应用测试系统、方法、电子设备和可读存储介质
CN108563575A (zh) * 2018-04-16 2018-09-21 百度在线网络技术(北京)有限公司 应用程序测试方法、装置、终端及计算机可读存储介质
US10089219B1 (en) * 2017-01-20 2018-10-02 Intuit Inc. Mock server for testing
CN109491905A (zh) * 2018-11-02 2019-03-19 北京金山云网络技术有限公司 前端测试方法、装置及电子设备
CN109739656A (zh) * 2018-11-29 2019-05-10 东软集团股份有限公司 接口数据模拟方法、装置、存储介质和电子设备
CN109739754A (zh) * 2018-12-25 2019-05-10 北京仁科互动网络技术有限公司 基于微信开发的应用程序自动化测试方法及系统
CN110389886A (zh) * 2018-04-16 2019-10-29 腾讯科技(深圳)有限公司 一种主体应用程序的附加功能测试方法、装置及存储介质
CN110837473A (zh) * 2019-11-07 2020-02-25 腾讯科技(深圳)有限公司 应用程序调试方法、装置、终端及存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69415593T2 (de) * 1993-06-30 1999-05-20 Microsoft Corp Verfahren zur Überprüfung eines nachrichtengesteuerten Betriebssystems
GB2435947B (en) * 2006-03-10 2008-02-20 Oracle Int Corp Vector Replacement Method
US8914879B2 (en) * 2010-06-11 2014-12-16 Trustwave Holdings, Inc. System and method for improving coverage for web code
US8762781B2 (en) * 2010-11-16 2014-06-24 International Business Machines Corporation Method and apparatus useful in manufacturing test case operations
EP2839375A4 (en) * 2012-04-20 2015-12-02 Hewlett Packard Development Co TEST SYSTEM FOR AN INTEGRATED SOFTWARE SYSTEM
CN103440457B (zh) * 2013-08-20 2015-12-09 上海交通大学 基于进程模拟的二进制程序分析系统
EP3143504B1 (en) * 2014-05-15 2022-03-23 The MathWorks, Inc. Using an element in a first model to call a portion of a second model
US9846774B2 (en) * 2015-06-27 2017-12-19 Mcafee, Llc Simulation of an application
US20170160962A1 (en) * 2015-12-03 2017-06-08 Mediatek Inc. System and method for processor mapping
CN110865867B (zh) * 2015-12-21 2023-08-25 华为云计算技术有限公司 应用拓扑关系发现的方法、装置和系统
US20170300402A1 (en) * 2016-04-19 2017-10-19 Sap Se Mock server and extensions for application testing
US10768966B1 (en) * 2018-05-23 2020-09-08 Parallels International Gmbh System and method for trapping system calls for remote execution
US11188529B2 (en) * 2018-06-04 2021-11-30 International Business Machines Corporation Autonomous generation of a graph query language interface on top of an application programming interface
WO2020157795A1 (ja) * 2019-01-28 2020-08-06 三菱電機株式会社 試験装置、試験方法および試験プログラム
US10747544B1 (en) * 2019-06-27 2020-08-18 Capital One Services, Llc Dependency analyzer in application dependency discovery, reporting, and management tool
CN110727524A (zh) * 2019-10-17 2020-01-24 广州欢聊网络科技有限公司 一种实现远程过程调用的方法及装置
CN110851364A (zh) * 2019-11-12 2020-02-28 深圳市前海随手数据服务有限公司 一种软件测试方法、系统及相关设备
CN113722020B (zh) * 2020-05-26 2024-06-11 腾讯科技(深圳)有限公司 接口调用方法、装置和计算机可读存储介质
CN111953775A (zh) * 2020-08-12 2020-11-17 吉林亿联银行股份有限公司 一种数据传输方法及装置
CN112685291A (zh) * 2020-12-22 2021-04-20 平安普惠企业管理有限公司 系统联合测试方法及相关装置

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6907546B1 (en) * 2000-03-27 2005-06-14 Accenture Llp Language-driven interface for an automated testing framework
WO2017113561A1 (zh) * 2015-12-30 2017-07-06 腾讯科技(深圳)有限公司 一种信息拦截处理方法及终端、计算机存储介质
CN107368405A (zh) * 2016-05-11 2017-11-21 腾讯科技(北京)有限公司 测试系统、测试方法、mock平台、拦截器和客户端
US9959198B1 (en) * 2016-05-26 2018-05-01 Google Llc Simulated testing of API
CN106776313A (zh) * 2016-12-13 2017-05-31 广州唯品会信息科技有限公司 一种模拟服务的方法、装置及集中管理平台
CN108268570A (zh) * 2017-01-04 2018-07-10 武汉斗鱼网络科技有限公司 一种开发接口的方法及装置
US10089219B1 (en) * 2017-01-20 2018-10-02 Intuit Inc. Mock server for testing
CN108427631A (zh) * 2017-02-14 2018-08-21 北京京东尚科信息技术有限公司 一种应用测试系统、方法、电子设备和可读存储介质
CN107728999A (zh) * 2017-11-14 2018-02-23 苏州奇松软件有限公司 一种App、小程序接口模拟的方法和系统
CN107966952A (zh) * 2017-11-30 2018-04-27 无锡宙斯物联网股份有限公司 全车无线通讯电子教练系统的使用方法
CN108200170A (zh) * 2018-01-02 2018-06-22 武汉斗鱼网络科技有限公司 消息处理方法、装置及可读存储介质
CN108345543A (zh) * 2018-03-02 2018-07-31 财付通支付科技有限公司 一种数据处理方法、装置、设备及存储介质
CN108563575A (zh) * 2018-04-16 2018-09-21 百度在线网络技术(北京)有限公司 应用程序测试方法、装置、终端及计算机可读存储介质
CN110389886A (zh) * 2018-04-16 2019-10-29 腾讯科技(深圳)有限公司 一种主体应用程序的附加功能测试方法、装置及存储介质
CN109491905A (zh) * 2018-11-02 2019-03-19 北京金山云网络技术有限公司 前端测试方法、装置及电子设备
CN109739656A (zh) * 2018-11-29 2019-05-10 东软集团股份有限公司 接口数据模拟方法、装置、存储介质和电子设备
CN109739754A (zh) * 2018-12-25 2019-05-10 北京仁科互动网络技术有限公司 基于微信开发的应用程序自动化测试方法及系统
CN110837473A (zh) * 2019-11-07 2020-02-25 腾讯科技(深圳)有限公司 应用程序调试方法、装置、终端及存储介质

Also Published As

Publication number Publication date
US20220244967A1 (en) 2022-08-04
US20240028349A1 (en) 2024-01-25
WO2021238596A1 (zh) 2021-12-02
US11809882B2 (en) 2023-11-07
CN113722020A (zh) 2021-11-30

Similar Documents

Publication Publication Date Title
CN113722020B (zh) 接口调用方法、装置和计算机可读存储介质
CN106649084B (zh) 函数调用信息的获取方法及装置、测试设备
KR102243793B1 (ko) 코드 가상화 및 원격 프로세스 호출 생성을 위한 방법 및 장치
CA2915619C (en) Method and apparatus for customized software development kit (sdk) generation
CN101930400B (zh) Sdk自动化测试系统及方法
TW202113586A (zh) 小程式產生方法以及裝置
US20150227449A1 (en) Method and device for developing, compiling and debugging
CN104598513A (zh) 一种基于网页框架的数据流控制方法和系统
CN110196809B (zh) 接口测试方法及装置
CN102866944A (zh) 一种压力测试系统及方法
CN111026634A (zh) 一种接口自动化测试系统、方法、装置及存储介质
CN108228444A (zh) 一种测试方法和装置
CN109495293B (zh) 一种交换机控制面的测试方法、系统、设备及存储介质
CN114064152A (zh) 基于动态加载的嵌入式多核调试系统及其调试方法
CN103294482B (zh) 用于PWscf并行计算系统的Web服务封装方法以及系统
CN110750446A (zh) 一种系统测试的方法及相关装置
CN114840410A (zh) 测试分析方法、装置、计算机设备及存储介质
Le et al. An approach to modeling and estimating power consumption of mobile applications
CN117215661A (zh) 一种事件处理的方法、装置以及存储介质
CN113495723B (zh) 一种调用功能组件的方法、装置及存储介质
CN110825370A (zh) 移动端应用开发方法、装置及系统
CN114327709A (zh) 一种控制页面生成方法、装置、智能设备及存储介质
CN113608996B (zh) 一种镜像编译测试方法、系统、装置及可读存储介质
US20230102570A1 (en) System and method for scripting generators
CN108089899A (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