一种模拟对象测试方法、设备和系统与流程

文档序号:21819029发布日期:2020-08-11 21:33阅读:85来源:国知局
一种模拟对象测试方法、设备和系统与流程

本发明涉及一种模拟对象测试方法、设备和系统,属于测试技术领域。



背景技术:

替代(mock)测试就是在测试过程中,对于某些不容易构造或者不容易获取的真实对象,用一个虚拟对象进行替代以便测试的测试方法。承载虚拟对象的服务设施叫做模拟对象测试服务器(mockserver),在此模拟对象测试服务器上可以自定义虚拟对象中每个需要替代的接口,以及每个接口应该回传的数据,以此来模拟真实对象与其他系统之间的各种交互能力。

例如,系统a与系统b通过接口进行信息交换,系统b提供天气服务,系统a根据天气情况来给用户推荐何种健身运动,如果b返回晴天,则a推荐户外散步;如果b返回大雨,则a推荐室内运动。在测试系统a时,如果由系统a直接调用系统b的真实接口来进行测试,但b系统可能存在环境不匹配、数据类型不可构造、性能不好等问题,最终导致无法完成对a的各项功能的测试。这时需要采用模拟对象测试,即构造一个系统b的替代品b’来完成与a系统的交互,其中b’仿造了所有与a交互的接口并可以随时自定义每个接口的回传数据,从而将b隔离开来测试系统a的各种交互功能否正确。

现有模拟对象测试的缺陷在于:目前较多是利用传统的模拟对象测试平台进行接口的模拟,将系统b的接口、返回数据等参数在模拟对象测试平台页面进行人工的配置,平台收到系统a的请求后将配置好的返回数据回传给系统a。这种人工配置方式的灵活性差,每次修改响应数据都需上平台进行编辑,人力成本较高,并且响应数据存在较高的构造成本,甚至平台上无法构造。

而且,传统的模拟对象测试平台需要使用者学习平台提供的语法、脚本和规则,去做脚本编写和配置,学习成本高,无法兼顾各种复杂数据的解析处理,能力不足。



技术实现要素:

鉴于现有技术中存在的技术缺陷和技术弊端,本发明实施例提供一种配置灵活、可扩展性强且易于学习的模拟对象测试方法、设备和系统。

作为本发明实施例的一个方面,涉及一种模拟对象测试方法,其中包括:

模拟对象测试服务器根据接收到的来自于用户终端的接口信息构造虚拟接口;

当所述模拟对象测试服务器通过所述虚拟接口接收到来自于被测对象的请求信息时,将所述请求信息转发给所述用户终端;

当所述模拟对象测试服务器通过所述虚拟接口接收到来自于所述用户终端的响应信息时,经所述虚拟接口回传给所述被测对象。

作为本发明实施例的另一个方面,涉及另一种模拟对象测试方法,其中包括:

用户终端向模拟对象测试服务器发送用于构造虚拟接口的接口信息;

所述用户终端当接收到从所述模拟对象测试服务器经所述虚拟接口转发来的被测对象的请求信息时构造响应信息;

所述用户终端将所述响应信息经所述模拟对象测试服务器上的所述虚拟接口回传给所述被测对象。

作为本发明实施例的又一个方面,涉及一种模拟对象测试服务器,其中包括:

服务器侧接口构造模块,用于根据接收到的来自于用户终端的接口信息构造虚拟接口;

服务器转发模块,用于当通过所述虚拟接口接收到来自于被测对象的请求信息时,将所述请求信息转发给所述用户终端;

服务器回传模块,用于当通过所述虚拟接口接收到来自于所述用户终端的响应信息时,经所述虚拟接口回传给所述被测对象。

作为本发明实施例的再一个方面,涉及一种用户终端,其中包括:

终端侧接口构造模块,用于向模拟对象测试服务器发送用于构造虚拟接口的接口信息;

终端侧信息构造模块,用于当接收到从所述模拟对象测试服务器经所述虚拟接口转发来的被测对象的请求信息时构造响应信息;

终端回传模块,用于将所述响应信息经所述模拟对象测试服务器上的所述虚拟接口回传给所述被测对象。

作为本发明实施例的再一个方面,涉及一种模拟对象测试系统,包括:上述模拟对象测试服务器和上述用户终端。

作为本发明实施例的再一个方面,涉及一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现上述方法。

作为本发明实施例的再一个方面,涉及一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述方法。

本发明实施例通过使用用户终端在模拟对象测试服务器上构造并使用所模拟替代的接口进行系统测试,具有配置灵活、可扩展性强且易于学习的优点。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所记载的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例1提供的模拟对象测试方法的流程图;

图2为本发明实施例1提供的模拟对象测试方法的举例信令交互图;

图3为图1所示步骤300的具体流程图;

图4为本发明实施例2提供的模拟对象测试系统的结构示意图;

图5为图4所述终端侧信息构造模块22的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

实施例1

本实施例提供一种模拟对象测试方法,如图1所示,包括如下步骤:

步骤100,模拟对象测试服务器根据接收到的来自于用户终端的接口信息构造虚拟接口。

其中,所述模拟对象测试服务器是用于替代真实系统与被测对象进行信息交换的服务器,所述虚拟接口是用于替代真实系统中相应接口功能的接口。接口是指系统与系统之间进行信息交换的共享边界。

具体地,用户通过用户终端将用于构造虚拟接口的的接口信息发送给模拟对象测试服务器,使模拟对象测试服务器根据该接口信息构造虚拟接口,该虚拟接口具有与被替代的接口相同的功能。例如,如图2所示,系统a为被测对象,系统b是被替代的系统。用户通过用户终端发送给模拟对象测试服务器的接口信息表明要模拟对象测试系统b的真实接口i,据此,模拟对象测试服务器构造虚拟接口i。

步骤200,当所述模拟对象测试服务器通过所述虚拟接口接收到来自于被测对象的请求信息时,将所述请求信息转发给所述用户终端。

其中,所述请求信息是由所述被测对象在进行正常工作时发出的请求信息。例如,在图2中,由于此前在模拟对象测试服务器上构造的虚拟接口i具有与真实接口i相同的功能,因此,对于被测的系统a而言,仍然会按照正常的工作程序将请求信息发送给接口i,而不用区分该接口i是真实接口i,还是虚拟接口i。模拟对象测试服务器通过虚拟接口i接收到来自于系统a的请求信息后,将该请求信息经虚拟接口i转发给用户终端。

步骤300,所述用户终端当接收到从所述模拟对象测试服务器经所述虚拟接口转发来的被测对象的请求信息时构造响应信息。

其中,所述响应信息是指根据测试需要而构造用于替代真实响应信息的响应信息。具体地,如图3所示,可以包括如下步骤:

步骤310,在集成有所述模拟对象测试服务器相关功能的软件开发工具包中预设响应参数。

其中,所述软件开发工具包(softwaredevelopmentkit,简称:sdk)是为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。sdk中集成有模拟对象测试服务器的相关功能,用户可以根据测试的需要利用这些功能预先设置好想要构造的响应信息的响应参数,如:响应数据、响应格式等。

步骤320,调用所述软件开发工具包的调用接口获取所述响应参数。

其中,所述调用接口是由sdk提供的,测试程序通过调用该调用接口获取所述响应参数。可选地,可以将该sdk集成在测试程序中。

步骤330,根据所述响应参数构造所述响应信息。

具体地,测试程序基于从sdk得到的响应信息执行相关程序命令从而构造生成所述响应信息。

步骤400,所述用户终端将所述响应信息经所述模拟对象测试服务器上的所述虚拟接口回传给所述被测对象。

具体地,所述用户终端可以先将所述响应信息发送给所述模拟对象测试服务器上的所述虚拟接口,然后由模拟对象测试服务器根据与用户终端之间预先制定好的数据传输协议对通过虚拟接口接收到的该响应信息进行解析和存储,并经虚拟接口发送给被测对象。

如图2所示,用户终端将响应信息发送给模拟对象测试服务器的虚拟接口i,当模拟对象测试服务器通过该虚拟接口i接收到来自于用户终端的响应信息时,经虚拟接口i将该响应信息回传给被测的系统a。通过经由虚拟接口i的一次请求和一次响应,系统a与模拟对象测试服务器完成了一次信息交换,实际上模拟了系统a与系统b之间的信息交换。

在上述数据传输协议中可以定义有模拟对象测试服务器与用户终端之间的通信指令,如下表所示:

其中,“apiname”表示接口名、“command”表示指令内容、“id”表示请求唯一标识、“data”表示数据包。

可选地,所述模拟对象测试服务器与所述用户终端之间可以通过建立长连接来实现通讯,以便发送上述接口信息、请求信息和响应信息。其中,长连接是指两个系统间需要频繁交互以及点对点的通讯时,两者在网络层建立一个专有连接,在此连接上可以相互且连续地发送多个数据包,这个专有连接叫做长连接,这种网络通讯方式叫长连接通讯。本实施例中,当一个用户终端与模拟对象测试服务器之间需要进行多次请求信息与响应信息的交换时,或者当同时有多个用户终端均接入替代服务进行信息交换时,用户终端与模拟对象测试服务器之间的交互非常频繁,通过建立长连接有助于满足这种交互需求。

另外,所述模拟对象测试服务器与所述用户终端之间也可以通过进行消息订阅而生成消息队列,所述接口信息、请求信息及所述响应信息通过所述消息队列进行发送。其中,所述消息管理服务器可以为消息代理服务器或metaq等消息中间件。

具体地,模拟对象测试服务器可以根据待发送信息预先向消息管理服务器订阅相应的消息类型形成订阅列表,如:注册型(register)消息、请求型(request)消息和响应型(reponse)消息等;当用户终端要发送接口信息和响应信息时,向消息管理服务器查询订阅列表,生成相应的注册型消息和响应型消息;类似地,当模拟对象测试服务器要转发请求信息时,也同样向消息管理服务器查询订阅列表,生成相应的请求型消息。将生成的这些消息发送给对方便成为消息队列。

步骤500,被测对象根据接收到的所述响应信息进行相应的逻辑处理。

其中,所述逻辑处理是被测对象在针对真实响应信息时所做的逻辑处理相同的处理。此后,通过使用相应的测试工具根据该逻辑处理的处理结果便可以实现对系统的测试,例如,测试该处理结果是否满足预期要求,生成该处理结果时的效率高低、速度快慢等。

本实施例所述方法达到了如下技术效果:

1、使用者可以使用各自的用户终端在模拟对象测试服务器上构造并使用所模拟替代的接口,不再单独占用模拟对象测试服务器,使得该模拟对象测试服务器能够被多个使用者同时使用,从而提高了服务器使用的灵活性。

2、使用者基于用户终端与模拟对象测试服务器之间的信息交互通过用户终端操作模拟对象测试服务器,不再需要接入模拟对象测试服务器进行接口配置和返回结果配置等手工页面配置,而是通过执行包含测试程序的脚本将接口的模拟替代过程与测试验证过程相结合,实现二者的完全自动化,无需人工干预,节省了人力成本,提高了测试效率。

3、使用者能够通过用户终端根据测试需要自定义构造响应信息,不需要学习任何语法、规则即可完成复杂的、动态数据的模拟,提高了测试过程的简便性和可扩展性。

4、使用者能够通过用户终端获得被测对象发来的请求信息,使得模拟对象测试服务器相对于使用者而言变得透明,从而能够更加深入地掌握被测对象的工作状态,提高了测试的全面性。

实施例2

本实施例提供一种模拟对象测试系统,用以实现上述方法,如图4所示,包括:模拟对象测试服务器10和用户终端20,其工作原理如下:

用户终端20中的终端侧接口构造模块21向模拟对象测试服务器10发送用于构造虚拟接口的接口信息;模拟对象测试服务器10中的服务器侧接口构造模块11根据接收到的来自于用户终端20的接口信息构造虚拟接口;当模拟对象测试服务器10通过所述虚拟接口接收到来自于被测对象30的请求信息时,通过服务器转发模块12将所述请求信息转发给所述用户终端20。

当用户终端20接收到从所述模拟对象测试服务器10经所述虚拟接口转发来的被测对象30的请求信息时,由终端侧信息构造模块22构造响应信息,并由终端回传模块23将所述响应信息经所述模拟对象测试服务器10上的所述虚拟接口回传给所述被测对象30;当模拟对象测试服务器10通过所述虚拟接口接收到来自于所述用户终端20的响应信息时,由服务器回传模块13经所述虚拟接口将响应信息回传给所述被测对象30。

具体地,如图5所示,在构造响应信息时,终端侧信息构造模块22中的参数预设单元2201在集成有所述模拟对象测试服务器10相关功能的软件开发工具包中预设响应参数;参数获取单元2202调用所述软件开发工具包的调用接口获取所述响应参数;响应生成单元2203根据所述响应参数构造所述响应信息。

可选地,模拟对象测试服务器10中还可以包括服务器长连接模块14,相应地,用户终端20中还可以包括终端长连接模块24。服务器长连接模块14与终端长连接模块24用于在所述模拟对象测试服务器10与所述用户终端20之间建立长连接,使所述接口信息、所述请求信息及所述响应信息通过所述长连接进行发送。

或者,模拟对象测试服务器10中还可以包括服务器消息模块15,相应地,用户终端20中还可以包括终端消息模块25。服务器消息模块15与终端消息模块25用于在所述模拟对象测试服务器10与所述用户终端20之间通过进行消息订阅而生成消息队列,使所述接口信息、所述请求信息及所述响应信息通过所述消息队列进行发送。

此处需要说明的,需要图4中只显示了一个用户终端20与模拟对象测试服务器10相连,但实际上,也可以有多个用户终端20与模拟对象测试服务器10相连,从而可供不同的使用者同时使用。

本实施例所述系统的技术效果及其他相关说明可参见上述实施例1的相关内容,此处不再赘述。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1