比对文件或文件夹的自动化测试方法及系统的制作方法
【专利摘要】本发明提供比对文件或文件夹的自动化测试方法及系统,通过哈希值的比对,判断各所述文件的内容及属性是否都为一致,若是,则各所述文件为一致;通过哈希值的比对,判断各所述文件夹的各对应的目录层级中的各文件及目录属性是否都为一致,若是,则各所述文件夹为一致。本发明还提供验证存储于不同计算机中的各文件或各文件夹是否一致的方法及系统,通过在存储方计算机上设置XML?RPC服务器框架获得相应的哈希值,在设置有xmlrpcli模块的第三方计算机完成比对,实现判断各文件或各文件夹是否一致。本发明还提供包括由上述方法编写的测试用例的自动化测试工具以实现文件或文件夹校验,代替了繁琐的手工测试、提高了测试效率和准确率。
【专利说明】
比对文件或文件夹的自动化测试方法及系统
技术领域
[0001]本发明涉及计算机软件自动化测试领域,特别是涉及比对文件或文件夹的自动化测试方法及系统。
【背景技术】
[0002]随着计算机软件的发展,软件测试工作显得越来越重要。然而,传统的手工测试会有大量的重复性工作,耗费时间长,并容易出现人为错误。在计算机技术日新月异的发展中,文件(夹)的量越来越大,对数据的准确性要求也越来越高,稍有差错就有可能引起非常严重的问题。可见,传统的通过人工一一比对文件(夹)的比较方法,已经无法满足当前的需求。
【发明内容】
[0003]鉴于以上所述现有技术的缺点,本发明的目的在于提供比对文件或文件夹的自动化测试方法及系统,用于解决现有技术中手工测试文件(夹)效率低、出错率高等问题。
[0004]为实现上述目的及其他相关目的,本发明提供比对文件的自动化测试方法,用于验证各所述文件是否一致,所述方法包括:判断各所述文件的内容是否一致,包括:计算各文件的第一哈希值;分别将各所述第一哈希值写入与各所述文件一一对应的各第一文本文档中;分别计算各所述第一文本文档的第二哈希值;将各所述第二哈希值进行比对,比对结果为不一致的各第二哈希值所对应的各文件的内容为不一致;比对结果为一致的各第二哈希值所对应的各文件的内容为一致;判断各所述文件的属性是否一致,包括:获取各文件的各属性值;分别将各所述文件的各所述属性值同序写入与各所述文件一一对应的各第二文本文档中;分别计算各所述第二文本文档的第三哈希值;将各所述第三哈希值进行比对,比对结果为不一致的各第三哈希值所对应的各文件的属性为不一致;比对结果为一致的各第三哈希值所对应的各文件的属性为一致;判断各所述文件的内容、及属性是否都为一致,若是,则各所述文件为一致;若否,则各所述文件为不一致。
[0005]于本发明一实施例中,所述第一哈希值、第二哈希值、及第三哈希值包括:MD5值、或SHAl值。
[0006]于本发明一实施例中,所述获取各所述文件的各属性值包括:基于Python语言的os.stat方法获得。
[0007]为实现上述目的及其他相关目的,本发明提供比对文件的自动化测试系统,用于验证各所述文件是否一致,所述系统包括:第一处理模块,用于计算各文件的第一哈希值;分别将各所述第一哈希值写入与各所述文件一一对应的各第一文本文档中;分别计算各所述第一文本文档的第二哈希值;第一测试模块,用于将各所述第二哈希值进行比对,比对结果为不一致的各第二哈希值所对应的各文件的内容为不一致;比对结果为一致的各第二哈希值所对应的各文件的内容为一致;第二处理模块,用于获取各文件的各属性值;分别将各所述文件的各所述属性值同序写入与各所述文件一一对应的各第二文本文档中;分别计算各所述第二文本文档的第三哈希值;第二测试模块,用于将各所述第三哈希值进行比对,比对结果为不一致的各第三哈希值所对应的各文件的属性为不一致;比对结果为一致的各第三哈希值所对应的各文件的属性为一致;第三测试模块,用于当所述第一测试模块和第二测试模块的比对结果都为一致时,判定各所述文件为一致;反之,判定各所述文件为不一致。
[0008]于本发明一实施例中,所述第一哈希值、第二哈希值、及第三哈希值包括:MD5值、或SHAl值。
[0009]于本发明一实施例中,所述获取各所述文件的各属性值包括:基于Python语言的os.stat方法获得。
[0010]为实现上述目的及其他相关目的,本发明提供比对文件夹的自动化测试方法,用于验证各所述文件夹是否一致,所述方法包括:分别判断各所述文件夹的各对应的目录层级中的各文件是否一致,包括:如上任一所述的比对文件的自动化测试方法;分别判断各所述文件夹的各对应的目录层级的目录属性是否一致,包括:分别获得各所述文件夹中各目录的属性值,并同序写入与各所述文件夹一一对应的各第三文本文档中;分别计算各所述第三文本文档的第四哈希值;将各所述第四哈希值进行比对,比对结果为不一致的各第四哈希值所对应的各目录属性为不一致;比对结果为一致的各第四哈希值所对应的各目录属性为一致;判断各所述文件夹的各对应的目录层级中的各文件、及各目录属性是否都为一致,若是,则各所述文件夹为一致;若否,则各所述文件夹为不一致。
[0011]于本发明一实施例中,所述分别判断各所述文件夹的各对应的目录层级中的各文件是否一致,还包括:基于Python语言的os.walk和os.path, join方法遍历各所述文件夹从而获取各所述文件夹中的各文件的路径,以供计算各所述文件的第一哈希值。
[0012]为实现上述目的及其他相关目的,本发明提供比对文件夹的自动化测试系统,用于验证各所述文件夹是否一致,所述系统包括:第一判断模块,用于根据任一所述的比对文件的自动化测试方法,分别判断各所述文件夹的各对应的目录层级中的各文件是否一致;第二判断模块,用于分别判断各所述文件夹的各对应的目录层级的目录属性是否一致,包括:分别获得各所述文件夹中各目录的属性值,并同序写入与各所述文件夹一一对应的各第三文本文档中;分别计算各所述第三文本文档的第四哈希值;将各所述第四哈希值进行比对,比对结果为不一致的各第四哈希值所对应的各目录属性为不一致;比对结果为一致的各第四哈希值所对应的各目录属性为一致;第三判断模块,用于判断各所述文件夹的各对应的目录层级中的各文件、及各目录属性是否都为一致,若是,则各所述文件夹为一致;若否,则各所述文件夹为不一致。
[0013]于本发明一实施例中,所述分别判断各所述文件夹的各对应的目录层级中的各文件是否一致,还包括:基于Python语言的os.walk和os.path, join方法遍历各所述文件夹从而获取各所述文件夹中的各文件的路径,以供计算各所述文件的第一哈希值。
[0014]为实现上述目的及其他相关目的,本发明提供比对文件或文件夹的自动化测试方法,用于验证各所述文件或各所述文件夹是否一致,其中,各所述文件或各所述文件夹存储于不同的计算机,各所述计算机中分别包括:XML-RPC服务器框架,所述方法包括:在各所述计算机中,根据任一所述的比对文件的自动化测试方法、或任一所述的比对文件夹的自动化测试方法获取相应的哈希值;各所述计算机将各所述相应的哈希值通过各自的XMLRPC月艮务器框架传递给第三方计算机,以供所述第三方计算机进行比对后判断各所述文件或各所述文件夹是否一致,其中,所述第三方计算机中包括:用于调用注册在各所述XML-RPC服务器框架中的函数的xmlrpcli模块。
[0015]为实现上述目的及其他相关目的,本发明提供比对文件或文件夹的自动化测试系统,用于验证各所述文件或各所述文件夹是否一致,其中,各所述文件或各所述文件夹存储于不同的计算机,所述系统包括:各服务框架模块,用于各所述计算机根据任一所述的比对文件的自动化测试方法、或任一所述的比对文件夹的自动化测试方法获取相应的哈希值;将各所述相应的哈希值传递给第三方计算机;xmlrpcli模块,用于所述第三方计算机比对各所述相应的哈希值,从而判断各所述文件或各所述文件夹是否一致。
[0016]为实现上述目的及其他相关目的,本发明提供一种自动化测试装置,包括:根据任一所述的比对文件的自动化测试方法、任一所述的比对文件夹的自动化测试方法、和/或所述的比对文件或文件夹的自动化测试方法编写的测试用例,所述测试用例用于根据输入的各文件或各文件夹的路径判断各所述文件或各所述文件夹是否一致。
[0017]如上所述,本发明的比对文件或文件夹的自动化测试方法及系统,适用于Windows、Linux、AIX操作系统中的各种类型的文件或文件夹的比较,使得在这些环境下进行比较变得简单、高效,并可以避免由人为疏忽造成的错误。
【附图说明】
[0018]图1A显示为本发明一实施例的比对文件的自动化测试方法流程图。
[0019]图1B显示为本发明一实施例的比对文件内容的自动化测试方法流程图。
[0020]图1C显示为本发明一实施例的比对文件属性的自动化测试方法流程图。
[0021]图2显示为本发明一实施例的比对文件的自动化测试系统模块图。
[0022]图3A显示为本发明一实施例的比对文件夹的自动化测试方法流程图。
[0023]图3B显示为本发明一实施例的比对文件夹的目录属性的自动化测试方法流程图。
[0024]图4显示为本发明一实施例的比对文件夹的自动化测试系统模块图。
[0025]元件标号说明
[0026]2比对文件的自动化测试系统
[0027]201第一处理模块
[0028]202第一测试模块
[0029]203第二处理模块
[0030]204第二测试模块[0031 ]205 第三测试模块
[0032]4比对文件夹的自动化测试系统
[0033]401第一判断模块
[0034]402第二判断模块
[0035]403第三判断模块
【具体实施方式】
[0036]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0037]需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0038]对于两个文件,要保证二者完全相同,则要同时满足:1、二者的内容完全相同;2、二者的属性完全相同。对于两个文件夹,由于文件夹中有不同的目录层级和相应的文件,要保证二者完全相同,则需要同时满足:1、文件夹各个目录层级的文件的内容完全相同;2、文件夹各个目录层级的文件的属性完全相同;3、文件夹各个目录层级中目录的属性完全相同。
[0039]优选的,本发明基于Robot Framework(简称:RF)自动化测试框架,使用Python语言实现相关算法,通过在RF中调用这些方法与获取测试对象的数据进行比较,从而达到文件或文件夹自动比较的测试目的。具体的,可以先判断比较对象A、B是文件还是文件夹;若是文件,则直接比较文件的内容和属性;若是文件夹,则需要遍历所有目录及目录下的所有文件,然后比较各目录层级的文件和目录属性。具体分析以下将详细展开。
[0040]请参阅图1A— 1C,本实施例提供一种比对文件的自动化测试方法,包括步骤S101、S102和S103,其中,步骤S10US102的顺序不做限制,哈希值可以为MD5值、SHAl值等。
[0041]步骤SlOl:判断各所述文件的内容是否一致,包括:
[0042]步骤SlOl1:计算各文件的第一哈希值;
[0043]步骤S1012:分别将各所述第一哈希值写入与各所述文件一一对应的各第一文本文档中;
[0044]步骤S1013:分别计算各所述第一文本文档的第二哈希值;
[0045]步骤S1014:将各所述第二哈希值进行比对,比对结果为不一致的各第二哈希值所对应的各文件的内容为不一致;比对结果为一致的各第二哈希值所对应的各文件的内容为一致。具体实现如下:
[0046]使用Python语言,获取文件的MD5值,然后把MD5值写到一个文本文档中,然后获取此文本文档的MD5值,返回MD5值,用于比较。对于文件A、B,分别按照这种方法,获取其内容对应文本文档的MD5值,若MD5值相同,则A、B内容一致;否则A、B内容不一致。
[0047]步骤S102:判断各所述文件的属性是否一致,包括:
[0048]步骤S1021:获取各文件的各属性值;
[0049]步骤S1022:分别将各所述文件的各所述属性值同序写入与各所述文件一一对应的各第二文本文档中;
[0050]步骤S1023:分别计算各所述第二文本文档的第三哈希值;
[0051]步骤S1024:将各所述第三哈希值进行比对,比对结果为不一致的各第三哈希值所对应的各文件的属性为不一致;比对结果为一致的各第三哈希值所对应的各文件的属性为一致。具体实现如下:
[0052]使用Python语言,使用os.stat()方法,获取文件的各项属性值,然后把各项属性值按照固定的顺序写到一个文本文档中,然后获取此文本文档的MD5值,返回MD5值,用于比较。对于文件A、B,分别按照这种方法,获取其属性对应文本文档的MD5值,若MD5值相同,则A、B属性一致;否则A、B属性不一致。
[0053]步骤S103:判断各所述文件的内容、及属性是否都为一致,若是,则各所述文件为一致;若否,则各所述文件为不一致。
[0054]请参阅图2,与上述方法实施例原理相似的是,本发明提供比对文件的自动化测试系统2,由于方法实施例中的技术特征可以应用于本系统实施例,因而不再重复赘述。系统2包括:第一处理模块201、第一测试模块202、第二处理模块203、第二测试模块204、第三测试模块205。
[0055]第一处理模块201用于计算各文件的第一哈希值;分别将各所述第一哈希值写入与各所述文件一一对应的各第一文本文档中;分别计算各所述第一文本文档的第二哈希值。第一测试模块202用于将各所述第二哈希值进行比对,比对结果为不一致的各第二哈希值所对应的各文件的内容为不一致;比对结果为一致的各第二哈希值所对应的各文件的内容为一致。第二处理模块203用于获取各文件的各属性值;分别将各所述文件的各所述属性值同序写入与各所述文件一一对应的各第二文本文档中;分别计算各所述第二文本文档的第三哈希值。第二测试模块204用于将各所述第三哈希值进行比对,比对结果为不一致的各第三哈希值所对应的各文件的属性为不一致;比对结果为一致的各第三哈希值所对应的各文件的属性为一致。第三测试模块205用于当所述第一测试模块和第二测试模块的比对结果都为一致时,判定各所述文件为一致;反之,判定各所述文件为不一致。
[0056]需要说明的是,所述第一哈希值、第二哈希值、及第三哈希值包括:MD5值、或SHAl值。所述获取各所述文件的各属性值包括:基于Python语言的os.stat方法获得。
[0057]请参阅图3A—3B,本实施例提供一种比对文件夹的自动化测试方法,包括步骤S301、S302和S303,其中,步骤S301、S302的顺序不做限制。
[0058]步骤S301:分别判断各所述文件夹的各对应的目录层级中的各文件是否一致,包括:如上所述的比对文件的自动化测试方法步骤SlOl — S103,在此不详细展开。
[0059]步骤S302:分别判断各所述文件夹的各对应的目录层级的目录属性是否一致,包括:
[0060]步骤S3021:分别获得各所述文件夹中各目录的属性值,并同序写入与各所述文件夹一一对应的各第三文本文档中;
[0061 ]步骤S3022:分别计算各所述第三文本文档的第四哈希值;
[0062]步骤S3023:将各所述第四哈希值进行比对,比对结果为不一致的各第四哈希值所对应的各目录属性为不一致;比对结果为一致的各第四哈希值所对应的各目录属性为一致。
[0063]步骤S303:判断各所述文件夹的各对应的目录层级中的各文件、及各目录属性是否都为一致,若是,则各所述文件夹为一致;若否,则各所述文件夹为不一致。具体实现如下:
[0064](I)对于文件夹A,使用Python语言,调用os.walk(A)得到一个三元:A的起始路径(以A[0]表示)、起始路径下的所有文件夹(以A[l]表示)、起始路径下的文件(以A[2]表示)。
[0065](2)使用€^循环,遍历六[2]中所有的文件(以六_^6[1]表示),使用函数os.path, join(A[0],A_f ile[i])),得到A_file[i]的路径,然后得到A_f ile[i]的内容的MD5值,并且把MD5值写入文本文档中,直到遍历完A[2]中所有的文件,每次得到的MD5值均写入文本文档中。
[0066](3)遍历A[ I ]中所有的文件夹,使用for循环,以A[ I ] [ i ]中的文件夹为基础,重复操作(I)、( 2),直到遍历完A[ I ]中的所有文件夹。
[0067](4)以上三步(I) (2) (3)即可得到文件夹A中所有文件的内容的MD5值,且这些MD5值均被记录在文本文档中,然后获取此文本文档的MD5值,返回MD5值,用于比较。对于文件夹A、B,分别按照这种方法,获取其内容对应文本文档的MD5值,若MD5值相同,则A、B内容一致;否则A、B内容不一致。
[0068](5)通过结合遍历目录的方法和获取文件属性的方法,得到文件夹A中所有文件的属性的MD5值,且这些MD5值均被记录在文本文档中,然后获取此文本文档的MD5值,返回MD5值,用于比较。对于文件夹A、B,分别按照这种方法,获取其属性对应文本文档的MD5值,若MD5值相同,则A、B属性一致;否则A、B属性不一致。
[0069](6)遍历文件夹中的所有目录,得到文件夹A中所有目录的属性的MD5值,且这些MD5值均被记录在文本文档中,然后获取此文本文档的MD5值,返回MD5值,用于比较。对于文件夹A、B,分别按照这种方法,获取其各个目录层级对应文本文档的MD5值,若MD5值相同,则A、B各个目录层级中目录的属性一致,否则A、B各个目录层级中目录的属性不一致。
[0070](7)若上述各个对象比对的结果都为一致,则最终判断比对的文件夹是一致的。
[0071]请参阅图4,与上述方法实施例原理相似的是,本发明提供比对文件夹的自动化测试系统4,由于前述方法实施中的技术特征可以应用于本系统实施例,因而不再重复赘述。系统4包括:第一判断模块401、第二判断模块402、第三判断模块403。
[0072]第一判断模块401用于根据所述的比对文件的自动化测试方法,分别判断各所述文件夹的各对应的目录层级中的各文件是否一致,例如,基于Python语言的os.walk和os.path.join方法遍历各所述文件夹从而获取各所述文件夹中的各文件的路径,以供计算各所述文件的第一哈希值。第二判断模块402用于分别判断各所述文件夹的各对应的目录层级的目录属性是否一致,包括:分别获得各所述文件夹中各目录的属性值,并同序写入与各所述文件夹一一对应的各第三文本文档中;分别计算各所述第三文本文档的第四哈希值;将各所述第四哈希值进行比对,比对结果为不一致的各第四哈希值所对应的各目录属性为不一致;比对结果为一致的各第四哈希值所对应的各目录属性为一致。第三判断模块403用于判断各所述文件夹的各对应的目录层级中的各文件、及各目录属性是否都为一致,若是,则各所述文件夹为一致;若否,则各所述文件夹为不一致。
[0073]对于同一个机器上的文件,返回的哈希值可以直接进行比较。对于不同机器上的文件,没有办法直接比较,需要把不同机器上的哈希值放到同一个地方,才能进行比较。于是,本发明还提供比对文件或文件夹的自动化测试方法,用于验证存储于不同的计算机的各所述文件或各所述文件夹是否一致,其中,各所述计算机中分别包括= XML-RPC服务器框架,所述方法包括:
[0074]I)在各所述计算机中,根据所述的比对文件的自动化测试方法、或所述的比对文件夹的自动化测试方法获取相应的哈希值;
[0075]2)各所述计算机将各所述相应的哈希值通过各自的XMLRPC服务器框架传递给第三方计算机,以供所述第三方计算机进行比对后判断各所述文件或各所述文件夹是否一致,其中,所述第三方计算机中包括:用于调用注册在各所述XML-RPC服务器框架中的函数的xmlrpcli模块。具体实现如下:
[0076]使用Py thon的XMLRPC来实现不同机器之间的通信。例如,比较两台不同机器Clientl、Client2上的文件(夹)A、B,具体实现方法:Clientl、Client2上分别使用类库:SimpleXMLRPCServer构造一个最基本的XML-RPC服务器框架;在另外一台机器Client3上使用类库:xmlrpcli调用注册在XML-RPC服务器端的函数。Client 1、Cl ient2分别采用上述的方法获取到对应的哈希值,然后通过XMLRPC把哈希值传递给Cl ient3,在Cl ient3上对Clientl、Client2上的文件(夹)A、B的内容(哈希值)或属性(哈希值)进行比较,达到异机文件(夹)的比较目的。
[0077]与上述方法实施例原理相似的是,本发明提供比对文件或文件夹的自动化测试系统,由于前述方法实施中的技术特征可以应用于本系统实施例,因而不再重复赘述,包括:各服务框架模块、xmlrpc I i模块。
[0078]各服务框架模块用于各所述计算机根据所述的比对文件的自动化测试方法、或所述的比对文件夹的自动化测试方法获取相应的哈希值;将各所述相应的哈希值传递给第三方计算机。xmlrpcli模块用于所述第三方计算机比对各所述相应的哈希值,从而判断各所述文件或各所述文件夹是否一致。
[0079]除此之外,本发明还提供一种自动化测试装置,包括:根据任一所述的比对文件的自动化测试方法、所述的比对文件夹的自动化测试方法、所述的比对文件或文件夹的自动化测试方法编写的测试用例,所述测试用例用于根据输入的各文件或各文件夹的路径判断各所述文件或各所述文件夹是否一致,实现以上方法和自动化框架RF的结合,从而达到全自动化比较的效果。具体实现如下:
[0080](I)RF是一个开源的、基于Python实现的通用自动化测试框架。RF可以导入第三方库,也可以导入自定义的Python程序中的类,把上述方法中实现的函数放在同一个类中,然后把这个类当做Library加载到Robot Framework自动化测试工具中,然后通过调用方法得到返回值,然后使用RF自带的关键字should mach来比较两个返回值,若匹配,则用例执行成功,表明结果一致;若不匹配,则用例执行失败,表明结果不一致。这样能够很方便的进行文件比较,只需要把要比较的文件(夹)路径填入到已写好的自动化用例中,执行自动化用例即可达到比较文件的目的。
[0081]需要说明的是,本发明的比对文件或文件夹的自动化测试方法,适用于Windows、Linux、AIX操作系统中的各种类型的文件或文件夹的比较,比较对象所在的计算机上需要有Python的运行环境。具体实现如下:
[0082](I)对于 Windows 环境:
[0083]为了避免安装Python及各种第三方库的繁琐操作,可以采用Py2exe【py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具】工具,把Python环境及库打包成一个exe文件,在需要用的环境下运行此exe程序即可。
[0084]①在一台Windows客户端部署RF自动化测试工具。
[0085]②在比较对象A、B所在机器(同一台机器或异机)上运行Python程序(过py2exe打包好的exe文件)。
[0086]③运行RF自动化工具,加载Python实现的库文件,编写自动化用例,在自动化用例中填好A、B路径,调用Python的实现的文件比较方法分别获取A、B内容(属性)的哈希值,使用shouId match进行比较。若用例运行通过,则证明文件一致;若用例运行失败,则证明不一致。
[0087](2)对于 Linux 环境:
[0088]一般系统安装好就自带了Python,因此不需要做额外操作,即能适用本发明中的实现方法。
[0089]①在一台Windows客户端部署RF自动化测试工具。
[0090]②在比较对象A、B所在机器某一个目录下放置Python实现的比较程序。
[0091]③使用Python写一个程序实现如下功能:在Linux环境下运行一个命令,获取到此命令的返回值(通过ssh、端口号登录,运行命令或返回值来实现)。
[0092]④运行RF自动化工具,加载Python实现的库文件,编写自动化用例,在自动化用例中填好A、B路径,调用Python的实现的文件比较方法分别获取A、B内容(属性)的哈希值,使用shou I d mat ch进行比较。若用例运行通过,则证明文件一致;若用例运行失败,则证明不一致。
[0093](3)对于 AIX 环境:
[0094]一般系统安装好没有自带了 Python,因此需要手动安装Python运行环境。
[0095]①在一台Windows客户端部署RF自动化测试工具。
[0096]②在比较对象A、B所在机器某一个目录下放置Python实现的比较程序。
[0097]③使用Python写一个程序实现如下功能:在AIX环境下运行一个命令,获取到此命令的返回值(通过ssh、端口号登录,运行命令或返回值来实现)。
[0098]④运行RF自动化工具,加载Python实现的库文件,编写自动化用例,在自动化用例中填好A、B路径,调用Python的实现的文件比较方法分别获取A、B内容(属性)的哈希值,使用shou I d mat ch进行比较。若用例运行通过,则证明文件一致;若用例运行失败,则证明不一 Sc ο
[0099]综上所述,本发明的对比文件或文件夹的自动化测试方法及系统,能够代替手工测试,提高测试效率,并能避免手工测试所带来的错误,从而节省人力和时间,有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0100]上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
【主权项】
1.一种比对文件的自动化测试方法,其特征在于,用于验证各所述文件是否一致,所述方法包括: 判断各所述文件的内容是否一致,包括:计算各文件的第一哈希值;分别将各所述第一哈希值写入与各所述文件一一对应的各第一文本文档中;分别计算各所述第一文本文档的第二哈希值;将各所述第二哈希值进行比对,比对结果为不一致的各第二哈希值所对应的各文件的内容为不一致,比对结果为一致的各第二哈希值所对应的各文件的内容为一致; 判断各所述文件的属性是否一致,包括:获取各文件的各属性值;分别将各所述文件的各所述属性值同序写入与各所述文件一一对应的各第二文本文档中;分别计算各所述第二文本文档的第三哈希值;将各所述第三哈希值进行比对,比对结果为不一致的各第三哈希值所对应的各文件的属性为不一致;比对结果为一致的各第三哈希值所对应的各文件的属性为一致; 判断各所述文件的内容、及属性是否都为一致,若是,则各所述文件为一致;若否,则各所述文件为不一致。2.根据权利要求1所述的比对文件的自动化测试方法,其特征在于,所述第一哈希值、第二哈希值、及第三哈希值包括:MD5值、或SHAl值。3.根据权利要求1所述的比对文件的自动化测试方法,其特征在于,所述获取各所述文件的各属性值包括:基于Python语言的os.s tat方法获得。4.一种比对文件的自动化测试系统,其特征在于,用于验证各所述文件是否一致,所述系统包括: 第一处理模块,用于计算各文件的第一哈希值;分别将各所述第一哈希值写入与各所述文件一一对应的各第一文本文档中;分别计算各所述第一文本文档的第二哈希值; 第一测试模块,用于将各所述第二哈希值进行比对,比对结果为不一致的各第二哈希值所对应的各文件的内容为不一致,比对结果为一致的各第二哈希值所对应的各文件的内容为一致; 第二处理模块,用于获取各文件的各属性值;分别将各所述文件的各所述属性值同序写入与各所述文件一一对应的各第二文本文档中;分别计算各所述第二文本文档的第三哈希值; 第二测试模块,用于将各所述第三哈希值进行比对,比对结果为不一致的各第三哈希值所对应的各文件的属性为不一致;比对结果为一致的各第三哈希值所对应的各文件的属性为一致; 第三测试模块,用于当所述第一测试模块和第二测试模块的比对结果都为一致时,判定各所述文件为一致;反之,判定各所述文件为不一致。5.—种比对文件夹的自动化测试方法,其特征在于,用于验证各所述文件夹是否一致,所述方法包括: 分别判断各所述文件夹的各对应的目录层级中的各文件是否一致,包括:如权利要求1至3中任一所述的比对文件的自动化测试方法; 分别判断各所述文件夹的各对应的目录层级的目录属性是否一致,包括:分别获得各所述文件夹中各目录的属性值,并同序写入与各所述文件夹一一对应的各第三文本文档中;分别计算各所述第三文本文档的第四哈希值;将各所述第四哈希值进行比对,比对结果为不一致的各第四哈希值所对应的各目录属性为不一致;比对结果为一致的各第四哈希值所对应的各目录属性为一致; 判断各所述文件夹的各对应的目录层级中的各文件、及各目录属性是否都为一致,若是,则各所述文件夹为一致;若否,则各所述文件夹为不一致。6.根据权利要求5所述的比对文件夹的自动化测试方法,其特征在于,所述分别判断各所述文件夹的各对应的目录层级中的各文件是否一致,还包括:基于Python语言的os.walk和os.path, join方法遍历各所述文件夹从而获取各所述文件夹中的各文件的路径,以供计算各所述文件的第一哈希值。7.一种比对文件夹的自动化测试系统,其特征在于,用于验证各所述文件夹是否一致,所述系统包括: 第一判断模块,用于根据权利要求1至3中任一所述的比对文件的自动化测试方法,分别判断各所述文件夹的各对应的目录层级中的各文件是否一致; 第二判断模块,用于分别判断各所述文件夹的各对应的目录层级的目录属性是否一致,包括:分别获得各所述文件夹中各目录的属性值,并同序写入与各所述文件夹一一对应的各第三文本文档中;分别计算各所述第三文本文档的第四哈希值;将各所述第四哈希值进行比对,比对结果为不一致的各第四哈希值所对应的各目录属性为不一致;比对结果为一致的各第四哈希值所对应的各目录属性为一致; 第三判断模块,用于判断各所述文件夹的各对应的目录层级中的各文件、及各目录属性是否都为一致,若是,则各所述文件夹为一致;若否,则各所述文件夹为不一致。8.—种比对文件或文件夹的自动化测试方法,其特征在于,用于验证各所述文件或各所述文件夹是否一致,其中,各所述文件或各所述文件夹存储于不同的计算机,各所述计算机中分别包括:XML-RPC服务器框架,所述方法包括: 在各所述计算机中,根据权利要求1至3中任一所述的比对文件的自动化测试方法、或权利要求5或6所述的比对文件夹的自动化测试方法获取相应的哈希值; 各所述计算机将各所述相应的哈希值通过各自的XMLRPC服务器框架传递给第三方计算机,以供所述第三方计算机进行比对后判断各所述文件或各所述文件夹是否一致,其中,所述第三方计算机中包括:用于调用注册在各所述XML-RPC服务器框架中的函数的xmlrpcli 模块。9.一种比对文件或文件夹的自动化测试系统,其特征在于,用于验证各所述文件或各所述文件夹是否一致,其中,各所述文件或各所述文件夹存储于不同的计算机,所述系统包括: 各服务框架模块,用于各所述计算机根据权利要求1至3中任一所述的比对文件的自动化测试方法、或权利要求5或6所述的比对文件夹的自动化测试方法获取相应的哈希值;将各所述相应的哈希值传递给第三方计算机; xmlrpcli模块,用于所述第三方计算机比对各所述相应的哈希值,从而判断各所述文件或各所述文件夹是否一致。10.一种自动化测试装置,其特征在于,包括:根据权利要求1至3中任一所述的比对文件的自动化测试方法、权利要求5或6所述的比对文件夹的自动化测试方法、和/或权利要求8所述的比对文件或文件夹的自动化测试方法编写的测试用例,所述测试用例用于根据输入的各文件或各文件夹的路径判断各所述文件或各所述文件夹是否一致。
【文档编号】G06F17/30GK106055692SQ201610407746
【公开日】2016年10月26日
【申请日】2016年6月12日
【发明人】唐杨
【申请人】上海爱数信息技术股份有限公司