一种基于大数据的自动化测试方法及系统与流程

文档序号:13760322阅读:1497来源:国知局
一种基于大数据的自动化测试方法及系统与流程

本发明涉及大数据处理技术领域,尤其涉及一种基于大数据的自动化测试方法及系统。



背景技术:

大数据(big data):是指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。

现有技术大数据微型负载测试,针对大数据平台的某个特定组件或者应用进行自动化测试。例如GridMix是面向Hadoop集群的测试基准;TeraSort只针对文本数据的排序;雅虎开发的YCSB对比NoSQL数据库的性能,其目的是评估键值和云数据库;Facebook的LinkBench专门用于测试存储社交图谱和网络服务的数据库。现有技术只测试大数据平台的某个特定组件或应用,具有很高的局限性。

现有技术大数据平台还可以通过手工测试,但手工测试效率低,并且需要操作人员全面了解大数据平台,技术难度较大

另外,现有技术还具有针对性的大数据平台自动化测试,但其往往针对某一特定系统,专门设计大数据平台自动化测试框架。具有针对性的测试框架测试效率固然高,契合度高,但是可移植性差,不能用于其他大数据平台。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:如何解决通用的大数据处理系统的测试问题,这是本领域的技术人员亟待解决的一个技术难题。



技术实现要素:

本发明实施例提供一种基于大数据的自动化测试方法及系统,以可自动化完成,提高测试效率,节省成本。

一方面,本发明实施例提供了一种基于大数据的自动化测试方法,所述方法包括:

根据大数据的待测试业务逻辑特征,生成测试数据集;

根据所述测试数据集进行计算,得到期望结果;

将所述测试数据集采用多个测试用例类表示,所述多个测试用例类全部继承自一个基类;

对所述多个测试用例类进行计算,得到输出结果;

将所述期望结果和所述输出结果进行比对,获取比对结果:若所述期望结果和所述输出结果相同,则测试成功,否则测试失败。

另一方面,本发明实施例提供了一种基于大数据的自动化测试系统,所述系统包括:

数据生成器,用于根据大数据的待测试业务逻辑特征,生成测试数据集;根据所述测试数据集进行计算,得到期望结果;

执行器,用于将所述测试数据集采用多个测试用例类表示,所述多个测试用例类全部继承自一个基类;对所述多个测试用例类进行计算,得到输出结果;

结果比对器,用于将所述期望结果和所述输出结果进行比对,获取比对结果:若所述期望结果和所述输出结果相同,则测试成功,否则测试失败。

上述技术方案具有如下有益效果:解决了通用的大数据处理系统的测试问题,可自动化完成,可提高测试效率,节省成本;可移植,可复用,可应用于大数据自动化测试中。由于采用了类实现测试用例,使得系统方便处理业务逻辑里面测试用例的相互依赖关系,因而有提高自动化覆盖度的有益效果;由于将传统自动化测试与大数据测试相结合,使得还不成熟的大数据测试有了更明确的测试方法,因而对大数据的自动化测试方法进行了很好的补充和完善。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一种基于大数据的自动化测试方法流程图;

图2为本发明实施例一种基于大数据的自动化测试系统组成结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,为本发明实施例一种基于大数据的自动化测试方法流程图,所述方法包括:

101、根据大数据的待测试业务逻辑特征,生成测试数据集;

102、根据所述测试数据集进行计算,得到期望结果;

103、将所述测试数据集采用多个测试用例类表示,所述多个测试用例类全部继承自一个基类;

104、对所述多个测试用例类进行计算,得到输出结果;

105、将所述期望结果和所述输出结果进行比对,获取比对结果:若所述期望结果和所述输出结果相同,则测试成功,否则测试失败。

优选地,所述基类包括若干类变量和若干类函数,所述类变量包括:用例名称NAME,模拟的输入数据MOCKED_SOURCE_DATA,期望结果参数EXPECTED_RESULT。

优选地,得到期望结果后,将所述期望结果进行排序,转化为元组列表形式;

得到输出结果后,将所述输出结果进行排序,转化为元组列表形式。

优选地,所述将所述测试数据集采用多个测试用例类表示,所述多个测试用例类全部继承自一个基类,包括:当两个测试用例类TCl和TC2具有相同输入数据集时,用类TC2继承类TC1,类变量输入不作修改。

优选地,所述将所述测试数据集采用多个测试用例类表示,所述多个测试用例类全部继承自一个基类,包括:当一个测试用例类TC3的输出为另一个测试用例类TC4的输入时,用类TC4继承类TC3,将类TC3输出属性值赋给类TC4输入属性值。

对应于上述方法实施例,如图2所示,为本发明实施例一种基于大数据的自动化测试系统组成结构示意图,所述系统包括:

数据生成器21,用于根据大数据的待测试业务逻辑特征,生成测试数据集;根据所述测试数据集进行计算,得到期望结果;

执行器22,用于将所述测试数据集采用多个测试用例类表示,所述多个测试用例类全部继承自一个基类;对所述多个测试用例类进行计算,得到输出结果;

结果比对器23,用于将所述期望结果和所述输出结果进行比对,获取比对结果:若所述期望结果和所述输出结果相同,则测试成功,否则测试失败。

优选地,所述基类包括若干类变量和若干类函数,所述类变量包括:用例名称NAME,模拟的输入数据MOCKED_SOURCE_DATA,期望结果参数EXPECTED_RESULT。

优选地,所述结果比对器23,具体用于得到期望结果后,将所述期望结果进行排序,转化为元组列表形式;得到输出结果后,将所述输出结果进行排序,转化为元组列表形式。

优选地,所述执行器22,具体用于将所述测试数据集采用多个测试用例类表示,当两个测试用例类TC1和TC2具有相同输入数据集时,用类TC2继承类TCl,类变量输入不作修改。

优选地,所述执行器22,具体用于将所述测试数据集采用多个测试用例类表示,当一个测试用例类TC3的输出为另一个测试用例类TC4的输入时,用类TC4继承类TC3,将类TC3输出属性值赋给类TC4输入属性值。

本发明实施例上述技术方案具有如下有益效果:解决了通用的大数据处理系统的测试问题,可自动化完成,可提高测试效率,节省成本;可移植,可复用,可应用于大数据自动化测试中。由于采用了类实现测试用例,使得系统方便处理业务逻辑里面测试用例的相互依赖关系,因而有提高自动化覆盖度的有益效果;由于将传统自动化测试与大数据测试相结合,使得还不成熟的大数据测试有了更明确的测试方法,因而对大数据的自动化测试方法进行了很好的补充和完善。

以下通过应用实例对本发明实施例上述技术方案进行详细说明:

由于大数据本身的特性,大数据测试不能直接同于其他目前已经很成熟的测试。处理大数据的系统平台均是由多台服务器搭建的集群系统,包括多个分布式处理模块,而数据本身又有极强的复杂性,因此常规测试方法不能直接应用于大数据测试,自动化测试更是显得难上加难。

本发明应用实例一种基于大数据的自动化测试系统主要组成部分:数据生成器、执行器、结果比对器:

其中,数据生成器分两部分,一部分根据大数据的待测试业务逻辑特征,生成测试数据集;另一部分根据所述测试数据集进行计算,获取期望结果。

执行器,用类实现,便于移植扩展。利用大数据平台本地化模式,将所述测试数据集采用多个测试用例类表示,所述多个测试用例类全部继承自一个基类;对所述多个测试用例类进行计算,获取输出结果。

结果比对器,将所述期望结果和所述输出结果进行比对,获取比对结果。

执行器将结果以文件形式输出到测试环境本地,测试框架读取该文件并将内容转化为tuple list,排序后与预先定义的期望结果tuple list比对,如果相同,则测试成功;如果不一致,则测试失败,返回测试失败码。

测试用例类全部继承自一个基类,该基类定义了若干类变量以及若干类函数,类变量比如包括:用例名称(NAME),模拟的输入数据(MOCKED_SOURCE_DATA),期望结果参数(EXPECTED_RESULT)等。每个测试用例子类改写这些类变量即可。若有两个测试用例类基于同样的模拟输入数据或期望结果,则可以让其中一个用例类继承自另一个,以达到模拟数据复用的目的。

同时,如果模拟输入数据和期望结果较为繁琐,可以不必枚举数据,而是将两者对应的类变量改写为property类函数,通过代码来生成。

测试用例的基类基本结构如下,具体实现还需要继续填充所需要的类变量以及类函数:

当测试用例间存在联系时,可以根据业务逻辑进行类之间的继承。如以下几种情况:

1、两个测试用例类TestCaseClass1(TC1)和TestCaseClass2(TC2)具有相同输入数据集时,可以用类TC2继承类TC1,类变量输入不作修改,只需要修改其他属性即可;

2、当一个测试用例类TC3的输出刚好是类TC4的输入,那么此时用类TC4继承类TC3,将类TC3输出属性值赋给类TC4输入属性值。

以下是执行器类的部分代码:

表1

def run(self,*args,**kwargs):

#每个执行器子类需要实现各自的run方法

raise NotImplementedError()

本发明应用实例上述技术方案具有如下有益效果:解决了通用的大数据处理系统的测试问题,可自动化完成,可提高测试效率,节省成本;可移植,可复用,可应用于大数据自动化测试中。由于采用了类实现测试用例,使得系统方便处理业务逻辑里面测试用例的相互依赖关系,因而有提高自动化覆盖度的有益效果;由于将传统自动化测试与大数据测试相结合,使得还不成熟的大数据测试有了更明确的测试方法,因而对大数据的自动化测试方法进行了很好的补充和完善。

应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。

在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。

为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。

上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrativelogical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrativecomponents),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。

本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。

本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。

在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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