程序测试方法、程序测试装置及存储介质与流程

文档序号:20112955发布日期:2020-03-17 19:25阅读:142来源:国知局
程序测试方法、程序测试装置及存储介质与流程

本发明涉及软件测试技术领域,尤其涉及程序测试方法、程序测试装置及计算机可读存储介质。



背景技术:

在传统的异步处理程序自动化测试过程中,一般是由模拟生产者发送消息到中间件,然后消息中间件根据消息内容确定对应的消息消费者,并将模拟生产者发送的消息传送至消息消费者。在消息消费者接收到消息后,再根据消息内容生成响应数据,并将响应数据保存至数据库中。最后再由模拟生产者定时轮询数据库,以读取响应数据,并根据响应数据确定测试结果。由于消息消费者处理每一个接收到的消息的时间受到待处理消息数量、服务器性能、数据库性能、网络拥堵情况等多方面因素影响,因此消息消费者对一消息的处理时长不确定。由于无法实时感知程序处理结果,因此为避免无限轮询,测试程序一般会设置轮询次数或轮询总时长。当轮询次数大于预设次数或者轮询时长大于预设时长时,测试程序也会判定测试用例为失败。这样存在异步处理程序的测试结果不准确的缺陷。



技术实现要素:

本发明的主要目的在于提供一种程序测试方法、程序测试装置及计算机可读存储介质,旨在达成提高异步处理程序的测试结果的准确性的效果。

为实现上述目的,本发明提供一种程序测试方法,所述程序测试方法包括以下步骤:

消费者模块通过待测试程序处理所述预设消息,并根据处理结果更新所述数据库;

实时数据管道根据数据库更新内容生成所述反馈消息;

根据所述反馈消息及所述预设消息对应预期结果确定所述待测试程序的测试结果。

可选地,所述实时数据管道根据数据库更新内容生成所述反馈消息的步骤包括:

所述实时数据管道获取所述数据库的日志文件;

根据所述日志文件确定所述数据库的更新内容;

根据所述更新内容生成所述反馈消息。

可选地,所述根据所述反馈消息及所述预设消息对应预期结果确定所述待测试程序的测试结果的步骤之前,还包括:

在所述反馈消息满足预设条件时,执行所述根据所述反馈消息及所述预设消息对应预期结果确定所述待测试程序的测试结果的步骤;

在所述反馈消息不满足预设条件时,丢弃所述反馈消息。

可选地,所述预设条件包括以下至少一个;

所述反馈消息包括预设关键字段;

所述反馈消息包括所述预期结果。

可选地,所述根据所述反馈消息及所述预设消息对应预期结果确定所述待测试程序的测试结果的步骤包括:

根据所述反馈消息确定所述数据库的更新内容;

在所述更新内容与所述预期结果相同时,判定所述待测试程序正常;

在所述更新内容与所述预期结果不相同时,判定所述待测试程序异常。

可选地,所述消费者模块通过待测试程序处理所述预设消息,并根据处理结果更新所述数据库的步骤之前,还包括:

消息生产者模块生成所述预设消息,并将所述预设消息发送至中间件模块;

所述中间件模块将所述预设消息发送至所述消费者模块,以供消费者模块通过待测试程序处理所述预设消息,并根据处理结果更新所述数据库。

可选地,所述根据所述反馈消息及所述预设消息对应预期结果确定所述待测试程序的测试结果的步骤之后,还包括:

输出所述测试结果。

此外,为实现上述目的,本发明还提供一种程序测试装置,所述程序测试装置包括消息生产者模块、中间件模块,消费者模块和实时数据管道、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序测试装置的控制程序,其中,所述消息生产者模块通过所述消息中间件模块向所述消费者模块发送预设消息,以供所述消息消费者模块在接收到所述消息后,根据所述消息更新所述数据库中保存的数据,所述实时数据管道用户监控所述数据库中的数据变化,并根据监控结果生成反馈消息,所述程序测试装置的控制程序被所述处理器执行时实现如上所述的程序测试方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有程序测试装置的控制程序,所述程序测试装置的控制程序被处理器执行时实现如上所述的程序测试方法的步骤。

本发明实施例提出的一种程序测试方法、程序测试装置及计算机可读存储介质,先通过消费者模块通过待测试程序处理所述预设消息,并根据处理结果更新所述数据库,然后实时数据管道根据数据库更新内容生成所述反馈消息,并根据所述反馈消息及所述预设消息对应预期结果确定所述待测试程序的测试结果。由于可以通过实时数据管道监测数据库的更新内容,从而实现了实时感知程序处理结果的目的,从而无需定时轮询数据库,以获悉数据库的更新情况。因此避免了由于程序响应时间过长而超出轮询次数或者轮询时限时判定待测试程序异常的现象,这样达成了提高异步处理程序的测试结果的准确性的效果。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图;

图2为本发明程序测试方法一实施例的流程示意图;

图3为本发明另一实施例的流程示意图;

图4为本发明又一实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

由于在传统的异步处理程序自动化测试过程中,一般是由模拟生产者发生消息到中间件,然后消息中间件根据消息内容确定对应的消息消费者,并将模拟生产者发送的消息传送至消息消费者。在消息消费者接收到消息后,再根据消息内容生成响应数据,并将响应数据保存至数据库中。最后再由模拟生产者定时轮询数据库,以读取响应数据,并根据响应数据确定测试结果。由于消息消费者处理每一个接收到的消息的时间受到待处理消息数量、服务器性能、数据库性能、网络拥堵情况等多方面因素影响,因此消息消费者对一消息的处理时长不确定。由于无法实时感知程序处理结果,因此为避免无限轮询,测试程序一般会设置轮询次数或轮询总时长。当轮询次数大于预设次数或者轮询时长大于预设时长时,测试程序也会判定测试用例为失败。这样存在异步处理程序的测试结果不准确的缺陷。

为解决上述缺陷,本发明实施例提供一种程序测试方法、程序测试装置及计算机可读存储介质,其中,在本发明实施例中,所述程序测试方法的主要解决方案是:

消费者模块通过待测试程序处理所述预设消息,并根据处理结果更新所述数据库;

实时数据管道根据数据库更新内容生成所述反馈消息;

根据所述反馈消息及所述预设消息对应预期结果确定所述待测试程序的测试结果。

由于可以通过实时数据管道监测数据库的更新内容,从而实现了实时感知程序处理结果的目的,从而无需定时轮询数据库,以获悉数据库的更新情况。因此避免了由于程序响应时间过长而超出轮询次数或者轮询时限时判定待测试程序异常的现象,这样达成了提高异步处理程序的测试结果的准确性的效果。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。

本发明实施例终端可以是pc机等终端设备。

如图1所示,该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard)、鼠标等,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及程序测试装置的控制程序。

在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;处理器1001可以用于调用存储器1005中存储的程序测试装置的控制程序,并执行以下操作:

消费者模块通过待测试程序处理所述预设消息,并根据处理结果更新所述数据库;

实时数据管道根据数据库更新内容生成所述反馈消息;

根据所述反馈消息及所述预设消息对应预期结果确定所述待测试程序的测试结果。

进一步地,处理器1001可以调用存储器1005中存储的程序测试装置的控制程序,还执行以下操作:

所述实时数据管道获取所述数据库的日志文件;

根据所述日志文件确定所述数据库的更新内容;

根据所述更新内容生成所述反馈消息。

进一步地,处理器1001可以调用存储器1005中存储的程序测试装置的控制程序,还执行以下操作:

在所述反馈消息满足预设条件时,执行所述根据所述反馈消息及所述预设消息对应预期结果确定所述待测试程序的测试结果的步骤;

在所述反馈消息不满足预设条件时,丢弃所述反馈消息。

进一步地,处理器1001可以调用存储器1005中存储的程序测试装置的控制程序,还执行以下操作:

根据所述反馈消息确定所述数据库的更新内容;

在所述更新内容与所述预期结果相同时,判定所述待测试程序正常;

在所述更新内容与所述预期结果不相同时,判定所述待测试程序异常。

进一步地,处理器1001可以调用存储器1005中存储的程序测试装置的控制程序,还执行以下操作:

消息生产者模块生成所述预设消息,并将所述预设消息发送至中间件模块;

所述中间件模块将所述预设消息发送至所述消费者模块,以供消费者模块通过待测试程序处理所述预设消息,并根据处理结果更新所述数据库。

进一步地,处理器1001可以调用存储器1005中存储的程序测试装置的控制程序,还执行以下操作:

输出所述测试结果。

参照图2,在本发明程序测试方法的一实施例中,所述程序测试方法包括以下步骤:

步骤s10、消费者模块通过待测试程序处理所述预设消息,并根据处理结果更新所述数据库;

步骤s20、实时数据管道根据数据库更新内容生成所述反馈消息;

步骤s30、根据所述反馈消息及所述预设消息对应预期结果确定所述待测试程序的测试结果。

在本实施例中,程序测试装置可以包括生产者模块、中间件模块,消费者模块、数据库和实时数据管道(rdp,real-timedatapipeline),其中,所述消息生产者模块通过所述消息中间件模块向所述消费者模块发送预设消息,以供所述消息消费者模块在接收到所述消息后,根据所述消息更新所述数据库中保存的数据,所述实时数据管道用户监控所述数据库中的数据变化,并根据监控结果生成反馈消息。

需要说明的是,所述预设消息是指软件对象之间进行交互作用和通讯的一种数据流。所述中间件模块是一种独立的系统软件服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。所述消息生产者模块设置为在特定条件下,产生并发送特定消息的计算机程序。所述消费者模块设置为接收所述消息生产者模块发出的消息,然后执行相关代码逻辑的计算机程序。

可选地,所述程序测试装置可以是pc机。

进一步地,当消费者模块接收到预设消息时,执行待测试的程序,以通过待测试程序处理所述预设消息。其中,所述待测试程序可以是异步处理程序,使得所述消费者模块可以同时接收多个不同的消息,并同时处理。所述待测试程序在执行过程中,对接收到的预设消息进行处理,并根据处理结果更新目标数据库中的数据内容。

可以理解的是,所述数据库可以设置为程序测试装置的本地数据库,也可以设置为与测试装置通信连接的网络数据库。

测试装置通过实时数据管道对数据库的更新进行实时监测,其中,所述实时数据管道在监测到数据库中发生数据更新时,根据数据库的更新内容生成对应的反馈消息。

具体地,当数据库发生数据更新时,会根据数据更新内容实时生成对应的日志文件。所述实时数据管道可以实时获取所述数据库的日志文件,然后根据所述日志文件确定所述数据库的更新内容,并根据所述更新内容生成对应的反馈消息。

在获取到所述反馈消息后,程序测试装置可以根据所述反馈消息确定待测试程序的测试结果。

具体地,在程序测试装置中可以预先保存所述预设消息对应的预期结果。其中,所述预期结果为程序测试人员自定义设置的数据。例如,当所述待测试程序的功能为在接受到订单消息时,根据所述订单消息更新数据库中保存的货物数量、交易金额等数据。则可以将所述预期结果设置数据库中保存的所述货物数量及交易金额变更,及或货物数量及交易金额的变更量。

可以理解的是,所述预期结果也可以保存服务器中,当所述程序测测试装置获取到所述反馈消息后,再获取所述预设消息对应的预期结果,使得可以根据所述预期结果及所述反馈消息确定所述待测试程序的测试结果。

其中,当获取到所述反馈消息后,先根据所述反馈消息确定所述数据库的更新内容,然后对比所述数据库的更新内容与所述预期结果。当所述数据库的更新内容与所述预期结果相同时,判定所述待测试程序正常。在所述更新内容与所述预期结果不相同时,判定所述待测试程序异常。

在本实施例公开的技术方案中,先通过消费者模块通过待测试程序处理所述预设消息,并根据处理结果更新所述数据库,然后实时数据管道根据数据库更新内容生成所述反馈消息,并根据所述反馈消息及所述预设消息对应预期结果确定所述待测试程序的测试结果。由于可以通过实时数据管道监测数据库的更新内容,从而实现了实时感知程序处理结果的目的,从而无需定时轮询数据库,以获悉数据库的更新情况。因此避免了由于程序响应时间过长而超出轮询次数或者轮询时限时判定待测试程序异常的现象,这样达成了提高异步处理程序的测试结果的准确性的效果。

参照图3,基于上述实施例,在另一实施例中,所述步骤s30之前,还包括:

步骤s40、判断所述反馈消息是否满足预设条件;

步骤s50、在所述反馈消息不满足预设条件时,丢弃所述反馈消息。

在本实施例中,当获取到所述反馈消息后,可以先判断所述反馈消息是否满足预设条件。其中,所述预设条件可以设置为所述反馈消息包括预设关键字段和/或所述反馈消息包括所述预期结果。

具体地,当接收到所述反馈消息后,可以先解析所述反馈消息,当所述反馈消息中包含预设的关键字段和/或所述反馈消息对应的更新内容为预期结果相关的更新内容时,判定所述反馈消息满足预设条件。否则判定所述反馈消息不满足所述预设条件。

在所述反馈消息满足预设条件时,执行所述步骤s30,否则丢弃所述反馈消息。

在本实施例公开的技术方案中,先判断所述反馈消息是否满足预设条件,在所述反馈消息满足预设条件时,执行所述根据所述反馈消息及所述预设消息对应预期结果确定所述待测试程序的测试结果的步骤,否则丢弃所述反馈消息。由于可以在反馈消息不满足预设条件时直接丢弃所述反馈消息,这样达成可减小了程序测试装置的系统开销的效果。

参照图4,基于上述任一实施例,在又一实施例中,所述步骤s30之后,还包括:

步骤s60、输出所述测试结果。

在本实施例中,所述测试装置还设置有显示面板,当确定所述测试结果后,测试装置可以通过显示面板显示输出所述测试结果。

可选地,所述测试装置还可以设置有信息推送模块,所述信息推送模块可以根据预设的推送方式,向目标终端推送是测试结果。其中,所述推送方式可以包括微信推送、邮件推送、短信推送和/或app推送等推送方式。

在本实施例公开的技术方案中,程序测试装置可以直接输出测试结果,这样达成避免用户从发操作的效果。

此外,本发明实施例还提出一种程序测试装置,所述程序测试装置包括消息生产者模块、中间件模块,消费者模块和实时数据管道、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序测试装置的控制程序,其中,所述消息生产者模块通过所述消息中间件模块向所述消费者模块发送预设消息,以供所述消息消费者模块在接收到所述消息后,根据所述消息更新所述数据库中保存的数据,所述实时数据管道用户监控所述数据库中的数据变化,并根据监控结果生成反馈消息,所述程序测试装置的控制程序被所述处理器执行时实现如上各个实施例所述的程序测试方法的步骤。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有程序测试装置的控制程序,所述程序测试装置的控制程序被处理器执行时实现如上各个实施例所述的程序测试方法的步骤。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是pc机等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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