一种远程mock测试方法及装置的制造方法

xiaoxiao2020-10-23  18

一种远程mock测试方法及装置的制造方法
【技术领域】
[0001]本发明涉及软件测试技术领域,具体涉及一种远程mock测试方法及装置。
【背景技术】
[0002]mock测试方法就是在软件测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。
[0003]现有mock测试方法通常用于单机执行的单元测试或者功能测试中。而接口测试则是通过远程调用接口的方式进行测试,通常是发送http请求来实现。
[0004]因此,现有mock测试方法在接口测试情况下,无法通过虚拟对象来构造各种数据和业务场景,导致现有mock测试方法无法远程mock对象的问题。

【发明内容】

[0005]本发明所要解决的技术问题是现有mock测试方法在接口测试情况下,无法通过虚拟对象来构造各种数据和业务场景,导致现有mock测试方法无法远程mock对象的问题。
[0006]为此目的,第一方面,本发明提出一种远程mock测试方法,包括:
[0007]部署在本地服务器上的测试程序根据预设的测试内容,创建用于mock对象的程序文件;
[0008]所述测试程序调用部署在所述本地服务器的虚拟机上的远程服务程序,以使所述远程服务程序加载所述用于mock对象的程序文件;
[0009]所述测试程序接收所述远程服务程序返回的加载结果;
[0010]所述测试程序判断所述加载结果是否满足预期加载结果,以实现远程mock测试。
[0011]可选的,所述部署在本地服务器上的测试程序根据预设的测试内容,创建用于mock对象的程序文件,包括:
[0012]部署在本地服务器上的测试程序根据预设的测试内容,通过所述本地服务器的文件系统,在所述本地服务器的虚拟机的文件访问路径上或在指定路径上,创建用于mock对象的程序文件,其中,所述指定路径为所述远程服务程序加载程序的路径。
[0013]可选的,所述测试程序判断所述加载结果是否满足预期加载结果,以实现远程mock测试,包括:
[0014]若满足预期加载结果,则提示测试成功;
[0015]若不满足预期加载结果,则提示测试失败。
[0016]可选的,在提示测试成功的步骤之后,所述方法还包括:
[0017]所述测试程序删除所述用于mock对象的程序文件。
[0018]可选的,所述测试程序调用部署在所述本地服务器的虚拟机上的远程服务程序,包括:
[0019]所述测试程序通过http请求调用部署在所述本地服务器的虚拟机上的远程服务程序。
[0020]第二方面,本发明还提出一种远程mock测试装置,所述装置部署在本地服务器中,所述装置包括:
[0021]创建单元,用于根据预设的测试内容,创建用于mock对象的程序文件;
[0022]调用单元,用于调用部署在所述本地服务器的虚拟机上的远程服务程序,以使所述远程服务程序加载所述用于mock对象的程序文件;
[0023]接收单元,用于接收所述远程服务程序返回的加载结果;
[0024]判断单元,用于判断所述接收单元接收到的加载结果是否满足预期加载结果。
[0025]可选的,所述创建单元,具体用于:
[0026]根据预设的测试内容,通过所述本地服务器的文件系统,在所述本地服务器的虚拟机的文件访问路径上或在指定路径上,创建用于mock对象的程序文件,其中,所述指定路径为所述远程服务程序加载程序的路径。
[0027]可选的,所述装置还包括:提示单元,用于在所述判断单元判定加载结果满足预期加载结果时,提示测试成功;
[0028]所述提示单元,还用于在所述判断单元判定加载结果不满足预期加载结果时,提示测试失败。
[0029]可选的,所述装置还包括:删除单元,用于:
[0030]在所述提示单元提示测试成功之后,删除所述用于mock对象的程序文件。
[0031]可选的,所述调用单元,具体用于:
[0032]通过http请求调用部署在所述本地服务器的虚拟机上的远程服务程序。
[0033]相比于现有技术,本发明的远程mock测试方法及装置,将测试程序直接部署在本地服务器上,远程服务程序部署在本地服务器的虚拟机上,实现了远程环境的隔离,虚拟机不会和测试程序所在环境相互影响,而且虚拟机作为远程接口的调用完全可以模拟真实的生产环境,保持测试的仿真性,解决了现有mock测试方法在接口测试情况下,无法像在单元测试情况下通过虚拟对象来构造各种数据和业务场景,导致现有mock测试方法无法远程mock对象的问题,即很难覆盖到所有的代码逻辑的问题。
【附图说明】
[0034]图1为本公开实施例提供的一种远程mock测试方法流程图;
[0035]图2为本公开实施例提供的一种测试程序判断加载结果是否满足预期加载结果,以实现远程mock测试的流程图;
[0036]图3为本公开实施例提供的一种远程mock测试系统结构图。
【具体实施方式】
[0037]为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0038]如图1所示,本实施例公开一种远程mock测试方法,该方法可包括以下步骤101至 104:
[0039]101、部署在本地服务器上的测试程序根据预设的测试内容,创建用于mock对象的程序文件;
[0040]102、测试程序调用部署在本地服务器的虚拟机上的远程服务程序,以使远程服务程序加载用于mock对象的程序文件;
[0041]103、测试程序接收远程服务程序返回的加载结果;
[0042]104、测试程序判断加载结果是否满足预期加载结果,以实现远程mock测试。
[0043]上述实施例中的远程mock测试方法,将测试程序直接部署在本地服务器上,远程服务程序部署在本地服务器的虚拟机上,虚拟机实现了远程环境的隔离,不会和测试程序所在环境相互影响,而且作为远程接口的调用完全可以模拟真实的生产环境,保持测试的仿真性,解决了现有mock测试方法在接口测试情况下,无法像在单元测试情况下通过虚拟对象来构造各种数据和业务场景,导致现有mock测试方法无法远程mock对象的问题,即很难覆盖到所有的代码逻辑的问题。
[0044]在一个具体的例子中,步骤101,包括:
[0045]部署在本地服务器上的测试程序根据预设的测试内容,通过本地服务器的文件系统,在本地服务器的虚拟机的文件访问路径上或在指定路径上,创建用于mock对象的程序文件,其中,指定路径为远程服务程序加载程序的路径。
[0046]上述实施例中的远程mock测试方法,由于虚拟机部署在测试程序所在的本地服务器,测试程序与远程服务程序可以通过文件系统实现交互,测试程序执行时可以动态创建所需要的mock程序给远程服务程序加载调用,提高了测试程序的灵活性。
[0047]在一个具体的例子中,如图2所示,步骤104中包括以下步骤1041至1043:
[0048]1041、测试程序判断加载结果是否满足预期加载结果,若满足预期加载结果,则执行步骤1042 ;若不满足预期加载结果,则执行步骤1043 ;
[0049]1042、提示测试成功;
[0050]1043、提示测试失败。
[0051]在一个具体的例子中,在步骤1042之后,上述远程mock测试方法还可包括图2中未示出的步骤105:
[0052]105、测试程序删除用于mock对象的程序文件。
[0053]上述实施例中的远程mock测试方法,将用于mock对象的程序文件删除就不会影响接口服务的其他调用结果。测试中对于测试程序而言,mock的动作和单元测试相同,不需要关心接口服务如何调用。接口服务也不需要了解测试程序的执行情况,只要按照mock文件的逻辑执行就可以。
[0054]在一个具体的例子中,步骤102,包括:
[0055]测试程序通过http请求调用部署在本地服务器的虚拟机上的远程 服务程序。
[0056]上述实施例中的远程mock测试方法,虽然双方是通过http请求的方式进行调用服务,但是通过底层文件系统实现了控制。
[0057]举例来说,远程服务程序为接口服务程序A,A的功能是返回员工的详细信息,当测试程序B发送A的接口请求时,B需要将员工X的ID作为参数,A收到请求时,会调用代码的一个方法getlnfoBylD去查询数据库,将查出的员工x的详细信息返回给B。
[0058]举例来说,测试程序B需要测试一个异常情况,即当数据库连接有问题时,接口服务程序A返回一个错误消息,比如“connect database fail”。则B在发送请求前,生成一个mock的代码文件到A指定的目录下,B再发送请求,A收到请求加载mock的代码文件执行,mock出新的方法getlnfoBylD让它返回一个模拟的数据库的连接错误。A返回“connectdatabase fail”的错误信息给B,B收到结果后判断符合预期,测试成功,删除刚才生成的mock文件,结束测试。
[0059]如图3所示,本实施例公开一种远程mock测试装置,所述装置部署在本地服务器中,所述装置可包括:创建单元31、调用单元32、接收单元33以及判断单元34。
[0060]创建单元31,用于根据预设的测试内容,创建用于mock对象的程序文件;
[0061]调用单元32,用于调用部署在本地服务器的虚拟机上的远程服务程序,以使远程服务程序加载用于mock对象的程序文件;
[0062]接收单元33,用于接收远程服务器程序返回的加载结果;
[0063]判断单元34,用于判断接收单元33接收到的加载结果是否满足预期加载结果。
[0064]在一个具体的例子中,创建单元31,具体用于:
[0065]根据预设的测试内容,通过本地服务器的文件系统,在本地服务器的虚拟机的文件访问路径上或在指定路径上,创建用于mock对象的程序文件,其中,指定路径为所述远程服务程序加载程序的路径。
[0066]在一个具体的例子中,上述远程mock测试装置还可包括图3中未示出的提示单元35 ;
[0067]所述提示单元35,用于在判断单元34判定加载结果满足预期加载结果之后,提示测试成功以及在判断单元34判定加载结果不满足预期加载结果之后,提示测试失败。
[0068]在一个具体的例子中,上述远程mock测试装置还可包括图3中未示出的删除单元36,用于在提示单元35提示测试成功之后,删除用于mock对象的程序文件。
[0069]在一个具体的例子中,调用单元32,具体用于:通过http请求调用部署在本地服务器的虚拟机上的远程服务程序。
[0070]本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是互相排斥之处,可以采用任何组合对本说明书中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0071]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。
[0072]本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开实施例的一种浏览器终端的设备中的一些或者全部部件的一些或者全部功能。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0073]虽然结合附图描述了本公开的实施方式,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
【主权项】
1.一种远程mock测试方法,其特征在于,包括: 部署在本地服务器上的测试程序根据预设的测试内容,创建用于mock对象的程序文件; 所述测试程序调用部署在所述本地服务器的虚拟机上的远程服务程序,以使所述远程服务程序加载所述用于mock对象的程序文件; 所述测试程序接收所述远程服务程序返回的加载结果; 所述测试程序判断所述加载结果是否满足预期加载结果,以实现远程mock测试。2.根据权利要求1所述的方法,其特征在于,所述部署在本地服务器上的测试程序根据预设的测试内容,创建用于mock对象的程序文件,包括: 部署在本地服务器上的测试程序根据预设的测试内容,通过所述本地服务器的文件系统,在所述本地服务器的虚拟机的文件访问路径上或在指定路径上,创建用于mock对象的程序文件,其中,所述指定路径为所述远程服务程序加载程序的路径。3.根据权利要求1或2所述的方法,其特征在于,所述测试程序判断所述加载结果是否满足预期加载结果,以实现远程mock测试,包括: 若满足预期加载结果,则提示测试成功; 若不满足预期加载结果,则提示测试失败。4.根据权利要求3所述的方法,其特征在于,在提示测试成功的步骤之后,所述方法还包括: 所述测试程序删除所述用于mock对象的程序文件。5.根据权利要求1或2所述的方法,其特征在于,所述测试程序调用部署在所述本地服务器的虚拟机上的远程服务程序,包括: 所述测试程序通过http请求调用部署在所述本地服务器的虚拟机上的远程服务程序。6.一种远程mock测试装置,其特征在于,所述装置部署在本地服务器中,所述装置包括: 创建单元,用于根据预设的测试内容,创建用于mock对象的程序文件; 调用单元,用于调用部署在所述本地服务器的虚拟机上的远程服务程序,以使所述远程服务程序加载所述用于mock对象的程序文件; 接收单元,用于接收所述远程服务程序返回的加载结果; 判断单元,用于判断所述接收单元接收到的加载结果是否满足预期加载结果。7.根据权利要求6所述的装置,其特征在于,所述创建单元,具体用于: 根据预设的测试内容,通过所述本地服务器的文件系统,在所述本地服务器的虚拟机的文件访问路径上或在指定路径上,创建用于mock对象的程序文件,其中,所述指定路径为所述远程服务程序加载程序的路径。8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:提示单元,用于在所述判断单元判定加载结果满足预期加载结果时,提示测试成功; 所述提示单元,还用于在所述判断单元判定加载结果不满足预期加载结果时,提示测试失败。9.根据权利要求8所述的装置,其特征在于,所述装置还包括:删除单元,用于:在所述提示单元提示测试成功之后,删除所述用于mock对象的程序文件。10.根据权利要求6或7所述的装置,其特征在于,所述调用单元,具体用于:通过http请求调用部署在所述本地服务器的虚拟机上的远程服务程序。
【专利摘要】本发明公开一种远程mock测试方法及装置,属于软件测试技术领域,所述方法包括:部署在本地服务器上的测试程序根据预设的测试内容,创建用于mock对象的程序文件;测试程序调用部署在本地服务器的虚拟机上的远程服务程序,以使远程服务程序加载用于mock对象的程序文件;测试程序接收远程服务程序返回的加载结果;测试程序判断加载结果是否满足预期加载结果,以实现远程mock测试。本发明将测试程序直接部署在本地服务器上,远程服务程序部署在本地服务器的虚拟机上,实现了远程环境的隔离,而且虚拟机作为远程接口的调用可以模拟真实的生产环境,解决了现有mock测试方法在接口测试情况下,无法远程mock对象的问题。
【IPC分类】G06F9/455, G06F11/36
【公开号】CN104899142
【申请号】CN201510317203
【发明人】温一刚
【申请人】北京嘀嘀无限科技发展有限公司
【公开日】2015年9月9日
【申请日】2015年6月10日

最新回复(0)