CN116225886A - 测试用例生成方法、装置、设备、存储介质及程序产品 - Google Patents
测试用例生成方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN116225886A CN116225886A CN202111511718.3A CN202111511718A CN116225886A CN 116225886 A CN116225886 A CN 116225886A CN 202111511718 A CN202111511718 A CN 202111511718A CN 116225886 A CN116225886 A CN 116225886A
- Authority
- CN
- China
- Prior art keywords
- interface
- parameters
- relation
- determining
- mapping relation
- 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
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)
- Test And Diagnosis Of Digital Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开实施例提供一种测试用例生成方法、装置、设备、存储介质及程序产品,涉及测试技术,包括获取各接口之间的数据传输关系,其中,数据传输关系中包括多个初始映射关系;根据数据传输关系中的各个初始映射关系,确定每一初始映射关系的概率,概率用于表征参数作为另一接口的入参时,参数来源于一个接口的概率;根据每一初始映射关系的概率确定各接口之间的真实映射关系,并根据各真实映射关系生成场景用例。本实施例提供的方案中,可以确定出参数传递过程中出现概率更高的真实映射关系,从而可以得到更加符合实际场景的用于表征参数转移的映射关系,进而可以基于该真实映射关系生成符合实际应用场景的场景用例。
Description
技术领域
本公开实施例涉及测试领域,尤其涉及一种测试用例生成方法、装置、设备、存储介质及程序产品。
背景技术
对于网络应用或***,需要对其代码进行测试,比如,可以在部分代码开发完毕后,或者全部代码开发完成后,对代码进行测试。对应用或***的代码进行测试时,需要对应用或***的接口进行测试。
为了提高接口测试效率,现有技术中存在自动化的测试平台。可以利用自动化平台生成测试用例、执行测试用例,并基于执行结果进行测试用例断言,生成测试用例报告等。
但是,现有技术中对有些接口不能自动生成测试用例。例如,当一个接口的参数作为另一个接口的入参时,则无法自动生成用于测试接口间的这一参数传递关系的测试用例,只能依靠手动编写测试用例。
发明内容
本公开实施例提供一种测试用例生成方法、装置、设备、存储介质及程序产品,以实现自动化的生成用于测试接口之间逻辑关系的用例。
第一方面,本公开实施例提供一种测试用例生成方法,包括:
获取待测试***的录制流量,所述录制流量包括所述待测试***在对外提供服务的过程中执行的接口调用链,所述接口调用链用于表示所述待测试***响应外部触发操作而调用的一系列接口及所述一系列接口之间的依赖关系;
根据所述录制流量,确定所述接口调用链中的目标映射关系,所述目标映射关系用于表示第一接口的参数作为第二接口的入参;
根据所述目标映射关系,生成目标测试用例;其中,所述目标测试用例被执行时将所述第一接口的参数作为所述第二接口的入参。
第二方面,本公开实施例提供一种测试用例生成装置,包括:
获取单元,用于获取待测试***的录制流量,所述录制流量包括所述待测试***在对外提供服务的过程中执行的接口调用链,所述接口调用链用于表示所述待测试***响应外部触发操作而调用的一系列接口及所述一系列接口之间的依赖关系;
映射单元,用于根据所述录制流量,确定所述接口调用链中的目标映射关系,所述目标映射关系用于表示第一接口的参数作为第二接口的入参;
用例生成单元,用于根据所述目标映射关系,生成目标测试用例;其中,所述目标测试用例被执行时将所述第一接口的参数作为所述第二接口的入参第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的测试用例生成方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的测试用例生成方法。
第五方面,本公开实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上第一方面以及第一方面各种可能的设计所述的测试用例生成方法。
本实施例提供的测试用例生成方法、装置、设备、存储介质及程序产品,包括获取待测试***的录制流量,录制流量包括待测试***在对外提供服务的过程中执行的接口调用链,接口调用链用于表示待测试***响应外部触发操作而调用的一系列接口及一系列接口之间的依赖关系;根据录制流量,确定接口调用链中的目标映射关系,目标映射关系用于表示第一接口的参数作为第二接口的入参;根据目标映射关系,生成目标测试用例;其中,目标测试用例被执行时将第一接口的参数作为第二接口的入参。本实施例提供的方案中,可以根据录制流量确定出接口间的参数传递的映射关系,从而可以基于该映射关系生成符合实际应用场景的场景用例。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开一示例性实施例示出的测试用例生成方法的流程示意图;
图2为本公开一示例性实施例示出的接口间的依赖关系图;
图3为本公开另一示例性实施例示出的测试用例生成方法的流程示意图;
图4为本公开一示例性实施例示出的部分初始映射关系的示意图;
图5为本公开一示例性实施例示出的接口链路子图的示意图;
图6为本公开一示例性实施例示出的接口拓扑图的示意图;
图7为本公开一示例性实施例示出的生成键值对的示意图;
图8为本公开一示例性实施例示出的测试用例生成装置的结构示意图;
图9为本公开另一示例性实施例示出的测试用例生成装置的结构示意图;
图10为本公开另一示例性实施例示出的电子设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
在软件代码的开发过程中,对接口进行测试是很重要的环节,通过接口测试能够检查接口中是否存在逻辑问题,进而能够在软件上线前对用于实现接口的代码进行修正。
为了验证接口功能是否正常,可以使用测试用例对接口进行测试。具体可以执行测试用例,在用例执行过程中会调用接口,进而通过接口的逻辑对用例进行处理,并得到执行结果。通过执行测试用例得到的执行结果,能够验证接口的逻辑是否正确,能否实现预期功能。
其中,研发人员可以自行编写测试用例,也可以利用已有的自动化平台生成测试用例。但是,当需要测试的接口在功能实现时,依赖于其他接口的功能时,由于接口与其他接口之间具有依赖关系,例如一个接口的出参作为另一个接口的入参时,自动化平台就不能自动生成用于测试场景化接口的测试用例。
为了解决上述技术问题,本公开提供的方案中,可以获取待测试***的录制流量,根据该录制流量提取出用于表征接口间的参数传递关系的目标映射关系,进而可以根据这一目标映射关系生成目标测试用例,从而可以利用该场景用例对接口间的参数传递关系进行测试。
图1为本公开一示例性实施例示出的测试用例生成方法的流程示意图。
如图1所示,本公开提供的测试用例生成方法,包括:
步骤101,获取待测试***的录制流量,录制流量包括待测试***在对外提供服务的过程中执行的接口调用链,接口调用链用于表示待测试***响应外部触发操作而调用的一系列接口及一系列接口之间的依赖关系。
其中,本实施例提供的测试用例生成方法可以用于生成测试用例。该测试用例能够对接口之间的参数传递关系进行测试。本公开提供的方法可以应用在服务器侧,或者用户终端侧。
图2为本公开一示例性实施例示出的接口间的依赖关系图。
如图2所示,接口21的输出参数A会被输入到接口22中,接口22接收到参数A之后,可以对参数A进行处理,得到参数B,此后,接口22还会将参数A和参数B输入到接口23中,由接口23对参数A和B进行处理。
在这种应用场景中,由于接口之间存在上下文的映射关系,且接口间存在较强的依赖关系,无法基于现有的自动化测试平台生成用于对接口间依赖关系进行测试的测试用例。
具体的,本公开提供的测试用例生成方法中,可以获取待测试***的录制流量,录制流量包括待测试***在对外提供服务的过程中执行的接口调用链,接口调用链用于表示待测试***响应外部触发操作而调用的一系列接口及所一系列接口之间的依赖关系。
可以在待测试***运行时,获取其运行时调用的各接口,以及各接口之间的依赖关系,得到一条接口调用链。可以在待测试***运行时获取多条接口调用链,进而得到录制流量。比如,可以使待测试***执行第一服务,进而获取待测试***的第一接口调用链;可以使用待测试***执行第二服务,进而获取待测试***的第二接口调用链。多条接口调用链组合得到录制流量。
一种可选的实施方式中,若本公开提供的方案应用在用户终端侧,则用户终端响应用户的操作执行代码逻辑,并记录执行过程中代用的接口,以及各接口之间的依赖关系。另一种可选的实施方式中,若本公开提供的方案应用在服务器侧,则用户终端可以响应用户的操作执行代码逻辑,并向服务器发送执行过程中各接口之间的数据传输关系,若调用了服务器中的接口,则服务器还可以进一步的记录接口之间的数据传输关系。
具体的,用户可以操作电子设备,比如,用户可以点击用户终端的界面中显示的录制按键,进而向用户终端发送用于录制流量的录制操作。若由用户终端执行本公开提供的方案,则可以由用户终端响应该操作获取录制流量。若由服务器执行本公开提供的方案,则可以由用户终端向服务器发送用于录制流量的录制操作,使得服务器可以响应该操作,获取录制流量。
进一步的,用户点击了录制按键后,可以操作待测试***,从而使电子设备基于该操作调用接口,并获取接口之间的调用关系、参数传输关系,以采集录制流量。若由服务器执行本公开提供的方法,则用户终端还可以将采集的录制流量发送给服务器。
其中,录制完毕后,用户可以点击电子设备中的停止录制的按键,基于当前的用户操作,可以获取到此次操作流程产生的录制流量。此后,用户还可以再次点击用户终端上的录制按键,进而可以再次获取录制数据。
具体的,本公开提供的方案中,可以基于用户的每次录制操作获取一批录制流量,进而可以根据多批录制流量生成测试用例,进而可以利用该测试用例对待测试***的各接口的功能进行全面的测试。
一种可选的实施方式中,若由服务器执行本公开提供的方案,则服务器还可以根据用户终端的标识,在接收的各个录制流量中进行筛选,以得到每一种的录制流量。比如,可以获取通过第一终端录制得到的录制流量,再比如,可以获取通过第二终端录制得到的录制流量。
实际应用时,在不同的应用场景中,接口间的参数传输关系也会不同,为了使得测试用例能够对更多的接口进行测试,而且能够测试到更多的接口间的依赖关系,本公开提供的方案中,可以由用户多次操作待测试***,进而使电子设备基于接口间的依赖关系多次调用各个接口,就能够得到更加丰富的用于表征接口间参数传输关系的接口调用链。比如,在第一次操作过程中,用户可以登录账号、浏览商品、购买商品。在第二次操作过程中,用户可以查看已购买的商品订单,并联系客服申请售后服务。
其中,由于不同的操作流程会涉及到不同的接口,还可能涉及相同接口的不同功能,因此,通过这种方式能够采集到更加丰富、符合用户实际使用情况的接口调用链。
步骤102,根据录制流量,确定接口调用链中的目标映射关系,目标映射关系用于表示第一接口的参数作为第二接口的入参。
其中,录制流量中包括多条接口调用链,每条接口调用链中都包括接口间的依赖关系,因此,可以根据该依赖关系,确定出目标映射关系。
具体的,接口间的依赖关系是指接口间的数据传输关系,比如,在一次操作过程中,接口21的输出参数A会被输入到接口22中,则该接口21和接口22之间存在依赖关系,具体为接口21的参数A作为接口22的入参。
可以对录制流量中的多条调用链进行处理,确定出目标映射关系。目标映射关系用于表示第一接口的参数作为第二接口的入参,该参数可以是第一接口的入参,也可以是第一接口的出参。
进一步的,调用链中包括多个接口间的依赖关系,可以根据这一依赖关系确定出接口间的初始映射关系,比如,接口21的参数A作为接口22的入参,则接口21与接口22之间具有初始映射关系。
实际应用时,初始映射关系数量较多时,还可以在初始映射关系数量中确定目标映射关系,从而获取出现频次最高的目标映射关系。比如,有多个接口的参数A作为接口22的入参,则可以生成多个初始映射关系,可以在其中确定出现频次最高的初始映射关系,作为目标映射关系。
比如,参数A作为接口33的入参时,该参数A可能来自于接口31,也可能来自于接口32,用于表征参数A来自于接口31的初始映射关系的概率为4/5,用于表征参数A来自于接口32的初始映射关系的概率为1/5,因此,可以将接口31的参数A作为接口33的入参作为目标映射关系。
其中,若确定出多个初始映射关系中,存在多个初始映射关系中的参数相同、接收该参数的第二接口相同,则可以确定每个初始映射关系的出现概率,从而在其中确定出目标映射关系。
出现频次更高的目标映射关系更加符合实际场景,因此,通过这种方式能够确定出更加符合实际场景的目标映射关系。
步骤103,根据目标映射关系,生成目标测试用例;其中,目标测试用例被执行时将第一接口的参数作为第二接口的入参。
进一步的,可以根据各个目标映射关系生成目标测试用例,执行该目标测试用例时能够执行第一接口和第二接口,并将第一接口的参数作为第二接口的入参,从而能够根据目标映射关系在各接口中传递参数。
实际应用时,基于更加符合实际场景的目标映射关系能够生成符合实际场景的目标测试用例,进而能够通过该目标测试用例能够对待测试***的接口间的依赖关系进行测试。
通过这种方式,能够确定出更加符合实际场景的真实映射关系。
进一步的,可以根据各个真实映射关系生成场景用例,具体可以生成一测试用例,执行该测试用例时能够执行各个接口,并基于确定的真实映射关系在各接口中传递参数。
实际应用时,基于更加符合实际场景的真实映射关系能够生成符合实际场景的场景用例,而且,本公开提供的方案中根据多个接口之间的数据传输关系生成场景用例,还能够使生成的场景用例能够覆盖更多的接口间的数据传输情况,从而对更多的接口功能进行测试,测试覆盖率更高。
本公开提供的测试用例生成方法,包括:获取待测试***的录制流量,录制流量包括待测试***在对外提供服务的过程中执行的接口调用链,接口调用链用于表示待测试***响应外部触发操作而调用的一系列接口及一系列接口之间的依赖关系;根据录制流量,确定接口调用链中的目标映射关系,目标映射关系用于表示第一接口的参数作为第二接口的入参;根据目标映射关系,生成目标测试用例;其中,目标测试用例被执行时将第一接口的参数作为第二接口的入参。本公开提供的测试用例生成方法中,可以通过录制流量确定出用于表示接口间依赖关系的目标映射关系,进而可以基于这一关系生成目标测试用例,通过该目标测试用例能够对接口间的依赖关系进行测试。
图3为本公开另一示例性实施例示出的测试用例生成方法的流程示意图。
如图3所示,本公开提供的测试用例生成方法,包括:
步骤301,获取待测试***的录制流量,录制流量包括待测试***在对外提供服务的过程中执行的接口调用链,接口调用链用于表示待测试***响应外部触发操作而调用的一系列接口及一系列接口之间的依赖关系。
步骤301与步骤101的实现方式类似,不再赘述。
其中,本实施例提供的测试用例生成方法可以用于生成测试用例。测试用例能够对接口之间存在的依赖关系进行测试的用例。
步骤302,在录制流量的各接口调用链中确定初始映射关系以及初始映射关系的概率;其中,初始映射关系用于表征第一接口的参数作为第二接口的入参的关系;概率为在相同参数作为同一个接口的入参的多个映射关系中,各初始映射关系出现的概率。
具体的,在获取的录制流量的各各所述接口调用链中,包括待测试***响应外部触发操作而调用的一系列接口及一系列接口之间的依赖关系。因此,可以根据各接口调用链确定出接口间的参数传输关系,从而得到初始映射关系。
初始映射关系用于表征第一接口的参数作为第二接口的入参的关系,比如,第一接口的出参K作为第二接口的入参。
具体的,第一接口的部分参数作为第二接口的全部入参、第一接口的全部参数作为第二接口的全部入参、第一接口的全部参数作为第二接口的部分入参。
进一步的,在确定的各初始映射关系中,可能存在第二接口的同一入参可能来源于不同的第一接口的情况,比如,存在接口1、接口2和接口3,在第一次操作流程中,接口1中的参数A输入到接口3中,在第二次操作流程中,接口2中的参数A输入到接口3中。
对接口3的功能进行测试时,无论从接口1中获取参数A,或是从接口2中获取参数A都能够基于参数A对接口3的功能进行测试。
为了使生成的测试用例能够对更加符合实际应用场景的接口功能进行测试,本公开提供的方案中,还确定每一初始映射关系的概率,进而基于该概率在相同参数作为第二接口的入参时的多个初始映射关系中,确定出目标映射关系,从而可以确定出同一参数经过多个途径输入到同一第二接口时,出现概率更高的目标映射关系,进而可以生成更加准确的测试用例。
其中,目标映射关系能够代表实际的参数转移关系,因此该目标映射关系更加符合实际场景,从而通过本公开的方案能够得到更加符合实际场景的测试用例。
图4为本公开一示例性实施例示出的部分初始映射关系的示意图。
如图4所示,获取的各接口之间的数据传输关系中包括的部分初始映射关系可以如图4所示。
其中,初始映射关系44用于表征接口41中的响应参数1-resq-1作为接口43中请求参数3-rep-2的入参;初始映射关系45用于表征接口41中的请求参数1-rep-2作为接口42中请求参数2-rep-3的入参;初始映射关系46用于表征接口41中的响应参数1-resq-4作为接口42中请求参数2-rep-4的入参;初始映射关系47用于表征接口42中的响应参数2-resq-5作为接口43中请求参数3-rep-2的入参。
具体的,由于接口41和接口42中的参数均有可能被输入到接口43中作为3-rep-2的入参,因此,可以计算接口41的参数作为接口43中3-rep-2的入参的概率,以及接口42的参数作为接口43中3-rep-2的入参的概率。
进一步的,例如初始映射关系中,存在8个关系表征接口41的参数1-resq-1作为接口43中3-rep-2的入参,存在2个关系表征接口42的参数2-resq-5作为接口43中3-rep-2的入参。则接口41的参数1-resq-1作为接口43中3-rep-2的入参的概率为4/5,接口42的参数2-resq-5作为接口43中3-rep-2的入参的概率为1/5。可以将概率最高的初始映射关系作为目标映射关系。
其中,在确定初始映射关系时,可以先根据录制流量中各接口调用链确定接口关系拓扑图;其中,接口关系拓扑图中包括用于表征接口的节点以及用于表征接口间参数传输方向的边。
其中,录制流量中包括各接口之间的调用关系,因此,可以基于该调用关系构建接口关系拓扑图。
具体的,若录制数据中包括基于用户多次操作,获取的多个接口调用链,则可以根据录制流量中的每一接口调用链,生成每一接口调用链的接口链路子图;接口链路子图中包括用于表征接口的节点以及用于表征接口间参数传输方向的边。
图5为本公开一示例性实施例示出的接口链路子图的示意图。
如图5所示,例如录制流量中包括3个接口调用链,针对第一个接口调用链可以生成接口链路子图51,针对第二个接口调用链可以生成接口链路子图52,针对第三个接口调用链可以生成接口链路子图53。
其中,本公开提供的方案可以基于每一接口调用链,生成对应的接口链路子图,通过接口链路子图可以记录下各接口之间调用关系,具体可以包括接口间参数传输的方向。比如,接口1中的一个参数被输入到接口2中,接口1中的另一参数被输入到接口3中,则接口链路子图中包括接口1指向接口2的边,以及接口1指向接口3的边。
具体的,还可以对各个接口链路子图进行合并,生成接口关系拓扑图。针对录制流量中的同一批接口调用链,可以生成多个接口链路子图,为了生成用于对接口之间的参数传输关系进行更全面测试的测试用例,可以对各个接口链路子图进行合并得到接口关系拓扑图。
进一步的,可以在接口链路子图中确定一主链路图;再根据其他接口链路子图中包括的节点、主链路图中包括的节点,将各个其他接口链路子图合并到主链路图中,得到接口关系拓扑图。
实际应用时,每一接口链路子图中都包括若干个节点,可以根据各个接口链路子图中存在的相同节点,对各个接口链路子图进行合并,得到接口关系拓扑图。接口关系拓扑图中也包括用于表征接口的节点以及用于表征接口间数据传输方向的边。
其中,可以在多个接口链路子图中确定一主链路图,其他接口链路子图中若包括与主链路图中相同的节点,则可以将其他接口链路子图中的该重复节点与主链路图中的该重复节点进行合并,从而将其他接口链路子图合并到主链路图中。
具体的,若一个接口链路子图与其他任一接口链路子图都不存在重复节点,则说明该接口链路子图不属于当前的测试用例的应用场景,可以不将该接口链路子图合并到主链路图中。
图6为本公开一示例性实施例示出的接口拓扑图的示意图。
如图6所示,对图5中示出的三个接口链路子图进行合并,能够得到如61所示出的接口拓扑图。
在确定出接口关系拓扑图之后,还可以根据接口关系拓扑图,确定初始映射关系。
进一步的,可以根据确定的接口关系拓扑图,确定各接口间的参数传输方向,比如在接口关系拓扑图中,存在接口1指向接口2的边,则可以确定接口1中的参数被传输到了接口2中。
实际应用时,可以根据接口关系拓扑图中各接口间的指向关系,确定接口之间的参数传输关系。
具体的,可以根据每一接口中包括的参数,确定每一接口对应的键值对;键值对中的键用于表征参数标识,键值对中的值用于表征参数。每个接口中都包括请求参数和响应参数,针对每种参数,都可以构建其键值对。
图7为本公开一示例性实施例示出的生成键值对的示意图。
如图7所示,左侧为一接口中请求参数的代码块,右侧为基于该请求参数构建的键值对。
进一步的,可以将代码块中的代码解析成字符串,进而得到键值对。比如,接口中的一个请求参数为“p.s.m”,可以将用于获取该请求参数的代码作为该请求参数的键,比如可以是“source_node.psm”,通过冒号“:”分隔每个键值对中的键和值。
实际应用时,键值对中的键用于表征参数标识,键值对中的值用于表征参数,比如,在键值对“source_node.psm:p.s.m”中,source_node.psm为键,p.s.m为值。
其中,根据接口关系拓扑图中包括的接口间参数传输方向、各接口的键值对,确定初始映射关系。
具体的,在接口拓扑图中,通过边连接的两个接口之间具有参数传递关系,因此,可以根据通过边连接的接口的键值对,确定通过边连接的接口之间的参数传输关系。
进一步的,可以根据接口关系拓扑图中包括的接口间参数传输方向,确定第一接口、第二接口,比如,可以将具有接口间参数传输方向的两个接口分别确定为第一接口和第二接口。比如,在关系拓扑图中,存在接口1指向接口2的边,则可以将接口1确定为第一接口,将接口2确定为第二接口。
此后,还可以根据第一接口的键值对、第二接口的键值对确定相同参数,并根据相同参数确定第一接口与第二接口之间的初始映射关系。
比如,若第一接口的键值对与第二接口的键值对中存在相同的参数A,则可以确定第一接口中的参数A作为第二接口的入参,进而确定这两个接口之间存在的初始映射关系。
进一步的,构建的初始映射关系中包括以下任一种关系:
一个接口的部分参数作为另一接口的全部入参、一个接口的全部参数作为另一接口的全部入参、一个接口的全部参数作为另一接口的部分入参。
通过这种实施方式,可以确定出接口间多种的初始映射关系,进而生成更全面覆盖接口间功能的测试用例。
确定出各初始映射关系后,还可以确定各初始映射关系的概率。具体可以根据各初始映射关系确定同类映射关系,同类映射关系中的各个初始映射关系中的参数相同、且接收参数的第二接口相同。
其中,根据录制流量可以生成多个初始映射关系,可以对这些初始映射关系进行分类,得到多个同类映射关系。每个同类映射关系中都包括若干个初始映射关系。
具体的,同类映射关系中包括的各个初始映射关系之间,参数相同、且接收参数的第二接口相同。一个参数作为第二接口的入参时,该参数的来源可能包括多个接口,因此,可以将这些初始映射关系划分到一个同类映射关系中。
比如,在一个同类映射关系中包括两个初始映射关系,其中一个初始映射关系用于表征接口1的参数A作为接口3的入参,另一个初始映射关系用于表征接口2的参数A作为接口3的入参,这两个初始映射关系的参数相同,且接收参数的接口也相同,因此,可以将这两个初始映射关系划分到同类映射关系中。
其中,确定出同类映射关系后,在同类映射关系中,确定各初始映射关系出现的概率。
进一步的,可以根据每个同类映射关系中包括的各个初始映射关系,确定该同类映射关系中各初始映射关系出现的概率。
实际应用时,可以确定同类映射关系中,每个初始映射关系的出现次数,进而可以根据每个初始映射关系的出现次数、同类映射关系中包括的初始映射关系数量,确定每个初始映射关系出现的概率。
其中,同类映射关系中可以包括多个初始映射关系,且可以包括重复的初始映射关系。比如,基于用户操作采集的录制流量中,包括两次接口1的参数A被输入到接口3中,则同类映射关系中可以包括两个用于表征接口1的参数A作为接口3的入参的初始映射参数,则该初始映射参数的出现次数为2。
具体的,可以将每个初始映射关系的出现次数与同类映射关系中包括的初始映射关系数量的比值,确定为每个初始映射关系出现的概率。通过概率能够表征出同类映射关系中的每个初始映射关系出现的频率,进而可以在同类映射关系中确定出符合实际应用场景的参数传输关系。
步骤303,根据各初始映射关系的概率,确定接口调用链中的目标映射关系。
进一步的,针对每个同类映射关系,可以在其中确定出一个目标映射关系。比如,可以将同类映射关系中概率最高的初始映射关系,确定为目标映射关系。
比如,同类映射关系中,接口41的参数1-resq-1作为接口43中3-rep-2的入参的概率为4/5,接口42的参数2-resq-5作为接口43中3-rep-2的入参的概率为1/5,则可以将接口41的参数1-resq-1作为接口43中3-rep-2的入参这一初始映射关系,作为该同类映射关系的目标映射关系。
步骤304,根据目标映射关系,生成目标测试用例;其中,目标测试用例被执行时将第一接口的参数作为第二接口的入参步骤304与步骤103的执行方式类似,不再赘述。
在一种可选的实施方式用,还可以利用生成的测试用例对各接口进行测试。比如,可以执行该测试用例,进而利用接口对该测试用例进行处理,得到执行结果。
还可以根据执行结果生成测试报告,比如,测试报告中可以包括执行结果,还可以包括预设的预期结果。
本公开提供的测试用例生成方法中,可以在多个初始映射关系中确定出参数传递过程中,出现概率更高的目标映射关系,从而可以得到更加符合实际场景的用于表征参数传输的目标映射关系,进而可以基于该目标映射关系生成符合实际应用场景的测试场景用例。
图8为本公开一示例性实施例示出的测试用例生成装置的结构示意图。
如图8所示,本公开提供的测试用例生成装置800,包括:
获取单元810,用于获取待测试***的录制流量,所述录制流量包括所述待测试***在对外提供服务的过程中执行的接口调用链,所述接口调用链用于表示所述待测试***响应外部触发操作而调用的一系列接口及所述一系列接口之间的依赖关系;
映射单元820,用于根据所述录制流量,确定所述接口调用链中的目标映射关系,所述目标映射关系用于表示第一接口的参数作为第二接口的入参;
用例生成单元830,用于根据所述目标映射关系,生成目标测试用例;其中,所述目标测试用例被执行时将所述第一接口的参数作为所述第二接口的入参。
本公开提供的测试用例生成装置,可以通过录制流量确定出用于表示接口间依赖关系的目标映射关系,进而可以基于这一关系生成目标测试用例,通过该目标测试用例能够对接口间的依赖关系进行测试。
图9为本公开另一示例性实施例示出的测试用例生成装置的结构示意图。
如图9所示,本公开提供的测试用例生成装置900,在上述实施例基础上,一种可选的实施方式中,所述映射单元820,包括:
初始映射模块821,用于在所述录制流量的各所述接口调用链中确定初始映射关系以及初始映射关系的概率;其中,所述初始映射关系用于表征第一接口的参数作为第二接口的入参的关系;所述概率为在相同参数作为同一个接口的入参的多个映射关系中,各初始映射关系出现的概率;
目标映射模块822,用于根据各初始映射关系的概率,确定所述接口调用链中的目标映射关系。
一种可选的实施方式中,所述初始映射模块821具体用于:
根据各初始映射关系确定同类映射关系,所述同类映射关系中的各个初始映射关系中的参数相同、且接收所述参数的第二接口相同;
在所述同类映射关系中,确定各初始映射关系出现的概率。
一种可选的实施方式中,所述初始映射模块821,具体用于:
确定所述同类映射关系中,每个初始映射关系的出现次数;
根据每个初始映射关系的出现次数、所述同类映射关系中包括的初始映射关系数量,确定每个初始映射关系出现的概率。
一种可选的实施方式中,所述初始映射关系中包括以下任一种关系:
第一接口的部分参数作为第二接口的全部入参、第一接口的全部参数作为第二接口的全部入参、第一接口的全部参数作为第二接口的部分入参。
一种可选的实施方式中,所述初始映射模块821,具体用于:
根据所述录制流量中各所述接口调用链确定接口关系拓扑图;其中,所述接口关系拓扑图中包括用于表征接口的节点以及用于表征接口间参数传输方向的边;
根据所述接口关系拓扑图,确定所述初始映射关系。
一种可选的实施方式中,所述初始映射模块821,具体用于:
根据所述录制流量中的每一接口调用链,生成每一接口调用链的接口链路子图;所述接口链路子图中包括用于表征接口的节点以及用于表征接口间参数传输方向的边;
对各个接口链路子图进行合并,生成所述接口关系拓扑图。
一种可选的实施方式中,所述初始映射模块821,具体用于:
在所述接口链路子图中确定一主链路图;
根据其他接口链路子图中包括的节点、所述主链路图中包括的节点,将各个其他接口链路子图合并到所述主链路图中,得到所述接口关系拓扑图。
在一种可选的实施方式中,所述初始映射模块821,具体用于根据每一接口中包括的参数,确定每一接口对应的键值对;所述键值对中的键用于表征参数标识,所述键值对中的值用于表征参数;
根据所述接口关系拓扑图中包括的接口间参数传输方向、各接口的键值对,确定所述初始映射关系。
所述初始映射模块821,具体用于:
根据所述接口关系拓扑图中包括的接口间参数传输方向,确定所述第一接口、所述第二接口;
根据所述第一接口的键值对、所述第二接口的键值对确定相同参数,并根据所述相同参数确定所述第一接口与所述第二接口之间的初始映射关系。
本实施例提供的设备,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
参考图10,其示出了适于用来实现本公开实施例的电子设备1000的结构示意图,该电子设备1000可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑(Portable Android Device,简称PAD)、便携式多媒体播放器(PortableMedia Player,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图10示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,电子设备1000可以包括处理装置(例如中央处理器、图形处理器等)1001,其可以根据存储在只读存储器(Read Only Memory,简称ROM)1002中的程序或者从存储装置1008加载到随机访问存储器(Random Access Memory,简称RAM)1003中的程序而执行各种适当的动作和处理。在RAM 1003中,还存储有电子设备1000操作所需的各种程序和数据。处理装置1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
通常,以下装置可以连接至I/O接口1005:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1006;包括例如液晶显示器(Liquid CrystalDisplay,简称LCD)、扬声器、振动器等的输出装置1007;包括例如磁带、硬盘等的存储装置1008;以及通信装置1009。通信装置1009可以允许电子设备1000与其他设备进行无线或有线通信以交换数据。虽然图10示出了具有各种装置的电子设备1000,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1009从网络上被下载和安装,或者从存储装置1008被安装,或者从ROM1002被安装。在该计算机程序被处理装置1001执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network,简称LAN)或广域网(Wide Area Network,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
第一方面,根据本公开的一个或多个实施例,提供了一种测试用例生成方法,包括:
获取待测试***的录制流量,所述录制流量包括所述待测试***在对外提供服务的过程中执行的接口调用链,所述接口调用链用于表示所述待测试***响应外部触发操作而调用的一系列接口及所述一系列接口之间的依赖关系;
根据所述录制流量,确定所述接口调用链中的目标映射关系,所述目标映射关系用于表示第一接口的参数作为第二接口的入参;
根据所述目标映射关系,生成目标测试用例;其中,所述目标测试用例被执行时将所述第一接口的参数作为所述第二接口的入参。根据本公开的一个或多个实施例,所述根据所述录制流量,确定所述接口调用链中的目标映射关系,包括:在所述录制流量的各所述接口调用链中确定初始映射关系以及初始映射关系的概率;其中,所述初始映射关系用于表征第一接口的参数作为第二接口的入参的关系;所述概率为在相同参数作为同一个接口的入参的多个映射关系中,各初始映射关系出现的概率;
根据各初始映射关系的概率,确定所述接口调用链中的目标映射关系。根据本公开的一个或多个实施例,确定初始映射关系的概率,包括:
根据各初始映射关系确定同类映射关系,所述同类映射关系中的各个初始映射关系中的参数相同、且接收所述参数的第二接口相同;
在所述同类映射关系中,确定各初始映射关系出现的概率。
根据本公开的一个或多个实施例,所述在所述同类映射关系中,确定各初始映射关系出现的概率,包括:
确定所述同类映射关系中,每个初始映射关系的出现次数;
根据每个初始映射关系的出现次数、所述同类映射关系中包括的初始映射关系数量,确定每个初始映射关系出现的概率。
所述初始映射关系中包括以下任一种关系:
第一接口的部分参数作为第二接口的全部入参、第一接口的全部参数作为第二接口的全部入参、第一接口的全部参数作为第二接口的部分入参。
根据本公开的一个或多个实施例,所述在所述录制流量的各所述接口调用链中确定初始映射关系,包括:
根据所述录制流量中各所述接口调用链确定接口关系拓扑图;其中,所述接口关系拓扑图中包括用于表征接口的节点以及用于表征接口间参数传输方向的边;
根据所述接口关系拓扑图,确定所述初始映射关系。
根据本公开的一个或多个实施例,所述根据所述录制流量中各所述接口调用链确定接口关系拓扑图,包括:
根据所述录制流量中的每一接口调用链,生成每一接口调用链的接口链路子图;所述接口链路子图中包括用于表征接口的节点以及用于表征接口间参数传输方向的边;
对各个接口链路子图进行合并,生成所述接口关系拓扑图。
根据本公开的一个或多个实施例,所述对各个接口链路子图进行合并,生成所述接口关系拓扑图,包括:
在所述接口链路子图中确定一主链路图;
根据其他接口链路子图中包括的节点、所述主链路图中包括的节点,将各个其他接口链路子图合并到所述主链路图中,得到所述接口关系拓扑图。根据本公开的一个或多个实施例,所述根据所述接口关系拓扑图,确定所述初始映射关系,包括:
根据每一接口中包括的参数,确定每一接口对应的键值对;所述键值对中的键用于表征参数标识,所述键值对中的值用于表征参数;
根据所述接口关系拓扑图中包括的接口间参数传输方向、各接口的键值对,确定所述初始映射关系。
根据本公开的一个或多个实施例,根据所述接口关系拓扑图中包括的接口间参数传输方向、各接口的键值对,确定所述初始映射关系,包括:
根据所述接口关系拓扑图中包括的接口间参数传输方向,确定所述第一接口、所述第二接口;
根据所述第一接口的键值对、所述第二接口的键值对确定相同参数,并根据所述相同参数确定所述第一接口与所述第二接口之间的初始映射关系。
第二方面,根据本公开的一个或多个实施例,提供了一种测试用例生成装置,包括:
获取单元,用于获取待测试***的录制流量,所述录制流量包括所述待测试***在对外提供服务的过程中执行的接口调用链,所述接口调用链用于表示所述待测试***响应外部触发操作而调用的一系列接口及所述一系列接口之间的依赖关系;
映射单元,用于根据所述录制流量,确定所述接口调用链中的目标映射关系,所述目标映射关系用于表示第一接口的参数作为第二接口的入参;
用例生成单元,用于根据所述目标映射关系,生成目标测试用例;其中,所述目标测试用例被执行时将所述第一接口的参数作为所述第二接口的入参。
根据本公开的一个或多个实施例,所述映射单元,包括:
初始映射模块,用于在所述录制流量的各所述接口调用链中确定初始映射关系以及初始映射关系的概率;其中,所述初始映射关系用于表征第一接口的参数作为第二接口的入参的关系;所述概率为在相同参数作为同一个接口的入参的多个映射关系中,各初始映射关系出现的概率;
目标映射模块,用于根据各初始映射关系的概率,确定所述接口调用链中的目标映射关系。
根据本公开的一个或多个实施例,所述初始映射模块具体用于:
根据各初始映射关系确定同类映射关系,所述同类映射关系中的各个初始映射关系中的参数相同、且接收所述参数的第二接口相同;
在所述同类映射关系中,确定各初始映射关系出现的概率。
根据本公开的一个或多个实施例,所述初始映射模块,具体用于:
确定所述同类映射关系中,每个初始映射关系的出现次数;
根据每个初始映射关系的出现次数、所述同类映射关系中包括的初始映射关系数量,确定每个初始映射关系出现的概率。
根据本公开的一个或多个实施例,所述初始映射关系中包括以下任一种关系:
第一接口的部分参数作为第二接口的全部入参、第一接口的全部参数作为第二接口的全部入参、第一接口的全部参数作为第二接口的部分入参。
根据本公开的一个或多个实施例,所述初始映射模块,具体用于:
根据所述录制流量中各所述接口调用链确定接口关系拓扑图;其中,所述接口关系拓扑图中包括用于表征接口的节点以及用于表征接口间参数传输方向的边;
根据所述接口关系拓扑图,确定所述初始映射关系。
根据本公开的一个或多个实施例,所述初始映射模块,具体用于:
根据所述录制流量中的每一接口调用链,生成每一接口调用链的接口链路子图;所述接口链路子图中包括用于表征接口的节点以及用于表征接口间参数传输方向的边;
对各个接口链路子图进行合并,生成所述接口关系拓扑图。
根据本公开的一个或多个实施例,所述初始映射模块,具体用于:
在所述接口链路子图中确定一主链路图;
根据其他接口链路子图中包括的节点、所述主链路图中包括的节点,将各个其他接口链路子图合并到所述主链路图中,得到所述接口关系拓扑图。
根据本公开的一个或多个实施例,所述初始映射模块,具体用于根据每一接口中包括的参数,确定每一接口对应的键值对;所述键值对中的键用于表征参数标识,所述键值对中的值用于表征参数;
根据所述接口关系拓扑图中包括的接口间参数传输方向、各接口的键值对,确定所述初始映射关系。
根据本公开的一个或多个实施例,所述初始映射模块821,具体用于:
根据所述接口关系拓扑图中包括的接口间参数传输方向,确定所述第一接口、所述第二接口;
根据所述第一接口的键值对、所述第二接口的键值对确定相同参数,并根据所述相同参数确定所述第一接口与所述第二接口之间的初始映射关系。
第三方面,根据本公开的一个或多个实施例,提供了一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的测试用例生成方法。
第四方面,根据本公开的一个或多个实施例,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的测试用例生成方法。
第五方面,本公开实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上第一方面以及第一方面各种可能的设计的所述的测试用例生成方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (14)
1.一种测试用例生成方法,其特征在于,包括:
获取待测试***的录制流量,所述录制流量包括所述待测试***在对外提供服务的过程中执行的接口调用链,所述接口调用链用于表示所述待测试***响应外部触发操作而调用的一系列接口及所述一系列接口之间的依赖关系;
根据所述录制流量,确定所述接口调用链中的目标映射关系,所述目标映射关系用于表示第一接口的参数作为第二接口的入参;
根据所述目标映射关系,生成目标测试用例;其中,所述目标测试用例被执行时将所述第一接口的参数作为所述第二接口的入参。
2.根据权利要求1所述的方法,其特征在于,所述根据所述录制流量,确定所述接口调用链中的目标映射关系,包括:在所述录制流量的各所述接口调用链中确定初始映射关系以及初始映射关系的概率;其中,所述初始映射关系用于表征第一接口的参数作为第二接口的入参的关系;所述概率为在相同参数作为同一个接口的入参的多个映射关系中,各初始映射关系出现的概率;
根据各初始映射关系的概率,确定所述接口调用链中的目标映射关系。
3.根据权利要求2所述的方法,其特征在于,确定初始映射关系的概率,包括:
根据各初始映射关系确定同类映射关系,所述同类映射关系中的各个初始映射关系中的参数相同、且接收所述参数的第二接口相同;
在所述同类映射关系中,确定各初始映射关系出现的概率。
4.根据权利要求3所述的方法,其特征在于,所述在所述同类映射关系中,确定各初始映射关系出现的概率,包括:
确定所述同类映射关系中,每个初始映射关系的出现次数;
根据每个初始映射关系的出现次数、所述同类映射关系中包括的初始映射关系数量,确定每个初始映射关系出现的概率。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述初始映射关系中包括以下任一种关系:
第一接口的部分参数作为第二接口的全部入参、第一接口的全部参数作为第二接口的全部入参、第一接口的全部参数作为第二接口的部分入参。
6.根据权利要求2所述的方法,其特征在于,所述在所述录制流量的各所述接口调用链中确定初始映射关系,包括:
根据所述录制流量中各所述接口调用链确定接口关系拓扑图;其中,所述接口关系拓扑图中包括用于表征接口的节点以及用于表征接口间参数传输方向的边;
根据所述接口关系拓扑图,确定所述初始映射关系。
7.根据权利要求6所述的方法,其特征在于,所述根据所述录制流量中各所述接口调用链确定接口关系拓扑图,包括:
根据所述录制流量中的每一接口调用链,生成每一接口调用链的接口链路子图;所述接口链路子图中包括用于表征接口的节点以及用于表征接口间参数传输方向的边;
对各个接口链路子图进行合并,生成所述接口关系拓扑图。
8.根据权利要求7所述的方法,其特征在于,所述对各个接口链路子图进行合并,生成所述接口关系拓扑图,包括:
在所述接口链路子图中确定一主链路图;
根据其他接口链路子图中包括的节点、所述主链路图中包括的节点,将各个其他接口链路子图合并到所述主链路图中,得到所述接口关系拓扑图。
9.根据权利要求6所述的方法,其特征在于,所述根据所述接口关系拓扑图,确定所述初始映射关系,包括:
根据每一接口中包括的参数,确定每一接口对应的键值对;所述键值对中的键用于表征参数标识,所述键值对中的值用于表征参数;
根据所述接口关系拓扑图中包括的接口间参数传输方向、各接口的键值对,确定所述初始映射关系。
10.根据权利要求9所述的方法,其特征在于,根据所述接口关系拓扑图中包括的接口间参数传输方向、各接口的键值对,确定所述初始映射关系,包括:
根据所述接口关系拓扑图中包括的接口间参数传输方向,确定所述第一接口、所述第二接口;
根据所述第一接口的键值对、所述第二接口的键值对确定相同参数,并根据所述相同参数确定所述第一接口与所述第二接口之间的初始映射关系。
11.一种测试用例生成装置,其特征在于,包括:
获取单元,用于获取待测试***的录制流量,所述录制流量包括所述待测试***在对外提供服务的过程中执行的接口调用链,所述接口调用链用于表示所述待测试***响应外部触发操作而调用的一系列接口及所述一系列接口之间的依赖关系;
映射单元,用于根据所述录制流量,确定所述接口调用链中的目标映射关系,所述目标映射关系用于表示第一接口的参数作为第二接口的入参;
用例生成单元,用于根据所述目标映射关系,生成目标测试用例;其中,所述目标测试用例被执行时将所述第一接口的参数作为所述第二接口的入参。
12.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至10任一项所述的测试用例生成方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至10任一项所述的测试用例生成方法。
14.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-10中任一项所述的测试用例生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111511718.3A CN116225886A (zh) | 2021-12-06 | 2021-12-06 | 测试用例生成方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111511718.3A CN116225886A (zh) | 2021-12-06 | 2021-12-06 | 测试用例生成方法、装置、设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116225886A true CN116225886A (zh) | 2023-06-06 |
Family
ID=86587930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111511718.3A Pending CN116225886A (zh) | 2021-12-06 | 2021-12-06 | 测试用例生成方法、装置、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116225886A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349185A (zh) * | 2023-12-04 | 2024-01-05 | 杭银消费金融股份有限公司 | 一种基于接口强弱依赖分级的***测试方法 |
CN117389908A (zh) * | 2023-12-12 | 2024-01-12 | 深圳市铱云云计算有限公司 | 接口自动化测试用例的依赖关系分析方法、***及介质 |
-
2021
- 2021-12-06 CN CN202111511718.3A patent/CN116225886A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349185A (zh) * | 2023-12-04 | 2024-01-05 | 杭银消费金融股份有限公司 | 一种基于接口强弱依赖分级的***测试方法 |
CN117349185B (zh) * | 2023-12-04 | 2024-02-23 | 杭银消费金融股份有限公司 | 一种基于接口强弱依赖分级的***测试方法 |
CN117389908A (zh) * | 2023-12-12 | 2024-01-12 | 深圳市铱云云计算有限公司 | 接口自动化测试用例的依赖关系分析方法、***及介质 |
CN117389908B (zh) * | 2023-12-12 | 2024-03-26 | 深圳市铱云云计算有限公司 | 接口自动化测试用例的依赖关系分析方法、***及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112328419B (zh) | 远程过程调用接口的测试用例生成方法、装置、存储介质及电子设备 | |
CN111897740B (zh) | 用户界面的测试方法、装置、电子设备及计算机可读介质 | |
CN111679990B (zh) | 测试数据生成方法、装置、可读介质及电子设备 | |
CN110390493B (zh) | 任务管理方法、装置、存储介质及电子设备 | |
CN116225886A (zh) | 测试用例生成方法、装置、设备、存储介质及程序产品 | |
CN113835992B (zh) | 内存泄露的处理方法、装置、电子设备及计算机存储介质 | |
CN111190657B (zh) | 活动配置方法、装置、可读介质及电子设备 | |
CN113392018B (zh) | 流量分发方法、装置、存储介质及电子设备 | |
CN112954056B (zh) | 监控数据处理方法、装置、电子设备及存储介质 | |
CN117493150A (zh) | 代码质量检测方法、装置、设备、存储介质及程序 | |
CN112379967B (zh) | 模拟器检测方法、装置、设备及介质 | |
CN117251355A (zh) | 性能测试方法、装置、设备、计算机可读存储介质及产品 | |
CN116149978A (zh) | 服务接口测试方法、装置、电子设备及存储介质 | |
CN114116480A (zh) | 应用程序测试覆盖率的确定方法、装置、介质及设备 | |
CN114116517B (zh) | 前端项目分析方法、装置、介质及电子设备 | |
CN117687923A (zh) | 测试用例管理方法、装置、可读介质及电子设备 | |
CN115481007A (zh) | 测试方法、装置、存储介质及电子设备 | |
CN114036053A (zh) | 测试方法、装置、可读介质和电子设备 | |
CN118093352A (zh) | 测试用例生成方法、装置、设备、介质及产品 | |
CN118377693A (zh) | 服务测试方法、装置、介质及电子设备 | |
CN118193349A (zh) | 接口测试平台及*** | |
CN116545729A (zh) | 多应用安全测试方法、装置、电子设备和计算机可读介质 | |
CN115981987A (zh) | 测试用例处理方法及设备 | |
CN115640204A (zh) | 页面兼容性测试方法、装置、电子设备及存储介质 | |
CN114090058A (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 |