本地化数据采集方法和系统的制作方法

文档序号:6554837阅读:155来源:国知局
专利名称:本地化数据采集方法和系统的制作方法
技术领域
本发明涉及网络和计算机软件技术,特别涉及计算机软件的自动化测试,具体的讲是一种本地化数据采集方法。
背景技术
自动化测试的初次投入是手工测试的3至10倍。如果自动化测试只做一次的话,还不如用手工测试。同一个自动化测试进行多次,不可避免地面对测试环境的准备和恢复问题。一般静态的数据准备的做法是通过做一个交易产生一个符合这次测试的数据,通过人手记录下来,经过这个测试后,这个数据的状态发生了改变,不再适合这个测试,再次进行这个测试时,又需要重复这个过程来产生一个符合这个测试的数据。举个简单的例子要测试一个活期帐户的销户交易,那么首先就需要一个正常状态的活期帐户。这个帐户从何而来,你需要做一个活期帐户的开户交易来开出一个正常状态的活期帐户,并记下这个帐户的帐号。然后开始进行销户交易的测试,交易成功后,这个活期帐户就变成了一个已销户状态的帐户,不能再用来测试销户交易了,需要重新新开一个帐户。自动化测试事前要做很多的测试准备数据,自动化测试完成后会使开始准备的数据的状态等属性发生变化,下次进行自动化测试时又需要重新准备数据。目前很多公司的做法是采用测试前备份,测试后恢复数据的做法来实现自动化测试和回归测试,但这种做法在较为复杂的服务器环境上实现不现实,由于每套测试环境上都可能有多个项目正在开展测试,各项目的开始和结束时间点不可能完全相同,如果偶尔少数几次的环境恢复可能测试人员还能勉强接受,但长期做环境的备份恢复肯定会给其他项目测试进度带来重大影响。

发明内容
本发明克服了现有自动化测试技术在数据和环境准备中的不足,提供一种实现简单,实施成本低,能够有效避免重复准备数据的方法。
在本发明的一个方面,提供了一种用于从测试数据库中将数据采集到本地数据库的数据采集系统,包括数据描述管理装置,用于产生具有预定特征的数据项的数据描述;以及数据采集装置,用于根据所述数据描述以批量的方式从测试数据库中将相应的数据项采集到本地数据库中。
根据本发明的实施例,该系统还包括环境设置装置,用于设定进行数据采集的测试数据库环境,并把各个测试数据库环境的参数值保存在本地数据库的表中。
根据本发明的实施例,该系统还包括数据采集机器人装置,用于实时检测本地数据库中与预定特征的数据描述相对应的数据项的数目,并且在所述数目小于预定的阈值的情况下从测试数据库中采集具有所述预定特征的数据项。
根据本发明的实施例,该系统还包括本地数据分配装置,用于把本地数据库中的各个数据项分配给相应的应用。
根据本发明的实施例,所述数据描述管理装置包括SQL辅助生成装置,用于将中文名称转换成英文名称以生成数据描述所需的SQL语句;SQL辅助查询装置,用于将所述SQL语句发送给测试数据库以验证所述SQL语句的正确性。
根据本发明的实施例,所述数据描述管理装置还包括数据描述新增装置,用户通过所述数据描述新增装置输入数据描述名称、状态、预期采集的数据量,以在本地数据库中产生新的数据描述。
根据本发明的实施例,所述数据采集装置包括数据采集总控装置,用于控制各个线程下的批量数据采集过程;数据采集线程装置,用于将与一个环境下的所有数据描述相对应的数据项批量采集到本地数据库。
根据本发明的实施例,所述数据采集机器人装置包括数据监听/检测装置,用于每隔一段时间检测一次本地数据库中每一种数据描述的可用数量,以确定缺乏的数据项的数据描述;以及单个数据描述的数据采集装置,用于从测试数据库中采集本地数据库中缺乏的数据项。
在本发明的另一方面,提供了一种用于从测试数据库中将数据采集到本地数据库的数据采集方法,包括步骤在本地产生具有预定特征的数据项的数据描述;以及根据所述数据描述以批量的方式从测试数据库中将相应的数据项采集到本地数据库中。
根据本发明的实施例,该方法还包括步骤设定进行数据采集的测试数据库环境,并把各个测试数据库环境的参数值保存在本地数据库的表中。
根据本发明的实施例,该方法还包括步骤实时检测本地数据库中与预定特征的数据描述相对应的数据项的数目,并且在所述数目小于预定的阈值的情况下从测试数据库中采集具有所述预定特征的数据项。
根据本发明的实施例,该方法还包括步骤把本地数据库中的各个数据项分配给相应的应用。
根据本发明的实施例,该方法还包括步骤将中文名称转换成英文名称以生成数据描述所需的SQL语句;将所述SQL语句发送给测试数据库以验证所述SQL语句的正确性。
根据本发明的实施例,该方法还包括步骤输入数据描述名称、状态、预期采集的数据量,以在本地数据库中产生新的数据描述。
根据本发明的实施例,所述采集步骤包括将与一个环境下的所有数据描述相对应的数据项批量采集到本地数据库。
根据本发明的实施例,该方法还包括步骤每隔一段时间检测一次本地数据库中每一种数据描述的可用数量,以确定缺乏的数据项的数据描述;以及从测试数据库中采集本地数据库中缺乏的数据项。
根据本发明的上述方法和系统,利用数据描述进行数据采集,可以实现准备一次数据描述,以后就可以重复采集这一类型的数据,避免重复做繁琐的环境数据准备,提高了效率。此外,对采集下来数据进行二次分配,避免数据使用冲突。


图1是本地化数据采集的结构示意图;图2是数据描述管理装置的结构示意图;图3是数据采集装置的结构示意图;图4是数据采集机器人装置的一个结构示意图;图5是数据采集总控装置的流程图;图6是一个数据采集线程的流程图;图7是数据采集机器人装置的流程图。
具体实施例方式
下面将对照附图,对本发明的具体实施例进行详细说明。
如图1所示,被采集的测试数据库1处于一个环境相对复杂的测试环境中,为各种应用提供数据来源。换句话说,要被采集的数据存储在该测试数据库1中。这个测试环境可以是大型机,同样也可以扩展到一般的小型,微型服务器,前提是这个服务器不适宜频繁地进行环境的恢复。
本地数据库2是一个跟数据采集装置7处于同一个局域网内的数据库,因此称之为本地数据库。它可以是DB2,ORACLE,SQLSERVER等各种关系数据库。本地数据库2里面主要有环境表、数据描述表(数据结构表1)、本地数据表(数据结构表2)。
下面的表1和表2示出了数据描述表1和本地数据表的结构。
表1、数据描述表(DATADESC)


表2、本地数据表(LOCAL_DATA)

在表1中,数据描述是指事先定义的一些对测试案例需要的数据的详细而清晰的描述。例如“正常的人民币活期帐户”,“已挂失的灵通卡卡号”,“余额大于10万元的正常的美元往来户”这些都是数据描述,对应存放在数据结构表1(DATADESC)的DATADESC_NAME字段。
带参数的数据描述SQL是指每一个数据描述会对应一条能够从测试数据库取到这类型数据的SQL,这个SQL中所有跟实际环境的参数值相关的地方都用参数表示,因此称作带参数的数据描述SQL,存放在数据结构表1(DATADESC)的DATADESC_SQL字段。
可执行的数据描述SQL是指当带参数的数据描述SQL中的参数被实际的环境参数值替换后,这个SQL就是可执行的SQL了。
内部/外部网络3可以为内部网络企业的局域网,以太网(Ethernet),其它局域网络,如光纤分布式数据接口(FDDI)、令牌环(Token-Ring)等。它同时可以是外部的网络互联网(Internet)或者其它企业外部网(Extranet)。主要视被采集的测试数据库1与其它装置是否处于同一内部网络而定。
内部网络4为企业的局域网,可以是以太网(Ethernet),也可以是其它局域网络,如光纤分布式数据接口(FDDI)、令牌环(Token-Ring)等。
环境设置装置5是一个提供界面给用户以对特定应用的测试环境进行设置的客户端,它把各个环境的一些参数值保存在本地数据库特定的数据结构——环境表中,供数据采集装置7用来替换带参数的数据描述SQL中的参数。参数值随着各个具体测试环境的不同而不同,但是能清晰描述各个环境在测试数据库中的特征。
数据描述管理装置6是一个提供界面可以让用户能够新增,修改,拷贝,删除数据描述的客户端。数据描述管理装置6生成的数据描述插入到本地数据库的数据描述表(数据结构表1)中,供数据采集装置7,本地数据分配装置8和数据采集机器人装置9使用。
数据描述管理装置6包括图2所示的6个部分。
SQL辅助生成装置61是一个用来帮助用户产生数据描述所需的SQL的工具。由于测试数据库的表很多,用户不可能全部都能记住需要查询的表的表名、字段名等,产生数据描述SQL会有一定的困难。而使用SQL辅助生成装置61,用户只需选择需要查询的表的中文名,表的中文字段名,以及一些常用的函数,运算符等,就可以由SQL辅助生成装置61进行测试数据库表名以及各字段名的中英文转换等各种转换,产生SQL语句。
SQL辅助查询装置62是一个提供给用户验证自己手写的或者SQL辅助生成装置61产生的SQL语句的工具。它是一个SQL执行客户端。用户只需要按一个查询按钮,就可以直接把SQL送上测试数据库,通过测试数据库返回信息验证SQL是否有错误。
数据描述新增装置63提供一个界面让用户输入数据描述名称,选择数据描述状态,通过对手写或者SQL辅助生成装置61产生的SQL中跟环境相关的参数值变成参数,产生带参数的数据描述SQL,以及选择SQL语句是否检测通过,填入预期采集的数据量,最后由数据描述新增装置63根据数据库序列生成一个数据描述ID,插入本地数据库的数据描述表DATADESC(数据结构表1)中的相应字段,至此,一条数据描述新增成功。
数据描述修改装置64提供了一个界面让用户对数据描述新增装置63产生的数据描述的各个属性进行修改。
数据描述拷贝装置65提供了一个复制已存在的数据描述的功能,目的是为了让用户复制一个数据描述,在这个基础上进行修改,加速生成相近或相似的数据描述。
数据描述删除装置66提供了删除由数据描述新增装置63和数据描述拷贝装置65产生的数据描述的功能。
数据采集装置7是一个根据数据描述批量采集测试数据库各个环境的数据到本地的装置。它可以是通过任何一种数据库连接驱动(ODBC,JDBC等)连接上目标测试环境的数据库。例如,使用DB2直连的ODBC驱动连接上目标测试环境。它通过将数据描述管理装置6产生的带参数的数据描述SQL和环境设置装置5产生的具体环境的参数值组合成可以执行的SQL语句,采用多线程送上测试数据库进行数据采集。
数据采集装置7包括图3所示的两个部件。
数据采集总控装置71是一个负责控制数据采集线程装置72以及整个采集流程的部件。数据采集线程装置72是一个实际的对一个环境的所有数据描述进行批量数据采集的一个部件。
先看数据采集总控装置71的具体操作流程,如图5所示步骤10数据采集总控装置71先进行一些访问数据库、启动线程等的初始化工作,把线程计数器变量置为0。
步骤11通过SQL语句查询本地数据库的环境表,获取整个环境参数值的数据集。
步骤12判断环境数据集是否为空,如果是空,则结束整个数据采集流程。如果不为空,则转到步骤13。
步骤13数据采集总控装置71先从环境数据集中取一个环境的具体参数值。
步骤14启动一个数据采集线程,把这个环境的参数值传入线程内,同时将线程计数器加1,并且开始数据采集线程装置72的流程。为了加快采集的速度,同时也避免连接上测试环境的数据库连接过多,因此经过衡量,在这里采用多线程技术,每一个环境将会起一个线程对所有有效的数据描述进行采集。一个线程对应一个数据库连接。
步骤15将环境数据集中的游标向下移动一位。
步骤16判断是否到达环境数据集的结尾,如果否则转到步骤13;如果是则转到步骤17。
步骤17等待所有线程的结束。每一个线程结束时,都会将线程计数器减1。
步骤18判断线程计数器是否为0,看线程是否全部结束,如果是,则结束程序,否则转向步骤17继续等待。
下面描述数据采集线程装置72的具体操作流程,如图6所示步骤20获取数据采集总控装置71传入的环境的参数值,保存到各个变量中。
步骤21从本地数据库的数据描述表(DATADESC)中取出所有数据描述状态(DATADESC_STATUS)值为1——有效和SQL语句检测状态(ISTEST)值为1——检测通过的数据描述到一个数据集中。
步骤22判断数据描述数据集是否为空,如果为空则转到步骤29,如果不为空则转到步骤23。
步骤23从数据描述数据集取一条数据描述记录,包括表1中的数据描述ID字段,数据描述SQL语句字段,预期采集数据量字段。
步骤24用步骤20的环境参数值和步骤21的带参数的数据描述SQL以及预期采集数据量组合成一条可执行的SQL语句。这一过程就是用环境参数值把带参数的数据描述SQL中的参数替换掉,并用把采集数据量变成SQL语句的一个条件限制。例如预期采集100条数据,在DB2中是“FETCH FIRST 100 ROWS ONLY”,其他数据库有类似的用法。然后将这条可执行的SQL语句上送测试数据库进行查询。
步骤25判断是否有采集到符合条件的数据,如果否则转到步骤27。如果是则转到步骤26。
步骤26把采集下来的数据以及数据描述ID,测试数据库环境ID插入数据结构表2本地数据表(LOCAL_DATA)中,其中采集下来的数据放在DATA字段中。
步骤27将数据描述数据集的游标向下移动一位。
步骤28判断是否到达数据描述数据集的结尾,是则转到步骤20,否则转到步骤23。
步骤29将线程计数器减1,同时做一些线程结束的收尾工作。
至此,一个采集线程结束。
本地数据分配装置8是一个针对各个使用采集下来的数据的应用的一个分配装置,它可以对数据的使用进行一种限制,避免使用冲突。它的实现可以是一个接口给各个应用来调用,各个应用跟具体的数据描述进行一种关联后,需要用到这个数据描述的数据时,调用这个接口,由本地数据分配装置8在本地数据表2(LOCAL_DATA)中根据使用的环境参数选择一条合适的数据,同时把表2本地数据表(LOCAL_DATA)中的这条数据的ISUSETODAY字段的值置成1-已使用,以及把使用人、使用时间更新进本地数据表(表2)中相应的USER_ID和OPR_DATE字段。
数据采集机器人装置9是一个避免本地数据使用完毕后应用没有数据可用的一个机器人程序。它的实现原理是通过不停检测本地数据表2(LOCAL_DATA)中每一种数据描述的可用数据量,当发现存在可用数据量小于某一指定阀值的数据描述时,取得这个(这些)数据描述ID,清空本地数据表2(LOCAL_DATA)中的这类数据描述数据,重新单独从测试数据库采集一定数量的数据到本地数据表2(LOCAL_DATA)中。
数据采集机器人装置9包括图4所示的数据量监听/检测装置91和单个数据描述数据采集装置92两个部件。
数据量监听检测装置91可以是每隔一段时间检测一次本地数据库表2(LOCAL_DATA)中每一种数据描述的可用数量。实际可以根据数据库的不同采取不同的做法,例如本实施例采用的是ORACLE数据库,可以用ORACLE AQ(高级队列)和ORACLE job以及存储过程来实现。ORACLE job定时调用一个检测本地数据表中每种数据描述的可用数量的存储过程,如果发现可用数量小于某一指定的数值,在ORACLE高级队列表中插入一条记录,记录的USER_DATA字段记录了数据描述的ID。
数据量监听检测装置91通过使用ORACLE OCI监听高级队列表,一旦发现里面有记录,就会将高级队列中的记录出列,获取缺乏数据的数据描述ID,然后转向单个数据描述数据采集装置92进行采集。
单个数据描述数据采集装置92与数据采集装置7不同的是,数据采集装置7是对所有环境所有数据描述进行批量采集;而单个数据描述数据采集装置92则只是对单个数据描述在所有环境中进行采集。
数据采集机器人装置9的的流程如图7所示步骤30;数据量监听/检测装置91不停监听本地数据表2(LOCAL_DATA)。
步骤31判断是否存在可用数据量小于指定值的数据描述。如果存在则转到步骤32。如果不存在则转到步骤30继续监听/检测。
步骤32获取可用数据量小于指定值的这条数据描述的各个属性值,例如带参数的数据描述SQL等。
步骤33删除本地数据表2(local_data)中这个数据描述在各个环境的数据,保证数据采集机器人装置9采集下来的数据能够顺利插入本地数据表2。
步骤34从环境表中获取含有测试数据库各个环境参数值的数据集。
步骤35判断环境数据集是否为空,如果为空则转到步骤30继续监听。如果不为空则转到步骤36。
步骤36取一个环境的参数值。
步骤37用步骤36的环境参数值和步骤32的带参数的数据描述SQL以及预期采集数据量组合成一条可执行的SQL语句。然后将这条可执行的SQL语句上送测试数据库进行查询。
步骤38判断是否有采集到符合条件的数据,如果否则转到步骤40。如果是则转到步骤39。
步骤39把采集下来的数据以及数据描述ID,测试数据库环境ID插入表2本地数据表(LOCAL_DATA)中,其中采集下来的数据放在DATA字段中。
步骤40将环境数据集中的游标向下移动一位。
步骤41判断是否到达环境数据集的结尾,如果是则转到步骤30继续监听。如果否则转到步骤36。
因此,与一般的静态数据准备方法不同的是,本发明采用的本地化数据采集及分配方法,是一种动态的方法。其实现方法是通过环境设置装置设置好环境的参数值,存放在本地数据库的环境表中。通过数据描述管理装置6预先定义好自动化测试所需要的数据描述,放在本地数据库的数据描述表中。根据数据描述表中预先定义的一些数据描述对应的SQL上测试数据库获取数据,但由于平台跟测试数据库之间交互太多,容易影响效率,因此初始环境时根据带参数的数据描述SQL和环境的具体参数值从测试数据库采集一批符合数据描述条件的数据到本地数据库的本地数据表中。使用数据时不是直接指定需要某一个具体数据,而是指定需要哪一种数据描述所描述的数据,由本地数据分配装置8从这一类数据中取一条当天没人使用过的数据。同时,本地化数据采集机器人装置(robot)9不停地检测本地数据表中每一个数据描述的可用数据量,当发现这个数值低于某一个设定值时,自动重新从测试数据库采集一批符合这个数据描述的数据到本地数据表。在一个经过较长时间运行的测试数据库环境,各种类型的数据都应该是已有一定的数量,符合应用这种通过数据描述采集数据到本地进行分配的数据本地化数据采集方法,并且在一个较长的应用周期后,各种类型的数据应该是能够趋于平衡的。
另外,由于数据存在于测试数据库1和本地数据库两个数据库2中,采集到的结果是对测试数据库某个时刻的一个快照。数据不一致的可能性是肯定存在的,但在实际的应用中,即使出现某些数据状态不一致的情况,也可以把这条记录标记为失败,继续执行下面的测试案例或者重新执行测试,此外,测试数据库1上的海量数据以及上述数据采集装置7和数据采集机器人装置9将保证本地数据库2中的准备测试用数据能够满足自动化测试的数据量要求,并不会影响实际的测试效果。
以上所述,仅为本发明中的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变换或替换,都应涵盖在本发明的包含范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
权利要求
1.一种用于从测试数据库中将数据采集到本地数据库的数据采集系统,包括数据描述管理装置,用于产生具有预定特征的数据项的数据描述;以及数据采集装置,用于根据所述数据描述以批量的方式从测试数据库中将相应的数据项采集到本地数据库中。
2.如权利要求1所述的数据采集系统,还包括环境设置装置,用于设定进行数据采集的测试数据库环境,并把各个测试数据库环境的参数值保存在本地数据库的表中。
3.如权利要求2所述的数据采集系统,还包括数据采集机器人装置,用于实时检测本地数据库中与预定特征的数据描述相对应的数据项的数目,并且在所述数目小于预定的阈值的情况下从测试数据库中采集具有所述预定特征的数据项。
4.如权利要求3所述的数据采集系统,还包括本地数据分配装置,用于把本地数据库中的各个数据项分配给相应的应用。
5.如权利要求1所述的数据采集系统,其中所述数据描述管理装置包括SQL辅助生成装置,用于将中文名称转换成英文名称以生成数据描述所需的SQL语句;SQL辅助查询装置,用于将所述SQL语句发送给测试数据库以验证所述SQL语句的正确性。
6.如权利要求5所述的数据采集系统,其中所述数据描述管理装置还包括数据描述新增装置,用户通过所述数据描述新增装置输入数据描述名称、状态、预期采集的数据量,以在本地数据库中产生新的数据描述。
7.如权利要求1所述的数据采集系统,其中所述数据采集装置包括数据采集总控装置,用于控制各个线程下的批量数据采集过程;数据采集线程装置,用于将与一个环境下的所有数据描述相对应的数据项批量采集到本地数据库。
8.如权利要求3所述的数据采集系统,其中所述数据采集机器人装置包括数据监听/检测装置,用于每隔一段时间检测一次本地数据库中每一种数据描述的可用数量,以确定缺乏的数据项的数据描述;以及单个数据描述的数据采集装置,用于从测试数据库中采集本地数据库中缺乏的数据项。
9.一种用于从测试数据库中将数据采集到本地数据库的数据采集方法,包括步骤在本地产生具有预定特征的数据项的数据描述;以及根据所述数据描述以批量的方式从测试数据库中将相应的数据项采集到本地数据库中。
10.如权利要求9所述的数据采集方法,还包括步骤设定进行数据采集的测试数据库环境,并把各个测试数据库环境的参数值保存在本地数据库的表中。
11.如权利要求10所述的数据采集方法,还包括步骤实时检测本地数据库中与预定特征的数据描述相对应的数据项的数目,并且在所述数目小于预定的阈值的情况下从测试数据库中采集具有所述预定特征的数据项。
12.如权利要求11所述的数据采集方法,还包括步骤把本地数据库中的各个数据项分配给相应的应用。
13.如权利要求9所述的数据采集方法,还包括步骤将中文名称转换成英文名称以生成数据描述所需的SQL语句;将所述SQL语句发送给测试数据库以验证所述SQL语句的正确性。
14.如权利要求13所述的数据采集方法,还包括步骤输入数据描述名称、状态、预期采集的数据量,以在本地数据库中产生新的数据描述。
15.如权利要求9所述的数据采集方法,所述采集步骤包括将与一个环境下的所有数据描述相对应的数据项批量采集到本地数据库。
16.如权利要求11所述的数据采集方法,其中还包括步骤每隔一段时间检测一次本地数据库中每一种数据描述的可用数量,以确定缺乏的数据项的数据描述;以及从测试数据库中采集本地数据库中缺乏的数据项。
全文摘要
公开了一种用于从测试数据库中将数据采集到本地数据库的数据采集系统,包括数据描述管理装置,用于产生具有预定特征的数据项的数据描述;以及数据采集装置,用于根据所述数据描述以批量的方式从测试数据库中将相应的数据项采集到本地数据库中。利用数据描述进行数据采集,可以实现准备一次数据描述,以后就可以重复采集这一类型的数据,避免重复做繁琐的环境数据准备,提高了效率。此外,对采集下来数据进行二次分配,避免数据使用冲突。
文档编号G06F17/30GK1851702SQ20061001198
公开日2006年10月25日 申请日期2006年5月25日 优先权日2006年5月25日
发明者丘嘉宜, 江炜斌, 邝嘉升, 周尚勤, 林艳椿, 郑子柔 申请人:中国工商银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1