一种对分布式事务进行测试的方法和装置制造方法及图纸

技术编号:15036411 阅读:68 留言:0更新日期:2017-04-05 11:47
本发明专利技术提供了一种对分布式事务进行测试的方法和装置,其中对分布式事务进行测试的方法包括:校验单元从配置文件中读取待测试事务对应的配置项;从结果数据库中获取所述待测试事务的待校验数据,以及,依据执行单元对待测试事务的执行状态,从所述配置项中获取校验参考值,其中所述校验参数值包括数据初始值或执行预期值;利用所述校验参数值,对所述待校验数据进行校验。通过本发明专利技术的技术方案,可以有效的对分布式事务进行测试。

【技术实现步骤摘要】

本专利技术涉及计算机程序测试的领域,特别涉及一种对事务进行测试的方法和装置。
技术介绍
随着互联网的飞速发展,通过互联网来实现金融和支付业务的需求也日益增大,然而这些业务瞬时并发事务量大,对系统的响应速度也有较高要求。以典型的秒杀、抢购业务为例,这些业务通常是使用多台服务器,在分布式数据库间进行的数据交换,其对核心交易数据严格要求实时一致,不一致的数据有可能会导致严重的资金问题。对于高并发下分布式事务,其中ACID是数据库事务正确执行的四个基本要素的缩写,ACID特征是衡量其事务能否正确执行的四个基本要素,其包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库,必需要具有这四种特性,否则在事务过程(Transactionprocessing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。具体地,原子性——整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。一致性——在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。具体来说就是,比如表与表之间存在外键约束关系,那么你对数据库进行的修改操作就必需要满足约束条件,即如果你修改了一张表中的数据,那你还需要修改与之存在外键约束关系的其他表中对应的数据,以达到一致性。隔离性——隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据。持久性——在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。现有技术中通常是对单个事务进行的测试,由于分布式数据库是近几年才发展起来的技术,高并发下分布式事务的ACID特性测试还在起步阶段。如何验证高并发下的分布式ACID特性有很大难度,现有技术中用对账来进行校验,但对账只能校验最终一致性,即对账验证的是每次执行命令的结果。因此现有技术中还没有一种有效的方式来测试分布式事务。
技术实现思路
本专利技术提供了一种对分布式事务进行测试的方法和装置,用以解决现有技术中没有一种有效的方式进行分布式事务测试的问题。具体技术方案如下:一种对分布式事务进行测试的方法,所述方法包括:校验单元从配置文件中读取待测试事务对应的配置项;从结果数据库中获取所述待测试事务的待校验数据,以及,依据执行单元对待测试事务的执行状态,从所述配置项中获取校验参考值,其中所述校验参数值包括数据初始值或执行预期值;利用所述校验参数值,对所述待校验数据进行校验。根据本专利技术一优选实施例,在校验单元从配置文件中读取待测试事务对应的配置项之前,所述方法还包括:准备单元将生成的待测试事务送入待测试事务列表,以及在配置文件中针对各待测试事务分别添加配置项。根据本专利技术一优选实施例,所述从结果数据库中获取所述待测试事务的待校验数据包括:依据所述配置项包含的指示待测试事务存储位置的信息,从所述结果数据库中获取所述待测试事务的待检验数据。根据本专利技术一优选实施例,所述依据执行单元对待测试事务的执行状态,从所述配置项中获取校验参考值包括:如果所述执行状态是已完成状态,则从所述配置项中获取执行预期值作为校验参数值;否则从所述配置项中获取数据初始值作为校验参数值。根据本专利技术一优选实施例,所述校验单元和执行单元同时开始对同一待测试事务的处理。根据本专利技术一优选实施例,所述利用所述校验参数值,对所述待校验数据进行校验包括:将校验参数值与待校验数据进行比较;如果校验参数值与待校验数据相等,则所述待测试事务通过校验;如果校验参数值与待校验数据不相等,则校验未通过,记录校验日志。根据本专利技术一优选实施例,所述方法还包括:准备单元针对待测试事务列表分配执行单元,以由分配的执行单元执行所述待测试事务列表中的各待测试事务;针对各待测试事务列表中的各待测试事务分别分配校验单元。根据本专利技术一优选实施例,针对各待测试事务列表分配的执行单元并行执行对应待测试事务列表中的事务。根据本专利技术一优选实施例,所述校验单元每间隔预设的时间执行一次待测试事务的校验,直至达到预设的校验次数。根据本专利技术一优选实施例,所述待测试事务和配置文件是存储在redis数据库中的,所述待测试事务是以SQL语言编写的SQL脚本。一种对分布式事务进行测试的装置,所述装置包括校验单元和执行单元,其中:校验单元,用于从配置文件中读取待测试事务对应的配置项;从结果数据库中获取所述待测试事务的待校验数据,以及,依据执行单元对待测试事务的执行状态,从所述配置项中获取校验参考值,其中所述校验参数值包括数据初始值或执行预期值;利用所述校验参数值,对所述待校验数据进行校验;执行单元,用于执行待测试事务。根据本专利技术一优选实施例,所述装置还包括准备单元,用于将生成的待测试事务送入待测试事务列表,以及在配置文件中针对各待测试事务分别添加配置项。根据本专利技术一优选实施例,所述校验单元从结果数据库中获取所述待测试事务的待校验数据执行的具体操作包括:依据所述配置项包含的指示待测试事务存储位置的信息,从所述结果数据库中获取所述待测试事务的待检验数据。根据本专利技术一优选实施例,所述校验单元依据执行单元对待测试事务的执行状态,从所述配置项中获取校验参考值执行的具体操作包括:如果所述执行状态是已完成状态,则从所述配置项中获取执行预期值作为校验参数值;否则从所述配置项中获取数据初始值作为校验参数值。根据本专利技术一优选实施例,所述校验单元和执行单元同时开始对同一待测试事务的处理。根据本专利技术一优选实施例,所述校验单元利用校验参数值,对所述待校验数据进行校验执行的具体操作包括:将校验参数值与待校验数据进行比较;如果校验参数值与待校验数据相等,则所述待测试事务通过校验;如果校验参数值与待校验数据不相等,则校验未通过,记录校验日志。根据本专利技术一优选实施例,本文档来自技高网
...

【技术保护点】
一种对分布式事务进行测试的方法,其特征在于,所述方法包括:校验单元从配置文件中读取待测试事务对应的配置项;从结果数据库中获取所述待测试事务的待校验数据,以及,依据执行单元对待测试事务的执行状态,从所述配置项中获取校验参考值,其中所述校验参数值包括数据初始值或执行预期值;利用所述校验参数值,对所述待校验数据进行校验。

【技术特征摘要】
1.一种对分布式事务进行测试的方法,其特征在于,所述方法包括:
校验单元从配置文件中读取待测试事务对应的配置项;
从结果数据库中获取所述待测试事务的待校验数据,以及,依据执行单元对
待测试事务的执行状态,从所述配置项中获取校验参考值,其中所述校验参数
值包括数据初始值或执行预期值;
利用所述校验参数值,对所述待校验数据进行校验。
2.根据权利要求1所述的方法,其特征在于,在校验单元从配置文件中读取
待测试事务对应的配置项之前,所述方法还包括:
准备单元将生成的待测试事务送入待测试事务列表,以及在配置文件中针对
各待测试事务分别添加配置项。
3.根据权利要求1所述的方法,其特征在于,所述从结果数据库中获取所述
待测试事务的待校验数据包括:
依据所述配置项包含的指示待测试事务存储位置的信息,从所述结果数据库
中获取所述待测试事务的待检验数据。
4.根据权利要求1所述的方法,其特征在于,所述依据执行单元对待测试事
务的执行状态,从所述配置项中获取校验参考值包括:
如果所述执行状态是已完成状态,则从所述配置项中获取执行预期值作为校
验参数值;
否则从所述配置项中获取数据初始值作为校验参数值。
5.根据权利要求1所述的方法,其特征在于,所述校验单元和执行单元同时
开始对同一待测试事务的处理。
6.根据权利要求1所述的方法,其特征在于,所述利用所述校验参数值,对
所述待校验数据进行校验包括:
将校验参数值与待校验数据进行比较;
如果校验参数值与待校验数据相等,则所述待测试事务通过校验;
如果校验参数值与待校验数据不相等,则校验未通过,记录校验日志。
7.根据权利要求2所述的方法,其特征在于,所述方法还包括:
准备单元针对待测试事务列表分配执行单元,以由分配的执行单元执行所述
待测试事务列表中的各待测试事务;
针对各待测试事务列表中的各待测试事务分别分配校验单元。
8.根据权利要求7所述的方法,其特征在于,针对各待测试事务列表分配的
执行单元并行执行对应待测试事务列表中的事务。
9.根据权利要求1-8任一项所述的方法,其特征在于:
所述校验单元每间隔预设的时间执行一次待测试事务的校验,直至达到预
设的校验次数。
10.根据权利要求1-8任一项所述的方法,其特征在于,所述待测试事务和
配置文件是存储在redis数据库中的,所述待测试事务是以SQL语言编写的SQL
脚本。
11.一种对分布式事务进行测试的装置,其特征在于,所述装置包括校...

【专利技术属性】
技术研发人员:严辉
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1