实现构建测试对象的方法、装置及业务配置测试的装置技术领域
本发明涉及界面测试技术,尤指一种实现构建测试对象的方法、装置及
业务配置测试的装置。
背景技术
网管上的业务配置通常包含配置、上载及页面展示三个部分;其中,配
置(包括下载)是指在网管客户端图形用户界面(GUI)界面针对一个业务
配置好相应的参数并保存。数据进入服务端,通过服务端把数据下发到设备
上去,如果成功则进行数据入库。上载是指:读取入库的数据,在设备上将
数据进行配置后,进行持久化处理。界面展示是指:根据数据持久化处理,
在客户端GUI界面上进行界面展示。
目前,针对业务配置的测试主要是采用QTP(Mercury公司开发的一种
自动测试工具)等工具进行,业务配置的测试依赖于网管运行环境,且只适
合在界面相对稳定的情况下使用,而在界面变化较大的情况下,需要测试人
员根据界面变化进行脚本修改,测试过程的维护工作量相当大,测试效率低。
从另外一个角度,网管上业务配置的配置模块开发都有着相同的流程,
所以网管通过自己的框架来体现这种雷同,开发人员按照这种框架提供必要
的数据就能完成一个配置模块的开发。这种开发模式下开发人员提供的数据
都,由于框架在配置模块开发中参与了配置模块的处理,因此无法直接串联
在一起进行直接测试;因此针对配置模块的测试实际上变成了单元测试。
要想实现对配置模块的端到端测试,需要花费大量的时间用于测试对象
的构建。其中一种方法是采用MOCK技术(MOCK技术就是在测试过程中,
对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便
测试的测试方法)进行测试对象的构建,现有的开源MOCK技术存在功能缺
失,使得构建测试对象过程复杂,尤其在构建测试对象时,现有方法不支持
自动的深度MOCK,例如、MOCK测试对象不支持依据返回测试类类型来定
义行为,不支持模拟和被MOCK对象具有相同CLASS类型的对象,不支持
equals()和hashcode()方法的模拟,不能区别对待同样是String类型的IP地址、
MAC地址、掩码、反掩码和普通的String成员、不支持MOCK对默认值的
修改。由于不支持自动的深度MOCK,业务配置的测试可能出现无法运行的
问题,例如现有的IP地址不能区分普通的String成员,就会导致测试框架无
法运行。
综上,现有的采用MOCK技术进行测试对象构建的方法,需要花费大量
的时间,效率低下;另外,现有的MOCK技术,不支持自动的深度MOCK
容易影响测试框架无法运行。
发明内容
为了解决上述技术问题,本发明提供一种实现构建测试对象的方法、装
置及业务配置测试的装置,能够快速的实现测试对象的构建。
为了达到本发明目的,本发明提供了一种实现构建测试对象的方法,包
括:
根据预先设置的默认值策略,对业务配置测试的各个配置模块所包含的
测试类进行赋值;
通过MOCK方法,依据各配置模块相应的赋值的测试类构建测试对象。
进一步地,预先设置的默认值策略包括:
根据测试类的类型不同,为各测试类分别赋值相应的默认值;和/或,
根据测试类的方法名不同,为各测试类赋值相应的默认值;
所述测试类包括常规的测试类和新建的测试类。
进一步地,该方法还包括:
基于注释Annotation技术,对所述测试类的类型进行反射,使所述构建
的测试对象支持集合和地图MAP成员。
进一步地,该方法还包括:
基于Annotation技术,对业务配置测试的网络之间互连的协议IP地址、
掩码或反掩码、媒体访问控制MAC类型赋值默认值。
进一步地,构建完测试对象后,该方法还包括:
从测试库中为各个配置模块分别配置与其测试相匹配的子目录的Java
归档文件JAR包,和测试涉及的JAR包的依赖关系;
通过各配置模块配置的依赖关系编辑构建的测试对象的测试文本,通过
编辑的测试文本顺向转换和逆向转换运行测试框架进行测试。
进一步地,依赖关系配置完成后,该方法还包括,根据所述测试库的位
置,配置运行所述测试框架的环境变量。
进一步地,配置所述依赖关系之前,该方法还包括:
根据所述业务配置的种类不同,区分收集所述测试库中不同种类业务配
置测试的JAR包;
各种类业务配置测试的JAR包根据配置模块种类的不同,分别建立与各
种类配置模块相匹配的JAR包的子目录,和测试涉及的JAR包的映射关系,
以用于所述依赖关系的配置。
进一步地,该方法还包括:
对所述JAR包以预先设定的用户关键字进行二次封装;
通过预先设定的用户关键字进行所述依赖关系的配置,以根据用户关键
字配置的所述依赖关系编辑构建的测试对象的所述测试文本。
进一步地,构建的测试对象为PO类,所述顺向转换为:
将构建的持久化对象PO类,根据转换为网管客户端和服务端的通讯接
口F口类的JAR包的关键字调用相应的JAR包,将测试对象转换为F口类;
基于转换为网管和设备的通讯接口QX口类的JAR包的关键字调用相应的
JAR包,将转换完成的F口类转换为QX口类;
所述逆向转换为:
将转换完成的所述QX口类基于转换为F口类的JAR包的关键字调用相
应的JAR包,转换为F口类;将转换完成的F口类,根据转换为PO口类的
JAR包的关键字调用相应的JAR包,转换为PO口类;
所述关键字为JAR包的库关键字或用户关键字。
另一方面,本申请还提供一种实现构建测试对象的装置,包括:第一赋
值单元和构建单元;其中,
第一赋值单元,用于根据预先设置的默认值策略,对各个配置模块所包
含的测试类进行赋值;
构建单元,用于通过MOCK方法,依据各配置模块相应的赋值的测试类
构建测试对象。
进一步地,第一赋值单元具体用于,根据预先设置的,
根据测试类的类型不同,为各测试类分别赋值相应的默认值;和/或,根
据测试类的方法名不同,为各测试类赋值相应的默认值的默认值策略,对各
个配置模块所包含的测试类进行赋值。
进一步地,该装置还包括反射单元,用于基于注释Annotation技术,对
所述测试类的类型进行反射,使所述构建的测试对象支持集合和地图MAP
成员。
进一步地,该装置还包括第二赋值单元,用于基于Annotation技术,对
业务配置测试的网络之间互连的协议IP地址、掩码或反掩码、媒体访问控制
MAC类型赋值默认值。
再一方面,本申请还提供一种实现业务配置测试的装置,包括:第一赋
值单元、构建单元、配置依赖关系单元及测试单元;其中,
第一赋值单元,用于根据预先设置的默认值策略,对各个配置模块所包
含的测试类进行赋值;
构建单元,用于通过MOCK方法,依据各配置模块相应的赋值的测试类
构建测试对象;
配置依赖关系单元,用于为各个配置模块分别从测试库中配置与其测试
相匹配的子目录的Java归档文件JAR包,和测试涉及的JAR包的依赖关系;
测试单元,用于通过各配置模块配置的依赖关系编辑构建的测试对象的
测试文本,通过编辑的测试文本顺向转换和逆向转换运行测试框架进行测试。
进一步地,该装置还包括权利要求11~13所述的构建测试对象的装置。
进一步地,该装置还包括区分单元,用于根据所述业务配置的种类不同,
区分收集所述测试库中不同种类业务配置测试的JAR包;
各种类业务配置测试的JAR包根据配置模块种类的不同,分别建立与各
种类配置模块相匹配的JAR包的子目录,和测试涉及的JAR包的映射关系,
以用于所述依赖关系的配置。
进一步地,该装置还包括二次封装单元,用于对所述JAR包以预先设定
的用户关键字进行二次封装;
所述配置依赖关系单元还用于,为各个配置模块分别从测试库中根据用
户关键字配置与其测试相匹配的子目录的Java归档文件JAR包,和测试涉
及的JAR包的依赖关系。
进一步地,构建的测试对象为PO类,所述测试单元,用于通过各配置
模块配置的依赖关系编辑构建的测试对象的测试文本,通过编辑的测试文本,
将构建的PO持久化对象类,根据转换为网管客户端和服务端的通讯接
口F口类的JAR包的关键字调用相应的JAR包,将测试对象转换为F口类;
基于转换为网管和设备的通讯接口QX口类的JAR包的关键字调用相应的
JAR包,将转换完成的F口类转换为QX口类;
将转换完成的所述QX口类基于转换为F口类的JAR包的关键字调用相
应的JAR包,转换为F口类;将转换完成的F口类,根据转换为PO口类的
JAR包的关键字调用相应的JAR包,转换为PO口类运行测试框架进行测试,
所述关键字为JAR包的库关键字或用户关键字。
与现有技术相比,本申请技术方案包括:根据预先设置的默认值策略,
对业务配置测试的各个配置模块所包含的测试类进行赋值;通过MOCK方
法,依据各配置模块相应的赋值的测试类构建测试对象。本发明方法通过预
先设置的默认值策略对配置模块包含的测试类进行赋值,实现了测试对象的
快速构建。
进一步地,通过注释技术,使测试对象支持集合和地图MAP成员,支
持IP地址、掩码/反掩码、MAC类型赋值默认值,实现了测试的自动深度
MOCK。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部
分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的
不当限定。在附图中:
图1为本发明实现构建测试对象的方法的流程图;
图2为本发明实现构建测试对象的装置的结构程图;
图3为本发明实现业务配置测试的装置的结构程图;
图4为本发明第一实施例的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图
对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申
请中的实施例及实施例中的特征可以相互任意组合。
图1为本发明实现构建测试对象的方法的流程图,如图1所示,包括:
步骤100、根据预先设置的默认值策略,对各个配置模块所包含的测试
类进行赋值;
本步骤中,预先设置的默认值策略包括:
根据测试类的类型不同,为各测试类分别赋值相应的默认值;和/或,
根据测试类的方法名不同,为各测试类赋值相应的默认值;
需要说明的是,通过预先设置的默认值策略,根据测试类的类型不同进
行默认值赋值和通过测试类方法名的不同为各测试类赋值,使MOCK测试对
象支持依据返回测试类类型来定义行为。默认值测量为预先设定的数值,因
此支持MOCK对默认值的修改。另外,这里测试类包含常规的测试类,和技
术应用过程中新增的测试类。
步骤101、通过MOCK方法,依据各配置模块相应的赋值的测试类构建
测试对象。
需要说明的是,通过赋值的测试类进行测试对象的构建,为快速构建测
试对象提供了基础。
本发明方法还包括:
基于注释(Annotation)技术,对测试类的类型进行反射,使构建的测试
对象支持集合和地图MAP成员。
通过对测试类的类型进行反射,是业务配置的测试支持模拟和被MOCK
对象具有相同CLASS类型的对象;进一步的,解决了原有的MOCK方式不
支持equals()和hashcode()方法的模拟的问题。
本发明方法还包括:
基于Annotation技术,对业务配置测试的网络之间互连的协议IP地址、
掩码或反掩码、媒体访问控制MAC类型赋值默认值。
需要说明的是,通过对IP地址、MAC地址、掩码、反掩码的赋值处理,
使IP地址、MAC地址、掩码、反掩码按照设定的字符串类型进行赋值后,
可以和普通的String成员进行区分。
构建完测试对象后,本发明方法还包括:为各个配置模块分别从测试库
中配置与其测试相匹配的子目录的Java归档文件(JAR)包,和测试涉及的
JAR包的依赖关系;
通过各配置模块配置的依赖关系编辑构建的测试对象的测试文本,通过
编辑的测试文本顺向转换和逆向转换运行测试框架进行测试。
需要说明的是,在通过MOCK技术构建测试对象之后,通过配置依赖关
系进行构建测试对象的测试文本,只需要进行关键字进行端对端的测试驱动。
与现有的采用MOCK技术进行测试对象构建的方法,节省了构建测试对象上
耗费的时间,提高了测试效率。
本步骤中,构建的测试对象为PO类,顺向转换为:
将构建的持久化对象类(PO),根据转换为网管客户端和服务端的通讯
接口(F口)类的JAR包的关键字调用相应的JAR包,将测试对象转换为F
口类;基于转换为网管和设备的通讯接口(QX口)类的JAR包的关键字调
用相应的JAR包,将转换完成的F口类转换为QX口类;
逆向转换为:
将转换完成的QX口类基于转换为F口类的JAR包的关键字调用相应的
JAR包,转换为F口类;将转换完成的F口类,根据转换为PO口类的JAR
包的关键字调用相应的JAR包,转换为PO口类;
本发明方法之前还包括:
根据业务配置的种类不同,区分收集测试库中不同种类业务配置测试的
JAR包;
各种类业务配置测试的JAR包根据配置模块种类的不同,分别建立与各
种类配置模块相匹配的JAR包的子目录,和测试涉及的JAR包的映射关系,
以用于依赖关系的配置。
本发明方法还包括:
对JAR包以预先设定的用户关键字进行二次封装;
通过预先设定的用户关键字进行依赖关系的配置,以根据用户关键字配
置的依赖关系编辑构建的测试对象的测试文本。
在顺向转换和逆向转换过程中,调用JAR包的关键字可以是JAR包的
库关键字或二次封装的用户关键字。具体采用关键字的种类主要依据是否进
行了二次封装,以及技术人员对库关键字和用户关键字的使用习惯,一般的
用户关键字是技术人员根据使用习惯定义的关键字,方便基于和编辑测试文
本使用。
依赖关系配置完成后,本发明方法还包括,根据测试库的位置,配置运
行测试框架的环境变量。
需要说明的是,处理根据测试库的位置设置环境变量外,运行测试框架
还包含有其他相关参数的设置,属于本领域技术人员的公知常识。本发明通
过配置依赖关系,和基于依赖关系进行构建的测试对象的测试文本的编辑,
测试过程不依赖与网管的运行环境。由于不依赖运行环境进行业务配置测试,
降低了业务配置测试对测试系统的性能要求。使测试的硬件要求大大降低。
本发明方法通过预先设置的默认值策略对配置模块包含的测试类进行赋
值,实现了测试对象的快速构建。进一步地,通过注释技术,使测试对象支
持集合和地图MAP成员,支持IP地址、掩码/反掩码、MAC类型赋值默认
值,实现了测试的自动深度MOCK。只需要进行关键字进行端对端的测试驱
动。与现有的测试对象构建的方法相比,大大节省了构建测试对象上耗费的
时间,提高了测试效率。通过配置与测试库中JAR包的依赖关系和基于依赖
关系进行构建的测试对象的测试文本的编辑,测试过程不依赖与网管的运行
环境。降低了业务配置的硬件要求,使业务配置测试更加容易实现。
图2为本发明实现构建测试对象的装置的结构程图,如图2所示,包括:
第一赋值单元和构建单元;其中,
第一赋值单元,用于根据预先设置的默认值策略,对各个配置模块所包
含的测试类进行赋值;
第一赋值单元具体用于,根据预先设置的,
根据测试类的类型不同,为各测试类分别赋值相应的默认值;和/或,根
据测试类的方法名不同,为各测试类赋值相应的默认值的默认值策略,对各
个配置模块所包含的测试类进行赋值。
构建单元,用于通过MOCK方法,依据各配置模块相应的赋值的测试类
构建测试对象。
本发明装置还包括反射单元,用于基于注释(Annotation)技术,对测试
类的类型进行反射,使构建的测试对象支持集合和地图MAP成员。
本发明装置还包括第二赋值单元,用于基于Annotation技术,对业务配
置测试的网络之间互连的协议IP地址、掩码或反掩码、媒体访问控制MAC
类型赋值默认值。
图3为本发明实现业务配置测试的装置的结构程图,如图3所示,包括:
第一赋值单元、构建单元、配置依赖关系单元及测试单元;其中,
第一赋值单元,用于根据预先设置的默认值策略,对各个配置模块所包
含的测试类进行赋值;
第一赋值单元具体用于,
根据预先设置的,
根据测试类的类型不同,为各测试类分别赋值相应的默认值;和/或,
根据测试类的方法名不同,为各测试类赋值相应的默认值的默认值策略,
对各个配置模块所包含的测试类进行赋值;
测试类包括常规的测试类和新建的测试类。
构建单元,用于通过MOCK方法,依据各配置模块相应的赋值的测试类
构建测试对象;
配置依赖关系单元,用于为各个配置模块分别从测试库中配置与其测试
相匹配的子目录的Java归档文件(JAR)包,和测试涉及的JAR包的依赖
关系;
测试单元,用于通过各配置模块配置的依赖关系编辑构建的测试对象的
测试文本,通过编辑的测试文本顺向转换和逆向转换运行测试框架进行测试。
本发明装置还包括反射单元,用于基于注释Annotation技术,对测试类
的类型进行反射,使构建的测试对象支持集合和地图MAP成员。
本发明装置还包括第二赋值单元,用于基于Annotation技术,对业务配
置测试的网络之间互连的协议IP地址、掩码或反掩码、媒体访问控制MAC
类型赋值默认值。
本发明装置还包括区分单元,用于根据业务配置的种类不同,区分收集
测试库中不同种类业务配置测试的JAR包;
各种类业务配置测试的JAR包根据配置模块种类的不同,分别建立与各
种类配置模块相匹配的JAR包的子目录,和测试涉及的JAR包的映射关系,
以用于依赖关系的配置。
本发明装置还包括二次封装单元,用于对JAR包以预先设定的用户关键
字进行二次封装;
配置依赖关系单元还用于,为各个配置模块分别从测试库中根据用户关
键字配置与其测试相匹配的子目录的Java归档文件JAR包,和测试涉及的
JAR包的依赖关系。
构建的测试对象为PO类,测试单元具体用于,通过各配置模块配置的
依赖关系编辑构建的测试对象的测试文本,通过编辑的测试文本,
将构建的PO持久化对象类,根据转换为网管客户端和服务端的通讯接
口F口类的JAR包的关键字调用相应的JAR包,将测试对象转换为F口类;
基于转换为网管和设备的通讯接口QX口类的JAR包的关键字调用相应的
JAR包,将转换完成的F口类转换为QX口类;
将转换完成的QX口类基于转换为F口类的JAR包的关键字调用相应的
JAR包,转换为F口类;将转换完成的F口类,根据转换为PO口类的JAR
包的关键字调用相应的JAR包,转换为PO口类运行测试框架进行测试,
关键字为JAR包的库关键字或用户关键字。
以下通过具体实施例对本发明方法进行清楚详细的说明,实施例仅用于
陈述本发明,并不用于限制本发明方法的保护范围。
实施例1
在实施本实施例之前,本实施例对测试库中的JAR包按照业务配置的类
型,各配置模块的种类等分别进行的目录和子目录下JAR包的整理。对JAR
包进行了二次封装,通过二次封装的用户关键字进行测试文本的编辑。
通过默认值测量对配置模块的测试类进行了赋值,依据测试类的赋值进
行测试对象的构建,基于构建的测试对象及编辑的测试文本进行了业务配置
测试,图4为本发明第一实施例的方法流程图,如图4所示,包括:
步骤400、通过默认值测量对配置模块的测试类进行赋值,依据测试类
的赋值构建测试对象。这里假设测试类的类型为A,根据技术人员设定的默
认值测试,对类型为A的测试类进行赋值,构建的测试对象为项目1(obj1)。
测试人员根据测试库的收集整理,二次封装对JAR包的处理,测试框架
的环境变量的设置,在测试框架中运行构建的测试对象,具体包括顺向转换
和逆向转换;其中,顺向转换包括步骤401和步骤402,逆向转换包括步骤
403和步骤404;具体的,
步骤401、通过编辑的测试文本,调用将构建的测试对象转换为F口类
的JAR包,将构建的测试对象转换为F口类;这里,构建的测试对象为PO
口类,假设取名为obj1,假设生成的F口类取名为Fobj1;具体的,
转换为F口类的JAR包通过用户关键字进行调用,如果二次封装并未对
该JAR包进行二次封装时,则采用库关键字进行调用,当然测试文件在编辑
时,也采用库关键字进行编辑。
步骤402、调用将转换完成的F口类转换为QX口类的JAR包,将F口
类转换为QX口类;
逆向转换包括:
步骤403、调用将转换完成的QX口类转换为F口类的JAR包,将QX
口类转换为F口类;这里,为了和之前顺向转换生成的F口类进行区分,假
设生成的逆向转换生成的F口类取名为Fobj2;
步骤404、调用将转换完成的F口类转换为PO口类的JAR包,将F口
类转换为PO口类;假设逆向转换生成的PO口类取名为obj2。
通过obj1和obj2比较确定业务配置测试是否成功,如果obj1和obj2内
容一致,则业务配置成功,如果不一致,则测试失败,通过对比测试日志,
比对包含本发明默认值策略赋值的参数及其他常规参数在运行过程中的变
化,可以确定测试出现错误的位置,具体对测试日志进行分析的方法,属于
本领域技术人员的惯用技术手段,在此不再赘述。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明
而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人
员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细
节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利
要求书所界定的范围为准。