基于MQTT的分布式自动化软件测试方法及系统技术方案

技术编号:27059069 阅读:103 留言:0更新日期:2021-01-15 14:38
本发明专利技术提供一种基于MQTT的分布式自动化软件测试方法及系统,所述方法:服务器端将测试方案的多个测试用例划归为多个测试任务,每个测试任务包含的多个测试用例之间具有依赖关系且基于该依赖关系形成测试用例队列;服务器端根据执行优先级对多个测试任务进行排序,得到测试任务队列;服务器端依次将测试任务队列中的每个测试任务发送至空闲客户端;客户端依次执行其接收到的测试任务包含的测试用例队列中的每个测试用例;服务器端与每个客户端之间的通信均遵循MQTT协议。所述系统:服务器端和MQTT代理服务器端均部署于测试服务器,客户端部署于测试机。根据本发明专利技术,能够解决现有分布式自动化软件测试方法的耗时长,效率低的问题。

【技术实现步骤摘要】
基于MQTT的分布式自动化软件测试方法及系统
本专利技术属于软件测试领域,更具体地,涉及一种基于MQTT的分布式自动化软件测试方法及系统。
技术介绍
软件测试是指通过手工或自动化的手段来运行或测定某个软件产品系统的过程,其目的在于检测软件产品是否满足规定的需求,或者弄清楚预期结果与实际结果之间的差别。近年来,随着分布式技术与计算机网络的高速发展,自动化软件测试技术得到了长足的发展与进步,呈现出逐步取代手工软件测试的趋势。现有的自动化软件测试以分布式测试为主,分布式测试是指通过局域网和Internet,把分布于不同地点、独立完成特定功能的测试计算机连接起来,以达到测试资源共享、分散操作、集中管理、协同工作、负载均衡、测试过程监控等目的的计算机网络测试。现有的分布式自动化软件测试方法通常将待执行的测试方案所涉及的多个测试用例分配到多台客户端同时进行自动化测试,以缩短测试总耗时,提高测试效率。然而,在分配测试用例的过程中,现有的分布式自动化软件测试方法只是简单地根据客户端的数量将所有测试用例分为多组,每个测试用例组内的测试用例随机筛选,测试用例之间并不具有依赖关系,彼此之间具有依赖关系的两个测试用例很可能被分到两个测试用例组中,进而被分配到不同的客户端中进行测试。然而,彼此之间具有依赖关系的多个测试用例是无法在各自的客户端进行并行测试的,要根据其间的依赖关系先后进行测试,这无疑会增加测试耗时,影响测试效率。另一方面,现有的分布式自动化软件测试方法通常采用重量级的应用层通信协议来实现服务器端与客户端之间的通信,部署于测试机上的通信服务器占用过多的系统资源和网络带宽,进而影响测试用例的执行,从而导致测试耗时的增加以及测试效率的降低。
技术实现思路
本专利技术的目的在于解决现有分布式自动化软件测试方法的耗时长,效率低的问题。为了实现上述目的,本专利技术提供一种基于MQTT的分布式自动化软件测试方法及系统。根据本专利技术的第一方面,提供了一种基于MQTT的分布式自动化软件测试方法,该方法包括以下步骤:服务器端将测试方案涉及的多个测试用例划归为多个测试任务,每个测试任务所包含的多个测试用例之间具有依赖关系且基于该依赖关系形成测试用例队列;服务器端根据执行优先级对所述多个测试任务进行排序,得到测试任务队列;服务器端依次将测试任务队列中的每个测试任务发送至客户端集群中处于空闲状态的客户端;客户端依次执行其接收到的测试任务所包含的测试用例队列中的每个测试用例;服务器端与每个客户端之间的通信均遵循MQTT协议。作为优选的是,所述服务器端将测试方案涉及的多个测试用例划归为多个测试任务,包括:服务器端对测试方案进行解析,以获取测试方案涉及的多个测试用例之间的依赖关系,并将彼此之间具有依赖关系的多个测试用例划为一个测试任务;基于测试用例之间的依赖关系,对每个测试任务所包含的多个测试用例进行排序,得到测试用例队列。作为优选的是,测试任务的执行优先级的确定方法包括:服务器端基于上游服务器获取每个测试任务所包含的每个测试用例的经验执行耗时,根据每个测试任务所包含的每个测试用例的经验执行耗时确定每个测试任务的经验执行耗时;服务器端根据每个测试任务的经验执行耗时确定该测试任务的执行优先级,测试任务的经验执行耗时与执行优先级正相关。作为优选的是,客户端状态的确定方法包括:服务器端同时向客户端集群中的每个客户端发送状态反馈指令;客户端根据接收到的状态反馈指令将自身的当前状态反馈至服务器端,所述当前状态包括空闲和忙碌。作为优选的是,所述客户端依次执行其接收到的测试任务所包含的测试用例队列中的每个测试用例,包括:在客户端执行测试用例的过程中,客户端实时将测试信息反馈至服务器端;当客户端完成当前测试任务时,客户端将测试结果和每个测试用例的执行信息反馈至服务器端。作为优选的是,所述分布式自动化软件测试方法还包括:服务器端根据每个测试用例的执行信息获取该测试用例的实际执行耗时,并将该测试用例的实际执行耗时与经验执行耗时进行比对;当服务器端比对出一测试用例的实际执行耗时不等于该测试用例的经验执行耗时时:服务器端基于该测试用例的实际执行耗时对当前测试任务队列中的包含有该测试用例的测试任务的经验执行耗时进行修改,以重新确定该测试任务的执行优先级,并在该测试任务的执行优先级发生变化时对当前测试任务队列进行调整。作为优选的是,所述分布式自动化软件测试方法还包括:当服务器端检测到所有测试任务均已完成时,服务器端根据接收到的实时测试信息和测试任务的测试结果生成最终的测试结果和测试报告;对外显示最终测试结果和测试报告;将与对应经验执行耗时不相等的测试用例的实际执行耗时上传至上游服务器;上游服务器根据接收到的测试用例的实际执行耗时对其保存的该测试用例的经验执行耗时进行更新。根据本专利技术的第二方面,提供了一种基于MQTT的分布式自动化软件测试系统,以实现上述基于MQTT的分布式自动化软件测试方法,该系统包括软件系统和硬件系统;所述软件系统包括服务器端、构成客户端集群的多个客户端和主MQTT代理服务器端;所述硬件系统包括测试服务器和多个测试机;测试服务器用于同时为服务器端和主MQTT代理服务器端提供运行环境;测试机用于为对应的客户端提供运行环境;服务器端和每个客户端均接入主MQTT代理服务器端。作为优选的是,每个客户端均包括测试用例运行服务端和测试终端;所述软件系统还包括多个从MQTT代理服务器端,所述多个从MQTT代理服务器端分别部署于多个测试机中;同一客户端的测试用例运行服务端和测试终端均接入对应的从MQTT代理服务器端,测试用例运行服务端依次将其接收到的测试任务所包含的测试用例队列中的每个测试用例经从MQTT代理服务器端发送至测试终端;测试终端用于执行测试用例。作为优选的是,服务器端包括测试管理端和信息显示端;信息显示端用于在所有测试任务均已完成时显示测试管理端生成的最终测试结果和测试报告,以及在测试过程中实时显示客户端反馈的测试信息;测试管理端用于实现服务器端具有的除信息显示以外的功能。本专利技术的有益效果在于:本专利技术的基于MQTT的分布式自动化软件测试方法,一方面,服务器端将彼此之间具有依赖关系的多个测试用例分到同一测试用例组,即测试任务,并根据测试任务的执行优先级依次将每个测试任务发送至空闲的客户端,进而实现测试用例的分布式执行。由于分布式执行的测试用例之间不存在依赖关系,客户端集群中的多个客户端可以并行这些执行测试用例。因此,与现有的分布式自动化软件测试方法相比,本专利技术的基于MQTT的分布式自动化软件测试方法的耗时更少,效率更高。另一方面,服务器端与每个客户端之间的通信均遵循MQTT协议。由于MQTT协议属于轻量级的应用层通信协议,与现有的重量级应用本文档来自技高网
...

【技术保护点】
1.一种基于MQTT的分布式自动化软件测试方法,其特征在于,包括:/n服务器端将测试方案涉及的多个测试用例划归为多个测试任务,每个测试任务所包含的多个测试用例之间具有依赖关系且基于该依赖关系形成测试用例队列;/n服务器端根据执行优先级对所述多个测试任务进行排序,得到测试任务队列;/n服务器端依次将测试任务队列中的每个测试任务发送至客户端集群中处于空闲状态的客户端;/n客户端依次执行其接收到的测试任务所包含的测试用例队列中的每个测试用例;/n服务器端与每个客户端之间的通信均遵循MQTT协议。/n

【技术特征摘要】
1.一种基于MQTT的分布式自动化软件测试方法,其特征在于,包括:
服务器端将测试方案涉及的多个测试用例划归为多个测试任务,每个测试任务所包含的多个测试用例之间具有依赖关系且基于该依赖关系形成测试用例队列;
服务器端根据执行优先级对所述多个测试任务进行排序,得到测试任务队列;
服务器端依次将测试任务队列中的每个测试任务发送至客户端集群中处于空闲状态的客户端;
客户端依次执行其接收到的测试任务所包含的测试用例队列中的每个测试用例;
服务器端与每个客户端之间的通信均遵循MQTT协议。


2.根据权利要求1所述的分布式自动化软件测试方法,其特征在于,所述服务器端将测试方案涉及的多个测试用例划归为多个测试任务,包括:
服务器端对测试方案进行解析,以获取测试方案涉及的多个测试用例之间的依赖关系,并将彼此之间具有依赖关系的多个测试用例划为一个测试任务;
基于测试用例之间的依赖关系,对每个测试任务所包含的多个测试用例进行排序,得到测试用例队列。


3.根据权利要求1所述的分布式自动化软件测试方法,其特征在于,测试任务的执行优先级的确定方法包括:
服务器端基于上游服务器获取每个测试任务所包含的每个测试用例的经验执行耗时,根据每个测试任务所包含的每个测试用例的经验执行耗时确定每个测试任务的经验执行耗时;
服务器端根据每个测试任务的经验执行耗时确定该测试任务的执行优先级,测试任务的经验执行耗时与执行优先级正相关。


4.根据权利要求1所述的分布式自动化软件测试方法,其特征在于,客户端状态的确定方法包括:
服务器端同时向客户端集群中的每个客户端发送状态反馈指令;
客户端根据接收到的状态反馈指令将自身的当前状态反馈至服务器端,所述当前状态包括空闲和忙碌。


5.根据权利要求1所述的分布式自动化软件测试方法,其特征在于,所述客户端依次执行其接收到的测试任务所包含的测试用例队列中的每个测试用例,包括:
在客户端执行测试用例的过程中,客户端实时将测试信息反馈至服务器端;
当客户端完成当前测试任务时,客户端将测试结果和每个测试用例的执行信息反馈至服务器端。


6.根据权利要求5所述的分布式自动化软件测试方法,其特征在于,还包括:
服务器端根据每...

【专利技术属性】
技术研发人员:陈海东刘国锋陆寒熹施井荣
申请(专利权)人:南京林洋电力科技有限公司江苏林洋能源股份有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1