一种基于Hadoop的软件测试方法、装置和系统的制作方法

文档序号:6375784阅读:163来源:国知局
专利名称:一种基于Hadoop的软件测试方法、装置和系统的制作方法
技术领域
本发明涉及软件测试技术领域,尤其涉及 一种基于Hadoop的软件测试方法、装置和系统。
背景技术
通常,对软件的测试是一个规范的流程,涉及测试工具、测试环境和测试团队。测试工具的价格通常很昂贵,而且通常具有很强的针对性,测试不同的软件可能需要不同的测试工具,即使是仅对一个特定的软件进行测试也可能需要购买不止一款测试工具,这极大的增加了企业进行软件测试的成本。而且,软件测试对测试环境的要求很高,性能测试阶段和压力测试阶段对测试环境的要求尤其高,例如,对某些软件进行性能测试,需要模拟数十万、数百万甚至更多的用户发起呼叫或请求,中小企业难以具备相应的软硬件资源。此外,由于现代软件的正常工作往往涉及硬件设置、操作系统、网络配置等多方面内容,因此对测试人员提出了更高的要求,测试团队需要大量的时间和精力才能充分理解待测软件才能搭建测试环境,进行软件测试。中小企业通常较难维持一支高实力的专业测试团队。

发明内容
有鉴于此,本发明的主要目的在于提供一种基于Hadoop的软件测试方法、装置和系统,能避免购买测试工具,节省测试成本。为达到上述目的,本发明的技术方案是这样实现的本发明提供了一种基于Hadoop的软件测试方法,所述方法包括管理服务器接收用户终端发来的待测软件和测试请求,将收到的待测软件发给Hadoop分布式文件系统(HDFS),并根据收到的测试请求向一个或几个测试服务器发出测试指令;收到测试指令的测试服务器调用自身存储的相应的测试工具,以及从所述HDFS中获取相应的待测软件,控制调用的所述测试工具对获取的所述待测软件进行测试,并将测试结果发送给所述HDFS ;管理服务器从所述HDFS获取测试结果,并将获取的测试结果发给用户终端。较佳的,所述将收到的待测软件发给HDFS之前,所述方法还包括管理服务器调用Hadoop分布式数据库(HBase)中存储的配置信息对测试请求进行鉴权,当鉴权通过时,执行将收到的待测软件发给HDFS的操作。较佳的,所述管理服务器调用HBase中存储的配置信息对测试请求进行鉴权,当鉴权通过时,执行将收到的待测软件发给HDFS的操作,为,管理服务器调用HBase中存储的配置信息对余额进行检测,以及对请求的服务种类进行检测,当余额充足、且请求的服务种类是允许使用的服务种类时,执行将收到的待测软件发给HDFS的操作。较佳的,所述根据收到的测试请求向一个或几个测试服务器发出测试指令,为,根据收到的测试请求通过Mapreduce算法框架中map函数的参数向一个或几个测试服务器发出测试指令。较佳的,所述控制调用的所述测试工具对获取的所述待测软件进行测试之后,所述方法还包括所述测试服务器将测试中的测试统计信息发送给HBase,相应的,所述管理服务器从所述HBase获取测试统计信息,并将获取的测测试统计信息发给用户终端。本发明提供了一种基于Hadoop的软件测试系统,所述系统包括管理服务器、一·个以上的测试服务器和Hadoop分布式文件系统(HDFS);其中,管理服务器,用于接收用户终端发来的待测软件和测试请求,将收到的待测软件发给HDFS,并根据收到的测试请求向一个或几个测试服务器发出测试指令;以及从所述HDFS获取测试结果,并将获取的测试结果发给用户终端;所述测试服务器,用于根据管理服务器发来的测试指令调用自身存储的相应的测试工具,以及从所述HDFS中获取相应的待测软件,控制调用的所述测试工具对获取的所述待测软件进行测试,并将测试结果发送给所述HDFS ;所述HDFS,用于存储管理服务器发来的待测软件,以及测试服务器发来的测试结
果O较佳的,所述系统还包括Hadoop分布式数据库(HBase),用于存储配置信息;相应的,管理服务器,还用于调用HBase中存储的配置信息对测试请求进行鉴权,当鉴权通过时,执行将收到的待测软件发给HDFS的操作。较佳的,所述管理服务器,具体用于调用HBase中存储的配置信息对余额进行检测,以及对请求的服务种类进行检测,当余额充足、且请求的服务种类是允许使用的服务种类时,执行将收到的待测软件发给HDFS的操作。较佳的,所述管理服务器,用于根据收到的测试请求通过Mapreduce算法框架中map函数的参数向一个或几个测试服务器发出测试指令。较佳的,所述测试服务器,还用于将测试中的测试统计信息发送给HBase ;相应的,所述HBase还用于存储测试统计信息;所述管理服务器,还用于从所述HBase获取测试统计信息,并将获取的测测试统计信息发给用户终端。本发明提供了一种管理服务器,所述管理服务器包括接收发送单元、测试指令发出单元和测试结果获取单元;其中,接收发送单元,用于接收用户终端发来的待测软件和测试请求,并将收到的待测软件发给HDFS ;测试指令发出单元,用于根据接收发送单元收到的测试请求向一个或几个测试服务器发出测试指令;测试结果获取单元,用于从所述HDFS获取测试结果,并将获取的测试结果发给用户终端。本发明提供了一种测试服务器,所述测试服务器包括测试工具调用单元、待测软件获取单元和测试单元;其中,
测试工具调用单元,用于根据管理服务器发来的测试指令调用其存储的相应的测试工具;待测软件获取单元,用于从HDFS中获取相应的待测软件;测试单元,用于控制调用的所述测试工具对所述待测软件获取单元获取的待测软件进行测试,并将测试结果发送给所述HDFS。由上可知,采用本发明的技术方案管理服务器接收用户终端发来的待测软件和测试请求,将收到的待测软件发给Hadoop分布式文件系统(Hadoop Distributed FileSystem, HDFS),并根据收到的测试请求向一个或几个测试服务器发出测试指令;收到测试指令的测试服务器调用自身存储的相应的测试工具、以及从所述HDFS中获取相应的待测软件,控制调用的所述测试工具对所述待测软件进行测试,并将测试结果发送给所述HDFS ;管理服务器从所述HDFS获取测试结果,并将获取的测试结果发给用户终端,如此,可使软件测试用户不必因待测软件的不同而购买多种测试工具,节省了测试成本。


图I为本发明提供的基于Hadoop的软件测试方法的第一实施例的流程图;图2为本发明提供的基于Hadoop的软件测试系统的第一实施例的结构示意图;图3为本发明提供的基于Hadoop的软件测试系统的第二实施例的结构示意图;图4为本发明提供的管理服务器的结构示意图;图5为本发明提供的测试服务器的结构示意图。
具体实施例方式本发明的基本思想是管理服务器接收用户终端发来的待测软件和测试请求,将收到的待测软件发给HDFS,并根据收到的测试请求向一个或几个测试服务器发出测试指令;收到测试指令的测试服务器调用自身存储的相应的测试工具、以及从所述HDFS中获取相应的待测软件,控制调用的所述测试工具对获取的所述待测软件进行测试,并将测试结果发送给所述HDFS ;管理服务器从所述HDFS获取测试结果,并将获取的测试结果发给用户终端。本发明提供的基于Hadoop的软件测试方法第一实施例的实现过程,如图I所示,包括以下步骤步骤101、管理服务器接收用户终端发来的待测软件和测试请求,将收到的待测软件发给HDFS,并根据收到的测试请求向一个或几个测试服务器发出测试指令;可选的,所述管理服务器接收用户终端发来的待测软件和测试请求之后,所述方法还包括管理服务器调用Hadoop分布式数据库(Hadoop Database, HBase)中存储的配置信息对测试请求进行鉴权,当鉴权通过时,执行将收到的待测软件发给HDFS的操作,所述Hadoop是一种开源的分布式系统基础架构。具体的,所述鉴权是管理服务器调用HBase中存储的配置信息对余额进行检测,并对请求的服务种类进行检测,当余额充足、且请求的服务种类是允许使用的服务种类时,执行将收到的待测软件发给HDFS的操作。 这里,所述管理服务器根据收到的测试请求向一个或几个测试服务器发出测试指令,为管理服务器根据收到的测试请求,通过Mapreduce算法框架中map函数的参数向一个或几个测试服务器发出测试指令,所述Mapreduce算法框架为Hadoop框架的重要组件。步骤102、收到测试指令的测试服务器调用自身存储的相应的测试工具,以及从所述HDFS中获取相应的待测软件,控制调用的所述测试工具对获取的所述待测软件进行测试,并将测试结果发送给所述HDFS ;可选的,所述测试服务器控制调用的所述测试工具对获取的所述待测软件进行测试之后,所述方法还可以包括所述测试服务器将测试中的测试统计信息发送给HBase。步骤103、管理服务器从所述HDFS获取测试结果,并将获取的测试结果发给用户终端。可选的,所述管理服务器还可以从所述HBase获取测试统计信息,并将获取的测试统计信息发给用户终端。本发明提供的基于Hadoop的软件测试系统第一实施例的组成结构,如图2所示,包括管理服务器、一个以上测试服务器和HDFS ;其中,管理服务器,用于接收用户终端发来的待测软件和测试请求,将收到的待测软件发给HDFS,并根据收到的测试请求向一个或几个测试服务器发出测试指令;以及从所述HDFS获取测试结果,并将获取的测试结果发给用户终端;所述测试服务器,用于根据管理服务器发来的测试指令调用自身存储的相应的测试工具,以及从所述HDFS中获取相应的待测软件,控制调用的所述测试工具对获取的所述待测软件进行测试,并将测试结果发送给所述HDFS ;所述HDFS,用于存储管理服务器发来的待测软件,以及测试服务器发来的测试结
果O可选的,所述系统还可以包括HBase,用于存储配置信息;相应的,所述管理服务器,还用于调用HBase中存储的配置信息对测试请求进行 鉴权,当鉴权通过时,执行将收到的待测软件发给HDFS的操作。这里,所述管理服务器,具体用于调用HBase中存储的配置信息对余额进行检测,以及对请求的服务种类进行检测,当余额充足、且请求的服务种类是允许使用的服务种类时,执行将收到的待测软件发给HDFS的操作。较佳的,所述管理服务器,具有用于根据收到的测试请求,通过Mapreduce算法框架中map函数的参数向一个或几个测试服务器发出测试指令。较佳的,所述测试服务器,还用于将测试中的测试统计信息发送给HBase ;相应的,所述HBase还用于存储测试统计信息;所述管理服务器,还用于从所述HBase获取测试统计信息,并将获取的测测试统计信息发给用户终端。本发明提供的基于Hadoop的软件测试系统第二实施例组成结构,如图3所示,包括管理服务器、一个以上的测试服务器、HDFS和HBase ;其中,所述管理服务器,用于接收用户终端发来的测试请求和待测软件;调用HBase中存储的配置信息对测试请求进行鉴权;还用于从HDFS获取测试结果,并发给用户终端,以及从HBase获取测试统计信息,并发给用户终端;
其中,所述对测试请求进行鉴权包括对余额进行检测和对请求的服务种类进行检测;当鉴权通过时,将收到的所述待测软件发送给HDFS,并根据收到的测试请求向一个或几个测试服务器发出测试指令;当鉴权未通过时,向用户终端发出拒绝测试请求的消息;所述测试统计信息包括测试时间、测试时长、检查点数目等信息。所述测试服务器,用于存储一种或多种测试软件,根据管理服务器发来的测试指令调用自身存储的相应的测试工具,并从所述HDFS中获取相应的待测软件,控制调用的测试工具对获取的所述待测软件进行测试得到测试结果;并将所述测试结果发送给HDFSJf测试统计信息发送给HBase ;所述HDFS,用于存储管理服务器发来的所述待测软件和测试服务器发来的测试结果;所述HBase,用于存储预设的配置信息,以及存储测试服务器发来的测试统计信
肩、O本发明还提供了一种管理服务器,如图4所示,所述管理服务器包括接收发送单元、测试指令发出单元和测试结果获取单元,其中,接收发送单元,用于接收用户终端发来的待测软件和测试请求,并将收到的待测软件发给HDFS ;测试指令发出单元,用于根据接收发送单元收到的测试请求向一个或几个测试服务器发出测试指令;测试结果获取单元,用于从所述HDFS获取测试结果,并将获取的测试结果发给用户终端。本发明还提供了一种测试服务器,如图5所示,所述测试服务器包括测试工具调用单元,用于根据管理服务器发来的测试指令调用其存储的相应的测试工具;待测软件获取单元,用于从HDFS中获取相应的待测软件;测试单元,用于控制调用的所述测试工具对所述待测软件获取单元获取的待测软件进行测试,并将测试结果发送给所述HDFS。本发明提供的基于Hadoop的软件测试方法第二实施例的实现流程包括以下步骤步骤601、管理服务器接收用户终端发来的测试请求和待测软件,将收到的待测软件暂存在上传文件夹;这里,所述上传文件夹是普通的文件系统。步骤602、管理服务器调用HBase中存储的配置信息对测试请求进行鉴权,当鉴权通过时,进入步骤603 ;当鉴权未通过时,进入步骤612。步骤603、管理服务器将暂存在上传文件夹中的待测软件发送给HDFS,并删除上传文件夹下的所述待测软件,以及建立用户文件夹;此外,管理服务器将收到的测试请求转化为MapReduce作业进入队列,并根据预设的调度规则对队列进行排队,从而确定队列中各MapReduce作业开始的时间顺序。所述预设的调度规则可以是建立在作业优先级基础之上的先来先服务(First Come FirstServed, FCFS)调度规则,也可以是根据用户的级别进行调度的调度规则。步骤604、管理服务器根据收到的测试请求向一个或几个测试服务器发出测试指令;这里,所述测试指令通过Mapreduce算法框架中map函数的参数进行传递,MapReduce算法框架会通过自身调度算法选择合适的测试服务器。步骤605、收到测试指令的测试服务器调用自身存储的相应的测试工具。步骤606、所述测试服务器从所述HDFS中获取相应的待测软件。步骤607、所述测试服务器控制调用的所述测试工具对所述待测软件获取单元获取的待测软件进行测试,得到测试统计信息和测试结果,所述测试结果暂存在测试服务器的工作文件夹中;这里,所述工作文件夹是普通的文件系统。步骤608、所述测试服务器将测试中的测试统计信息发送给HBase ;将工作文件夹中的测试结果发送给HDFS,并删除工作文件夹中的测试结果。步骤609、管理服务器从所述HBase获取所述测试统计信息。步骤610、管理服务器从所述HDFS获取测试结果,并存储在用户文件夹下。步骤611、所述管理服务器将获取的测试结果和测试统计信息发给用户终端,结束流程。步骤612、管理服务器向用户终端发送拒绝测试请求的消息、并删除待测软件,结束流程。由上可知,采用本发明的技术方案可以实现需要进行软件测试的用户在远程用户终端输入待测软件和测试请求,由远端的服务器完进行件测试、将得到的测试结果返回给用户终端。这样,用户就不必因待测软件的不同而购买多种测试工具,只需要获得测试权 限就可以任意选用测试工具,节省了测试成本;而且,也无需测试团队搭建测试环境来对软件进行测试,节省了人力资源。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种基于Hadoop的软件测试方法,其特征在于,所述方法包括 管理服务器接收用户终端发来的待测软件和测试请求,将收到的待测软件发给Hadoop分布式文件系统(HDFS),并根据收到的测试请求向一个或几个测试服务器发出测试指令; 收到测试指令的测试服务器调用自身存储的相应的测试工具,以及从所述HDFS中获取相应的待测软件,控制调用的所述测试工具对获取的所述待测软件进行测试,并将测试结果发送给所述HDFS ; 管理服务器从所述HDFS获取测试结果,并将获取的测试结果发给用户终端。
2.根据权利要求I所示的方法,其特征在于,所述将收到的待测软件发给HDFS之前,所述方法还包括 管理服务器调用Hadoop分布式数据库(HBase)中存储的配置信息对测试请求进行鉴权,当鉴权通过时,执行将收到的待测软件发给HDFS的操作。
3.根据权利要求2所示的方法,其特征在于,所述管理服务器调用HBase中存储的配置信息对测试请求进行鉴权,当鉴权通过时,执行将收到的待测软件发给HDFS的操作,为, 管理服务器调用HBase中存储的配置信息对余额进行检测,以及对请求的服务种类进行检测,当余额充足、且请求的服务种类是允许使用的服务种类时,执行将收到的待测软件发给HDFS的操作。
4.根据权利要求I所示的方法,其特征在于,所述根据收到的测试请求向一个或几个测试服务器发出测试指令,为, 根据收到的测试请求通过Mapreduce算法框架中map函数的参数向一个或几个测试服务器发出测试指令。
5.根据权利要求I所示的方法,其特征在于,所述控制调用的所述测试工具对获取的所述待测软件进行测试之后,所述方法还包括 所述测试服务器将测试中的测试统计信息发送给HBase, 相应的,所述管理服务器从所述HBase获取测试统计信息,并将获取的测测试统计信息发给用户终端。
6.一种基于Hadoop的软件测试系统,其特征在于,所述系统包括管理服务器、一个以上的测试服务器和Hadoop分布式文件系统(HDFS);其中, 管理服务器,用于接收用户终端发来的待测软件和测试请求,将收到的待测软件发给HDFS,并根据收到的测试请求向一个或几个测试服务器发出测试指令;以及从所述HDFS获取测试结果,并将获取的测试结果发给用户终端; 所述测试服务器,用于根据管理服务器发来的测试指令调用自身存储的相应的测试工具,以及从所述HDFS中获取相应的待测软件,控制调用的所述测试工具对获取的所述待测软件进行测试,并将测试结果发送给所述HDFS ; 所述HDFS,用于存储管理服务器发来的待测软件,以及测试服务器发来的测试结果。
7.根据权利要求6所示的系统,其特征在于,所述系统还包括 Hadoop分布式数据库(HBase),用于存储配置信息; 相应的,管理服务器,还用于调用HBase中存储的配置信息对测试请求进行鉴权,当鉴权通过时,执行将收到的待测软件发给HDFS的操作。
8.根据权利要求7所示的系统,其特征在于,所述管理服务器,具体用于调用HBase中存储的配置信息对余额进行检测,以及对请求的服务种类进行检测,当余额充足、且请求的服务种类是允许使用的服务种类时,执行将收到的待测软件发给HDFS的操作。
9.根据权利要求6所示的系统,其特征在于,所述管理服务器,用于根据收到的测试请求通过Mapreduce算法框架中map函数的参数向一个或几个测试服务器发出测试指令。
10.根据权利要求6所示的系统,其特征在于, 所述测试服务器,还用于将测试中的测试统计信息发送给HBase ; 相应的,所述HBase还用于存储测试统计信息; 所述管理服务器,还用于从所述HBase获取测试统计信息,并将获取的测测试统计信息发给用户终端。
11.一种管理服务器,其特征在于,所述管理服务器包括接收发送单元、测试指令发出单元和测试结果获取单元;其中, 接收发送单元,用于接收用户终端发来的待测软件和测试请求,并将收到的待测软件发给HDFS ; 测试指令发出单元,用于根据接收发送单元收到的测试请求向一个或几个测试服务器发出测试指令; 测试结果获取单元,用于从所述HDFS获取测试结果,并将获取的测试结果发给用户终端。
12.一种测试服务器,其特征在于,所述测试服务器包括测试工具调用单元、待测软件获取单元和测试单元;其中, 测试工具调用单元,用于根据管理服务器发来的测试指令调用其存储的相应的测试工亘.N 9 待测软件获取单元,用于从HDFS中获取相应的待测软件; 测试单元,用于控制调用的所述测试工具对所述待测软件获取单元获取的待测软件进行测试,并将测试结果发送给所述HDFS。
全文摘要
本发明提供了一种基于Hadoop的软件测试方法、装置和系统,所述方法包括管理服务器接收用户终端发来的待测软件和测试请求,将收到的待测软件发给Hadoop分布式文件系统(HDFS),并根据收到的测试请求向一个或几个测试服务器发出测试指令;收到测试指令的测试服务器调用自身存储的相应的测试工具,以及从所述HDFS中获取相应的待测软件,控制调用的所述测试工具对获取的所述待测软件进行测试,并将测试结果发送给所述HDFS;管理服务器从所述HDFS获取测试结果,并将获取的测试结果发给用户终端。采用本发明能够使软件测试用户避免购买测试软件,节省测试成本。
文档编号G06F11/36GK102841846SQ20121030944
公开日2012年12月26日 申请日期2012年8月27日 优先权日2012年8月27日
发明者黄俊飞, 宫云战, 陈思勤, 金大海, 王雅文 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1