一种文件比对方法及装置与流程

文档序号:12363423阅读:156来源:国知局
一种文件比对方法及装置与流程
本申请涉及计算机
技术领域
,尤其涉及一种文件比对方法及装置。
背景技术
:随着网络技术的不断发展,文件已经成为系统及软件在运行过程中的重要组成部分,系统及软件在运行过程中会生成各种类型的文件,主要用来记录并保存各种数据。目前,在很多的场景中都需要进行文件的比对。例如,测试软件功能是否正常,需要将数据写入到待测试软件中,将该待测试软件生成的文件与预先设定的期望文件进行比对,如果比对不一致,则说明该待测试软件的功能不正常。再如,在校验文件的正确性时,也需要对文件进行比对,可将待校验文件与预先设定的标准文件进行比对,如果比对不一致,则说明待校验文件是不正确的。又如,在寻找两个文件的差异时,依然需要将两个文件进行对比,以此找出两个文件的差异。在现有技术中,对于文件的比对,一般通过人工比对的方式,也即,人工对文件中每个数据进行检查,将其与期望的文件中的数据进行比对,或者将其与预设的标准文件中的数据进行比对。显然,人工比对的方法很有可能引入人为误差,使比对的准确性降低,而且比对效率也较低。技术实现要素:本申请实施例提供一种文件比对方法及装置,用以解决人工比对的准确率 较低,而且效率也较低的问题。本申请实施例提供的一种文件比对方法,包括:根据待比对文件,在预先生成的各模板文件中,选择与所述待比对文件对应的模板文件;根据选择的模板文件,获取与所述选择的模板文件相匹配的各期望数据;将各期望数据添加到所述选择的模板文件中,以生成期望文件;将所述待比对文件与所述期望文件进行比对。本申请实施例提供的一种文件比对装置,装置包括:选择模块,用于在预先生成的各模板文件中,选择与所述待比对文件对应的模板文件;获取模块,用于根据选择的模板文件,获取与所述选择的模板文件相匹配的各期望数据;添加模块,用于将各期望数据添加到所述选择的模板文件中,以生成期望文件;比对模块,用于将所述待比对文件与所述期望文件进行比对。本申请实施例提供一种文件比对方法及装置,该方法针对待对比文件,在预先生成的各模板文件中,选择与所述待比对文件对应的模板文件,根据选择的模板文件,获取与所述选择的模板文件相匹配的各期望数据,将各期望数据添加到所述选择的模板文件中,以生成期望文件,将所述待比对文件与所述期望文件进行比对。通过上述方法,在对待比对文件进行比对时,不再由人工去完成,而是由设备去完成,提高了比对效率,而且,虽然现有技术中也存在采用模板文件来比对待比对文件的方法,但是现有技术中的模板文件中的数据通常是固定不变的,如果待比对文件是变化的,那么比对时需要频繁的人工更换模板化文件,而本申请中比对设备可获取比对所需的期望数据,并将期望数据添加到模板文件中,以得到期望文件,因此,本申请提供的比对方法无需更换模板文件,从而提高了比对效率。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请实施例提供的文件比对过程示意图;图2为本申请实施例提供的文件比对装置结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。图1为本申请实施例提供的文件比对过程,具体包括以下步骤:S101:根据待比对文件,在预先生成的各模板文件中,选择与所述待比对文件对应的模板文件。在本申请实施例中,所述待比对文件可以包括文本文件、二进制文件,也可以是其他类型的文件,所述的待比对文件是系统或软件在运行过程中产生的,不同的系统或软件在运行过程中可能生成不同类型的待比对文件,主要用来记录并保存各种数据,待比对文件会存储在数据存储区域内(例如可以是终端本地,也可以是数据库)。所述模板文件,是用来生成后续要与待比对文件进行比对的期望文件的,不同类型的待比对文件对应不同类型的模板文件,模板文件会预先存储在数据存储区域内(可以是终端本地,也可以是数据库)。比对设备(可以是终端设备,也可以是服务器)针对任一待比对文件,可以通过调用代码,在预存的模板文件中选择与待比对文件对应的模板文件。其中,所述调用代码可预先设置在比对设备中,用来选择与待比对文件对应的模 板文件。例如,某销售子公司向销售总部发送当天的营业销售记录,该子公司将当天的销售记录录入到管理系统中,其中,营业销售记录包括:销售物品名称、物品批号、销售物品时间、销售数量、销售金额。管理系统根据这些营业销售记录生成记录文件,并发送到销售总部的管理服务器。管理服务器(即,比对设备)接收到记录文件(即,待比对文件),需要对记录文件进行比对,以判断该记录文件是否正确,管理服务器根据接收到的该子公司的记录文件,确定该记录文件的类型是销售记录类型,则通过调用代码,选择销售记录类型的模板文件,作为与该记录文件对应的模板文件。S102:根据选择的模板文件,获取与所述选择的模板文件相匹配的各期望数据。在本申请实施例中,所述的期望数据,也是用于生成后续要与待比对文件进行比对的期望文件的。期望数据可以由人工根据实际情况预先设定,如,将多个用户的用户信息写入到某软件中,其中,用户信息包括:用户姓名、用户性别、用户年龄,人工设定的相应的期望数据为:第一列为用户姓名,第二列为用户性别,第三列为用户年龄。也可以直接将用来生成待比对文件的数据作为期望数据,如,基于商品批号“15113”生成待比对文件,可直接将该商品批号“15113”作为期望数据。延续上例,管理服务器根据选择的模板文件,可在自身的数据库中获取与该模板文件相匹配的营业销售记录,作为期望数据。S103:将各期望数据添加到所述选择的模板文件中,以生成期望文件。在本申请实施例中,比对设备读取模板文件,确定出各期望数据在模板文件中对应的位置,并将各期望数据添加到模板文件中对应的位置上,形成期望文件,其中,所述期望文件是待比对文件的比对对象,用来与待比对文件进行比对。延续上例,管理服务器读取模板文件,确定出模板文件中第一个字符所在 的位置对应期望数据中的销售物品名称1,第三个字符所在的位置对应期望数据中的物品批号15135,形成的期望文件为:销售物品名称1、物品批号15135。S104:将所述待比对文件与所述期望文件进行比对。在本申请实施例中,管理服务器可直接将待比对文件与期望文件进行比对,如,对文件中的数据进行逐一比对匹配。但是,考虑到直接将待比对文件与期望文件中的数据进行逐一比对,比对效率较低,因此,为了提高的比对效率,在本申请实施例中,可以通过一定的算法确定待比对文件对应的待比对值,与期望文件对应的标准比对值,通过对得到的数值进行比较,具体的:分别确定所述待比对文件对应的待比对值和所述期望文件对应的标准比对值,将待比对值和标准比对值进行比对。在确定待比对值和标准比对值时,可以采用信息摘要算法第五版(MessageDigestAlgorithm,MD5)算法,根据所述待比对文件中包含的数据,确定所述待比对文件的MD5值,作为所述待比对值,根据所述期望文件中包含的数据,确定所述期望文件的MD5值,作为所述标准比对值。具体的:确定待比对值时,首先先提取待比对文件中的数据,再将提取出的数据进行前后拼接,采用MD5算法,确定拼接后的数据的MD5值。确定标准比对值的方法与确定待比对值的方法是类似的,这里就不再一一赘述。需要说明的是,在此使用MD5算法是因为只要待比对文件中的数据与期望文件中的数据不相同,就会产生不同的MD5值,只有当待比对文件中的数据和期望文件中的数据完全相同的时候,生成的MD5值才会相等,而且比对两个MD5值的效率远高于比对两个文件中数据的效率,因此,采用上述方法可有效提高比对效率。延续上例,假设记录文件中的数据为:销售物品名称1、物品批号15125,将记录文件中的数据提取出来,并按前后顺序进行拼接,拼接后的文件为“销售物品名称1物品批号15125”,采用MD5算法对上述拼接后的文件进行计算,假设算出的MD5值为100,则将100作为记录文件的待比对值。假设期望文件中的数据中物品批号为15135,不同于记录文件中的物品批号15125,用上 述类似的方法确定出期望文件的标准比对值为200。则显然,待比对值不等于标准比对值,也就是说,记录文件和期望文件不一致。通过上述方法,在对待比对文件进行比对时,不再由人工去完成,而是由设备去完成,提高了比对效率,而且,虽然现有技术中也存在采用模板文件来比对待比对文件的方法,但是现有技术中的模板文件中的数据通常是固定不变的,如果待比对文件是变化的,那么比对时需要频繁的人工更换模板化文件,而本申请中比对设备可获取比对所需的期望数据,并将期望数据添加到模板文件中,以得到期望文件,因此,本申请提供的比对方法无需更换模板文件,从而提高了比对效率。考虑到在实际应用场景中,期望文件中的数据有些是固定不变的(即,固定数据),固定数据可固化在模板文件中,有些数据是随着某些特定因素的不同而不断发生改变的(即,变量数据),变量数据不能固化在模板文件中,因此,可预先生成包含固定数据和变量数据标识的模板文件,其中,所述变量数据标识,用来表征变量数据,变量数据标识与变量数据是唯一对应的关系。在生成模板文件时,具体可根据预设的格式,将固定数据和变量数据标识组织起来,从而构成模板文件。例如,假设固定数据为某公司名称,变量数据为日期,预设的格式为公司名称在前、日期在后,则在生成模板文件时,可将公司名称固化在模板文件中,并以“T”为日期的变量数据标识,构成模板文件“公司名称,T”。另外,考虑到在实际应用场景中,存在很多标准文件,这些标准文件实际上就是已经确认为格式和内容均正确的待比对文件,因此,本申请实施例中在生成模板文件时,也可直接根据这些标准文件生成模板文件。具体的:预先选定标准文件,确定标准文件中的固定数据和变量数据,将所述标准文件中的变量数据替换为变量数据标识,将替换后的标准文件作为生成的模板文件。例如,某销售公司的销售管理服务器需要验证包含有销售记录的记录文件,则可预先生成销售记录类型的模板文件,假设销售管理服务器中存储了已 经确定格式和内容均正确的记录文件,则可将该记录文件作为标准文件。假设该标准文件中的数据为“公司名称AAAA、销售物品名称3、销售数量56”,则可将标准文件中“公司名称AAAA”作为固定数据,将标准文件中“销售物品名称3、销售数量56”作为变量数据。将变量数据“销售物品名称3”替换为变量数据标识Q,将变量数据“销售数量56”替换为变量数据标识Z,而对于固定数据“公司名称AAAA”直接固定不变,将替换的后的标准文件作为生成的销售记录类型的模板文件,即模板文件中的数据为“公司名称AAAA、Q、Z”。模板文件在生成之后,比对设备针对任一待比对文件进行比对时,则可以通过调用代码,在预存的模板文件中选择与待比对文件对应的模板文件,并将获取的期望数据(也就是变量数据)添加到模板文件中,得到期望文件,将期望文件与待比对文件进行对比。由于模板文件中已经存在变量数据标识,因此,本申请实施例中在获取各期望数据时,比对设备可确定选择的模板文件中的各变量数据标识,根据确定的各变量数据标识,获取各变量数据标识所对应的期望数据。延续上例,管理服务器在选择了模板文件后,读取模本文件中的各变量数据标识,即变量数据标识Q、变量数据标识Z,其中,变量数据标识Q对应的是变量数据“销售物品名称”,变量数据标识Z对应的是变量数据“销售数量”,因此,管理服务器根据模板文件中的这些变量数据标识,可在自身的数据库中获取与变量数据标识Q对应的期望数据“销售物品名称1”,以及变量数据标识Z对应的期望数据“销售数量98”。后续可采用获取到的各期望数据分别替换模板文件中对应的变量数据标识,从而得到期望文件。即,采用变量数据标识Q对应的期望数据“销售物品名称1”,替换模板文件中的变量数据标识Q,采用变量数据标识Z对应的期望数据“销售数量98”,替换模板文件中的变量数据标识Z,模板文件中的固定数据“公司名称AAAA”不做任何替换,则得到的期望文件为“公司名称AAAA、销售物品名称1、销售数量98”。另外,需要说明的是,在将期望文件与待比对文件进行比对时,如果期望文件中的数据格式与待比对文件中的数据格式不一样(如,多了符号、大小写等),会导致最后比对的结果不正确,因此,比对设备会预先设定模板文件中期望数据的数据格式,在调取各期望数据时,会对各期望数据进行校验,确定获取到的各期望数据的数据格式是否与预先设定的数据格式相同,如果相同,则直接调取,如果不相同,则需要将期望数据的格式进行处理,以达到与预设的数据格式保持一致的目的。上述提供的比对文件的过程,可应用在许多场景中,下面分别以验证软件功能是否正确的场景、校验文件的场景、确定不同文件之间差异的场景为例进行说明。在验证软件功能的应用场景中,假设某待测软件具有编排功能,则对该待测软件进行测试时,可将表1中的用户信息写入到该待测软件中,使该待测软件对输入的用户信息进行处理。假设该待测软件处理输入的用户信息后处理结果如表2,其中,通过模板文件和期望数据生成的期望文件为表3,显然表2与表3不同,说明该测试软件是不正确的。用户姓名用户性别用户年龄张三男51李四男21表1假设该待测软件处理如表1所示的用户信息后,输出的处理结果如表2,即,处理后各数据项的先后顺序为:用户姓名、用户年龄、用户性别。用户姓名用户年龄用户性别张三51男李四21男表2而人工预先设定的期望数据如表3,即,期望得到的该待测软件处理后的 各数据项先后顺序为:用户姓名、用户性别、用户年龄。用户姓名用户性别用户年龄张三男51李四男21表3则采用本申请实施例上述提供的文件比对方法,比对设备可将如表2所示的文件作为待比对文件,比对设备得到的期望文件就是如表3所示的文件,将表3所示的期望文件与表2所示的待比对文件进行比对,得到的比对结果显然是二者不相同,即可说明该待测软件的输出结果不符合预期,进而可说明该待测软件的功能不正常。在校验文件的应用场景中,假设某购物网站的服务器获取存储的当天销售记录,生成的销售记录文件(即,期望文件)如表4所示:表4在表4中,“公司名称BBB”、“销售物品名称”、“销售数量”、“销售金额”均为固定数据,而具体的数值“1”、“2”、“15”、“16”、“1000”、“2000”均为变量数据。假设银行系统返回给该网站服务器的回盘文件(即、待比对文件)如表5所示:表5则采用本申请实施例上述提供的文件比对方法,比对设备将表5所示的文件作为待比对文件,比对设备得到的期望文件如表4所述的文件,将表5所示的销售记录文件与表4所示的回盘文件进行比对,得到的比对结果显然是二者不同,也就是说,可能是服务器存储的销售记录文件不正确,也可能是银行系统返回的回盘文件不正确,如果要想具体确定到底是哪一个文件出现了问题,就需要调取服务器存储的当天销售记录和银行系统中存储的数据进行详细的检查。在确定不同文件之间差异的场景中,假设某用户需要将数据量较大的原始数据文件复制一份作为备份文件,为了确保复制出来的备份文件是正确的,则可采用本申请实施例上述提供的文件比对方法,比对设备将复制出来的备份文件作为待比对文件,将原始数据文件作为期望文件,并将备份文件与原始数据文件进行比对。如果二者不同,则说明复制出来的备份文件可能出错。由于原始数据文件中的数据量较大,因此,再复制一遍需要较长的时间,而查找二者存在的差异并修改待比对文件需要的时间较少,因此,可将待比对文件与期望文件进行逐一字节的校验比对,找出异常文件与正常文件的差异,并对异常文件进行修改。当然,对于数据量较大的文件,也可拆分待比对文件和期望文件,并重复使用本申请上述提供的文件比对方法进行比对,直至查找到拆分后存在差异的文件,再进行逐一校验比对。例如,要复制数据量为10G的文件,则原始文件为期望文件,复制文件为待比对文件,采用本申请上述提供的文件比对方法,若确定二者不同,则可采用二分法的方法,将期望文件拆分为期望子文件1和期望子文件2,二者均为 5G,同样的,将待比对文件也拆分为均为5G的待比对子文件1和待比对子文件2。再次采用本申请上述提供的文件比对方法,比对期望子文件1和待比对子文件1是否相同,比对期望子文件2和待比对子文件2是否相同。若期望子文件1和待比对子文件1相同,期望子文件2和待比对子文件2不同,则将期望子文件2和待比对子文件2继续进行拆分比对,直至拆分出的期望子文件和待比对子文件的数据量小于一定阈值(如,50M)时,再将存在差异的期望子文件和待比对子文件进行逐一字节的校验比对,并修改待比对文件。以上为本申请实施例提供的文件比对方法,基于同样的思路,本申请实施例还提供一种文件比对装置,如图2所示。图2为本申请实施例提供的文件比对装置结构示意图,包括:选择模块201,用于在预先生成的各模板文件中,选择与所述待比对文件对应的模板文件;获取模块202,用于根据选择的模板文件,获取与所述选择的模板文件相匹配的各期望数据;添加模块203,用于将各期望数据添加到所述选择的模板文件中,以生成期望文件;比对模块204,用于将所述待比对文件与所述期望文件进行比对。所述装置还包括:模板创建模块205,用于预先生成包含固定数据和变量数据标识的模板文件。所述模板创建模块205具体用于,预先选定标准文件,确定标准文件中的固定数据和变量数据,将所述标准文件中的变量数据替换为变量数据标识,将替换后的标准文件作为生成的模板文件。所述获取模块202具体用于,确定所述选择的模板文件中的各变量数据标识,根据确定的各变量数据标识,获取各变量数据标识所对应的期望数据。所述比对模块204具体用于,分别确定所述待比对文件对应的待比对值和 所述期望文件对应的标准比对值,将待比对值和标准比对值进行比对。所述比对模块204具体用于,根据所述待比对文件中包含的数据,确定所述待比对文件的信息摘要算法第五版MD5值,作为所述待比对值,根据所述期望文件中包含的数据,确定所述期望文件的MD5值,作为所述标准比对值。所述装置还包括:处理模块206,用于根据比对结果,确定生成所述待比对文件的软件是否正常;或者,根据比对结果,确定所述待比对文件是否正确;或者,根据比对结果,查找所述待比对文件与所述期望文件的差异。在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、 方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1