CN113190464B - mock测试方法、装置、电子设备及介质 - Google Patents
mock测试方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN113190464B CN113190464B CN202110587863.3A CN202110587863A CN113190464B CN 113190464 B CN113190464 B CN 113190464B CN 202110587863 A CN202110587863 A CN 202110587863A CN 113190464 B CN113190464 B CN 113190464B
- Authority
- CN
- China
- Prior art keywords
- mock
- request
- network request
- response data
- local network
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 68
- 230000004044 response Effects 0.000 claims abstract description 56
- 230000006870 function Effects 0.000 claims description 41
- 238000000034 method Methods 0.000 claims description 22
- 235000014510 cooky Nutrition 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 description 15
- 238000011161 development Methods 0.000 description 14
- 230000018109 developmental process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 238000010998 test method Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 108010001267 Protein Subunits Proteins 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000008140 language development Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种mock测试方法、装置、电子设备及介质,涉及数据测试或接口测试领域。该mock测试方法应用于React Native框架,包括:客户端利用React Native框架中的fetch函数,发送调用服务端接口的全局网络请求;在全局网络请求中拦截本地网络请求,提取本地网络请求的输入参数,输入参数包括请求地址和配置对象;根据预先配置好的配置文件,判断请求地址中是否配置有mock服务接口;如果是,则接收请求地址通过mock服务接口返回的mock虚拟响应数据;否则,取消拦截本地网络请求数据,接收基于本地网络请求于服务端接口返回的真实响应数据。
Description
技术领域
本公开涉及数据测试或接口测试领域,尤其涉及一种mock测试方法、装置、电子设备及介质。
背景技术
mock测试是软件工程中常见的调试手段,使用虚拟的对象来模拟不同意构造或不容易获取的对象,以达到更高的测试覆盖率。mock测试主要用前后端分离的项目中,前端页面开发利用mock测试调用一个虚拟的接口,模拟接口的返回数据,不依赖外部的交互,即可完成页面内容的开发。
目前,行内网页端应用前后分离使用mock.js来完成虚拟接口的处理,mock.js的mock方式是通过在前端代码里面进行js的代码编写进行mock,但其使用场景有限,例如在黑盒测试和联调的场景中不可使用。而且,mock的数据通过开发来维护,对于表格等复杂的数据进行mock时,需要对复杂的规则进行理解并适配才可以解析,mock.js依赖js代码,支持度不高。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:在使用跨平台框架React Native开发移动端页面时,由于在移动端React Native框架中无法使用mock.js,也没有其他开源的可在React Native中使用的mock测试方法,更加需要一种成熟的mock测试方法来解决移动端React Native框架下存在的后端接口不稳定或者第三方接口复杂等问题。
发明内容
针对现有技术的上述不足,本公开提供了一种mock测试方法、装置、电子设备及介质。
本公开的一方面提供了一种mock测试方法,应用于React Native框架,包括:客户端利用React Native框架中的fetch函数,发送调用服务端接口的全局网络请求;在全局网络请求中拦截本地网络请求,提取本地网络请求的输入参数,输入参数包括请求地址和配置对象;根据预先配置好的配置文件,判断请求地址中是否配置有mock服务接口;如果是,则接收请求地址通过mock服务接口返回的mock虚拟响应数据;否则,取消拦截本地网络请求数据,接收基于本地网络请求于服务端接口返回的真实响应数据。
根据本公开的实施例,mock服务接口为根据配置文件预先定义的虚拟服务接口,定义的虚拟服务接口可按照配置文件中的mock规则生成指定类型的mock虚拟响应数据。
根据本公开的实施例,接收请求地址通过mock服务接口返回的mock虚拟响应数据,包括:请求地址通过mock服务接口生成对应的mock虚拟响应数据,将生成的mock虚拟响应数据推送至客户端,以使客户端使用mock虚拟响应数据进行测试。
根据本公开的实施例,客户端包括移动端。
根据本公开的实施例,请求地址为URL或域名,配置对象包括Headers、Cookies或StatusCode。
根据本公开的实施例,配置文件包括预先设定的请求协议和接口请求方式,其中:请求协议包括http、https或socket;接口请求方式包括GET、SET、POST或DELETE。
根据本公开的实施例,配置文件包括预先约定的请求字段信息、返回字段信息、枚举字段信息、生成规则字段的生成规则或生成mock虚拟响应数据的mock规则。
根据本公开的实施例,配置文件还包括场景参数,配置文件中还配置有不同场景参数对应的不同mock规则。
根据本公开的实施例,React Native框架中的fetch函数内置一拦截函数,用于对本地网络请求中的第一预设网络请求不进行拦截。
根据本公开的实施例,React Native框架中的fetch函数内置一定时器,用于检测本地网络请求中的第二预设网络请求返回响应数据的时长。
根据本公开的实施例,方法还包括:判断第二预设网络请求返回响应数据的时长是否超过预设时长阈值,如果是,则对第二预设网络请求按照预设时长阈值进行延迟请求。
本公开的另一方面提供了一种mock测试装置,应用于React Native框架,包括:请求调用模块,用于客户端利用React Native框架中的fetch函数,发送调用服务端接口的全局网络请求;拦截提取模块,用于在全局网络请求中拦截本地网络请求,提取本地网络请求的输入参数,输入参数包括请求地址和配置对象;接口判断模块,用于根据预先配置好的配置文件,判断请求地址中是否配置有mock服务接口;以及响应接收模块,用于在判断结果为是时,则接收请求地址通过mock服务接口返回的mock虚拟响应数据;否则,取消拦截本地网络请求数据,接收基于本地网络请求于服务端接口返回的真实响应数据。
本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如上所述的mock测试方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的mock测试方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的mock测试方法。
与现有技术相比,本公开提供的mock测试方法、装置、电子设备及介质,至少具有以下有益效果:
(1)本公开用于React Native移动端可简单使用的mock技术来实现移动端开发前后端分离,提升开发效率;
(1)本公开提供公共配置项,可实现多个接口使用不同的数据(包括mock虚拟响应数据或真实响应数据),做到mock请求和真实请求一键切换,方便后期对真实接口数据的调试;
(2)本公开可以根据预先配置好的配置文件自定义mock数据,提供数据随机生成功能,本公开可以针对商业银行的不同业务场景,提供多数据随机生成函数,方便配置及调用;
(3)本公开支持对公共fetch请求函数进行定制配置,对特定的URL请求不进行拦截,请求延迟,模拟真实网络环境中延迟,方便不同场景异常处理以及代理配置。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的mock测试方法及装置的示例性系统架构;
图2示意性示出了根据本公开实施例的mock测试方法的流程图;
图3示意性示出了根据本公开实施例的mock测试方法的操作流程图;
图4示意性示出了根据本公开实施例的mock测试方法的网络请求到数据接收的设置过程;
图5示意性示出了根据本公开实施例的mock测试装置的框图;以及
图6示意性示出了根据本公开实施例的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
在详细描述本公开的具体实施例之前,首先对技术术语进行阐释,以便于更好地理解本公开。
mock测试:在单元测试中,测试系统通过构造一系列符合预定义规则的模拟对象(Mock Object)来与被测试单元进行交互,从而判断被测试单元在正常逻辑、异常逻辑或压力情况下能够正常工作,返回预期的输出结果。mock测试的目的是方便前期接口调研、规划,以及前后端联调。
API:应用程序接口(Application Program Interface),是一组定义、程序及协议的集合,通过API接口实现计算机软件之间的相互通信。API的一个主要功能是提供通用功能集。程序员通过使用API函数开发应用程序,从而可以避免编写无用程序,以减轻编程任务。
React Native:facebook对外公开的框架,允许使用React.js开发原生Android和IOS应用。
随着计算机软件技术的发展,移动应用的开发变得越来越热门,在手机等移动端上操作应用更加的方便快捷。开发移动APP的技术分很多种,有基于原生开发的,如Android系统采用java语言开发,而IOS系统则使用的是object-c和swift,即要针对这两个移动端系统分别编和维护一套代码,这样大大提高了开发成本和难度。而facebook推出的ReactNative不仅跨平台,性能和native应用又极为接近,可以实现一次编写,到处运行。
由此,本公开实施例提供一种mock测试方法,基于在React Native移动端可简单使用的mock技术来实现移动端开发前后端分离,并且支持自定义mock虚拟响应数据,支持对公共fetch请求进行定制配置,提升开发效率。
本公开的实施例提供了一种mock测试方法及装置,应用于React Native框架。该方法包括:客户端利用React Native框架中的fetch函数,发送调用服务端接口的全局网络请求;在全局网络请求中拦截本地网络请求,提取本地网络请求的输入参数,输入参数包括请求地址和配置对象;根据预先配置好的配置文件,判断请求地址中是否配置有mock服务接口;如果是,则接收请求地址通过mock服务接口返回的mock虚拟响应数据;否则,取消拦截本地网络请求数据,接收基于本地网络请求于服务端接口返回的真实响应数据。
图1示意性示出了根据本公开实施例的可以应用mock测试方法及装置的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据本公开实施例的该示例性系统架构100可以包括客户端110、网络120和服务端130,网络120用以在客户端110和服务端130之间提供通信链路的介质。网络120可以包括各种连接类型,例如有线和/或无线通信链路等等。
客户端110可以是支持网页浏览的各种电子终端设备,包括但不限于智能手机(例如Android手机或iOS手机)、平板电脑、笔记本电脑、膝上型便携计算机和台式计算机等,也可以是穿戴式智能设备等其他电子终端设备。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
客户端110用于执行前端代码,服务端130用于执行后台代码,为前端代码的实现提供数据服务。
前端代码和后台代码的开发均按照约定的接口文档进行,后台服务器首先根据约定的接口文档定义mock服务接口,该mock服务接口能够生成约定的mock虚拟响应数据,前端根据mock服务器生成的mock虚拟响应数据进行前端代码测试。
需要说明的是,本公开实施例所提供的mock测试方法可以由客户端110执行,或者也可以由不同于客户端110的其他用户终端执行。相应地,本公开实施例所提供的mock测试装置可以设置于客户端110中,或设置于不同于客户端110的其他用户终端中。
应该理解,图1中的客户端、网络和服务端的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端、网络和服务端。
图2示意性示出了根据本公开实施例的mock测试方法的流程图。图3示意性示出了根据本公开实施例的mock测试方法的操作流程图。图4示意性示出了根据本公开实施例的mock测试方法的网络请求到数据接收的设置过程。
以下结合图3和图4,对图2所示的mock测试方法流程做进一步详细说明。
本公开实施例中,mock测试方法应用于React Native框架,该方法可以包括操作S201~S204。
在操作S201,客户端利用React Native框架中的fetch函数,发送调用服务端接口的全局网络请求。
fetch函数:当用户通过客户端的网页发送请求时,通常会通过调用由客户端应用接口API提供的原生的fetch函数来进行,fetch函数是客户端的网页浏览器提供的底层的用于异步获取服务器数据的API,可以用来发起对远程资源的请求。全局网络请求是指所有调用该fetch函数的请求。
本公开实施例中,客户端包括移动端,不限于IOS系统和Android系统的移动客户端。需要说明的是,对于React Native框架的客户端,一套代码可以在IOS系统和Android系统下通用。
在操作S202,在全局网络请求中拦截本地网络请求,提取本地网络请求的输入参数,输入参数包括请求地址和配置对象。
在监控到客户端发送的全局网络请求后,拦截客户端本地所在的本地网络请求,提取该本地网络请求的输入参数。其中,输入参数包括请求地址和配置对象。
本公开实施例中,请求地址可以为网址的统一资源定位符(uniform resourcelocator,URL)或域名。配置对象包括与本地网络请求相关的其他各种参数,例如Headers、Cookies或StatusCode。
在操作S203,根据预先配置好的配置文件,判断请求地址中是否配置有mock服务接口。
本公开的实施例,配置文件包括预先设定的请求协议和接口请求方式,其中:请求协议包括http、https或socket;接口请求方式包括GET、SET、POST或DELETE。
本公开实施例中,mock服务接口为根据配置文件预先定义的虚拟服务接口,定义的虚拟服务接口可按照配置文件中的mock规则生成指定类型的mock虚拟响应数据。
配置有mock服务接口的本地网络请求即为mock模式网络请求,本地网络请求中携带能够表征当前网络请求是否为mock模式网络请求的信息。具体来说,该表征模式的信息体现在当前网络请求所携带的地址信息中。在一个实施例中,对应同一个数据请求,MOCK模式网络请求(以下简称mock模式)和非MOCK模式网络请求(以下简称非mock模式)所携带的请求地址中除表征模式的信息外,其余部分是相同的。
具体来说,由于请求地址包括URL或域名,例如,如果在预先配置好的配置文件设定A代表MOCK模式,B代表非MOCK模式,则MOCK模式下的地址信息可以为http://abc.123.256.efg:8765/A/,非MOCK模式下的地址信息可以为http://abc.123.256.efg:8765/B/。又例如,还可以在预先配置好的配置文件中通过请求地址中的域名区分MOCK模式网络请求和非MOCK模式网络请求的信息。
本公开实施例中,预先配置好的配置文件为根据开发和测试需求预先设定的文档。在一些实施例中,该配置文件可以包括预先约定的请求字段信息、返回字段信息、枚举字段信息、生成规则字段的生成规则以及生成mock虚拟响应数据的mock规则等约定的信息。
其中,请求字段信息可以包括请求字段的名称、字段的类型、字段长度、字段字义、网络请求类型或数据类型;返回字段信息可以包括返回字段的名称、字段的类型、字段的长度、字段字义或数据类型。对于枚举字段,文档中列举所有的枚举值;对于有生成规则的字段,注明生成规则,如编号根据时间20160822,数据记录唯一编号GUID等。
相应的,MOCK规则指的是虚拟服务根据一定的规则生成虚拟数据。当本地网络请求需要生成包含某一个或几个相同或不同字段信息的字段文件时,例如可以设定以下MOCK规则(仅为示例):
(1)@MOCK=@WORD可以随机生成字符;或
(2)@MOCK=TRUE可以生成boolean类型的数据默认为true;或
(3)@MOCK=$ORDER(“一月”,“二月”,“三月”)可以随机任取枚举中的一个值。
mock服务接口根据配置文件预先设置,并且能够在配置文件中的mock规则自定义修改。
根据预先配置好的配置文件定义MOCK服务接口,定义的MOCK服务接口可按照配置文件中的约定生成指定类型的数据。例如,当本地网络请求的输入参数指定数据范围时(例如起始日期和结束日期),则生成与该指定数据范围内的mock虚拟响应数据。
本公开实施例中,配置文件还包括场景参数,配置文件中还配置有不同场景参数对应的不同mock规则。其中,场景参数可以为不同的场景需求下,对应的不同的Mock数据结构参数等。或者,该场景参数可以为不同的场景需求下,获取或生成对应的不同的Mock数据结构参数的函数名称等。
通过本公开的实施例,可以根据开发和测试需求在配置文件中自定义mock虚拟响应数据,提供mock虚拟响应数据的随机生成功能。由此,本公开可以针对商业银行的不同业务场景,提供多数据随机生成函数,方便配置及调用。
在操作S204,如果是,则接收请求地址通过mock服务接口返回的mock虚拟响应数据;否则,取消拦截本地网络请求数据,接收基于本地网络请求于服务端接口返回的真实响应数据。
如果是,也即服务端通过请求地址可在预先设置好的配置文件中查找到对应的预先定义的mock服务接口。
本公开实施例中,接收请求地址通过mock服务接口返回的mock虚拟响应数据,包括:请求地址通过mock服务接口生成对应的mock虚拟响应数据,将生成的mock虚拟响应数据推送至客户端,以使客户端使用mock虚拟响应数据进行测试。
以上只是示例性说明,本公开的实施例不限于此。例如,在一些实施例中,ReactNative框架中的fetch函数内置一拦截函数,用于对本地网络请求中的第一预设网络请求不进行拦截。
又例如,在一些实施例中,React Native框架中的fetch函数内置一定时器,用于检测本地网络请求中的第二预设网络请求返回响应数据的时长。
在fetch函数内置一定时器的前提下,根据本公开的实施例,mock测试方法还可以包括:
判断第二预设网络请求返回响应数据的时长是否超过预设时长阈值,如果是,则对第二预设网络请求按照预设时长阈值进行延迟请求。
预设时长阈值用于评判任务的处理是否处于异常时长。该预设时长阈值可根据历史统计出的完成任务的处理所需的平均时长而设置的时长,可为超过该平均时长一定大小的时长。比如处理一个任务的平均时长为5分钟,则可设置该时长阀值可为8分钟或10分钟等。
通过本公开的实施例,在fetch函数内部预定义的拦截函数或定时器,通过改写用户终端的fetch函数,本公开能够支持对公共fetch请求函数进行定制配置,对特定的URL请求不进行拦截,请求延迟,模拟真实网络环境中延迟,方便不同场景异常处理以及代理配置。
由于在前述测试的过程中,需要进行修改自定义的都是配置文件或fetch请求函数,并没有对业务代码进行改动,也不需要在业务代码中修改相应的配置文件,灵活性强,方便自行维护和扩展。
图5示意性示出了根据本公开实施例的mock测试装置的框图。
如图5所示,mock测试装置500可以包括请求调用模块510、拦截提取模块520、接口判断模块530和响应接收模块540。
请求调用模块510,用于客户端利用React Native框架中的fetch函数,发送调用服务端接口的全局网络请求;
拦截提取模块520,用于在全局网络请求中拦截本地网络请求,提取本地网络请求的输入参数,输入参数包括请求地址和配置对象;
接口判断模块530,用于根据预先配置好的配置文件,判断请求地址中是否配置有mock服务接口;以及
响应接收模块540,用于在判断结果为是时,则接收请求地址通过mock服务接口返回的mock虚拟响应数据;否则,取消拦截本地网络请求数据,接收基于本地网络请求于服务端接口返回的真实响应数据。
需要说明的是,本公开的实施例中mock测试装置部分与本公开的实施例中mock测试方法部分是相对应的,mock测试装置部分的描述具体参考mock测试方法部分,在此不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,请求调用模块510、拦截提取模块520、接口判断模块530和响应接收模块540中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,请求调用模块510、拦截提取模块520、接口判断模块530和响应接收模块540中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,请求调用模块510、拦截提取模块520、接口判断模块530和响应接收模块540中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的电子设备的框图。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600包括处理器610、计算机可读存储介质620。该电子设备600可以执行根据本公开实施例的mock测试方法。
具体地,处理器610例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器610还可以包括用于缓存用途的板载存储器。处理器610可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质620,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质620可以包括计算机程序621,该计算机程序621可以包括代码/计算机可执行指令,其在由处理器610执行时使得处理器610执行根据本公开实施例的方法或其任何变形。
计算机程序621可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序621中的代码可以包括一个或多个程序模块,例如包括621A、模块621B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器610执行时,使得处理器610可以执行根据本公开实施例的方法或其任何变形。
根据本公开的实施例,请求调用模块510、拦截提取模块520、接口判断模块530和响应接收模块540中的至少一个可以实现为参考图6描述的计算机程序模块,其在被处理器610执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的mock测试方法。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (14)
1.一种mock测试方法,应用于React Native框架,其特征在于,包括:
客户端利用所述React Native框架中的fetch函数,发送调用服务端接口的全局网络请求;
在所述全局网络请求中拦截本地网络请求,提取所述本地网络请求的输入参数,所述输入参数包括请求地址和配置对象;
根据预先配置好的配置文件,判断所述请求地址中是否配置有mock服务接口;
如果是,则接收所述请求地址通过所述mock服务接口返回的mock虚拟响应数据;否则,取消拦截所述本地网络请求数据,接收基于所述本地网络请求于服务端接口返回的真实响应数据。
2.根据权利要求1所述的mock测试方法,其特征在于,所述mock服务接口为根据所述配置文件预先定义的虚拟服务接口,定义的虚拟服务接口可按照配置文件中的mock规则生成指定类型的mock虚拟响应数据。
3.根据权利要求1所述的mock测试方法,其特征在于,所述接收所述请求地址通过所述mock服务接口返回的mock虚拟响应数据,包括:
所述请求地址通过所述mock服务接口生成对应的mock虚拟响应数据,将生成的所述mock虚拟响应数据推送至所述客户端,以使所述客户端使用所述mock虚拟响应数据进行测试。
4.根据权利要求1所述的mock测试方法,其特征在于,所述客户端包括移动端。
5.根据权利要求1所述的mock测试方法,其特征在于,所述请求地址为URL或域名,所述配置对象包括Headers、Cookies或StatusCode。
6.根据权利要求1所述的mock测试方法,其特征在于,所述配置文件包括预先设定的请求协议和接口请求方式,其中:
所述请求协议包括http、https或socket;
所述接口请求方式包括GET、SET、POST或DELETE。
7.根据权利要求1所述的mock测试方法,其特征在于,所述配置文件包括预先约定的请求字段信息、返回字段信息、枚举字段信息、生成规则字段的生成规则或生成mock虚拟响应数据的mock规则。
8.根据权利要求7所述的mock测试方法,其特征在于,所述配置文件还包括场景参数,所述配置文件中还配置有不同场景参数对应的不同mock规则。
9.根据权利要求1所述的mock测试方法,其特征在于,所述React Native框架中的fetch函数内置一拦截函数,用于对所述本地网络请求中的第一预设网络请求不进行拦截。
10.根据权利要求1所述的mock测试方法,其特征在于,所述React Native框架中的fetch函数内置一定时器,用于检测所述本地网络请求中的第二预设网络请求返回响应数据的时长。
11.根据权利要求10所述的mock测试方法,其特征在于,所述方法还包括:
判断所述第二预设网络请求返回响应数据的时长是否超过预设时长阈值,如果是,则对所述第二预设网络请求按照预设时长阈值进行延迟请求。
12.一种mock测试装置,应用于React Native框架,包括:
请求调用模块,用于客户端利用所述React Native框架中的fetch函数,发送调用服务端接口的全局网络请求;
拦截提取模块,用于在所述全局网络请求中拦截本地网络请求,提取所述本地网络请求的输入参数,所述输入参数包括请求地址和配置对象;
接口判断模块,用于根据预先配置好的配置文件,判断所述请求地址中是否配置有mock服务接口;以及
响应接收模块,用于在判断结果为是时,则接收所述请求地址通过所述mock服务接口返回的mock虚拟响应数据;否则,取消拦截所述本地网络请求数据,接收基于所述本地网络请求于服务端接口返回的真实响应数据。
13.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至11中任一项所述的mock测试方法。
14.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1至11中任一项所述的mock测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110587863.3A CN113190464B (zh) | 2021-05-27 | 2021-05-27 | mock测试方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110587863.3A CN113190464B (zh) | 2021-05-27 | 2021-05-27 | mock测试方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113190464A CN113190464A (zh) | 2021-07-30 |
CN113190464B true CN113190464B (zh) | 2024-02-06 |
Family
ID=76985506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110587863.3A Active CN113190464B (zh) | 2021-05-27 | 2021-05-27 | mock测试方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113190464B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113704657A (zh) * | 2021-08-30 | 2021-11-26 | 平安普惠企业管理有限公司 | 前端部署方法、装置、设备及存储介质 |
CN114238099B (zh) * | 2021-12-09 | 2022-08-09 | 北京五八信息技术有限公司 | 灰度测试的方法、装置、电子设备以及可读介质 |
CN114650276A (zh) * | 2022-02-24 | 2022-06-21 | 北京健康之家科技有限公司 | 业务请求处理方法、电子设备终端及存储介质 |
CN114416602B (zh) * | 2022-03-30 | 2022-07-05 | 互联网域名系统北京市工程研究中心有限公司 | 基于Netty实现Restful接口模拟测试服务的方法及装置 |
CN114978970B (zh) * | 2022-04-07 | 2023-11-24 | 上海钧正网络科技有限公司 | 基于自定义mock平台的数据测试系统、方法、设备及介质 |
CN114840275A (zh) * | 2022-04-15 | 2022-08-02 | 携程旅游网络技术(上海)有限公司 | 接口管理方法、系统、计算机设备和存储介质 |
CN117251385B (zh) * | 2023-11-20 | 2024-04-02 | 深圳大道云科技有限公司 | mock数据的获取方法、装置、终端设备和可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528400A (zh) * | 2016-09-22 | 2017-03-22 | 深圳峰创智诚科技有限公司 | Mock测试方法和装置 |
CN112131118A (zh) * | 2020-09-25 | 2020-12-25 | 平安国际智慧城市科技股份有限公司 | Mock测试方法、装置、电子设备及计算机可读存储介质 |
-
2021
- 2021-05-27 CN CN202110587863.3A patent/CN113190464B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528400A (zh) * | 2016-09-22 | 2017-03-22 | 深圳峰创智诚科技有限公司 | Mock测试方法和装置 |
CN112131118A (zh) * | 2020-09-25 | 2020-12-25 | 平安国际智慧城市科技股份有限公司 | Mock测试方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113190464A (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113190464B (zh) | mock测试方法、装置、电子设备及介质 | |
US10997063B1 (en) | System testing from production transactions | |
CN110442524B (zh) | 一种针对带有认证授权的web服务接口测试方法和装置 | |
US9015832B1 (en) | Application auditing through object level code inspection | |
US10915637B2 (en) | Method, client, and system for testing application | |
EP3213193B1 (en) | Monitoring and correlating a binary process in a distributed business transaction | |
CN108255701B (zh) | 场景测试方法及移动终端 | |
CN109873735B (zh) | H5页面的性能测试方法、装置和计算机设备 | |
US9357366B2 (en) | Auditing of mobile applications | |
US10084637B2 (en) | Automatic task tracking | |
CN107644075B (zh) | 收集页面信息的方法和装置 | |
CN113127361B (zh) | 应用程序的开发方法、装置、电子设备和存储介质 | |
CN105573733A (zh) | 浏览器与web前端通信的方法、web前端及系统 | |
US10027692B2 (en) | Modifying evasive code using correlation analysis | |
CN111625464A (zh) | 接口的测试方法、装置、存储介质和处理器 | |
WO2020245504A1 (en) | Method and system for integration testing | |
CN114189553B (zh) | 一种流量回放方法、系统及计算设备 | |
CN114546676A (zh) | 云桌面文件拷贝方法、装置和设备 | |
CN112965916B (zh) | 页面测试方法、页面测试装置、电子设备及可读存储介质 | |
CN113362173A (zh) | 防重机制验证方法、验证系统、电子设备及存储介质 | |
CN111953718B (zh) | 一种页面调试方法和装置 | |
CN114915565B (zh) | 网络调试的方法和系统 | |
CN112131095B (zh) | 压力测试方法和装置 | |
CN109756393B (zh) | 信息处理方法、系统、介质和计算设备 | |
CN110995813B (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 | ||
GR01 | Patent grant |