CN110059003A - 自动化测试方法、装置、电子设备及可读存储介质 - Google Patents
自动化测试方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN110059003A CN110059003A CN201910214834.5A CN201910214834A CN110059003A CN 110059003 A CN110059003 A CN 110059003A CN 201910214834 A CN201910214834 A CN 201910214834A CN 110059003 A CN110059003 A CN 110059003A
- Authority
- CN
- China
- Prior art keywords
- flow
- interface
- node
- access
- access sequence
- 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.)
- Granted
Links
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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开公开了一种自动化测试方法、装置、电子设备及可读存储介质。所述方法,包括:解析目标项目的依赖关系,建立所述目标项目的流量访问路径树;根据所述流量访问路径树,获取所述目标项目的接口访问序列;根据所述目标项目的访问流量,获取每个所述接口访问序列的流量占比;根据预设的测试流量值,从所述接口访问序列中选定目标访问序列,并针对所述目标访问序列进行自动化回归测试。由此解决了现有的自动化测试方法测试结果准确性欠佳,人力成本较大等问题的技术问题。取得了提高测试结果准确性的同时降低人力成本的有益效果。
Description
技术领域
本公开的实施例涉及测试技术领域,具体涉及一种自动化测试方法、装置、电子设备及可读存储介质。
背景技术
随着计算机技术的快速发展,各类满足人们各个方面应用需求的应用软件不断被开发并投入使用。在软件的生命周期中,由于开发人员需要针对不断出现的问题以及应用需求对应用软件进行改进,故相应地也需要对软件更新版本进行测试。其中,回归测试会在修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
关于自动化回归测试,现有的解决方案主要可以分为以下两种:第一种,测试人员通过分析用户使用场景,选出核心场景进而利用自动化测试框架或工具进行自动化开发,完成自动化用例,进行自动化回归测试;第二种方案,获取线上服务器上流量,对流量进行一定数据处理后,进行回放并对比测试结果,完成自动化回归测试。
但是,方案一中的场景选取和数据选取都存在一定的主观性,容易影响测试结果准确性;方案二的整个流量上没有场景聚合和权重分析,导致当回放验证失败时,需要耗费额外的人力去分析及评估是否可以进行上线。综上所述,现有的自动化回归测试方案存在测试结果准确性欠佳,人力成本较大等问题。
发明内容
本公开的实施例提供一种自动化测试方法、装置、电子设备及可读存储介质,以部分或全部解决现有技术中自动化测试过程相关的上述问题。
依据本公开第一方面,提供了一种自动化测试方法,包括:
通过解析目标项目的依赖关系,建立所述目标项目的流量访问路径树;
根据所述流量访问路径树,获取所述目标项目的接口访问序列;
根据所述目标项目的访问流量,获取每个所述接口访问序列的流量占比;
根据预设的测试流量值,从所述接口访问序列中选定目标访问序列,并针对所述目标访问序列进行自动化回归测试。
根据本公开的第二方面,提供了一种自动化测试装置,包括:
流量访问路径树建立模块,用于通过解析目标项目的依赖关系,建立所述目标项目的流量访问路径树;
接口访问序列获取模块,用于根据所述流量访问路径树,获取所述目标项目的接口访问序列;
流量占比获取模块,用于根据所述目标项目的访问流量,获取每个所述接口访问序列的流量占比;
自动化回归测试模块,用于根据预设的测试流量值,从所述接口访问序列中选定目标访问序列,并针对所述目标访问序列进行自动化回归测试。
根据本公开的第三方面,提供了一种电子设备,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现前述的自动化测试方法。
根据本公开的第四方面,提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述的自动化测试方法。
根据本公开的自动化测试方法,可以通过解析目标项目的依赖关系,建立所述目标项目的流量访问路径树;根据所述流量访问路径树,获取所述目标项目的接口访问序列;根据所述目标项目的访问流量,获取每个所述接口访问序列的流量占比;根据预设的测试流量值,从所述接口访问序列中选定目标访问序列,并针对所述目标访问序列进行自动化回归测试。由此解决了现有的自动化测试方法测试结果准确性欠佳,人力成本较大等问题的技术问题。取得了提高测试结果准确性的同时降低人力成本的有益效果。
上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本公开的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本公开一个实施例的一种自动化测试方法的步骤流程图;
图2示出了根据本公开一个实施例的一种流量访问路径树的示意图;
图3示出了根据本公开一个实施例的一种自动化测试方法的步骤流程图;
图4示出了根据本公开一个实施例的一种自动化测试装置的结构示意图;以及
图5示出了根据本公开一个实施例的一种自动化测试装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
详细介绍本公开实施例提供的一种自动化测试方法。
参照图1,示出了本公开实施例中一种自动化测试方法的步骤流程图。
步骤110,通过解析目标项目的依赖关系,建立所述目标项目的流量访问路径树。
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。在实际应用中,为了针对目标项目进行自动化测试,则需要针对目标项目进行一步步执行,测试每一步的执行结果是否与预期结果一致。但是随着用户需求越来越多样以及细致,不同项目所包含的内容也越来越多,那么针对每个需要进行自动化测试的目标项目,其中所包含的服务接口也越来越多,而且为了访问某一接口,则需要先依赖于访问另一接口,另外由于不同接口的作用不同,因此不同接口的访问情况也会有所差别,那么在进行自动化测试的时候,针对不同重要程度的访问路径则需要针对性进行测试。
因此,在本公开实施例中,为了对目标项目进行自动化测试,可以先通过解析目标项目的依赖关系,建立所述目标项目的流量访问路径树。具体的目标项目的依赖关系可以包括目标项目的各个接口与目标项目的入口地址的依赖关系,以及目标项目中包含的各个接口之间的依赖(refer)关系,等等。从而可以基于目标项目的依赖关系,针对目标项目的入口地址以及各个接口,建立流量访问路径树。而且,对于目标项目而言,其流量访问路径树的根节点可以为目标项目的入口地址,而且为了方便处理,也可以将入口地址认定为一种接口,而且依赖于同一接口的下一等级接口可以理解为相应接口的子节点,并且对应同一接口的节点只在流量访问路径树中保留一个,也即在流量访问路径树中会消除各类环。
那么在流量访问路径树中可以清晰表示目标项目的依赖关系,从而可以清晰地确认测试时的执行路径,以提高自动化测试的效率以及准确性。
步骤120,根据所述流量访问路径树,获取所述目标项目的接口访问序列。
在获取得到流量访问路径树之后,则可以根据所述流量访问路径树,获取所述目标项目的接口访问序列。其中的接口访问序列可以包括针对目标项目中各个接口的任意一种访问序列。
例如,对于图2所示的流量访问路径树,其中A、B、C、D、E和F分别为相应目标项目所包含的接口标识,A也对应于目标项目的入口地址。那么根据该流量访问路径树,可以获取得到相应目标项目的接口访问序列可以包括A->B、A->B->D、A->C、A->C->E、A->C->F。
在本公开实施例中,可以通过任何可用方法根据所述流量访问路径树,获取目标项目的接口访问序列,对此本公开实施例不加以限定。
步骤130,根据所述目标项目的访问流量,获取每个所述接口访问序列的流量占比。
如前述,在实际应用中,由于同一目标项不同接口的作用不同,以及各个接口之间的依赖关系也会所有差别,因此不同接口的访问流量一般也不会完全一致,那么相应的包含不同接口的接口访问序列的流量占比也会有所不同。而在实际应用中,流量占比越大的接口访问序列的重要程度则越高,那么在进行测试时,则需要进行重点测试,以保证其在后续使用过程中的性能稳定性。
因此,在本公开实施例中,为了确定各个接口访问序列的重要程度,可以根据目标项目的访问流量,确定每个接口访问序列的流量占比。其中的访问流量可以理解为访问量,用户每一次触发目标项目中每个接口,也即每一次对目标项目中的每个页面进行访问,那么相应接口或者页面,以及相应目标项目的访问流量则或被增加一次。而且,目标项目的访问流量可以包括目标项目的入口地址以及目标项目各个接口的访问流量,或者可以仅包括目标项目内部包含的各个接口的访问流量,而不包含入口地址的访问流量。其中,各个接口访问序列的流量占比,与目标项目的访问流量之间的对应关系可以根据需求进行预先设置,对此本公开实施例不加以限定。
例如,可以设置接口访问序列的流量占比为相应接口访问序列中包含的节点的访问流量与相应目标项目的全部访问流量的比值,那么假设对于图2所示的流量访问路径树所对应的目标项目而言,如果A、B、C、D、E和F的访问流量依次为70、60、30、40、30和20,那么该目标项目的总访问流量即为250,那么对于接口访问序列A->B->D的流量占比为(70+60+40)/250=0.68,即为68%。
但是,在实际应用中如果要访问目标项目那么则必须访问其入口地址,而且入口地址设置完成后的稳定性比较强,入口地址对目标项目的性能影响不大,因此可以不考虑入口地址的访问流量。那么此时则可以设置接口访问序列的流量占比为相应接口访问序列中包含的节点路径的流量权重与相应目标项目的全部访问流量的比值,而某一节点路径的流量权重可以为相应节点路径末端的节点的访问流量。那么对于图2所示的流量访问路径树所对应的目标项目而言,如果A、B、C、D、E和F的访问流量依次为70、60、30、40、30和20,此时忽略入口地址对应节点A的访问流量,那么该目标项目的总访问流量即为180,而对于接口访问序列A->B->D的流量占比为(60+40)/180=0.556,即为55.6%。
或者,也可以设置接口访问序列的流量占比为相应接口访问序列中包含的节点路径的流量权重除以预设数值之后再相乘。其中的预设数值可以根据需求进行预先设置,对此本公开实施例不加以限定。例如,可以设置预设数值为100,那么对于图2所示的流量访问路径树所对应的目标项目而言,接口访问序列A->B->D的流量占比为60/100*(40/100)=0.24,即为24%。
步骤140,根据预设的测试流量值,从所述接口访问序列中选定目标访问序列,并针对所述目标访问序列进行自动化回归测试。
在确定了各个接口访问序列的流量占比之后,则可以根据需求设置测试流量值,进而则可以根据测试流量值,从各个接口访问序列中选定需要进行测试的目标访问序列,进而可以针对目标访问序列进行自动化回归测试。
例如,用户可输入测试流量值生成场景用例,比如如果设置测试流量值为80%,那么则可以选取前80%优先级(不低于这个值)的接口访问序列作为目标访问序列,并可以针对每个目标访问序列对应一条自动化测试用例,在自动化测试用例中可以包括相应目标访问序列中的多个接口,进而可以通过对该目标访问序列中的流量进行回放验证,从而通过回放结果来判断相应的目标访问序列是否通过回归测试,进而判断相应的目标项目是否通过回归测试。
根据本公开的自动化测试方法,可以通过解析目标项目的依赖关系,建立所述目标项目的流量访问路径树;根据所述流量访问路径树,获取所述目标项目的接口访问序列;根据所述目标项目的访问流量,获取每个所述接口访问序列的流量占比;根据预设的测试流量值,从所述接口访问序列中选定目标访问序列,并针对所述目标访问序列进行自动化回归测试。由此取得了提高测试结果准确性的同时降低人力成本的有益效果。
实施例二
详细介绍本公开实施例提供的一种自动化测试方法。
参照图3,示出了本公开实施例中一种自动化测试方法的步骤流程图。
步骤210,获取所述目标项目的入口地址,以及所述目标项目所包含的各个接口之间的依赖关系。
为了针对目标目标项目建立流量访问路径树,可以获取目标项目的入口地址,以及所述目标项目所包含的各个接口之间的依赖关系。
例如,假设对于某一目标项目包含入口地址A、接口B、接口C、接口D、接口E和接口F,且接口B和接口C均依赖于入口地址A,也即为了访问接口B和接口C之前,必须先访问入口地址A,而接口D依赖于接口B,接口E和F依赖于接口C,等等。其中的入口地址可以根据目标项目进行设置。
步骤220,以所述入口地址为根节点,以所述接口作为子节点,根据所述目标项目所包含的各个接口之间的依赖关系,建立所述流量访问路径树。
在获取得到目标项目的入口地址以及各个接口之间的依赖关系之后,则可以以所述入口地址为根节点,以所述接口作为子节点,根据所述目标项目所包含的各个接口之间的依赖关系,建立所述流量访问路径树。
例如,对于步骤210中所述的目标项目,以其入口地址A为根节点,以所述接口B、C、D、E、F作为子节点,根据所述目标项目所包含的各个接口之间的依赖关系,建立得到的流量访问路径树如图2所示。
步骤230,获取所述目标项目所包含的各个接口的访问流量。
步骤240,根据每个所述接口的访问流量,获取所述流量访问路径树中每个节点路径的流量权重。
此时,流量访问路径树中每个节点路径的流量权重,与每个接口的访问流量之间的对应关系可以根据需求进行预先设置,对此本公开实施例不加以限定。其中的节点路径可以理解为以流量访问路径树中连续两个节点之间的路径,例如图2所示的A->B、A->C、B->D、C->E和C->F。
例如,可以设置每个节点路径的流量权重为相应节点路径所对应的接口的访问流量的加权求和,且不同接口的权重可以根据根据需求进行预先设置,对此本公开实施例不加以限定;或者可以设置每个节点路径的流量权重为相应节点路径的末端节点所对应接口的访问流量与相应接口的权重的乘积,等等。
可选地,在本公开实施例中,所述步骤240进一步可以包括:
子步骤241,以每个节点路径末端的子节点的访问流量作为所述节点路径的流量权重。
为了方便确认各个节点路径的流量权重,在本公开实施例中也可以直接以每个节点路径末端的子节点的访问流量作为相应节点路径的流量权重。
例如,对于图2中所示的节点路径A->B,则可以直接以接口B的访问流量作为节点路径A->B的流量权重。
步骤250,根据所述流量访问路径树中每个节点路径的流量权重,获取所述目标项目的接口访问序列。
在本公开实施例中,为了方便快速获取得到目标项目的接口访问序列,可以根据流量访问路径树中每个节点路径的流量权重,获取所述目标项目的接口访问序列。此时可以优先提取流量访问路径树中流量权重较高的节点路径所在的接口访问序列,从而使得获取接口访问序列的过程有序且准确,进而提高接口访问序列的准确性。
例如,对于图2所示的流量访问路径树,节点A下一层有两个子节点,假设A->B的流量权重高于A->C,那么则可以优先获取接口访问序列A->B->D,以及接口访问序列A->B,而子节点C的下一层也有两个子节点,假设C->E的流量权重高于C->F,那么进一步则可以获取接口访问序列A->C->E,之后获取接口访问序列A->C->F,最后还可以获取接口访问序列A->C。
当然,在本公开实施例中,也可以优先获取流量访问路径树中流量权重较低的节点路径所在的接口访问序列,或者按照其他以流量权重为参照的预设顺序从流量访问路径树中获取接口访问序列,对此本公开实施例不加以限定。
可选地,在本公开实施例中,所述步骤250进一步可以包括:
子步骤A251,按照所述流量权重从高到低的预设优先顺序,对所述流量访问路径树中同一节点下的子节点进行位置调整;
子步骤A252,以所述根节点为起点,按照所述预设优先顺序,依次访问当前访问节点的下一子节点,直至所述流量访问路径树中的叶子节点;
子步骤A253,以本次的访问路径作为一个接口访问序列,并删除本次访问的叶子节点,然后返回子步骤A252,直至所述流量访问路径树中的节点为空。
另外,在本公开实施例中,为了方便快速根据流量访问路径树准确地提取出全部的接口访问序列,可以根据各个节点路径的流量权重,对各个节点路径的末端节点之间的相对位置进行调整,进而根据调整后的流量访问路径树,获取接口访问路径。具体的可以按照各个节点路径的流量权重从高到低的预设优先顺序,对所述流量访问路径树中同一节点下的子节点进行位置调整。其中的预设优先顺序可以根据需求进行预先设置,对此本公开实施例不加以限定。例如,可以设置预设优先顺序为从左到右,或者是从右向左,等等。
例如,如果预设优先顺序为从左到右,假设图2所示的为位置调整后的流量访问路径树,那么此时节点路径A->B的流量权重高于A->C,节点路径C->E的流量权重高于C->F。
对于调整后的流量访问路径树,则可以所述根节点为起点,按照所述预设优先顺序,依次访问当前访问节点的下一子节点,直至所述流量访问路径树中的叶子节点。
例如,对于图2所示调整后的流量访问路径树,预设优先顺序为从左到右,那么则可以从A开始,由于节点路径A->B的流量权重高于A->C,进而访问子节点B,之后再访问叶子节点D,从而得到接口访问序列A->B->D,进而可以将本次访问的叶子节点D删除,进而可以以更新后的流量访问路径树,再次执行上述步骤,从而可以依次得到接口访问序列A->B、A->C->E、A->C->F、A->C、A,其中A也可以不作为一个接口访问序列,具体的可以根据需求进行预先设置,对此本公开实施例不加以限定。
可选地,在本公开实施例中,所述步骤250进一步可以包括:
子步骤B251,以所述根节点为起点,按照以所述流量权重为参照的预设访问顺序,确定并访问下一子节点,直至所述流量访问路径树中的叶子节点;
子步骤B252,以本次的访问路径作为一个接口访问序列,并删除本次访问的叶子节点,然后返回子步骤B251,直至所述流量访问路径树中的节点为空。
另外,在本公开实施例中,也可以不对流量访问路径树中节点位置进行调整,而是直接以所述根节点为起点,按照以所述流量权重为参照的预设访问顺序,确定并访问下一子节点,直至所述流量访问路径树中的叶子节点。其中的预设访问顺序可以根据需求进行预先设置,对此本公开实施例不加以限定。例如,按照流量权重从高到低的访问顺序,或者按照流量权重从低到高的访问顺序,等等。其中,按照流量权重从高到低的访问顺序可以理解为当前访问节点与所述下一子节点之间的节点路径的流量权重,为以所述当前访问节点为起点的节点路径的流量权重中的最大值。
例如,对于图2所示的流量访问路径树,假设预设访问顺序为按照流量权重从高到低的顺序进行访问,那么如果节点路径A->B的流量权重高于A->C,则可以优先得到接口访问序列A->B->D,进而将叶子节点D删除,并以更新后的流量访问路径树得到接口访问序列A->B,进而将叶子节点B删除,而且如果节点路径C->E的流量权重高于C->F,那么则可以更新后的流量访问路径树得到接口访问序列A->C->E,以此类推。
步骤260,获取所述接口访问序列中包含的每个节点路径的流量权重与预设数值的比值。
步骤270,以所述比值的乘积作为所述接口访问序列的流量占比。
在本公开实施例中,为了获取每个接口访问序列的流量占比,则可以先获取每个接口访问序列中包含的每个节点路径的流量权重与预设数值的比值,其中的预设数值可以根据需求进行预先设置,对此本公开实施例不加以限定。
例如,假设预设数值为100,对于接口访问序列A->C->E,对应的节点路径A->C和C->E的流量权重依次为50、60,则该接口访问序列的流量占比则可以为(50/100)*(60/100)=0.3即30%。
步骤280,根据预设的测试流量值,从所述接口访问序列中选定目标访问序列,并针对所述目标访问序列进行自动化回归测试。
根据本公开的自动化测试方法,可以通过解析目标项目的依赖关系,建立所述目标项目的流量访问路径树;根据所述流量访问路径树,获取所述目标项目的接口访问序列;根据所述目标项目的访问流量,获取每个所述接口访问序列的流量占比;根据预设的测试流量值,从所述接口访问序列中选定目标访问序列,并针对所述目标访问序列进行自动化回归测试。由此取得了提高测试结果的准确性的同时降低人力成本的有益效果。
而且,在本公开实施例中,还可以获取所述目标项目的入口地址,以及所述目标项目所包含的各个接口之间的依赖关系;以所述入口地址为根节点,以所述接口作为子节点,根据所述目标项目所包含的各个接口之间的依赖关系,建立所述流量访问路径树。从而可以提高流量访问路径树的准确性,进而提高测试结果的准确性。
另外,在本公开实施例中,还可以获取所述目标项目所包含的各个接口的访问流量;根据每个所述接口的访问流量,获取所述流量访问路径树中每个节点路径的流量权重;根据所述流量访问路径树中每个节点路径的流量权重,获取所述目标项目的接口访问序列。并且,按照所述流量权重从高到低的预设优先顺序,对所述流量访问路径树中同一节点下的子节点进行位置调整;以所述根节点为起点,按照所述预设优先顺序,依次访问当前访问节点的下一子节点,直至所述流量访问路径树中的叶子节点;以本次的访问路径作为一个接口访问序列,并删除本次访问的叶子节点,然后返回以所述根节点为起点,按照所述预设优先顺序,依次访问当前访问节点的下一子节点,直至所述流量访问路径树中的叶子节点的步骤,直至所述流量访问路径树中的节点为空。或者,以所述根节点为起点,按照以所述流量权重为参照的预设访问顺序,确定并访问下一子节点,直至所述流量访问路径树中的叶子节点;以本次的访问路径作为一个接口访问序列,并删除本次访问的叶子节点,然后返回以所述根节点为起点,按照以所述流量权重为参照的预设访问顺序,确定并访问下一子节点,直至所述流量访问路径树中的叶子节点的步骤,直至所述流量访问路径树中的节点为空。以及,以每个节点路径末端的子节点的访问流量作为所述节点路径的流量权重。获取所述接口访问序列中包含的每个节点路径的流量权重与预设数值的比值;以所述比值的乘积作为所述接口访问序列的流量占比。从而可以进一步提高测试结果的准确性,同时降低测试人力成本。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开实施例并不受所描述的动作顺序的限制,因为依据本公开实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本公开实施例所必须的。
实施例三
详细介绍本公开实施例提供的一种自动化测试装置。
参照图4,示出了本公开实施例中一种自动化测试装置的结构示意图。
流量访问路径树建立模块310,用于通过解析目标项目的依赖关系,建立所述目标项目的流量访问路径树。
接口访问序列获取模块320,用于根据所述流量访问路径树,获取所述目标项目的接口访问序列。
流量占比获取模块330,用于根据所述目标项目的访问流量,获取每个所述接口访问序列的流量占比。
自动化回归测试模块340,用于根据预设的测试流量值,从所述接口访问序列中选定目标访问序列,并针对所述目标访问序列进行自动化回归测试。
根据本公开的自动化测试方法,可以通过解析目标项目的依赖关系,建立所述目标项目的流量访问路径树;根据所述流量访问路径树,获取所述目标项目的接口访问序列;根据所述目标项目的访问流量,获取每个所述接口访问序列的流量占比;根据预设的测试流量值,从所述接口访问序列中选定目标访问序列,并针对所述目标访问序列进行自动化回归测试。由此取得了提高测试结果的准确性的同时降低人力成本的有益效果。
实施例四
详细介绍本公开实施例提供的一种自动化测试装置。
参照图5,示出了本公开实施例中一种自动化测试装置的结构示意图。
流量访问路径树建立模块410,用于通过解析目标项目的依赖关系,建立所述目标项目的流量访问路径树。
其中,在本公开实施例中,所述流量访问路径树建立模块410,进一步可以包括:
依赖关系获取子模块411,用于获取所述目标项目的入口地址,以及所述目标项目所包含的各个接口之间的依赖关系;
流量访问路径树建立子模块412,用于以所述入口地址为根节点,以所述接口作为子节点,根据所述目标项目所包含的各个接口之间的依赖关系,建立所述流量访问路径树。
接口访问序列获取模块420,用于根据所述流量访问路径树,获取所述目标项目的接口访问序列。
其中,在本公开实施例中,所述接口访问序列获取模块420,进一步可以包括:
访问流量获取子模块421,用于获取所述目标项目所包含的各个接口的访问流量;
流量权重获取子模块422,用于根据每个所述接口的访问流量,获取所述流量访问路径树中每个节点路径的流量权重;
可选地,在本公开实施例中,所述流量权重获取子模块422,还用于以每个节点路径末端的子节点的访问流量作为所述节点路径的流量权重。
接口访问序列获取子模块423,用于根据所述流量访问路径树中每个节点路径的流量权重,获取所述目标项目的接口访问序列。
可选地,在本公开实施例中,所述接口访问序列获取子模块423,进一步可以包括:
流量访问路径树调整单元,用于按照所述流量权重从高到低的预设优先顺序,对所述流量访问路径树中同一节点下的子节点进行位置调整;
第一节点访问单元,用于以所述根节点为起点,按照所述预设优先顺序,依次访问当前访问节点的下一子节点,直至所述流量访问路径树中的叶子节点;
第一接口访问序列获取单元,用于以本次的访问路径作为一个接口访问序列,并删除本次访问的叶子节点,然后返回第一节点访问单元,直至所述流量访问路径树中的节点为空。
可选地,在本公开实施例中,所述接口访问序列获取子模块423,进一步可以包括:
第二节点访问单元,用于以所述根节点为起点,按照以所述流量权重为参照的预设访问顺序,确定并访问下一子节点,直至所述流量访问路径树中的叶子节点;
第二接口访问序列获取单元,用于以本次的访问路径作为一个接口访问序列,并删除本次访问的叶子节点,然后返回第二节点访问单元,直至所述流量访问路径树中的节点为空。
流量占比获取模块430,用于根据所述目标项目的访问流量,获取每个所述接口访问序列的流量占比。
其中,在本公开实施例中,所述流量占比获取模块430,进一步可以包括:
比值获取子模块431,用于获取所述接口访问序列中包含的每个节点路径的流量权重与预设数值的比值;
流量占比获取子模块432,用于以所述比值的乘积作为所述接口访问序列的流量占比。
自动化回归测试模块440,用于根据预设的测试流量值,从所述接口访问序列中选定目标访问序列,并针对所述目标访问序列进行自动化回归测试。
根据本公开的自动化测试方法,可以通过解析目标项目的依赖关系,建立所述目标项目的流量访问路径树;根据所述流量访问路径树,获取所述目标项目的接口访问序列;根据所述目标项目的访问流量,获取每个所述接口访问序列的流量占比;根据预设的测试流量值,从所述接口访问序列中选定目标访问序列,并针对所述目标访问序列进行自动化回归测试。由此取得了提高测试结果的准确性的同时降低人力成本的有益效果。
而且,在本公开实施例中,还可以获取所述目标项目的入口地址,以及所述目标项目所包含的各个接口之间的依赖关系;以所述入口地址为根节点,以所述接口作为子节点,根据所述目标项目所包含的各个接口之间的依赖关系,建立所述流量访问路径树。从而可以提高流量访问路径树的准确性,进而提高测试结果的准确性。
另外,在本公开实施例中,还可以获取所述目标项目所包含的各个接口的访问流量;根据每个所述接口的访问流量,获取所述流量访问路径树中每个节点路径的流量权重;根据所述流量访问路径树中每个节点路径的流量权重,获取所述目标项目的接口访问序列。并且,按照所述流量权重从高到低的预设优先顺序,对所述流量访问路径树中同一节点下的子节点进行位置调整;以所述根节点为起点,按照所述预设优先顺序,依次访问当前访问节点的下一子节点,直至所述流量访问路径树中的叶子节点;以本次的访问路径作为一个接口访问序列,并删除本次访问的叶子节点,然后返回以所述根节点为起点,按照所述预设优先顺序,依次访问当前访问节点的下一子节点,直至所述流量访问路径树中的叶子节点的步骤,直至所述流量访问路径树中的节点为空。或者,以所述根节点为起点,按照以所述流量权重为参照的预设访问顺序,确定并访问下一子节点,直至所述流量访问路径树中的叶子节点;以本次的访问路径作为一个接口访问序列,并删除本次访问的叶子节点,然后返回以所述根节点为起点,按照以所述流量权重为参照的预设访问顺序,确定并访问下一子节点,直至所述流量访问路径树中的叶子节点的步骤,直至所述流量访问路径树中的节点为空。以及,以每个节点路径末端的子节点的访问流量作为所述节点路径的流量权重。获取所述接口访问序列中包含的每个节点路径的流量权重与预设数值的比值;以所述比值的乘积作为所述接口访问序列的流量占比。从而可以进一步提高测试结果的准确性,同时降低测试人力成本。
本公开实施例中还公开了一种电子设备,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现前述的自动化测试方法。
本公开实施例中还公开了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述的自动化测试方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本公开也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本公开的内容,并且上面对特定语言所做的描述是为了披露本公开的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开实施例的自动化测试设备中的一些或者全部部件的一些或者全部功能。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本公开进行说明而不是对本公开进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种自动化测试方法,其特征在于,包括:
通过解析目标项目的依赖关系,建立所述目标项目的流量访问路径树;
根据所述流量访问路径树,获取所述目标项目的接口访问序列;
根据所述目标项目的访问流量,获取每个所述接口访问序列的流量占比;
根据预设的测试流量值,从所述接口访问序列中选定目标访问序列,并针对所述目标访问序列进行自动化回归测试。
2.根据权利要求1所述的方法,其特征在于,所述通过解析目标项目的依赖关系,建立所述目标项目的流量访问路径树的步骤,包括:
获取所述目标项目的入口地址,以及所述目标项目所包含的各个接口之间的依赖关系;
以所述入口地址为根节点,以所述接口作为子节点,根据所述目标项目所包含的各个接口之间的依赖关系,建立所述流量访问路径树。
3.根据权利要求1所述的方法,其特征在于,所述根据所述流量访问路径树,获取所述目标项目的接口访问序列的步骤,包括:
获取所述目标项目所包含的各个接口的访问流量;
根据每个所述接口的访问流量,获取所述流量访问路径树中每个节点路径的流量权重;
根据所述流量访问路径树中每个节点路径的流量权重,获取所述目标项目的接口访问序列。
4.根据权利要求3所述的方法,其特征在于,所述根据所述流量访问路径树中每个节点路径的流量权重,获取所述目标项目的接口访问序列的步骤,包括:
按照所述流量权重从高到低的预设优先顺序,对所述流量访问路径树中同一节点下的子节点进行位置调整;
以所述根节点为起点,按照所述预设优先顺序,依次访问当前访问节点的下一子节点,直至所述流量访问路径树中的叶子节点;
以本次的访问路径作为一个接口访问序列,并删除本次访问的叶子节点,然后返回以所述根节点为起点,按照所述预设优先顺序,依次访问当前访问节点的下一子节点,直至所述流量访问路径树中的叶子节点的步骤,直至所述流量访问路径树中的节点为空。
5.根据权利要求3所述的方法,其特征在于,所述根据所述流量访问路径树,获取所述目标项目的接口访问序列的步骤,包括:
以所述根节点为起点,按照以所述流量权重为参照的预设访问顺序,确定并访问下一子节点,直至所述流量访问路径树中的叶子节点;
以本次的访问路径作为一个接口访问序列,并删除本次访问的叶子节点,然后返回以所述根节点为起点,按照以所述流量权重为参照的预设访问顺序,确定并访问下一子节点,直至所述流量访问路径树中的叶子节点的步骤,直至所述流量访问路径树中的节点为空。
6.根据权利要求3所述的方法,其特征在于,所述根据每个所述接口的访问流量,获取所述流量访问路径树中每个节点路径的流量权重的步骤,包括:
以每个节点路径末端的子节点的访问流量作为所述节点路径的流量权重。
7.根据权利要求3所述的方法,其特征在于,所述根据所述目标项目的访问流量,获取每个所述接口访问序列的流量占比的步骤,包括:
获取所述接口访问序列中包含的每个节点路径的流量权重与预设数值的比值;
以所述比值的乘积作为所述接口访问序列的流量占比。
8.一种自动化测试装置,其特征在于,包括:
流量访问路径树建立模块,用于通过解析目标项目的依赖关系,建立所述目标项目的流量访问路径树;
接口访问序列获取模块,用于根据所述流量访问路径树,获取所述目标项目的接口访问序列;
流量占比获取模块,用于根据所述目标项目的访问流量,获取每个所述接口访问序列的流量占比;
自动化回归测试模块,用于根据预设的测试流量值,从所述接口访问序列中选定目标访问序列,并针对所述目标访问序列进行自动化回归测试。
9.一种电子设备,其特征在于,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中的任一项所述的自动化测试方法。
10.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1-7中的任一项所述的自动化测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910214834.5A CN110059003B (zh) | 2019-03-20 | 2019-03-20 | 自动化测试方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910214834.5A CN110059003B (zh) | 2019-03-20 | 2019-03-20 | 自动化测试方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110059003A true CN110059003A (zh) | 2019-07-26 |
CN110059003B CN110059003B (zh) | 2023-06-06 |
Family
ID=67317151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910214834.5A Active CN110059003B (zh) | 2019-03-20 | 2019-03-20 | 自动化测试方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110059003B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111083013A (zh) * | 2019-12-18 | 2020-04-28 | 北京嘀嘀无限科技发展有限公司 | 基于流量回放的测试方法、装置、电子设备及存储介质 |
CN111078560A (zh) * | 2019-12-18 | 2020-04-28 | 北京嘀嘀无限科技发展有限公司 | 基于流量剪枝的测试方法、装置、电子设备及存储介质 |
CN111080033A (zh) * | 2019-12-30 | 2020-04-28 | 北京三快在线科技有限公司 | 预测服务容量的方法、装置、计算机设备及存储介质 |
CN112667500A (zh) * | 2020-12-23 | 2021-04-16 | 北京焦点新干线信息技术有限公司 | 回归测试方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120254197A1 (en) * | 2011-03-28 | 2012-10-04 | Yevgeniy Kuzmin | Object access system based upon hierarchical extraction tree and related methods |
CN104021223A (zh) * | 2014-06-25 | 2014-09-03 | 国家电网公司 | 一种集群数据库测点的访问方法及装置 |
CN108628751A (zh) * | 2018-05-17 | 2018-10-09 | 北京三快在线科技有限公司 | 一种无用依赖项检测方法及装置 |
-
2019
- 2019-03-20 CN CN201910214834.5A patent/CN110059003B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120254197A1 (en) * | 2011-03-28 | 2012-10-04 | Yevgeniy Kuzmin | Object access system based upon hierarchical extraction tree and related methods |
CN104021223A (zh) * | 2014-06-25 | 2014-09-03 | 国家电网公司 | 一种集群数据库测点的访问方法及装置 |
CN108628751A (zh) * | 2018-05-17 | 2018-10-09 | 北京三快在线科技有限公司 | 一种无用依赖项检测方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111083013A (zh) * | 2019-12-18 | 2020-04-28 | 北京嘀嘀无限科技发展有限公司 | 基于流量回放的测试方法、装置、电子设备及存储介质 |
CN111078560A (zh) * | 2019-12-18 | 2020-04-28 | 北京嘀嘀无限科技发展有限公司 | 基于流量剪枝的测试方法、装置、电子设备及存储介质 |
CN111080033A (zh) * | 2019-12-30 | 2020-04-28 | 北京三快在线科技有限公司 | 预测服务容量的方法、装置、计算机设备及存储介质 |
CN111080033B (zh) * | 2019-12-30 | 2021-09-28 | 北京三快在线科技有限公司 | 预测服务容量的方法、装置、计算机设备及存储介质 |
CN112667500A (zh) * | 2020-12-23 | 2021-04-16 | 北京焦点新干线信息技术有限公司 | 回归测试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110059003B (zh) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110059003A (zh) | 自动化测试方法、装置、电子设备及可读存储介质 | |
US9916230B1 (en) | White box testing | |
CN101526916B (zh) | 基于页面对象流验证在回归测试中的应用方法及系统 | |
CN110187878A (zh) | 一种页面生成方法和装置 | |
CN103714002B (zh) | 基于配置系统的项目测试方法及装置 | |
CN105095464B (zh) | 一种检索系统的检测方法和装置 | |
CN106603296A (zh) | 日志的处理方法及装置 | |
CN106776334A (zh) | 基于注释生成测试用例方法及装置 | |
CN106033336A (zh) | 解决Maven依赖冲突的方法、装置和系统 | |
US10664644B1 (en) | Method and apparatus for schematic verification of electronic circuits | |
CN113094255A (zh) | 数据接口的模拟测试方法、装置及系统 | |
US20050137839A1 (en) | Methods, apparatus and programs for system development | |
CN110347946A (zh) | 一种页面展示方法、装置、计算机设备及存储介质 | |
CN109359045A (zh) | 一种测试方法、装置、设备和存储介质 | |
CN109992500A (zh) | 应用的接口测试方法、装置和计算机可读存储介质 | |
CN106776266A (zh) | 测试工具的配置方法及终端设备 | |
US11144840B2 (en) | Completing decision logic to avoid a side effect | |
CN107291619A (zh) | 内存占用分析方法及装置 | |
CN109343891A (zh) | 数据处理的系统、方法及装置 | |
CN109992501A (zh) | 小程序的可用性检查、可用小程序列表生成方法和装置 | |
CN113031995B (zh) | 一种更新规则的方法、装置、存储介质以及电子设备 | |
US8954307B1 (en) | Chained programming language preprocessors for circuit simulation | |
CN106951236A (zh) | 插件的开发方法及装置 | |
CN110297651A (zh) | 协议接口的常用变量的更新方法和装置 | |
CN110188274A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |