CN107733866A - Rpc请求、rpc请求处理方法、装置以及设备 - Google Patents

Rpc请求、rpc请求处理方法、装置以及设备 Download PDF

Info

Publication number
CN107733866A
CN107733866A CN201710815632.7A CN201710815632A CN107733866A CN 107733866 A CN107733866 A CN 107733866A CN 201710815632 A CN201710815632 A CN 201710815632A CN 107733866 A CN107733866 A CN 107733866A
Authority
CN
China
Prior art keywords
rpc
requests
response data
rpc requests
receiving terminal
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
Application number
CN201710815632.7A
Other languages
English (en)
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.)
Advanced New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710815632.7A priority Critical patent/CN107733866A/zh
Publication of CN107733866A publication Critical patent/CN107733866A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • 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
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本说明书实施例公开了RPC请求、RPC请求处理方法、装置以及设备。所述RPC请求处理方法包括:接收App的客户端发送的RPC请求,通过mock该RPC请求对应的RPC服务,获得针对该RPC请求的响应数据并返回。

Description

RPC请求、RPC请求处理方法、装置以及设备
技术领域
本说明书涉及计算机软件技术领域,尤其涉及一种远程过程调用(RemoteProcedure Call,RPC)请求方法、装置以及设备,一种RPC请求处理方法、装置以及设备。
背景技术
随着计算机和互联网技术的迅速发展,以及移动终端的使用普及,大量应用(Application,App)也不断涌现,给用户带来了便利。
在现有技术中,无论是在App的开发测试阶段,还是实际使用阶段,App经常会与服务端产生数据通信,这些数据通信大部分是通过App的客户端向服务端发送RPC请求来完成的,服务端通过已有的相应RPC服务返回响应数据,进而,客户端可以根据响应数据执行后续的处理逻辑。
基于现有技术,需要能够更有效辅助App开发测试的RPC请求处理方案。
发明内容
本说明书实施例提供RPC请求、RPC请求处理方法、装置以及设备,用以解决如下技术问题:需要能够更有效辅助App开发测试的RPC请求处理方案。
为解决上述技术问题,本说明书实施例是这样实现的:
本说明书实施例提供的一种RPC请求处理方法,包括:
接收RPC请求;
通过mock所述RPC请求对应的RPC服务,获得针对所述RPC请求的响应数据并返回。
本说明书实施例提供的一种RPC请求方法,包括:
发送RPC请求给接收端;
接收所述接收端返回的针对所述RPC请求的响应数据;
其中,所述响应数据是所述接收端通过mock所述RPC请求对应的RPC服务获得。
本说明书实施例提供的一种RPC请求处理装置,包括:
接收模块,接收RPC请求;
处理模块,通过mock所述RPC请求对应的RPC服务,获得针对所述RPC请求的响应数据并返回。
本说明书实施例提供的一种RPC请求装置,包括:
发送模块,发送RPC请求给接收端;
接收模块,接收所述接收端返回的针对所述RPC请求的响应数据;
其中,所述响应数据是所述接收端通过mock所述RPC请求对应的RPC服务获得。
本说明书实施例提供的一种RPC请求处理设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收RPC请求;
通过mock所述RPC请求对应的RPC服务,获得针对所述RPC请求的响应数据并返回。
本说明书实施例提供的一种RPC请求设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
发送RPC请求给接收端;
接收所述接收端返回的针对所述RPC请求的响应数据;
其中,所述响应数据是所述接收端通过mock所述RPC请求对应的RPC服务获得。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:可以根据App开发测试需求,通过mock RPC请求对应的RPC服务,模拟出各种可能的响应数据,从而能够便利地覆盖多种正常或者异常的RPC场景,因此,有助于App开发测试的进行。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书的方案在一种实际应用场景下涉及的一种整体架构示意图;
图2为本说明书实施例提供的一种RPC请求处理方法的流程示意图;
图3为本说明书实施例提供的一种RPC请求方法的流程示意图;
图4为本说明书的方案在实际应用场景下的一种具体实施方案的流程示意图;
图5为本说明书实施例提供的对应于图2的一种RPC请求处理装置的结构示意图;
图6为本说明书实施例提供的对应于图3的一种RPC请求装置的结构示意图。
具体实施方式
本说明书实施例提供RPC请求、RPC请求处理方法、装置以及设备。
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
图1为本说明书的方案在一种实际应用场景下涉及的一种整体架构示意图。该整体架构中,主要包括:RPC请求发送端所在设备、RPC请求接收端(处理端)所在设备,其中,该接收端用于mock RPC服务,以响应RPC请求;除此之外,该整体架构中还可以包括服务端所在设备,RPC服务本身应当由服务端提供。在实际应用中,RPC服务可以是至少部分完备的,也可以是尚不存在的;比如,服务端本身可能尚未开发完毕,这不影响本说明书的方案的实施。
基于以上整体架构,下面对本说明书的方案进行详细说明。
图2为本说明书实施例提供的一种RPC请求处理方法的流程示意图。该流程可能的执行主体包括但不限于以下设备:个人计算机、手机、平板电脑、智能可穿戴设备、车机、中型计算机、计算机集群等。将该执行主体上具体的执行程序称为:RPC请求接收端,简称为接收端。
图2中的流程可以包括以下步骤:
S202:接收RPC请求。
一般地,RPC请求应当由发送端(比如,App的客户端等)发送给服务端,以请求相应的RPC服务。但是,在本说明书的方案中,对于诸如开发测试阶段,为了调试App功能,可以将RPC请求发送给接收端处理。
当然,若发送端未能够连接上接收端,或者接收端未能按照期望处理RPC请求,则可以将RPC请求发送给服务端处理。进一步地,若服务端也未准备就绪,则发送端可以放弃该RPC请求。
S204:通过mock所述RPC请求对应的RPC服务,获得针对所述RPC请求的响应数据并返回。
在本说明书实施例中,mock通常用于软件调试等过程中,其一般是这样的操作:对于某些不容易构造或者不容易获取的对象,构造虚拟的对象来模拟真实的对象,用于后续业务过程。具体到本说明书的场景,通过mock,可以构造RPC服务模拟对象,进而,由RPC服务模拟对象来模拟真实的RPC服务,以响应发送端的RPC请求。
相比于真实的RPC服务,mock RPC服务的优点在于:可以便利地触发各种RPC相关的异常情况,比如,RPC请求失败、服务端针对RPC请求处理出错等,当然,正常情况也可以便利地触发;因此,可以减少对真实的业务数据的依赖;也无需受限于服务端的研发进度。
通过图2的方法,以发送端是App的客户端为例,可以根据App开发测试需求,通过mock RPC请求对应的RPC服务,模拟出各种可能的响应数据,从而能够便利地覆盖多种正常或者异常的RPC场景,因此,有助于App开发测试的进行。
基于图2的方法,本说明书实施例还提供了该方法的一些具体实施方案,以及扩展方案,下面进行说明。
在本说明书实施例中,通过mock RPC服务可以直接获得RPC请求对应的响应数据;进一步地,还可以根据实际需求,对该响应数据进行编辑,比如,修改参数值、修改数据结构等,编辑之后再返回发送端。如此,可以通过响应数据,更灵活以及更随心所欲地触发所期望的后续发送端动作。
根据上一段的说明,对于步骤S204,所述通过mock所述RPC请求对应的RPC服务,获得针对所述RPC请求的响应数据,具体可以包括:
通过mock所述RPC请求对应的RPC服务,获得模拟数据;将所述模拟数据作为针对所述RPC请求的响应数据;或者,接收编辑指令,根据所述编辑指令对所述模拟数据进行编辑后,作为针对所述RPC请求的响应数据。
接收端可以提供相应的编辑界面给用户(通常是研发人员),以便于用户通过在编辑界面中操作,下达上述的编辑指令,其中,编辑界面可以是命令行界面,也可以是图形界面等。当然,也可以从发送端和接收端以外的设备下达编辑指令,比如,服务端所在设备等。
在本说明书实施例中,前面已经提到,mock一般通过构造虚拟的对象实现。在这种情况下,所述通过mock所述RPC请求对应的RPC服务,获得模拟数据,具体可以包括:
获取为所述RPC请求构造的RPC服务模拟对象;提取所述RPC请求中携带的参数;将所述参数传入所述RPC服务模拟对象进行计算,得到模拟数据。
当然,上一段的实施方式并非唯一。比如,也可以只是构造一个函数而非对象,以RPC请求中的至少部分数据作为函数输入,计算响应数据;等等。
在本说明书实施例中,不同的RPC请求可能对应于不同的RPC服务,而在实际实施方案时,接收端未必能够mock所有的RPC服务。因此,在接收到RPC请求后,接收端可以判断本地是否能够mock该RPC请求对应的RPC服务,若是,则可以进行上面的响应,否则,可以向发送端返回相应的提示信息,以便于发送端寻求其他途径。
进一步地,对于上一段的后一种情况。发送端比如可以改而向服务端发送RPC请求,若服务端能够正常提供对应的RPC服务,则可以对接收到的RPC请求进行处理后返回响应数据,为了避免与发送端返回的响应数据混淆,以下可以将服务端返回的响应数据称为:第二响应数据。
基于同样的思路,本说明书实施例还提供了一种RPC请求方法的流程示意图,如图3所示,该流程主要是从发送端角度进行描述的。该流程可能的执行主体包括但不限于以下设备:手机、平板电脑、智能可穿戴设备、车机、个人计算机等。具体的执行程序称为:RPC请求发送端,即为上述的发送端。
图3中的流程可以包括以下步骤:
S302:发送RPC请求给接收端。
S304:接收所述接收端返回的针对所述RPC请求的响应数据;其中,所述响应数据是所述接收端通过mock所述RPC请求对应的RPC服务获得。
进一步地,发送端可以根据接收到的响应数据,继续执行动作。由于响应数据是根据开发测试需求模拟的,因此,发送端具体如何继续执行动作实际上也可以视为:发送端的测试表现。研发人员可以以相应的测试数据为依据,对发送端的处理逻辑进行调试直至符合预期。
通过图3的方法,前面已经提到,接收端通过mock RPC服务,可以模拟出各种可能的响应数据,能够便利地覆盖多种正常或者异常的RPC场景;进而,能够获取到反映发送端(以发送端是App的客户端为例)在这些RPC场景下的后续表现的测试数据,这有助于App开发测试的进行。
基于图3的方法,本说明书实施例还提供了该方法的一些具体实施方案,以及扩展方案,下面进行说明。
在本说明书实施例中,发送端与接收端之间的通信需要相应的功能逻辑支持,可以尽量减少这部分功能逻辑其与发送端的业务代码之间耦合程度,从而便于拆分,也可以避免影响业务代码。
例如,可以将这部分功能逻辑以动态库的形式集成到发送端上,发送端则可以通过调用该动态库中的库文件,与接收端进行通信。
发送端与接收端之间的具体通信方式不做限定。比如,可以通过套接字(Socket)建立连接,或者基于蓝牙、通用串行总线(Universal Serial Bus,USB)等协议建立连接,进而通过建立的连接进行通信。
在本说明书实施例中,对于步骤S302,所述发送RPC请求给接收端前,还可以执行:判断是否已连接接收端;若已连接,则可以发送RPC请求给接收端;若未连接,可以改而发送RPC请求给提供对应的RPC服务的服务端,或者,可以尝试进行连接,若通过尝试也未能连接,再发送RPC请求给服务端,服务端对接收到的RPC请求进行处理,并返回处理得到的第二响应数据给发送端。
在本说明书实施例中,前面已经提到,即使发送端连接了接收端,也可能存在接收端不能够mock对应的RPC服务的情况。针对这种情况,可以采取与前面相同或者类似的应对方式,比如,对于步骤S302,所述发送RPC请求给接收端后,还可以执行:
若接收到所述接收端返回的表示不能够mock所述RPC请求对应的RPC服务的提示信息,则发送RPC请求给提供所述RPC服务的服务端;接收所述服务端返回的针对所述RPC请求的第二响应数据。
另外,若接收端响应超时,发送端也可以改而发送RPC请求给服务端。比如,接收端向接收端发出RPC请求后,就开始计时,若在预定时长内未接收到接收端返回的响应数据(未接收到的原因不限,可能在于接收端,也可能在于发送端,也可能在于两者之间的通信线路等),则发送RPC请求给服务端。
进一步地,发送端还可以将服务端返回的第二响应数据发送给接收端,作为接收端后续mock的参考数据。
另外,若接收端也未接收过第二响应数据对应的RPC请求(比如,在发送端未能连接接收端的情况下),则在能够连接后,发送端可以将该RPC请求连同第二响应数据一起发送给接收端,作为接收端后续mock的参考数据。
上面分别从接收端和发送端的角度,对本说明书的方案进行了说明。更直观地,根据以上说明内容,以下还提供了本说明书的方案在实际应用场景下的一种具体实施方案的流程,图4为该流程的示意图。
在该实际应用场景下,假定发送端为iOS App的客户端,简称iOS App,接收端为MacOS操作系统的机器上的客户端,简称Mac App。
图4中的流程主要包括以下步骤:
当iOS App准备RPC时,判断是否已连接Mac App,若是,向Mac App发送RPC请求,否则,改而向服务端发送RPC请求;
对于向Mac App发送RPC请求的情况:
Mac App判断本地是否能够mock对应的RPC服务,若是,则通过mock获取RPC请求的响应数据并返回给发送端,否则,向iOS App发送相应的提示信息,则iOS App改而向服务端发送RPC请求;
对于向服务端发送RPC请求的情况:
服务端通过对RPC请求进行处理,获得RPC请求的响应数据(上述的第二响应数据)并返回给iOS App;
iOS App将接收到的响应数据发送给Mac App,当然若响应数据本身就是Mac App生成的,则iOS App可以不将响应数据发送给Mac App;
Mac App保存RPC请求及其相应数据,以作为后续mock的参考数据。
需要说明的是,图4中的iOS App和Mac App都是示例性的,也可以是Windows客户端等其他可能的程序。
基于同样的思路,本说明书实施例还提供了对应的装置,如图5、图6所示。
图5为本说明书实施例提供的对应于图2的一种RPC请求处理装置的结构示意图,该装置可以位于图1中流程的执行主体,包括:
接收模块501,接收RPC请求;
处理模块502,通过mock所述RPC请求对应的RPC服务,获得针对所述RPC请求的响应数据并返回。
可选地,所述处理模块502通过mock所述RPC请求对应的RPC服务,获得针对所述RPC请求的响应数据,具体包括:
所述处理模块502通过mock所述RPC请求对应的RPC服务,获得模拟数据;
将所述模拟数据作为针对所述RPC请求的响应数据;或者,接收编辑指令,根据所述编辑指令对所述模拟数据进行编辑后,作为针对所述RPC请求的响应数据。
可选地,所述处理模块502通过mock所述RPC请求对应的RPC服务,获得模拟数据,具体包括:
所述处理模块502获取为所述RPC请求构造的RPC服务模拟对象;
提取所述RPC请求中携带的参数;
将所述参数传入所述RPC服务模拟对象进行计算,得到模拟数据。
可选地,所述处理模块502获得针对所述RPC请求的响应数据前,还执行:
确定本地能够mock所述RPC请求对应的RPC服务;
所述接收模块501接收RPC请求后,所述处理模块502还执行:
若确定本地不能够mock所述RPC请求对应的RPC服务,返回相应的提示信息。
可选地,所述处理模块502返回相应的提示信息后,还执行:
接收并保存所述RPC请求的发送端发送的针对所述RPC请求的第二响应数据;
其中,所述第二响应数据获取自提供所述RPC服务的服务端。
可选地,所述接收模块501接收RPC请求,具体包括:
所述接收模块501接收App的客户端发送的RPC请求。
图6为本说明书实施例提供的对应于图3的一种RPC请求装置的结构示意图,该装置可以位于图3中流程的执行主体,包括:
发送模块601,发送RPC请求给接收端;
接收模块602,接收所述接收端返回的针对所述RPC请求的响应数据;
其中,所述响应数据是所述接收端通过mock所述RPC请求对应的RPC服务获得。
可选地,所述RPC请求的发送端上集成有动态库,用于支持所述发送端与所述接收端间进行通信。
可选地,所述发送模块601发送RPC请求给接收端前,还执行:
确定已连接所述接收端;
所述发送模块601还执行:
若未能连接所述接收端,则发送RPC请求给提供所述RPC服务的服务端;
所述接收模块602接收所述服务端返回的针对所述RPC请求的第二响应数据。
可选地,所述发送模块601发送RPC请求给接收端后,若所述接收模块602接收到所述接收端返回的表示不能够mock所述RPC请求对应的RPC服务的提示信息,则所述发送模块601发送RPC请求给提供所述RPC服务的服务端;
所述接收模块602接收所述服务端返回的针对所述RPC请求的第二响应数据。
可选地,所述发送模块601还执行:
将所述第二响应数据发送给所述接收端。
基于同样的思路,本说明书实施例还提供了对应于图2的一种RPC请求处理设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收RPC请求;
通过mock所述RPC请求对应的RPC服务,获得针对所述RPC请求的响应数据并返回。
基于同样的思路,本说明书实施例还提供了对应于图2的一种RPC请求设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
发送RPC请求给接收端;
接收所述接收端返回的针对所述RPC请求的响应数据;
其中,所述响应数据是所述接收端通过mock所述RPC请求对应的RPC服务获得。
基于同样的思路,本说明书实施例还提供了对应于图2的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
接收RPC请求;
通过mock所述RPC请求对应的RPC服务,获得针对所述RPC请求的响应数据并返回。
基于同样的思路,本说明书实施例还提供了对应于图3的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
发送RPC请求给接收端;
接收所述接收端返回的针对所述RPC请求的响应数据;
其中,所述响应数据是所述接收端通过mock所述RPC请求对应的RPC服务获得。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书实施例提供的装置、设备、非易失性计算机存储介质与方法是对应的,因此,装置、设备、非易失性计算机存储介质也具有与对应方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述对应装置、设备、非易失性计算机存储介质的有益技术效果。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书实施例可提供为方法、系统、或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (24)

1.一种远程过程调用RPC请求处理方法,包括:
接收RPC请求;
通过mock所述RPC请求对应的RPC服务,获得针对所述RPC请求的响应数据并返回。
2.如权利要求1所述的方法,所述通过mock所述RPC请求对应的RPC服务,获得针对所述RPC请求的响应数据,具体包括:
通过mock所述RPC请求对应的RPC服务,获得模拟数据;
将所述模拟数据作为针对所述RPC请求的响应数据;或者,接收编辑指令,根据所述编辑指令对所述模拟数据进行编辑后,作为针对所述RPC请求的响应数据。
3.如权利要求2所述的方法,所述通过mock所述RPC请求对应的RPC服务,获得模拟数据,具体包括:
获取为所述RPC请求构造的RPC服务模拟对象;
提取所述RPC请求中携带的参数;
将所述参数传入所述RPC服务模拟对象进行计算,得到模拟数据。
4.如权利要求1所述的方法,所述获得针对所述RPC请求的响应数据前,所述方法还包括:
确定本地能够mock所述RPC请求对应的RPC服务;
所述接收RPC请求后,所述方法还包括:
若确定本地不能够mock所述RPC请求对应的RPC服务,返回相应的提示信息。
5.如权利要求4所述的方法,所述返回相应的提示信息后,所述方法还包括:
接收并保存所述RPC请求的发送端发送的针对所述RPC请求的第二响应数据;
其中,所述第二响应数据获取自提供所述RPC服务的服务端。
6.如权利要求1~5任一项所述的方法,所述接收RPC请求,具体包括:
接收应用App的客户端发送的RPC请求。
7.一种远程过程调用RPC请求方法,包括:
发送RPC请求给接收端;
接收所述接收端返回的针对所述RPC请求的响应数据;
其中,所述响应数据是所述接收端通过mock所述RPC请求对应的RPC服务获得。
8.如权利要求7所述的方法,所述RPC请求的发送端上集成有动态库,用于支持所述发送端与所述接收端间进行通信。
9.如权利要求7所述的方法,所述发送RPC请求给接收端前,所述方法还包括:
确定已连接所述接收端;
所述方法还包括:
若未能连接所述接收端,则发送RPC请求给提供所述RPC服务的服务端;
接收所述服务端返回的针对所述RPC请求的第二响应数据。
10.如权利要求7所述的方法,所述发送RPC请求给接收端后,所述方法还包括:
若接收到所述接收端返回的表示不能够mock所述RPC请求对应的RPC服务的提示信息,则发送RPC请求给提供所述RPC服务的服务端;
接收所述服务端返回的针对所述RPC请求的第二响应数据。
11.如权利要求9或10所述的方法,所述方法还包括:
将所述第二响应数据发送给所述接收端。
12.一种远程过程调用RPC请求处理装置,包括:
接收模块,接收RPC请求;
处理模块,通过mock所述RPC请求对应的RPC服务,获得针对所述RPC请求的响应数据并返回。
13.如权利要求12所述的装置,所述处理模块通过mock所述RPC请求对应的RPC服务,获得针对所述RPC请求的响应数据,具体包括:
所述处理模块通过mock所述RPC请求对应的RPC服务,获得模拟数据;
将所述模拟数据作为针对所述RPC请求的响应数据;或者,接收编辑指令,根据所述编辑指令对所述模拟数据进行编辑后,作为针对所述RPC请求的响应数据。
14.如权利要求13所述的装置,所述处理模块通过mock所述RPC请求对应的RPC服务,获得模拟数据,具体包括:
所述处理模块获取为所述RPC请求构造的RPC服务模拟对象;
提取所述RPC请求中携带的参数;
将所述参数传入所述RPC服务模拟对象进行计算,得到模拟数据。
15.如权利要求12所述的装置,所述处理模块获得针对所述RPC请求的响应数据前,还执行:
确定本地能够mock所述RPC请求对应的RPC服务;
所述接收模块接收RPC请求后,所述处理模块还执行:
若确定本地不能够mock所述RPC请求对应的RPC服务,返回相应的提示信息。
16.如权利要求15所述的装置,所述处理模块返回相应的提示信息后,还执行:
接收并保存所述RPC请求的发送端发送的针对所述RPC请求的第二响应数据;
其中,所述第二响应数据获取自提供所述RPC服务的服务端。
17.如权利要求12~16任一项所述的装置,所述接收模块接收RPC请求,具体包括:
所述接收模块接收应用App的客户端发送的RPC请求。
18.一种远程过程调用RPC请求装置,包括:
发送模块,发送RPC请求给接收端;
接收模块,接收所述接收端返回的针对所述RPC请求的响应数据;
其中,所述响应数据是所述接收端通过mock所述RPC请求对应的RPC服务获得。
19.如权利要求18所述的装置,所述RPC请求的发送端上集成有动态库,用于支持所述发送端与所述接收端间进行通信。
20.如权利要求18所述的装置,所述发送模块发送RPC请求给接收端前,还执行:
确定已连接所述接收端;
所述发送模块还执行:
若未能连接所述接收端,则发送RPC请求给提供所述RPC服务的服务端;
所述接收模块接收所述服务端返回的针对所述RPC请求的第二响应数据。
21.如权利要求18所述的装置,所述发送模块发送RPC请求给接收端后,若所述接收模块接收到所述接收端返回的表示不能够mock所述RPC请求对应的RPC服务的提示信息,则所述发送模块发送RPC请求给提供所述RPC服务的服务端;
所述接收模块接收所述服务端返回的针对所述RPC请求的第二响应数据。
22.如权利要求20或21所述的装置,所述发送模块还执行:
将所述第二响应数据发送给所述接收端。
23.一种远程过程调用RPC请求处理设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收RPC请求;
通过mock所述RPC请求对应的RPC服务,获得针对所述RPC请求的响应数据并返回。
24.一种远程过程调用RPC请求设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
发送RPC请求给接收端;
接收所述接收端返回的针对所述RPC请求的响应数据;
其中,所述响应数据是所述接收端通过mock所述RPC请求对应的RPC服务获得。
CN201710815632.7A 2017-09-12 2017-09-12 Rpc请求、rpc请求处理方法、装置以及设备 Pending CN107733866A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710815632.7A CN107733866A (zh) 2017-09-12 2017-09-12 Rpc请求、rpc请求处理方法、装置以及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710815632.7A CN107733866A (zh) 2017-09-12 2017-09-12 Rpc请求、rpc请求处理方法、装置以及设备

Publications (1)

Publication Number Publication Date
CN107733866A true CN107733866A (zh) 2018-02-23

Family

ID=61205990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710815632.7A Pending CN107733866A (zh) 2017-09-12 2017-09-12 Rpc请求、rpc请求处理方法、装置以及设备

Country Status (1)

Country Link
CN (1) CN107733866A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829387A (zh) * 2018-06-07 2018-11-16 中国电子科技集团公司第四十研究所 一种基于Windows平台的RPC函数生成方法
CN110287039A (zh) * 2019-06-26 2019-09-27 网易无尾熊(杭州)科技有限公司 模拟接口配置方法、介质、装置和计算设备
CN111629014A (zh) * 2019-02-27 2020-09-04 北京嘀嘀无限科技发展有限公司 请求代理实现方法、实现装置、服务器和存储介质
CN113746851A (zh) * 2021-09-08 2021-12-03 上海幻电信息科技有限公司 一种支持实时解析grpc请求的代理系统和方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1744055A (zh) * 2004-09-04 2006-03-08 华为技术有限公司 一种软件测试方法
CN103580937A (zh) * 2012-07-24 2014-02-12 阿里巴巴集团控股有限公司 一种Web 服务模拟的方法及其系统和服务代理系统
CN103729294A (zh) * 2013-12-30 2014-04-16 金蝶软件(中国)有限公司 应用软件性能脚本测试方法与装置
CN105391683A (zh) * 2015-09-30 2016-03-09 小米科技有限责任公司 远程方法调用的方法、装置及系统
CN105868104A (zh) * 2016-03-24 2016-08-17 积成电子股份有限公司 一种跨平台的图形用户界面自动测试方法
CN106357654A (zh) * 2016-09-27 2017-01-25 青岛海信电器股份有限公司 远程过程调用方法、装置及通信系统
CN106878045A (zh) * 2016-10-11 2017-06-20 阿里巴巴集团控股有限公司 业务调用方法及装置
CN106970873A (zh) * 2017-01-10 2017-07-21 阿里巴巴集团控股有限公司 线上mock测试方法、装置及系统
CN107122292A (zh) * 2016-10-21 2017-09-01 北京小度信息科技有限公司 一种模拟服务的方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1744055A (zh) * 2004-09-04 2006-03-08 华为技术有限公司 一种软件测试方法
CN103580937A (zh) * 2012-07-24 2014-02-12 阿里巴巴集团控股有限公司 一种Web 服务模拟的方法及其系统和服务代理系统
CN103729294A (zh) * 2013-12-30 2014-04-16 金蝶软件(中国)有限公司 应用软件性能脚本测试方法与装置
CN105391683A (zh) * 2015-09-30 2016-03-09 小米科技有限责任公司 远程方法调用的方法、装置及系统
CN105868104A (zh) * 2016-03-24 2016-08-17 积成电子股份有限公司 一种跨平台的图形用户界面自动测试方法
CN106357654A (zh) * 2016-09-27 2017-01-25 青岛海信电器股份有限公司 远程过程调用方法、装置及通信系统
CN106878045A (zh) * 2016-10-11 2017-06-20 阿里巴巴集团控股有限公司 业务调用方法及装置
CN107122292A (zh) * 2016-10-21 2017-09-01 北京小度信息科技有限公司 一种模拟服务的方法及系统
CN106970873A (zh) * 2017-01-10 2017-07-21 阿里巴巴集团控股有限公司 线上mock测试方法、装置及系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829387A (zh) * 2018-06-07 2018-11-16 中国电子科技集团公司第四十研究所 一种基于Windows平台的RPC函数生成方法
CN108829387B (zh) * 2018-06-07 2021-10-08 中国电子科技集团公司第四十一研究所 一种基于Windows平台的RPC函数生成方法
CN111629014A (zh) * 2019-02-27 2020-09-04 北京嘀嘀无限科技发展有限公司 请求代理实现方法、实现装置、服务器和存储介质
CN111629014B (zh) * 2019-02-27 2023-03-24 北京嘀嘀无限科技发展有限公司 请求代理实现方法、实现装置、服务器和存储介质
CN110287039A (zh) * 2019-06-26 2019-09-27 网易无尾熊(杭州)科技有限公司 模拟接口配置方法、介质、装置和计算设备
CN113746851A (zh) * 2021-09-08 2021-12-03 上海幻电信息科技有限公司 一种支持实时解析grpc请求的代理系统和方法
CN113746851B (zh) * 2021-09-08 2023-08-18 上海幻电信息科技有限公司 一种支持实时解析grpc请求的代理系统和方法

Similar Documents

Publication Publication Date Title
CN106970873B (zh) 线上mock测试方法、装置及系统
CN107733866A (zh) Rpc请求、rpc请求处理方法、装置以及设备
CN108345535A (zh) mock测试方法、装置及设备
CN107122289A (zh) 系统回归测试的方法、装置及系统
CN109857404B (zh) Sdk接口的封装方法及装置、存储介质、电子设备
CN108345511A (zh) 一种应用数据校验方法、装置及电子设备
CN108549562A (zh) 一种图像加载的方法及装置
CN108282518A (zh) 一种客户端页面生成方法和装置
CN107203465A (zh) 系统接口测试方法及装置
CN109947643A (zh) 一种基于a/b测试的实验方案的配置方法、装置及设备
CN108228444A (zh) 一种测试方法和装置
US10169193B2 (en) Common debug scripting framework for driving hybrid applications consisting of compiled languages and interpreted languages
CN107102950A (zh) 一种应用程序测试方法和装置
CN111881051A (zh) 测试用例的生成方法、装置、终端及存储介质
CN113536174A (zh) 一种界面加载方法、装置及设备
CN110046052B (zh) 一种服务调用方法及装置
CN107450959A (zh) 一种版本数据发布、获取方法、设备及装置及更新系统
CN107908552A (zh) 一种基于链接的测试方法、装置及设备
CN109684103A (zh) 一种接口调用方法、装置、服务器及存储介质
CN109460312A (zh) 请求失败的处理方法及装置
CN109033456A (zh) 一种条件查询方法、装置、电子设备和存储介质
CN112565210A (zh) Cdn节点推荐方法、系统、电子设备及存储介质
CN114546823B (zh) 用于重现逻辑系统设计的调试场景的方法及相关设备
CN116628773A (zh) 数据处理方法、装置、电子设备及存储介质
CN109815116A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180223