发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请实施例提供了一种链路测试方法及装置。
第一方面,本申请实施例提供了一种链路测试方法,包括如下步骤:
分别确定基准链路和待测链路中的各应用层的应用;
分别在基准链路的初始应用层的应用中和待测链路的初始应用层的应用中输入相同的初始数据;其中,在同一链路中,下一应用层中应用的输入数据为上一应用层中应用的输出数据;
计算在同一应用层中的第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率;其中,所述第一应用为基准链路中的应用,所述第二应用为待测链路中的应用;
根据所述差异率确定所述待测链路的测试结果。
进一步的,如前述的链路测试方法,所述根据所述差异率确定所述待测链路的测试结果,包括:
在当前测试的应用层中第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率不在预设的差异率区间内时,所述待测链路的测试结果为不通过。
进一步的,如前述的链路测试方法,所述根据所述差异率确定所述待测链路的测试结果,包括:
在所述当前测试的应用层中第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率在预设的差异率区间内时,将所述第一输出数据输入下一应用层的第一应用中,将第二输出数据输入下一应用层的第二应用中。
进一步的,如前述的链路测试方法,在遍历至最后一层,且所述待测链路的测试结果为不通过时,还包括:
获取各应用层对应的差异率;
根据所述各应用层对应的差异率,得到所述待测链路中存在异常的第二应用;其中,所述存在异常的第二应用为导致所述待测链路的测试结果为不通过的第二应用。
进一步的,如前述的链路测试方法,根据所述各应用层对应的差异率,得到所述待测链路中存在异常的第二应用,包括:
根据所述各应用层对应的差异率确定各应用层的差异率增加值;其中,所述差异率增加值为各应用层的差异率相比于前一应用层的差异率的增加值,且所述初始应用层的增加值与初始应用层的差异率相同;
将所述待测链路中与最大的差异率增加值所对应的第二应用判定为所述存在异常的第二应用。
进一步的,如前述的链路测试方法,所述计算在同一应用层中的第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率,包括:
获取所述第一输出数据的第一字段信息,和所述第二输出数据的第二字段信息;
确定所述第一字段信息中与第二字段信息存在差异的第一差异字段,和/或确定所述第二字段信息中与第一字段信息存在差异的第二差异字段;
根据所述第一差异字段在所述第一字段信息中的占比和/或所述第二差异字段在所述第二字段信息中的占比,得到所述第一输出数据和第二输出数据之间的差异率。
进一步的,如前述的链路测试方法,在计算在同一应用层中的第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率之前,还包括:
确定所述第一应用与第二应用存在差异的差异应用层;
在所述差异应用层的第一应用和第二应用中输入第二初始数据。
第二方面,本申请实施例提供了一种链路测试装置,包括:
应用确定模块,用于分别确定基准链路和待测链路中的各应用层的应用;
初始数据输入模块,用于分别在基准链路的初始应用层的应用中和待测链路的初始应用层的应用中输入相同的初始数据作为第一输入数据和第二输入数据;其中,在同一链路中,下一应用层中应用的输入数据为上一应用层中应用的输出数据;
差异率计算模块,用于计算在同一应用层中的第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率;其中,所述第一应用为基准链路中的应用,所述第二应用为待测链路中的应用;
结果判定模块,用于根据所述差异率确定所述待测链路的测试结果。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,所述处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述计算机程序时,实现如第二方面中任一项所述的测试方法。
第四方面,本申请实施例提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如第二方面中任一项所述的测试方法。
本申请实施例提供了一种链路测试方法及装置,其中方法包括如下步骤:分别确定基准链路和待测链路中的各应用层的应用;分别在基准链路的初始应用层的应用中和待测链路的初始应用层的应用中输入相同的初始数据;其中,在同一链路中,下一应用层中应用的输入数据为上一应用层中应用的输出数据;计算在同一应用层中的第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率;其中,所述第一应用为基准链路中的应用,所述第二应用为待测链路中的应用;根据所述差异率确定所述待测链路的测试结果。本申请能够针对链路测试而不是局限于某应用层,因此测试覆盖更全面,并拓展了各自的应用场景;同时不需要每层应用都准备测试数据,节省人力。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种链路测试方法,包括如下步骤S1至S4:
S1.分别确定基准链路和待测链路中的各应用层的应用;
具体的,基准链路为能够稳定运行的现有链路,而待测链路为用于代替现有链路的即将上线使用的链路;待测链路中的各个应用可能在性能等方面存在优化,可以提高执行效率,但是待测链路与基准链路在输入数据一致的情况下,输出的数据也需要保持高度一致(两者的差异率低于预设的阈值,一般低于1%);且一般的,基准链路各应用层中的应用所执行的处理与待测链路中各应用层中的应用所执行的处理是一一对应的;
S2.分别在基准链路的初始应用层的应用中和待测链路的初始应用层的应用中输入相同的初始数据;其中,在同一链路中,下一应用层中应用的输入数据为上一应用层中应用的输出数据;
也就是说,基准链路与待测链路中最初输入的数据是完全一致的,且在基准链路中,下一应用层输入的数据为上一应用层输出的数据;同样的,在待测链路中,下一应用层输入的数据也为上一应用层输出的数据;因此,基准链路的各应用层中的应用按照其链路中各应用层的次序依次对所述初始数据处理后能够得到各层对应的第一输出数据,待测链路的各应用层中的应用按照其链路中各应用层的次序依次对所述初始数据处理后能够得到各层对应的第二输出数据;
S3.计算在同一应用层中的第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率;其中,第一应用为基准链路中的应用,第二应用为待测链路中的应用;
也就是说,计算基准链路以及待测链路在同一应用层中的第一应用输出的第一输出数据和第二应用输出的第二输出数据之间的差异率(即diff率);一般的,由于本申请中的技术方案是采用只输入一个初始数据,因此,随着数据处理的次数的增加,差异率逐渐增大;
S4.根据差异率确定待测链路的测试结果;
具体的,由于本申请是用于得到在待测链路中出问题的某应用,因此,会根据差异率的大小确定待测链路中某应用的测试结果是否符合预期。
因而通过本实施例中的方法能够针对链路测试而不是局限于某应用层,因此测试覆盖更全面,并拓展了各自的应用场景;同时不需要每层应用都准备测试数据,节省人力。
如图2所示,在一些实施例中,如前述的链路测试方法,所述步骤S4中的根据差异率确定待测链路的测试结果,包括:
S41.在当前测试的应用层中第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率不在预设的差异率区间内时,待测链路的测试结果为不通过;
也就是说,在测试之前会先预设所述差异率阈值,例如:当预设的差异率区间为[0,5%]时,当某一应用层中第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率大于5%时,则判定待测链路的测试结果为不通过;当预设的差异率区间为[0,5%)时,当某一应用层中第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率大于或等于5%时,则判定待测链路的测试结果为不通过;且预设的差异率阈值可以根据具体的精度要求进行选择,在此不做具体的限定;
S42.判定当前测试的应用层中的第二应用为需校准应用;
也就是说,在判定待测链路的测试结果为不通过时,会同时判定该应用层中的待测链路的第二应用测试结果为不通过,因此能够得到存在问题并且需要进行校准的应用。
因此,通过本实施例中的方法可以在测试至链路的其中一层时即不通过时,可以及时停止进行测试,以免进行无用测试,避免浪费时间。
如图2所示,在一些实施例中,如前述的链路测试方法,所述步骤S4.根据差异率确定待测链路的测试结果,还包括:
S43.在当前测试的应用层中第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率在预设的差异率区间内时,将第一输出数据输入下一应用层的第一应用中,将第二输出数据输入下一应用层的第二应用中。
具体的,当前测试的应用层中第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率在预设的差异率区间内时,即表示当前测试的待测链路中的应用测试通过,例如:当预设的差异率区间为[0,5%]时,当某一应用层中第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率小于或等于5%时,则判定待测链路的测试结果为通过;当预设的差异率区间为[0,5%)时,当某一应用层中第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率小于5%时,则判定待测链路的测试结果为通过;因此可以继续在此基础上进行测试,并将当前应用层中第一应用处理得到的第一输出数据输入下一应用层的第一应用中,以及,将当前应用层中第二应用处理得到的第二输出数据输入下一应用层的第二应用中,按此循环,直至对所有应用层中的应用都完成遍历为止。因而,按照此实施例的方法可以对链路测试而不是局限于某应用层的单独测试,因此测试覆盖更全面,并拓展了各自的应用场景;同时不需要每层应用都准备测试数据,节省人力。
如图3所示,在一些实施例中,如前述的链路测试方法,在遍历至最后一层,且待测链路的测试结果为不通过时,还包括如下所述步骤S5至S6:
S5.获取各应用层对应的差异率;
也就是说,当最终输出的结果不符合预期时,需要判断出问题的某一层;具体的,由于本申请是针对链路进行测试的,因此差异率是会进行叠加的,即使在最后一层判断得到测试未通过,也有可能主要问题是出现在之前的某一层中,因此需要回溯并得到各个应用层所对应的差异率;
S6.根据所述各应用层对应的差异率,得到所述待测链路中存在异常的第二应用;其中,所述存在异常的第二应用为导致所述待测链路的测试结果为不通过的第二应用;
具体的,根据差异率得到存在异常的第二应用可以是根据差异率波动幅度最大的应用层中的第二应用得到,也可以是根据差异率超过预设的差异率阈值的应用层中的第二应用得到;
如图4所示,其中一种实施例中,步骤S6的一种实现方法可以为:
S61.根据各应用层对应的差异率确定各应用层的差异率增加值;其中,差异率增加值为各应用层的差异率相比于前一应用层的差异率的增加值,且初始应用层的增加值与初始应用层的差异率相同;
举例来说,当基准链路和待测链路中存在四层应用时,且第一应用层至第四应用层差异率依次为:0.1%、0.2%、0.8%和1.1%时,则第一应用层至第四应用层差异率增加值依次为:0.1%、0.1%、0.6%和0.3%;因此,可以得到第三应用层的差异率增加值最大;
S62.将待测链路中与最大的差异率增加值所对应的第二应用判定为存在异常的第二应用;
以上一步骤中的例子来说,当预设的差异率阈值为1%时,可见只有在最后一层中的测试未通过,但是,由于差异率会累加,且差异率的波动情况在第三应用层中是最大的,因此第三应用层中的第二应用才是造成链路无法测试通过的主要原因;进一步的,在其他应用场景中,当任一应用层中出现测试不通过的情况,也可按此方法回溯之前应用层中差异率,找出造成测试不通过的主要应用。
因此,通过本实施例中的方法可以判断得到导致待测链路测试不通过的主因所对应的应用,进而可以快速找出出现问题的应用,并准确地对链路进行调整。
如图5所示,在一些实施例中,如前述的链路测试方法,步骤S3中的计算在同一应用层中的第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率,包括:
S31.获取第一输出数据的第一字段信息,和第二输出数据的第二字段信息;
具体的,本实施例中所述的第一输出数据和第二输出数据,为同一应用层中的第一输出数据和第二输出数据;由于待测链路和基准链路在输入同一个数据时,需要保持输出的数据也高度一致,因此,第一字段信息与第二字段信息的结构是基本一致的;
S32.确定第一字段信息中与第二字段信息存在差异的第一差异字段,和/或确定第二字段信息中与第一字段信息存在差异的第二差异字段;
也就是说,在第一字段信息中,确定与第二字段信息不一样的第一差异字段,举例来说,其中一应用中:第一字段信息包括:A1、A2、A3、A4和A5时,A1、A2、A3、A4均与第二字段信息中的对应字段一致,而A5与第二字段信息中的对应字段存在差异,因此A5即为第一字段信息中与第二字段信息存在差异的第一差异字段;和/或在第二字段信息中,确定与第一字段信息不一样的第二差异字段;
S33.根据第一差异字段在第一字段信息中的占比和/或第二差异字段在第二字段信息中的占比,得到第一输出数据和第二输出数据之间的差异率;
具体的,第一方面,差异率的可以基于第一差异字段在第一字段信息中的占比进行计算,也可以基于第二差异字段在第二字段信息中的占比进行计算,此外,还可以基于第一差异字段和第二差异字段在第一字段信息和第二字段信息中进行计算(即:第一差异字段+第二差异字段/第一字段信息+第二字段信息);
此外,第二方面,以基于第一差异字段在第一字段信息中的占比进行计算差异率为例:其中一种应用中,可以是直接通过差异字段的占比进行计算差异率,例如:第一字段信息包括:A1、A2、A3、A4和A5时,A1、A2、A3、A4均与第二字段信息中的对应字段一致,而A5与第二字段信息中的对应字段存在差异,则差异率为20%;另一种应用中,根据各个字段中的差异数据的占比计算差异率,例如:当A1包括25个字符,当A2包括20个字符,当A3包括25个字符,当A4包括25个字符,当A5包括5个字符;若仍然是A1、A2、A3、A4均与第二字段信息中的对应字段一致,而A5与第二字段信息中的对应字段存在差异,但是A5中仅一个字符与第二字段信息中的对应字符存在差异,则差异率为1%;且第二方面中的方法可以与第一方面中的方法任意组合计算差异率。
因而采用本实施例中的方法,通过链路测试而不是局限于某应用层,可以通过各层的差异率增加值,得到全链路中主要造成差异率超过预设差异率阈值的应用;相比于单独对每个应用进行差异率计算,比对结果更加全面、直观。
根据本申请的另一个实施例,如前述的链路测试方法,在计算在同一应用层中的第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率之前,还包括:
确定所述第一应用与第二应用存在差异的差异应用层;
在所述差异应用层的第一应用和第二应用中输入第二初始数据。
具体的,由于基准链路和待测链路可能只是某一应用层中的第一应用和第二应用存在差异,因此,在存在差异的差异应用层之前是没有必要进行测试的,因而,采用本实施例中的方法在保证全链路测试的全面性的基础上,可以有效降低测试的数据处理量,有效提高测试效率。
如图6所示,根据本申请的另一个实施例,本申请还提供了一种链路测试装置,包括:
应用确定模块1,用于分别确定基准链路和待测链路中的各应用层的应用;
初始数据输入模块2,用于分别在基准链路的初始应用层的应用中和待测链路的初始应用层的应用中输入相同的初始数据作为第一输入数据和第二输入数据;其中,在同一链路中,下一应用层中应用的输入数据为上一应用层中应用的输出数据;
差异率计算模块3,用于计算在同一应用层中的第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率;其中,第一应用为基准链路中的应用,第二应用为待测链路中的应用;
结果判定模块4,用于根据差异率确定待测链路的测试结果。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
如图7所示,在一些实施例中,如前述的链路测试装置,结果判定模块4包括:
第一判定单元41,用于在当前测试的应用层中第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率大于或等于预设的差异率阈值,待测链路的测试结果为不通过;以及
第二判定单元42,用于判定当前测试的应用层中的第二应用为需校准应用。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
如图7所示,在一些实施例中,如前述的链路测试装置,所述结果判定模块4,还包括:
遍历单元43,用于在所述当前测试的应用层中第一应用输出的第一输出数据和第二应用输出的第二输出数据的差异率小于所述差异率阈值时,将所述第一输出数据输入下一应用层的第一应用中,将第二输出数据输入下一应用层的第二应用中。
根据本申请的另一个实施例,还提供一种电子设备,包括:如图8所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的程序时,实现上述方法实施例的步骤。
上述电子设备提到的总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例还提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述方法实施例的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。