发明内容
为克服相关技术中存在的问题,本申请提供一种基于测试用例数据表的自动化测试方法及系统。
本申请第一方面,提供一种基于测试用例数据表的自动化测试方法,包括:
根据待测试业务逻辑确定相应的测试用例数据表的单表属性;其中,所述单表属性至少包括:表名、表中每个字段的字段名及数据类型;
根据所述单表属性构建所述测试用例数据表对应的表模板;
根据所述待测试业务逻辑的测试需求在所述表模板中添加一条或多条数据,得到所述测试用例数据表;
根据所述测试用例数据表对待测试业务进行自动化测试。
结合第一方面,在第一方面第一种可行的实施方式中,在根据所述待测试业务逻辑的测试需求在所述表模板中添加一条或多条数据之前,所述方法还包括:设置所述表模板中每个字段的赋值规则。
结合第一方面第一种可行的实施方式,在第一方面第二种可行的实施方式中,根据所述待测试业务逻辑的测试需求在所述表模板中添加一条或多条数据,包括:根据所述数据类型和赋值规则为一条或多条数据的相应字段进行赋值。
结合第一方面第一种可行的实施方式,或者第一方面第二种可行的实施方式,在第一方面第三种可行的实施方式中,所述赋值规则包括以下至少一项:默认值赋值、顺序随机赋值、随机数赋值、自增长赋值。
结合第一方面,在第一方面第四种可行的实施方式中,根据所述单表属性构建所述测试用例数据表对应的表模板,包括:
根据所述单表属性构建每张目标数据表对应的单表模板;
在所述测试用例数据表为存在关联关系的多张目标数据表时,在每张目标数据表对应的单表模板中分别设置表征所述关联关系的分表字段,得到所述测试用例数据表对应的群组表模板。
本申请第二方面,提供一种基于测试用例数据表的自动化测试系统,包括:
属性确定单元,用于根据待测试业务逻辑确定相应的测试用例数据表的单表属性;其中,所述单表属性至少包括:表名、表中每个字段的字段名及数据类型;
模板构建单元,用于根据所述单表属性构建所述测试用例数据表对应的表模板;
数据填充单元,用于根据所述待测试业务逻辑的测试需求在所述表模板中添加一条或多条数据,得到所述测试用例数据表;
测试执行单元,用于根据所述测试用例数据表对待测试业务进行自动化测试。
结合第二方面,在第二方面第一种可行的实施方式中,所述系统还包括:赋值约束单元,用于设置所述表模板中每个字段的赋值规则。
结合第二方面第一种可行的实施方式,在第二方面第二种可行的实施方式中,所述数据填充单元具体被配置为:根据所述数据类型和赋值规则为一条或多条数据的相应字段进行赋值,得到所述测试用例数据表。
结合第二方面第一种可行的实施方式,或者第二方面第二种可行的实施方式,在第二方面第三种可行的实施方式中,所述赋值约束单元设置的赋值规则包括以下至少一项:默认值赋值、顺序随机赋值、随机数赋值、自增长赋值。
结合第二方面,在第二方面第四种可行的实施方式中,所述模板构建单元包括:
单表模板构建模块,用于根据所述单表属性构建每张目标数据表对应的单表模板;
群组模板构建模块,用于在所述测试用例数据表为存在关联关系的多张目标数据表时,在每张目标数据表对应的单表模板中分别设置表征所述关联关系的分表字段,得到所述测试用例数据表对应的群组表模板。
由以上技术方案可知,本申请实施例先根据待测试的业务逻辑确定相应测试用例数据表的单表属性,再根据所确定的单表属性建立相应的表模板,然后根据具体测试需求在所述表模板中添加具体数据,即可得到相应的测试用例数据表,进而可以根据得到的测试用例数据表对各个待测试业务进行自动化测试。本实施例提供的数据构造方法至少存在如下有益效果:
1)表模板的建立保证了其中添加的各条数据均能满足相应的数据库约束,在添加数据时,只需考虑业务逻辑相关的字段数据,其他与业务逻辑无关的字段数据直接根据表模板中预先配置的数据类型进行填充即可,从而可以提高测试用例数据表的生成效率,进而提高自动化测试效率;
2)本实施例建立的表模板具有很强的复用性,针对不同的测试需求,只要复用相应的表模板添加不同的具体数据即可,不需重复整个数据表生成过程,从而进一步提高测试用例数据表的生成效率及自动化测试效率;
3)当测试所需的数据表结构需要改变时,只要需要变更的字段与业务逻辑无关,就可以直接在相应的表模板上修改相关字段的配置,不需要逐一修改具体的测试用例数据表,从而可以减少数据维护成本,也即减少自动化测试成本;
4)本实施例所述的测试用例数据表的生成方式符合自然语言的思维,可读性好,容易理解和编写,便于多人同时编写和维护测试用例数据表,从而进一步保证自动化测试的效率、效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1为本申请实施例提供的一种基于测试用例数据表的自动化测试方法流程图。该方法可以应用于各种类型的自动化测试,可以简单高效的得到各项测试用例对应的数据表,进而保证自动化测试的测试效率及测试效果。参照图1,该方法包括以下步骤。
S11、根据待测试业务逻辑确定相应的测试用例数据表的单表属性。
其中,所述单表属性至少包括:表名、表中每个字段的字段名及数据类型。实际应用中,构建表模板需要的单表属性不限于上述几种,具体可根据实际情况而定,本文不一一列举。
S12、根据所述单表属性构建所述测试用例数据表对应的表模板。
S13、根据所述待测试业务逻辑的测试需求在所述表模板中添加一条或多条数据,得到所述测试用例数据表。
区别于现有技术直接根据具体的测试用例编写各个数据表的各个字段(相当于表格中的各列)得到对应的数据表,本申请实施例暂不考虑测试用例的具体数值,而是基于面向对象的思想,先根据待测试业务逻辑确定其所需的测试用例数据表的整体架构,即确定表名、表中应该包含的各个字段的字段名,以及每个字段的数据类型等单表属性,再根据所确定的单表属性编写相应的代码,生成测试用例数据表对应的表模板,如下表所示的测试项目A对应的表模板(各个字段的数据类型保存在相应的配置文件中)。
然后根据测试需求在上述表模板添加一条或多条数据,添加完成后也就得到需要构造的测试用例数据表,如下表所示的测试项目A对应的编号为001的测试用例数据表。
S14、根据所述测试用例数据表对待测试业务进行自动化测试。
由以上技术方案可知,本申请实施例先根据待测试的业务逻辑确定相应测试用例数据表的单表属性,再根据所确定的单表属性建立相应的表模板,然后根据具体测试需求在所述表模板中添加具体数据,即可得到相应的测试用例数据表,进而可以根据得到的测试用例数据表对各个待测试业务进行自动化测试。本实施例提供的自动化测试方法至少存在如下有益效果:
1)表模板的建立保证了其中添加的各条数据均能满足相应的数据库约束,在添加数据时,只需考虑业务逻辑相关的字段数据,其他与业务逻辑无关的字段数据直接根据表模板中预先配置的数据类型进行填充即可,从而可以提高测试用例数据表的生成效率,进而提高自动化测试效率;
2)本实施例建立的表模板具有很强的复用性,针对不同的测试需求,只要复用相应的表模板添加不同的具体数据即可,不需重复整个数据表生成过程,从而进一步提高测试用例数据表的生成效率及自动化测试效率;
3)当测试所需的数据表结构需要改变时,只要需要变更的字段与业务逻辑无关,就可以直接在相应的表模板上修改相关字段的配置,不需要逐一修改具体的测试用例数据表,从而可以减少数据维护成本,也即减少自动化测试成本;
4)本实施例所述的测试用例数据表的生成方式符合自然语言的思维,可读性好,容易理解和编写,便于多人同时编写和维护测试用例数据表,从而进一步保证自动化测试的效率、效果。
上述步骤S13所述的在表模板中添加数据,既可以逐条添加,也可以批量添加,即同时添加多条数据,以提高测试用例数据表生成效率。有鉴于此,本实施例提供了图2所示数据构造方法。
参照图2,本申请实施例在图1所示方法的基础上,在步骤S12和S13之间增加如下步骤:
S15、设置所述表模板中每个字段的赋值规则。
进一步的,基于步骤S14设置的赋值规则,步骤S13具体可以为:
S13’、根据所述数据类型和赋值规则为一条或多条数据的相应字段进行赋值,得到所述测试用例数据表。
可选的,上述赋值规则可以包括但不限于以下任一项:默认值赋值、顺序随机赋值、随机数赋值、自增长赋值。
其中,上述默认值赋值,即设定唯一一个默认值,每条数据中该字段的具体取值均为该默认值。例如,表模板的第二个字段的数据类型为字符型,当设置该第二个字段的赋值规则为默认值赋值时,可以同时设置该默认值为字符x,则基于该表模板添加数据生成数据表时,添加的每条数据的第二个字段均赋值为x。
上述顺序随机赋值,即设定一个枚举集合或连续区间,在添加数据时,循环遍历该集合或区间中的每个元素并赋值给对应记录的字段。例如,表模板的第三个字段的数据类型为字符型,当设置该第三个字段的赋值规则为顺序随机赋值时,同时设置顺序随机范围为枚举集合{a,c,e}时,则基于该表模板添加N条数据时,第1条数据的第三个字段赋值为a,第2条数据的第三个字段赋值为c,第3条数据的第三个字段赋值为e,第4条数据的第三个字段赋值为a……依此类推;又如,表模板的第四个字段的数据类型为整数型,当设置该第四个字段的赋值规则为顺序随机赋值时,可以同时设置顺序随机范围为连续区间[3,5]时,则基于该表模板添加N条数据时,第1条数据的第四个字段赋值为3,第2条数据的第四个字段赋值为4,第3条数据的第四个字段赋值为5,第4条数据的第四个字段赋值为3……依此类推。
上述随机数赋值,即预设一个随机数生成器(具体可以通过java等编程语言实现),在添加数据时,通过该随机数生成器生成随机数并赋值给相应的字段。
上述自增长赋值,即预设一个初始值和步长,在添加数据时,将按照该初始值和步长递增/递减得到的数据赋值给相应的字段。例如,表模板的第五个字段的数据类型为整数型,当设置该第五个字段的赋值规则为自增长赋值时,可以同时设置初始值为3,自增长步长为+2,则基于该表模板添加N条数据时,第1条数据的第五个字段赋值为3,第2条数据的第五个字段赋值为5,第3条数据的第五个字段赋值为7,第4条数据的第五个字段赋值为9……依此类推。
本实施例所述的各个字段的赋值规则不限于以上四种,可以根据实际应用需求自由设置。另外,还可以设定一种赋值规则为默认规则,当某个字段的赋值规则没有预先设定时,可以直接采用该默认规则进行赋值,从而进一步减轻测试用例数据表生成过程的工作量,提高自动化测试效率。
可见,相对于现有技术中逐条编写数据的方式,对于于业务逻辑无关的字段,本实施例通过上述赋值规则实现同时对多条数据的相应字段进行赋值,可以快速完成数据添加,进一步提高测试用例数据表生成效率及自动化测试效率。
可选的,赋值规则可以作为相应字段的一种属性,在步骤S11确定单表属性时确定,即步骤S11中可以按照如图3所示的表模板架构确定各项单表属性,包括表名、表中每个字段(列)的字段名、数据类型和赋值规则。
在本申请一个可行的实施例中,上述步骤S12所述的根据所述单表属性构建所述测试用例数据表对应的表模板,具体可以包括:
S121、根据所述单表属性构建每张目标数据表对应的单表模板;
S122、在所述测试用例数据表为存在关联关系的多张目标数据表时,在每张目标数据表对应的单表模板中分别设置表征所述关联关系的分表字段,得到所述测试用例数据表对应的群组表模板。
实际应用中,测试用例对应的数据表可能是独立的单表,也可能是存在关联关系的多个单表构成的群组数据表;如果是独立的单表,则通过执行步骤S121即可得到相应的单表模板,如果是群组数据表,则首先通过S121构建群组数据表中的每个单表对应的单表模板,再通过步骤S122实现各个单表模板之间的关联,构成群组表模板。
例如,要得到某网络购物系统中用户的交易记录数据表,由于任一项交易都存在买方和卖方,则需要针对买方构造商品买入记录数据表,以及针对卖方构造商品卖出记录数据表;应用本申请实施例,在分别建立买入记录表模板和卖出记录表模板后,可以将这两个表模板中的订单号字段设置为分表字段(如果两个表模板中不存在订单号字段,则在其中添加该字段),实现关联两个表模板之间的关联,构成交易记录对应的群组表模板。其中,群组表模板中每个单表的数据添加方法与上文所述步骤S13相同,由于分表字段的存在,各个单表中添加的数据也自然存在关联。
可见,本申请实施例在单表模板的基础上设置分表字段得到群组表模板,在添加数据时,只需依照每个单表的约束规则对各个字段赋值,不需考虑与其他表中数据的关联关系,使得测试用例数据表生成过程更加简单高效。
另外,本申请实施例还提供了一种计算机存储介质,例如可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等;该计算机存储介质中存储有程序,当所述存储介质中的程序由自动化测试系统的相应处理器执行时,使得该自动化测试系统能够执行上述方法实施例中记载的部分或全部步骤。
相应于上述基于测试用例数据表的自动化测试方法,本申请实施例还提供了一种基于测试用例数据表的自动化测试系统。图4为该系统的一种结构框图,具体包括:属性确定单元100、模板构建单元200、数据填充单元300和测试执行单元400。
其中,该属性确定单元100用于,根据待测试业务逻辑确定相应的测试用例数据表的单表属性;其中,所述单表属性至少包括:表名、表中每个字段的字段名及数据类型。
该模板构建单元200用于,根据所述单表属性构建所述测试用例数据表对应的表模板。
该数据填充单元300用于,根据所述待测试业务逻辑的测试需求在所述表模板中添加一条或多条数据,得到所述测试用例数据表。
该测试执行单元400用于,根据所述测试用例数据表对待测试业务进行自动化测试。
由以上装置结构可知,本申请实施例先根据待测试的业务逻辑确定相应测试用例数据表的单表属性,再根据所确定的单表属性建立相应的表模板,然后根据具体测试需求在所述表模板中添加具体数据,即可得到相应的测试用例数据表,进而可以根据得到的测试用例数据表对各个待测试业务进行自动化测试。本实施例提供的自动化测试方法中测试用例数据表的生成过程简单高效、所得表模板复用性强、维护成本低、可读性好、便于多人同时编写和维护测试用例数据表,从而保证自动化测试的测试效率及测试效果。
参照图5,在本申请一个可行的实施例中,上述自动化测试系统还可以包括:
赋值约束单元500,用于设置所述表模板中每个字段的赋值规则。
相应的,数据填充单元300具体被配置为:根据所述数据类型和赋值规则为一条或多条数据的相应字段进行赋值,得到所述测试用例数据表。
相对于现有技术中逐条编写数据的方式,对于于业务逻辑无关的字段,本实施例通过上述赋值规则实现同时对多条数据的相应字段进行赋值,可以快速完成数据添加,进一步提高测试用例数据表生成效率及自动化测试效率。
可选的,所述赋值约束单元设置的赋值规则包括以下至少一项:默认值赋值、顺序随机赋值、随机数赋值、自增长赋值。
在本申请一个可行的实施例中,上述模板构建单元200具体可以包括:
单表模板构建模块,用于根据所述单表属性构建每张目标数据表对应的单表模板;
群组模板构建模块,用于在所述测试用例数据表为存在关联关系的多张目标数据表时,在每张目标数据表对应的单表模板中分别设置表征所述关联关系的分表字段,得到所述测试用例数据表对应的群组表模板。
即,在测试用例数据表为独立的单表时,仅需通过上述单表模板构建模块构建得到相应的单表模板,继而通过数据填充单元添加数据;当测试用例数据表为存在关联关系的多张目标数据表时,则先通过上述单表模板构建模块构建得到群组数据表中的每个单表对应的单表模板,再通过群组模板构建模块设置分表字段,实现各个单表模板之间的关联,构成群组表模板。
本申请实施例在单表模板的基础上设置分表字段得到群组表模板,在添加数据时,只需依照每个单表的约束规则对各个字段赋值,不需考虑与其他表中数据的关联关系,使得测试用例数据表生成过程更加简单高效。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。