CN114968775A - 测试方法、装置、电子设备及存储介质 - Google Patents
测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114968775A CN114968775A CN202210543055.1A CN202210543055A CN114968775A CN 114968775 A CN114968775 A CN 114968775A CN 202210543055 A CN202210543055 A CN 202210543055A CN 114968775 A CN114968775 A CN 114968775A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- preset
- nodes
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software analysis for verifying properties of programs using software metrics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开关于一种测试方法、装置、电子设备及存储介质,涉及计算机技术领域,解决了如何在功能测试过程进行事务一致性测试的问题。该方法包括:一种测试方法,测试方法应用于系统,系统包括多个节点,多个节点用于共同处理目标业务,该方法包括:在对多个节点进行功能测试的过程中,获取每个节点的输入数据和输出数据;分别确定出每个节点的输入数据和输出数据是否与节点对应的预设数据相符;在各个节点的输入数据和输出数据均与对应的预设数据相符的情况下,确定多个节点具有事务一致性。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及测试方法、装置、电子设备及存储介质。
背景技术
金融机构通过金融交易系统对金融交易过程中产生的数据进行处理,以实现该交易的完成。为了保证其金融交易系统的正常运行,金融交易系统在被应用之前,先用测试方法对金融交易系统的功能进行测试。
相关测试方法中,将交易开始的数据输入至测试方法,得到交易结束的数据,从而根据得到的交易结束的数据,确定出金融交易系统是否能实现对应的功能。然而,在从交易开始到交易结束的数据处理过程中,会涉及很多中间事务环节的数据处理过程,如采用上述测试方法,并没有考虑多个中间事务环节的数据处理过程的影响,会导致该测试方法的准确性大大降低。
发明内容
本公开提供一种测试方法、装置、电子设备及存储介质,以至少解决相关技术中如何在功能测试过程中进行事务一致性测试的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供了一种测试方法,测试方法应用于系统,系统包括多个节点,多个节点用于共同处理目标业务,该方法包括:在对多个节点进行功能测试的过程中,获取每个节点的输入数据和输出数据;分别确定出每个节点的输入数据和输出数据是否与节点对应的预设数据相符;在各个节点的输入数据和输出数据均与对应的预设数据相符的情况下,确定多个节点具有事务一致性。
在一种可能的实施方式中,获取每个节点的输入数据和输出数据,包括:在触发对目标节点的功能测试时,获取目标节点的输入数据,目标节点为多个节点中的任意一个;在完成对目标节点的功能测试时,获取目标节点的输出数据。
另一种可能的实施方式中,对于多个节点中的任一个节点,节点预设有至少一个输入字段比对项和至少一个输出字段比对项,节点对应的预设数据包括与每个输入字段比对项匹配的预设输入字段,和与每个输出字段比对项匹配的预设输出字段;分别确定出每个节点的输入数据和输出数据是否与节点对应的预设数据相符,包括:对于多个节点中的任一个节点,按照节点预设的字段比对项,从节点的输入数据中确定出与输入字段比对项匹配的输入字段,以及,从节点的输出数据中确定出与输出字段比对项匹配的输出字段;确定节点对应的输入字段和预设输入字段是否相符,以及,确定节点对应的输出字段和预设输出字段是否相符。
另一种可能的实施方式中,预设输入字段包括表征预设输入值和预设输入状态的字段;预设输出字段包括表征预设输出值和预设输出状态的字段;节点对应的输入字段包括表征输入值和输入状态的字段;节点对应的输出字段包括表征输出值和输出状态的字段。
另一种可能的实施方式中,方法还包括:在完成对目标节点的功能测试时,监测目标节点的输出数据是否发生更新。
另一种可能的实施方式中,方法还包括:在监测到目标节点的输出数据发生更新的情况下,确定相关节点的输入数据是否包括目标节点的更新后的输出数据,相关节点是指输入数据包括目标节点的输出数据的节点。
另一种可能的实施方式中,多个节点被配置为按照预设触发顺序处理目标业务,方法还包括:在触发对目标节点的功能测试时,确定目标节点在实际触发顺序中的触发位序,实际触发顺序是指对多个节点进行功能测试的过程中对多个节点的触发顺序;确定目标节点对应的触发位序与目标节点在预设触发顺序中的预设触发位序是否相同。
根据本公开实施例的第二方面,提供一种测试装置,测试装置应用于系统,系统包括多个节点,多个节点用于共同处理目标业务,装置包括:获取单元,被配置为执行在对多个节点进行功能测试的过程中,获取每个节点的输入数据和输出数据;第一确定单元,被配置为执行分别确定出每个节点的输入数据和输出数据是否与节点对应的预设数据相符;第二确定单元,被配置为执行在各个节点的输入数据和输出数据均与对应的预设数据相符的情况下,确定多个节点具有事务一致性。
在一种可能的实施方式中,获取单元被配置为具体执行:在触发对目标节点的功能测试时,获取目标节点的输入数据,目标节点为多个节点中的任意一个;在完成对目标节点的功能测试时,获取目标节点的输出数据。
另一种可能的实施方式中,对于多个节点中的任一个节点,节点预设有至少一个输入字段比对项和至少一个输出字段比对项,节点对应的预设数据包括与每个输入字段比对项匹配的预设输入字段,和与每个输出字段比对项匹配的预设输出字段;第一确定单元被配置为具体执行:对于多个节点中的任一个节点,按照节点预设的字段比对项,从节点的输入数据中确定出与输入字段比对项匹配的输入字段,以及,从节点的输出数据中确定出与输出字段比对项匹配的输出字段;确定节点对应的输入字段和预设输入字段是否相符,以及,确定节点对应的输出字段和预设输出字段是否相符。
另一种可能的实施方式中,预设输入字段包括表征预设输入值和预设输入状态的字段;预设输出字段包括表征预设输出值和预设输出状态的字段;节点对应的输入字段包括表征输入值和输入状态的字段;节点对应的输出字段包括表征输出值和输出状态的字段。
另一种可能的实施方式中,该装置还包括:监测单元,被配置为执行在完成对目标节点的功能测试时,监测目标节点的输出数据是否发生更新。
另一种可能的实施方式中,第一确定单元,还被配置为执行:在监测到目标节点的输出数据发生更新的情况下,确定相关节点的输入数据是否包括目标节点的更新后的输出数据,相关节点是指输入数据包括目标节点的输出数据的节点。
另一种可能的实施方式中,多个节点被配置为按照预设触发顺序处理目标业务,第一确定单元,还被配置为执行:在触发对目标节点的功能测试时,确定目标节点在实际触发顺序中的触发位序,实际触发顺序是指对多个节点进行功能测试的过程中对多个节点的触发顺序;确定目标节点对应的触发位序与目标节点在预设触发顺序中的预设触发位序是否相同。
根据本公开实施例的第三方面,提供一种电子设备,包括:处理器和用于存储处理器可执行指令的存储器;其中,处理器被配置为执行可执行指令,以实现如第一方面及其任一种可能的实施方式的测试方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面及其任一种可能的实施方式的测试方法;或者当计算机可读存储介质中的指令由测试装置执行时,使得测试装置能够执行如第一方面及其任一种可能的实施方式的测试方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序或指令,计算机程序或指令被处理器执行如第一方面及其任一种可能的实施方式的测试方法。
本公开的实施例提供的技术方案至少带来以下有益效果:针对被测试的系统,预先设置了多个用于测试事务一致性的节点,其多个节点能共同处理同一目标业务。在对多个节点的功能测试过程中,先获取每个节点的输入数据和输出数据,以完成对功能测试结果产生影响的多个事务环节的数据的获取。再分别确定出每个节点的输入数据和输出数据是否与每个节点对应的预设数据相符,以分别对每个节点的事务性一致问题进行精准定位。
通过上述测试方法,在功能测试过程中对事务一致性进行测试,以使在功能测试完成后所产生的测试结果时,可以直接根据功能测试过程中各个节点的事务一致性分析结果,确定出其测试结果是否符合事务一致性,以确定出该测试结果能否反映其被测系统的功能,避免了误将不具有事务一致性的错误测试结果作为反映其系统功能的正确结果,而导致被测系统上线使用时出现功能异常,从而提高测试方法的准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种测试系统的示意图;
图2是根据一示例性实施例示出的一种测试方法的流程图;
图3是根据一示例性实施例示出的另一种测试方法的流程图;
图4是根据一示例性实施例示出的另一种测试方法的流程图;
图5是根据一示例性实施例示出的另一种测试方法的流程图;
图6是根据一示例性实施例示出的一种测试过程示意图;
图7是根据一示例性实施例示出的另一种测试方法的流程图;
图8是根据一示例性实施例示出的另一种测试方法的流程图;
图9是根据一示例性实施例示出的另一种测试过程示意图;
图10是根据一示例性实施例示出的另一种测试过程示意图;
图11是根据一示例性实施例示出的另一种测试方法的流程图;
图12是根据一示例性实施例示出的另一种测试过程示意图;
图13是根据一示例性实施例示出的一种测试装置的框图;
图14是根据一示例性实施例示出的一种电子设备的示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在对本公开实施例提供的测试方法进行详细介绍之前,先对本公开实施例涉及的应用场景和实施环境进行简单介绍。
首先,对本公开涉及的应用场景进行简单介绍。
金融机构通过金融交易系统对金融交易过程中产生的数据进行处理,以实现该交易的完成。为了保证其金融交易系统的正常运行,金融交易系统在被应用之前,先用测试方法对金融交易系统的功能进行测试。
相关测试方法中,将交易开始的数据输入至测试方法,得到交易结束的数据,从而根据得到的交易结束的数据,确定出金融交易系统是否能实现对应的功能。然而,在从交易开始到交易结束的数据处理过程中,会涉及很多中间事务环节的数据处理过程,如采用上述测试方法,并没有考虑多个中间事务环节的数据处理过程的影响,会导致该测试方法的准确性大大降低。
例如,在分布式产品和微服务框架中,为了解决软件产品的设计过程中可能发生的事务一致性问题,测试人员需要设计测试案例,验证系统各节点在处理同一项业务时,确定是否始终保持交易各方、各环节的数据、状态等信息的同步更新和一致。但是,其测试方法是在交易结束后,通过查询数据库、交易日志、账户余额等信息并进行静态比对的方式,来确定是否实现了事务一致性。这种测试方法会存在以下三个问题:其一,事务性的测试只能在交易结束后实施,实际上验证的是交易的开始状态和交易的结束状态是否一致,而忽视了交易中间的过渡状态。故,其方法只看开头和结尾,会忽略了负负也可能为正而引起的系统问题;其二,这种针对静态数据的事务性一致测试,即使发现缺陷,也无法很快定位缺陷产生的环节和原因,导致问题溯源和解决周期较长;其三,将功能测试和事务一致性测试分离,造成测试执行重复,增加了不必要的测试步骤,浪费了测试时间。
其中,事务一致性是指一个或多个事务执行后,涉及到的数据和数据库变化符合处理逻辑,是一致的。分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于分布式系统的不同节点之上。微服务是指一种软件开发技术,将应用程序构造为一组松散耦合服务。
针对上述问题,本公开提供了一种测试方法,可以针对被测试的系统中用于同处理同一目标业务的多个节点的事务一致性进行测试。具体的,预先将前述多个节点中的每个节点预设为检查点;在对多个节点的功能测试过程中,先获取每个节点的输入数据和输出数据,以完成对功能测试结果产生影响的多个事务环节的数据的获取。再分别确定出每个节点的输入数据和输出数据是否与每个节点对应的预设数据相符,以分别对每个节点的事务性一致问题进行精准定位。进一步地,在各个节点的输入数据和输出数据均与对应的预设数据相符的情况下,确定多个节点具有事务一致性,以对影响功能测试结果的多个节点的数据的事务一致性进行确定,即对功能测试过程中,应用或产生的数据的数据处理逻辑进行确定。
因此,通过本公开的测试方法,在功能测试过程中对事务一致性进行测试,以使在功能测试完成后所产生的测试结果时,可以直接根据功能测试过程中各个节点的事务一致性分析结果,确定出其测试结果是否符合事务一致性,以确定出该测试结果能否反映其被测系统的功能,避免了误将不具有事务一致性的错误测试结果作为反映其系统功能的正确结果,而导致被测系统上线使用时出现功能异常,从而提高测试方法的准确性。
其次,下面对本公开涉及的实施架构进行简单介绍。
图1是本公开提供的一种测试系统10的示意图。如图1所示,该测试系统包括被测系统110、测试装置120,被测系统110设置有多个节点,测试装置120包括第一测试装置和第二测试装置,第一测试装置用于对被测系统110进行功能测试,第二测试装置用于对被测系统110进行事务一致性测试。
在第一测试装置对被测系统进行功能测试的过程中,第二测试装置对被测系统中的各个节点进行监测,以获取到各个节点在功能测试过程中产生的数据包。同时,第二测试装置根据预先设置的各个节点的预设数据和各个节点的数据包,确定各个节点的事务一致性。
在一些实施方式中,被测系统、测试装置均与服务器相连。服务器用于存储和处理各个节点的数据包。其中,服务器可以是单独的一个服务器,或者,也可以是由多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。本公开对服务器的具体实现方式也不作限制。
本公开实施例提供的测试方法可以应用于前述图1所示的实施架构中的服务器。为了便于理解,以下结合附图对本公开提供的测试方法进行具体介绍。
图2是根据一示例性实施例示出的一种测试方法的流程图,如图2所示,该测试方法可用于上述测试系统中,包括以下步骤。
步骤S21,在对多个节点进行功能测试的过程中,获取每个节点的输入数据和输出数据。
其中,多个节点可以是,针对功能测试过程,预先设置的多个节点。且多个节点用于共同处理目标业务。每个节点在功能测试过程中,会对应产生输入数据和输出数据,其输入数据和输出数据均会对功能测试的测试结果造成一定的影响。
以交易系统为被测系统为例,其输入数据可以是从其他系统到获取的或终端用户输入的交易金额和/或其交易金额的状态(如,正在输入、输入已完成、正在更新等),输出数据可以是输出的交易金额和/或输出的交易金额的状态(如,输出已完成、正在运算中、正在更新等)。
在一些实施方式中,为了实现某一项业务,需要调用系统中的能服务于该业务的多个子系统(也称为微服务系统),则将多个子系统设置为多个节点。
具体地,可以将节点设置在以下位置:某个接口处、一段能执行某个功能的公共程序代码的节点处、能实现某支原子交易的节点处、能执行某项服务的节点处或能独立执行某项事务的节点处。
例如,在对交易系统的功能进行测试时,交易系统为了实现跨行转账业务时,会需要调用业务渠道子系统、交易逻辑分析服务子系统、报表处理子系统和入账子系统等多个子系统为该业务服务。故,将上述各个子系统设置为多个节点,以实现跨行转账业务。
在另一些实施方式中,选取的多个节点是指对功能测试结果的影响度大的节点。其影响度可以根据各个节点对功能测试结果的影响权重来确定。以上述跨行转账业务为例,其业务渠道子系统对该交易系统产生的交易结果影响不大,则可以不将业务渠道子系统设置为节点。
步骤S22,分别确定出每个节点的输入数据和输出数据是否与节点对应的预设数据相符。
其中,每个节点预先设置有预设数据。其各个节点的预设数据为各个节点符合事务一致性的预设输入数据和预设输出数据。各个节点符合事务一致性,可以理解为,各个节点输入数据和输出数据中的数据状态与执行目标业务步骤的业务逻辑一致,以及各个节点输入数据和输出数据中的数据值符合预设运算规律。
步骤S23,在各个节点的输入数据和输出数据均与对应的预设数据相符的情况下,确定多个节点具有事务一致性。
在该实施方式中,预先设置了多个用于测试事务一致性的节点,其多个节点能共同处理同一目标业务。在对多个节点的功能测试过程中,先获取每个节点的输入数据和输出数据,以完成对功能测试结果产生影响的多个事务环节的数据的获取。再分别确定出每个节点的输入数据和输出数据是否与每个节点对应的预设数据相符,以分别对每个节点的事务性一致问题进行确定。进一步地,在各个节点的输入数据和输出数据均与对应的预设数据相符的情况下,确定多个节点具有事务一致性。
因此,通过上述实施方式,在功能测试过程中对事务一致性进行测试,以使在功能测试完成后所产生的测试结果时,可以直接根据功能测试过程中多个节点的事务一致性分析结果,确定出其测试结果是否符合事务一致性,以确定出该测试结果能否反映其被测系统的功能,避免了误将不具有事务一致性的错误测试结果作为反映其系统功能的正确结果,而导致被测系统上线使用时出现功能异常,从而提高测试方法的准确性。
作为一种实施方式,结合图2,如图3所示,上述步骤S21可以通过以下步骤S211和步骤S212具体实施:
步骤S211,在触发对目标节点的功能测试时,获取目标节点的输入数据。具体地,在第一测试装置检测到对目标节点的功能测试被触发时,向代理服务器下发输入获取指令,以使代理服务器对目标节点的输入数据进行采集。或者,在第一测试装置检测到对目标节点的功能测试被触发时,第一测试装置对目标节点的输入数据进行采集,将采集到的目标节点的输入数据传送至代理服务器。
通过目标节点的节点触发状态发生变化来确定对目标节点的功能测试被触发,如节点触发状态由0变为了1,即由未触发变成已触发状态。
其中,目标节点为多个节点中的任意一个。其目标节点,也可以理解为,多个节点中被触发的节点。以设置有三个节点(节点A、节点B、节点C)为例,节点A被触发时其节点A为目标节点。
需要说明的是,其节点的触发并不一定是只触发一个节点,如果节点A和节点B同时被触发时,其节点A和节点B均为目标节点。
步骤S212,在完成对目标节点的功能测试时,获取目标节点的输出数据。具体地,在第一测试装置检测到对目标节点的功能测试完成时,向代理服务器下发输出获取指令,以使代理服务器对目标节点的输出数据进行采集。或者,在第一测试装置检测到对目标节点的功能测试完成时,第一测试装置对目标节点的输出数据进行采集,将采集到的目标节点的输出数据传送至代理服务器。
通过目标节点的节点完成状态发生变化来确定对目标节点的功能测试完成,如节点完成状态由0变为了1,即由未完成变成已完成状态。
在该实施方式中,在功能测试过程,多个节点不是统一触发执行的,会在不同的时间节点被触发执行。在目标节点被触发时,获取目标节点的输入数据,以保证获取目标节点的输入数据的时效性和准确性;在目标节点的功能测试完成时,获取目标节点的输出数据,以保证获取目标节点的输出数据的时效性和准确性。通过该获取方式,确定了获取输入数据和输出数据的合理时机,以使获取的数据更加准确,从而能更加准确地确定对该节点的事务一致性,保证了整个事务一致性测试过程的动态性。
作为一种实施方式,结合图3,如图4所示,在完成步骤S212之后,还可以执行以下步骤S41。
步骤S41,在第一测试装置完成对目标节点的功能测试时,第二测试装置监测目标节点的输出数据是否发生更新。
在该实施方式中,在第一测试装置确定目标节点的功能测试完成时,XX第二测试装置对目标节点的输出数据是否发生更新进行监测,例如,根据监测数据状态或数据值是否发生变化,确定出目标节点的输出数据进行了更新,以实时获取更新后的输出数据,从而保证了获取的输出数据的实时性和准确性。
作为一种实施方式,结合图4,如图5所示,在完成步骤S41之后,还可以执行以下步骤S51。
步骤S51,在监测到目标节点的输出数据发生更新的情况下,确定相关节点的输入数据是否包括目标节点的更新后的输出数据。
其中,相关节点为其他节点中与目标节点相关的节点,具体的,相关节点是指输入数据包括目标节点的输出数据的节点。可以理解的是,相关节点中其输入数据是由目标节点的输出数据确定出的,如,目标节点的输出数据作为相关节点的输入数据,或,目标节点的输出数据作为相关节点的输入数据的一部分。
示例性的,目标节点的输出数据为输出字段a,其他节点中节点1的输入数据是从目标节点获取的输出字段a,则节点1为相关节点;或者,其他节点中节点2的输入数据是由从目标节点获取的输出字段a和输入字段b组成,则节点2也为相关节点,其输入字段b为从除节点1以外的其他节点获取或接收到的用户账户输入的数据。
具体地,在确定相关节点的输入数据包括目标节点的更新后的输出数据的情况下,则说明相关节点符合数据逻辑变化一致性;在确定相关节点的输入数据不包括目标节点的更新后的输出数据的情况下,则说明相关节点不符合数据逻辑变化一致性。
在一些实施方式中,如图6所示,对节点的预设处理流程中,对各个节点和各个节点对应的比对规则进行了设置。其比对规则包括正向规则反正规则,正向规则用于相关节点符合数据逻辑变化一致性情况,反向规则用于相关节点不符合数据逻辑变化一致性情况。以交易系统为例,在交易可能因为网络延迟、系统故障等原因而出现交易数据传输失败的场景下,节点会出现交易回滚和补偿机制等反向交易的情况,需要利用反向规则对事务一致性进行测试。因此,在设置预设处理流程时,节点不仅包括利用正向规则对节点的正向交易(即,交易过程中节点对应的数据传输正常的情况)的检查,还应当包括交易失败时反向交易的检查,在该节点数据交互失败或在中间步骤失败时,自动发起反向规则对反向交易进行数据交互逻辑一致性检查的功能。需要说明的是,不是所有的节点都需要验证失败的场景,这种设置是可选的,即反向规则是可选的。
在该实施方式中,根据一个节点的输入数据与另一个节点输出数据的关联关系,确定了目标节点的相关节点。在其目标节点的输出数据被更新的情况下,对其相关节点的输入数据是否包括目标节点的更新后的输出数据进行确定,以确定出相关节点的输入数据使用的输出数据的准确性,即,对目标节点和相关节点之间数据变化逻辑进行了确定。通过该实施方式,实现了对多个节点中,存在输入数据和输出数据引用关系的相关节点之间的输入输出逻辑一致性的确定,确定出了因忽略了相关节点的数据之间引用关系的一致性,将未更新的输出数据作为输入数据,从而引起了功能测试的结果不准确的问题,避免了误将上述情况产生的功能测试结果作为正确结果,而直接上线被测试系统,从而导致目标业务异常问题,提高了功能测试的准确性。
作为一种实施方式,结合图3,如图7所示,在执行步骤S211的同时,还可以执行以下步骤S71和步骤S72。
步骤S71,在触发对目标节点的功能测试时,确定目标节点在实际触发顺序中的触发位序。
其中,实际触发顺序是指对多个节点的功能进行测试的过程中对多个节点的触发顺序。
步骤S72,确定目标节点在实际触发顺序中的触发位序与目标节点在预设触发顺序中的预设触发位序是否相同。
其中,预设触发位序,可以是服务编排中的服务编号。服务编排是指为了执行目标业务,编排了各个节点服务于目标业务的服务顺序,其服务编号是指各个节点执行服务的位序。
在该实施方式中,预先设置了各个节点对应的预设触发位序。在触发对目标节点的功能测试时,确定目标节点在实际触发顺序中的触发位序。并对目标节点对应的触发位序与预设触发位序是否相同进行确定,以确定出各个节点是否符合预设触发逻辑,使得各个节点的触发顺序符合对执行目标业务的执行逻辑,以保证了各个触发节点的触发逻辑一致性,从而保证了功能测试的测试结果具有触发逻辑一致性,提高了功能测试的准确性。
作为一种实施方式,上述步骤S22和步骤S23中预设数据可以通过以下方式具体实施:对于多个节点中的任一个节点,节点预设有至少一个输入字段比对项和至少一个输出字段比对项,节点对应的预设数据包括与每个输入字段比对项匹配的预设输入字段,和与每个输出字段比对项匹配的预设输出字段。其中,输入字段比对项用于筛选出预设输入字段,例如,输入字段比对项是待转账金额,则预设输入字段为待转账金额的数值和待转账金额的状态(如,转账中、汇款中)。输出字段比对项用于筛选出预设输出字段,例如,输出字段比对项是已转账金额,则预设输入字段为已转账金额的数值和已转账金额的状态(如,转账成功、转账失败)。
在该实施方式中,输入字段比对项和输出字段比对项可以称为字段比对项,每个节点设置有至少一个字段比对项。对于多个节点中的任一个节点,将与每个输入字段比对项匹配的输入字段,作为预设输入字段,以及将与每个输出字段对比项匹配的输出字段,作为预设输出字段,以实现预设数据的确定。
如图6所示,设置节点对应的比对规则可以包括字段比对项的设置,可以将各个节点设置唯一节点标识,且设置对应的字段比对项标识,以通过节点标识和字段比对项标识,确定出节点对应的预设数据,以实现对该节点的事务一致性检测。基于上述对预设数据设置的具体实施方式,结合图2,如图8所示,上述步骤S22可以通过以下步骤S221和步骤S222具体实施:
步骤S221,对于多个节点中的任一个节点,按照节点预设的字段比对项,从节点的输入数据中确定出与输入字段比对项匹配的输入字段,以及,从节点的输出数据中确定出与输出字段比对项匹配的输出字段。
步骤S222,确定节点对应的输入字段和预设输入字段是否相符,以及,确定节点对应的输出字段和预设输出字段是否相符。
在该实施方式中,根据节点的输入字段比对项,从节点的输入数据中确定出输入字段;以及,根据节点的输出字段比对项,从节点的输出数据中确定出输出字段。再根据节点对应的预设输入字段和预设输出字段对上述确定出的输入字段和输出字段比较,以确定出节点的事务一致性。
示例性的,以一个节点对应两个输入字段比对项(输入字段比对项A和输入字段比对项B)为例,在该节点获取的输入数据包括了A输入字段、B输入字段、C输入字段、D输入字段的情况下,根据两个输入字段比对项对该输入数据进行筛选,以确定出该节点的输入字段为A输入字段和B输入字段。
需要说明的是,在一些具体实施过程中,结合图9和图10,多个节点根据对比规则中的字段比对项对各个节点的输入数据和输出数据进行提取后,会将获取的数据和各个节点的事务一致性结果形成比对报告。具体地,每个节点涉及字段比对项的内容可能是不一样的,有些节点可能涉及到目标业务(如交易业务)全部有效信息的比较,有些节点可能只涉及部分信息,甚至可能只有一个字段对比项的比较。因此,获取到的输入数据和输出数据中的字段与字段比对项(如转账金额、存款金额、取款金额等交易信息项)也不是一一对应的,可能多个字段拼接后才能完成一个可比对的字段比对项,也可能一个长字段包含了多个字段比对项的内容。例如,对于余额增减类的交易,还涉及到计算,比如余额增加,需要将原余额、交易值相加才能与输出结果进行比较。因此,针对每个不同节点要比对的字段数量、字段内容,如果涉及到字段的拼接和拆分,数据的加减运算和数据格式转换,还应设置相应的数据处理规则,对节点的数据进行获取。
在一些实施方式中,节点也称为检查点。当操作人员完成交易页面录入后,在点击“提交”按钮前,通过代理服务器截取功能测试开始时各个节点的测试数据包,对其测试数据包过滤后记录各个节点对应的输入数据。在交易服务编排的执行过程中,代理服务器持续运行,一旦识别到预设检查点后,就截取数据包,记录中间步骤的输出数据。预设的检查点被发现后,其相应的字段比对项同时被触发,开始对节点的输入数据和输出数据进行比对。如果字段比对项要求对数据进行截取、拼接、计算、格式转换等处理,则被获取到的数据需要被执行数据加工处理,否则直接将获取到的数据和检查点编号输出到下一个检查点。
通过该实施方式,利用节点的字段对比项,分别对节点的输入数据和输出数据进行对比,以匹配出节点的输入字段和输出字段,以使输入字段和输出字段,均与预设输入字段、预设输出字段的保持同一的数据格式,以保证节点的数据与预设数据快速且准确比较,从而保证了对节点事务一致性判断的快速性和准确性,进而能更加快速地定位出各个节点的产生的问题。
在一种实施方式中,预设输入字段包括表征预设输入值和预设输入状态的字段;预设输出字段包括表征预设输出值和预设输出状态的字段;节点对应的输入字段包括表征输入值和输入状态的字段;节点对应的输出字段包括表征输出值和输出状态的字段。
结合图8,如图11所示,上述步骤S222可以通过以下步骤具体实施:
步骤S111,比较每个所述节点的输入值与对应的预设输入值;以及,比较每个所述节点的输入状态与对应的预设输入状态。
步骤S112,比较每个所述节点的输出值与对应的预设输出值;以及,比较每个所述节点的输出状态与对应的预设输出状态。
在该实施方式中,将输入值和输入状态作为输入字段,以及将输出值和输出状态作为输出字段。通过该实施方式,保证了获取节点的输入字段和输出字段更加具体,保证了测试过程的有效性。
在一些具体实施方式中,如图12所示,功能测试和事务性测试结合分为以下处理流程:
其一,功能测试准备阶段。会在预设处理流程,先设置多个节点和多个节点对应的比对规则。
其二,在功能测试实施阶段。在对各个服务(即,节点)的功能测试过程中,将功能测试的过程与事务一致性动态测试的过程同时进行。具体地,数据处理环节对多个节点的数据进行获取,且利用多个节点对应的比对规则对各个节点输入数据和输出数据进行提取,同时对各个节点输入数据和输出数据是事务一致性进行确定。并形成报告。通过功能测试和事务一致性结合,充分利用了功能测试执行和测试数据,解决了现有测试方法无法对交易中间环节进行一致性检查的问题,可以快速、准确定位源头,有效避免了“伪一致”的可能性,提高了测试效率和功能点覆盖率。
为了实现上述功能,测试装置包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本公开实施例还提供一种如图13所示的测试装置120,装置包括:获取单元1201,第一确定单元1202、第二确定单元1203,监测单元1204。
该测试装置应用于系统,系统包括多个节点,多个节点用于共同处理目标业务,该测试装置包括:获取单元,被配置为执行在对多个节点进行功能测试的过程中,获取每个节点的输入数据和输出数据,例如,获取单元用于执行图2中的步骤S21;第一确定单元,被配置为执行分别确定出每个节点的输入数据和输出数据是否与节点对应的预设数据相符,例如,第一确定单元1202用于执行图2中的步骤S22;第二确定单元,被配置为执行在各个节点的输入数据和输出数据均与对应的预设数据相符的情况下,确定多个节点具有事务一致性,例如,第二确定单元1203,用于执行图2中的步骤S23。
在一种可能的实施方式中,获取单元被配置为具体执行:在触发对目标节点的功能测试时,获取目标节点的输入数据,目标节点为多个节点中的任意一个;在完成对目标节点的功能测试时,获取目标节点的输出数据。
另一种可能的实施方式中,对于多个节点中的任一个节点,节点预设有至少一个输入字段比对项和至少一个输出字段比对项,节点对应的预设数据包括与每个输入字段比对项匹配的预设输入字段,和与每个输出字段比对项匹配的预设输出字段;第一确定单元被配置为具体执行:对于多个节点中的任一个节点,按照节点预设的字段比对项,从节点的输入数据中确定出与输入字段比对项匹配的输入字段,以及,从节点的输出数据中确定出与输出字段比对项匹配的输出字段;确定节点对应的输入字段和预设输入字段是否相符,以及,确定节点对应的输出字段和预设输出字段是否相符。
另一种可能的实施方式中,预设输入字段包括表征预设输入值和预设输入状态的字段;预设输出字段包括表征预设输出值和预设输出状态的字段;节点对应的输入字段包括表征输入值和输入状态的字段;节点对应的输出字段包括表征输出值和输出状态的字段。
另一种可能的实施方式中,该装置还包括:监测单元,被配置为执行在完成对目标节点的功能测试时,监测目标节点的输出数据是否发生更新。
另一种可能的实施方式中,第一确定单元,还被配置为执行:在监测到目标节点的输出数据发生更新的情况下,确定相关节点的输入数据是否包括目标节点的更新后的输出数据,相关节点是指输入数据包括目标节点的输出数据的节点。
另一种可能的实施方式中,多个节点被配置为按照预设触发顺序处理目标业务,第一确定单元,还被配置为执行:在触发对目标节点的功能测试时,确定目标节点在实际触发顺序中的触发位序,实际触发顺序是指对多个节点的功能进行测试的过程中对多个节点的触发顺序;确定目标节点对应的触发位序与目标节点在预设触发顺序中的预设触发位序是否相同。
关于上述实施例中的装置,其中各个单元模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图14是本公开提供的一种电子设备的示意图。如图14,该电子设备50可以包括至少一个处理器501以及用于存储处理器可执行指令的存储器503。其中,处理器501被配置为执行存储器503中的指令,以实现以下实施例中的测试方法。
另外,电子设备50还可以包括通信总线502、至少一个通信接口504、输入设备506和输出设备505。
处理器501可以是一个处理器(central processing units,CPU),微处理单元,ASIC,或一个或多个用于控制本公开方案程序执行的集成电路。
通信总线502可包括一通路,在上述组件之间传送信息。
通信接口504,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
输入设备506用于接收输入信号和输出设备505用于输出信号。
存储器503可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compactdiscread-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理单元相连接。存储器也可以和处理单元集成在一起。
其中,存储器503用于存储执行本公开方案的指令,并由处理器501来控制执行。处理器501用于执行存储器503中存储的指令,从而实现本公开方法中的功能。
在具体实现中,作为一种实施例,处理器501可以包括一个或多个CPU,例如图14中的CPU0和CPU1。
在具体实现中,作为一种实施例,电子设备10可以包括多个处理器,例如图14中的处理器501和处理器507。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
该电子设备如图14所示包括:处理器501和用于存储处理器501可执行指令的存储器503;其中,处理器501被配置为执行可执行指令,以实现如上述任一种可能的实施方式的测试方法。且能达到相同的技术效果,为避免重复,这里不再赘述。
本公开实施例还提供一种计算机可读存储介质,当计算机可读存储介质中的指令由测试装置或电子设备的处理器执行时,使得测试装置或电子设备能够执行如上述任一种可能的实施方式的测试方法。且能达到相同的技术效果,为避免重复,这里不再赘述。
本公开实施例还提供一种计算机程序产品,包括计算机程序或指令,计算机程序或指令被处理器执行如上述任一种可能的实施方式的测试方法。且能达到相同的技术效果,为避免重复,这里不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (11)
1.一种测试方法,其特征在于,所述测试方法应用于系统,所述系统包括多个节点,所述多个节点用于共同处理目标业务,所述方法包括:
在对所述多个节点进行功能测试的过程中,获取每个所述节点的输入数据和输出数据;
分别确定出每个所述节点的所述输入数据和所述输出数据是否与所述节点对应的预设数据相符;
在各个所述节点的所述输入数据和所述输出数据均与所述对应的预设数据相符的情况下,确定所述多个节点具有事务一致性。
2.根据权利要求1所述的测试方法,其特征在于,所述获取每个所述节点的输入数据和输出数据,包括:
在触发对目标节点的功能测试时,获取所述目标节点的输入数据,所述目标节点为所述多个节点中的任意一个;
在完成对所述目标节点的功能测试时,获取所述目标节点的输出数据。
3.根据权利要求1所述的测试方法,其特征在于,对于所述多个节点中的任一个节点,所述节点预设有至少一个输入字段比对项和至少一个输出字段比对项,所述节点对应的所述预设数据包括与每个所述输入字段比对项匹配的预设输入字段,和与每个所述输出字段比对项匹配的预设输出字段;
所述分别确定出每个所述节点的所述输入数据和所述输出数据是否与所述节点对应的预设数据相符,包括:
对于所述多个节点中的任一个节点,按照所述节点预设的字段比对项,从所述节点的所述输入数据中确定出与所述输入字段比对项匹配的输入字段,以及,从所述节点的所述输出数据中确定出与所述输出字段比对项匹配的输出字段;
确定所述节点对应的所述输入字段和所述预设输入字段是否相符,以及,确定所述节点对应的所述输出字段和所述预设输出字段是否相符。
4.根据权利要求3所述的测试方法,其特征在于,所述预设输入字段包括表征预设输入值和预设输入状态的字段;所述预设输出字段包括表征预设输出值和预设输出状态的字段;所述节点对应的所述输入字段包括表征输入值和输入状态的字段;所述节点对应的所述输出字段包括表征输出值和输出状态的字段。
5.根据权利要求2所述的测试方法,其特征在于,所述方法还包括:
在完成对所述目标节点的功能测试时,监测所述目标节点的输出数据是否发生更新。
6.根据权利要求5所述的测试方法,其特征在于,所述方法还包括:
在监测到所述目标节点的输出数据发生更新的情况下,确定相关节点的输入数据是否包括所述目标节点的更新后的输出数据,所述相关节点是指输入数据包括所述目标节点的输出数据的节点。
7.根据权利要求2、5、6中任一项所述的测试方法,其特征在于,所述多个节点被配置为按照预设触发顺序处理所述目标业务,所述方法还包括:
在触发对所述目标节点的功能测试时,确定所述目标节点在实际触发顺序中的触发位序,所述实际触发顺序是指对所述多个节点进行功能测试的过程中对所述多个节点的触发顺序;
确定所述目标节点对应的所述触发位序与所述目标节点在所述预设触发顺序中的预设触发位序是否相同。
8.一种测试装置,其特征在于,所述测试装置应用于系统,所述系统包括多个节点,所述多个节点用于共同处理目标业务,所述装置包括:
获取单元,被配置为执行在对所述多个节点进行功能测试的过程中,获取每个所述节点的输入数据和输出数据;
第一确定单元,被配置为执行分别确定出每个所述节点的所述输入数据和所述输出数据是否与所述节点对应的预设数据相符;
第二确定单元,被配置为执行在各个所述节点的所述输入数据和所述输出数据均与所述对应的预设数据相符的情况下,确定所述多个节点具有事务一致性。
9.一种电子设备,其特征在于,包括:
处理器和用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述可执行指令,以实现如权利要求1至7中任一项所述的测试方法。
10.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至7中任一项所述的测试方法。
11.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现权利要求1至7任一项所述的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210543055.1A CN114968775A (zh) | 2022-05-18 | 2022-05-18 | 测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210543055.1A CN114968775A (zh) | 2022-05-18 | 2022-05-18 | 测试方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968775A true CN114968775A (zh) | 2022-08-30 |
Family
ID=82985439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210543055.1A Pending CN114968775A (zh) | 2022-05-18 | 2022-05-18 | 测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968775A (zh) |
-
2022
- 2022-05-18 CN CN202210543055.1A patent/CN114968775A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106506283B (zh) | 银行和企业对接系统的业务测试方法和装置 | |
US7401259B2 (en) | System and method for scenario generation in a distributed system | |
CN109634843A (zh) | 一种面向ai芯片平台的分布式自动化软件测试方法及平台 | |
CN109977012B (zh) | 系统的联调测试方法、装置、设备及计算机可读存储介质 | |
CN112446786A (zh) | 一种异常交易处理方法、装置、电子设备和可读存储介质 | |
JP2020098556A (ja) | 検証用注釈処理作業を用いた実施用注釈処理作業の検証方法及び装置 | |
CN112732499A (zh) | 一种基于微服务架构的测试方法、装置及计算机系统 | |
CN111459800A (zh) | 一种业务系统可用性验证方法、装置、设备和介质 | |
CN113127356A (zh) | 压测方法、装置、电子设备及存储介质 | |
CN108153599B (zh) | 一种项目管理平台、方法、存储介质及电子设备 | |
CN112905492B (zh) | 验证方法及装置 | |
CN109586946B (zh) | 异常处理方法、装置及计算机可读存储介质 | |
CN109617755B (zh) | 接入系统的验收方法及装置 | |
CN110888800A (zh) | 服务交互功能的测试方法、装置、存储介质及测试系统 | |
US20230007894A1 (en) | Intelligent Dynamic Web Service Testing Apparatus in a Continuous Integration and Delivery Environment | |
CN116974874A (zh) | 数据库的测试方法、装置、电子设备及可读存储介质 | |
CN110609786B (zh) | 软件测试方法、装置、计算机设备和存储介质 | |
CN114691473A (zh) | 一种测试方法、装置与电子设备 | |
CN116795701A (zh) | 一种接口程序的通用测试实例的生成方法和装置 | |
CN114968775A (zh) | 测试方法、装置、电子设备及存储介质 | |
JP2013186696A (ja) | 分散処理システムのテスト方法および分散処理システム | |
CN115185829A (zh) | 业务流程测试方法、装置、终端设备及存储介质 | |
CN113360365B (zh) | 一种流程测试方法和流程测试系统 | |
CN112527606A (zh) | 数据流程分析方法、装置、计算机设备及存储介质 | |
CN112994959B (zh) | 一种业务测试控制系统、方法、装置和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |