CN115858389A - 基线用例自动生成方法、装置、存储介质及计算机设备 - Google Patents
基线用例自动生成方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN115858389A CN115858389A CN202211698834.5A CN202211698834A CN115858389A CN 115858389 A CN115858389 A CN 115858389A CN 202211698834 A CN202211698834 A CN 202211698834A CN 115858389 A CN115858389 A CN 115858389A
- Authority
- CN
- China
- Prior art keywords
- request
- json
- character string
- interface
- downstream
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种基线用例自动生成方法、装置、存储介质及计算机设备。该方法包括:在对生产流量进行回放时,若满足触发条件,则获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串;根据json字符串确定的json格式对每次请求的请求入参及下游接口入参进行相同场景的划分;基于被划分为同一场景的请求入参和下游接口入参,分别获取请求对应的被测接口返回数据、本次请求的下游接口对应的下游接口返回数据,并与当前场景下的请求入参和下游接口入参构成一组用例要素;分别根据每一组用例要素生成基线用例。本申请能够基于生产流量的回放快速生成大量场景的基线用例,提高自动化测试效率。
Description
技术领域
本申请涉及软件测试技术领域,尤其涉及一种基线用例自动生成方法、装置、存储介质及计算机设备。
背景技术
软件测试的重要性是毋庸置疑的。但如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公司探索和追求的目标,每个软件产品或软件开发项目都需要有一套优秀的测试方案和测试方法。
为了实现自动化测试,通常需要工程师手动编写大量测试用例,一个场景的用例可能就需要人工编写20-30分钟,而一个接口会存在很多个场景,需要耗费大量的时间精力,难以快速产出足够多的自动化用例。
发明内容
本申请实施例提供了一种基线用例自动生成方法、装置、存储介质及计算机设备,能够基于生产流量的回放快速生成大量场景的基线用例,提高自动化测试效率。
第一方面,本申请提供了一种基线用例自动生成方法,所述方法包括:
在对生产流量进行回放时,
若满足触发条件,则获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串;
根据json字符串确定的json格式对每次请求的请求入参及下游接口入参进行相同场景的划分;
基于被划分为同一场景的请求入参和下游接口入参,分别获取请求对应的被测接口返回数据、本次请求的下游接口对应的下游接口返回数据,并与当前场景下的请求入参和下游接口入参构成一组用例要素;
分别根据每一组用例要素生成基线用例。
在其中一个实施例中,所述根据json字符串确定的json格式对每次请求的请求入参及下游接口入参进行相同场景的划分,包括:
将每次请求的请求入参按照json字符串确定的格式进行分类;
将每次请求调用的所有下游接口的下游接口入参按照json字符串确定的格式进行分类;
分别将每次请求的请求入参与该次调用的与其json格式相同的下游接口入参确定划分为同一场景。
在其中一个实施例中,所述根据json字符串确定的json格式对每次请求的请求入参及下游接口入参进行相同场景的划分,还包括:
若根据json格式分类判断存在多个json格式相同的场景,则分别根据json格式相同的每一个场景的请求入参的json字符串与下游接口入参的json字符串计算特征值;
将json格式相同的各场景的特征值进行比较;
将特征值相同的场景确定为重复场景;
对重复场景进行去重处理。
在其中一个实施例中,所述分别根据json格式相同的每一个场景的请求入参的json字符串与下游接口入参的json字符串计算特征值,包括:
将每一个场景的请求入参的json字符串与下游接口入参的json字符串进行拼接得到拼接字符串;
基于信息摘要算法对拼接字符串进行计算,得到特征值。
在其中一个实施例中,所述分别根据每一组用例要素生成基线用例,包括:
将请求入参确定为所述基线用例的请求入参;
根据下游接口返回数据生成mock数据;
根据被测接口返回数据生成断言;
基于所述基线用例的请求入参、mock数据及断言生成所述基线用例。
在其中一个实施例中,所述若满足触发条件,则获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串,包括:
根据预设执行时间,获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串;
或
响应于用户输入的触发指令,获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串。
在其中一个实施例中,所述方法还包括:
若最新生成的任意一个基线用例与历史生成的基线用例属于重复场景,则采用最新生成的基线用例对重复的基线用例进行覆盖。
第二方面,本申请提供了一种基线用例自动生成装置,包括:
获取模块,用于在对生产流量进行回放时,若满足触发条件,则获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串;
场景划分模块,用于根据json字符串确定的json格式对每次请求的请求入参及下游接口入参进行相同场景的划分;
用例要素分组模块,用于基于被划分为同一场景的请求入参和下游接口入参,分别获取请求对应的被测接口返回数据、本次请求的下游接口对应的下游接口返回数据,并与当前场景下的请求入参和下游接口入参构成一组用例要素;
用例生成模块,用于分别根据每一组用例要素生成基线用例。
第三方面,本申请提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述任一项实施例所述基线用例自动生成方法的步骤。
第四方面,本申请提供了一种计算机设备,包括:一个或多个处理器,以及存储器;
所述存储器中存储有计算机可读指令,所述一个或多个处理器执行时所述计算机可读指令时,执行如上述任一项实施例所述基线用例自动生成方法的步骤。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请提供的基线用例自动生成方法、装置、存储介质及计算机设备,在对生产流量进行回放时,基于流量回放生成基线用例,在满足触发条件时,获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串,相同场景的请求入参与下游接口入参的json格式相同,因此根据json字符串确定的json格式能够对获取的大量请求入参和下游接口入参进行相同场景的快速自动划分,无需人工介入进行场景划分,基于被划分为同一场景的请求入参和下游接口入参,分别获取请求对应的被测接口返回数据和本次请求的下游接口对应的下游接口返回数据,将请求入参、下游接口入参、被测接口返回数据和下游接口返回数据作为一组用例要素,分别根据每一组用例要素生成基线用例,能够自动且快速地生成基线用例,并且由于回放流量均为生产真实的流量,因此场景可靠,且覆盖范围大,及时性强,能够有效提高回归测试效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为一个实施例中,基线用例自动生成方法的流程示意图;
图2为一个实施例中,基线用例自动生成装置的结构框图;
图3为一个实施例中,计算机设备的内部结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,本申请实施例提供了一种基线用例自动生成方法,所述方法包括步骤S101至S104,其中:
步骤S101,在对生产流量进行回放时,若满足触发条件,则获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串。
其中,json(JavaScript Object Notation)是一种轻量级的数据交换格式,在JavaScript语言中,一切皆是对象,所以任何支持的类型都可以通过json来表示,如字符串、数字、对象、数组等。
对于一个具体的被测接口,在请求被测接口时,被测接口会继续请求其他下游接口,并获取必须的数据返回。在生产流量回放时,根据预设的触发条件,触发基线测试用例自动生成。使用生产流量回放能够以生产环境的海量真实场景进行测试,以此作为基线用例的生成基础,能够使生成的基线用例有丰富的真实场景,场景可靠,且覆盖范围大,并在流量回放时进行基线用例的生成,得到的基线用例及时性强。
触发条件可以是预设执行时间定时触发,也可以是根据用户输入的触发指令主动触发。
在其中一个实施例中,所述若满足触发条件,则获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串,包括:
根据预设执行时间,获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串;
或
响应于用户输入的触发指令,获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串。
步骤S102,根据json字符串确定的json格式对每次请求的请求入参及下游接口入参进行相同场景的划分。
每次对被测接口发起的请求入参与被测接口继续请求的下游接口入参应为相同的json格式,因此可以根据json字符串确定的json格式对生产流量回放时获取的大量请求入参和下游接口入参进行相同场景的划分。
在其中一个实施例中,步骤S102包括:
将每次请求的请求入参按照json字符串确定的格式进行分类;
将每次请求调用的所有下游接口的下游接口入参按照json字符串确定的格式进行分类;
分别将每次请求的请求入参与该次调用的与其json格式相同的下游接口入参确定划分为同一场景。
步骤S103,基于被划分为同一场景的请求入参和下游接口入参,分别获取请求对应的被测接口返回数据、本次请求的下游接口对应的下游接口返回数据,并与当前场景下的请求入参和下游接口入参构成一组用例要素。
通过请求入参与下游接口入参划分场景,再根据划分确定的每个场景获取相应的返回数据组成用例要素。
步骤S104,分别根据每一组用例要素生成基线用例。
本申请提供的基线用例自动生成方法,在对生产流量进行回放时,基于流量回放生成基线用例,在满足触发条件时,获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串,相同场景的请求入参与下游接口入参的json格式相同,因此根据json字符串确定的json格式能够对获取的大量请求入参和下游接口入参进行相同场景的快速自动划分,无需人工介入进行场景划分,基于被划分为同一场景的请求入参和下游接口入参,分别获取请求对应的被测接口返回数据和本次请求的下游接口对应的下游接口返回数据,将请求入参、下游接口入参、被测接口返回数据和下游接口返回数据作为一组用例要素,分别根据每一组用例要素生成基线用例,能够自动且快速地生成基线用例,并且由于回放流量均为生产真实的流量,因此场景可靠,且覆盖范围大,及时性强,能够有效提高回归测试效率。
在其中一个实施例中,所述根据json字符串确定的json格式对每次请求的请求入参及下游接口入参进行相同场景的划分,还包括:
若根据json格式分类判断存在多个json格式相同的场景,则分别根据json格式相同的每一个场景的请求入参的json字符串与下游接口入参的json字符串计算特征值;
将json格式相同的各场景的特征值进行比较;
将特征值相同的场景确定为重复场景;
对重复场景进行去重处理。
在生产流量回放中,可能会存在重复场景,若有重复场景,则根据json格式划分场景时,会存在相同json格式的请求入参及下游接口入参,但json格式相同并非必然属于重复场景,因此不能直接基于json格式进行去重。若需要人工介入进行筛查去重,需要耗费大量时间进行数据分析,本实施例中,通过对json格式相同的每一个场景的请求入参的json字符串与下游接口入参的json字符串计算特征值,特征值是基于json字符串计算得到,若json字符串所表示的数据相同,则特征值也会相同,因此可以通过特征值判断场景是否为重复场景,对经确定为重复场景的,则进行去重处理,对于存在重复的场景,仅保留一组即可。其中,特征值的计算可以使用计算结果具有唯一性的方式实现,例如信息摘要算法。
在其中一个实施例中,可以分别对请求入参的json字符串和下游接口入参的json字符串计算特征值进行一一对比。
在其中一个实施例中,所述分别根据json格式相同的每一个场景的请求入参的json字符串与下游接口入参的json字符串计算特征值,包括:
将每一个场景的请求入参的json字符串与下游接口入参的json字符串进行拼接得到拼接字符串;
基于信息摘要算法对拼接字符串进行计算,得到特征值。
本实施例中通过将每一个场景的请求入参json字符串与下游接口入参的json字符串进行拼接得到拼接字符串,再对拼接字符串进行摘要计算得到特征值,能够单个场景的特征值为对象进行比较,减少计算量。
在其中一个实施例中,所述方法还包括:
若最新生成的任意一个基线用例与历史生成的基线用例属于重复场景,则采用最新生成的基线用例对重复的基线用例进行覆盖。
对新生成的基线用例与历史生成的基线用例进行重复场景判断的方式也采用特征值比较的方式实现。由于基线用例的自动化生成可能会定时或手动触发,在每次触发时,可能会产生与历史生成的基线用例场景重复的,因此也需要进行去重,为了保证生成的基线用例的时效性,采用新生成的基线用例对历史生成的重复基线用例进行覆盖。
在其中一个实施例中,所述分别根据每一组用例要素生成基线用例,包括:
将请求入参确定为所述基线用例的请求入参;
根据下游接口返回数据生成mock数据;
根据被测接口返回数据生成断言;
基于所述基线用例的请求入参、mock数据及断言生成所述基线用例。
基于不同的下游返回,能够覆盖到被测接口的不同逻辑,但是下游接口的数据,往往是每个时刻都可能不一样的,这取决于下游系统,为了使生成的基线用例能快速重复地运行,需要将下游返回数据都固定下来,即将下游接口返回数据作为mock数据进行固定,在运行基线用例进行测试时,如果被测接口的代码发生变更,就能通过被测接口返回数据的变化,来快速知道此被测接口受到了影响。断言即为根据被测接口返回数据生成的将测试产生的返回数据属于与被测接口返回数据进行对比的逻辑,若对比一致则表示被测接口正常,若对比不一致则发出提示,以便测试人员快速获知异常的被测接口。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
下面对本申请实施例提供的基线用例自动生成装置进行描述,下文描述的基线用例自动生成装置与上文描述的基线用例自动生成方法可相互对应参照。
如图2所示,本申请实施例提供了一种基线用例自动生成装置200,包括:
获取模块201,用于在对生产流量进行回放时,若满足触发条件,则获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串;
场景划分模块202,用于根据json字符串确定的json格式对每次请求的请求入参及下游接口入参进行相同场景的划分;
用例要素分组模块203,用于基于被划分为同一场景的请求入参和下游接口入参,分别获取请求对应的被测接口返回数据、本次请求的下游接口对应的下游接口返回数据,并与当前场景下的请求入参和下游接口入参构成一组用例要素;
用例生成模块204,用于分别根据每一组用例要素生成基线用例。
在其中一个实施例中,场景划分模块被配置为用于执行以下步骤:
将每次请求的请求入参按照json字符串确定的格式进行分类;
将每次请求调用的所有下游接口的下游接口入参按照json字符串确定的格式进行分类;
分别将每次请求的请求入参与该次调用的与其json格式相同的下游接口入参确定划分为同一场景。
在其中一个实施例中,场景划分模块还被配置为用于执行以下步骤:
若根据json格式分类判断存在多个json格式相同的场景,则分别根据json格式相同的每一个场景的请求入参的json字符串与下游接口入参的json字符串计算特征值;
将json格式相同的各场景的特征值进行比较;
将特征值相同的场景确定为重复场景;
对重复场景进行去重处理。
在其中一个实施例中,场景划分模块还被配置为用于执行以下步骤:
将每一个场景的请求入参的json字符串与下游接口入参的json字符串进行拼接得到拼接字符串;
基于信息摘要算法对拼接字符串进行计算,得到特征值。
在其中一个实施例中,用例生成模块被配置为用于执行以下步骤:
将请求入参确定为所述基线用例的请求入参;
根据下游接口返回数据生成mock数据;
根据被测接口返回数据生成断言;
基于所述基线用例的请求入参、mock数据及断言生成所述基线用例。
在其中一个实施例中,获取模块被配置为用于执行以下步骤:
根据预设执行时间,获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串;
或
响应于用户输入的触发指令,获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串。
在其中一个实施例中,基线用例自动生成装置还包括:
更新模块,用于在最新生成的任意一个基线用例与历史生成的基线用例属于重复场景时,采用最新生成的基线用例对重复的基线用例进行覆盖。
上述基线用例自动生成装置中各个模块的划分仅仅用于举例说明,在其他实施例中,可将基线用例自动生成装置按照需要划分为不同的模块,以完成上述基线用例自动生成装置的全部或部分功能。上述基线用例自动生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,本申请还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:
在对生产流量进行回放时,若满足触发条件,则获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串;
根据json字符串确定的json格式对每次请求的请求入参及下游接口入参进行相同场景的划分;
基于被划分为同一场景的请求入参和下游接口入参,分别获取请求对应的被测接口返回数据、本次请求的下游接口对应的下游接口返回数据,并与当前场景下的请求入参和下游接口入参构成一组用例要素;
分别根据每一组用例要素生成基线用例。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
将每次请求的请求入参按照json字符串确定的格式进行分类;
将每次请求调用的所有下游接口的下游接口入参按照json字符串确定的格式进行分类;
分别将每次请求的请求入参与该次调用的与其json格式相同的下游接口入参确定划分为同一场景。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
若根据json格式分类判断存在多个json格式相同的场景,则分别根据json格式相同的每一个场景的请求入参的json字符串与下游接口入参的json字符串计算特征值;
将json格式相同的各场景的特征值进行比较;
将特征值相同的场景确定为重复场景;
对重复场景进行去重处理。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
将每一个场景的请求入参的json字符串与下游接口入参的json字符串进行拼接得到拼接字符串;
基于信息摘要算法对拼接字符串进行计算,得到特征值。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
将请求入参确定为所述基线用例的请求入参;
根据下游接口返回数据生成mock数据;
根据被测接口返回数据生成断言;
基于所述基线用例的请求入参、mock数据及断言生成所述基线用例。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
根据预设执行时间,获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串;
或
响应于用户输入的触发指令,获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串。
在其中一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:
若最新生成的任意一个基线用例与历史生成的基线用例属于重复场景,则采用最新生成的基线用例对重复的基线用例进行覆盖。
在一个实施例中,本申请还提供了一种计算机设备,所述计算机设备中存储有计算机可读指令,所述一个或多个处理器执行所述计算机可读指令时,执行以下步骤:
在对生产流量进行回放时,若满足触发条件,则获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串;
根据json字符串确定的json格式对每次请求的请求入参及下游接口入参进行相同场景的划分;
基于被划分为同一场景的请求入参和下游接口入参,分别获取请求对应的被测接口返回数据、本次请求的下游接口对应的下游接口返回数据,并与当前场景下的请求入参和下游接口入参构成一组用例要素;
分别根据每一组用例要素生成基线用例。
在其中一个实施例中,处理器执行计算机可读指令时还执行以下步骤:
将每次请求的请求入参按照json字符串确定的格式进行分类;
将每次请求调用的所有下游接口的下游接口入参按照json字符串确定的格式进行分类;
分别将每次请求的请求入参与该次调用的与其json格式相同的下游接口入参确定划分为同一场景。
在其中一个实施例中,处理器执行计算机可读指令时还执行以下步骤:
若根据json格式分类判断存在多个json格式相同的场景,则分别根据json格式相同的每一个场景的请求入参的json字符串与下游接口入参的json字符串计算特征值;
将json格式相同的各场景的特征值进行比较;
将特征值相同的场景确定为重复场景;
对重复场景进行去重处理。
在其中一个实施例中,处理器执行计算机可读指令时还执行以下步骤:
将每一个场景的请求入参的json字符串与下游接口入参的json字符串进行拼接得到拼接字符串;
基于信息摘要算法对拼接字符串进行计算,得到特征值。
在其中一个实施例中,处理器执行计算机可读指令时还执行以下步骤:
将请求入参确定为所述基线用例的请求入参;
根据下游接口返回数据生成mock数据;
根据被测接口返回数据生成断言;
基于所述基线用例的请求入参、mock数据及断言生成所述基线用例。
在其中一个实施例中,处理器执行计算机可读指令时还执行以下步骤:
根据预设执行时间,获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串;
或
响应于用户输入的触发指令,获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串。
在其中一个实施例中,处理器执行计算机可读指令时还执行以下步骤:
若最新生成的任意一个基线用例与历史生成的基线用例属于重复场景,则采用最新生成的基线用例对重复的基线用例进行覆盖。
示意性地,在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基线用例自动生成方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
此外,在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基线用例自动生成方法,其特征在于,所述方法包括:
在对生产流量进行回放时,
若满足触发条件,则获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串;
根据json字符串确定的json格式对每次请求的请求入参及下游接口入参进行相同场景的划分;
基于被划分为同一场景的请求入参和下游接口入参,分别获取请求对应的被测接口返回数据、本次请求的下游接口对应的下游接口返回数据,并与当前场景下的请求入参和下游接口入参构成一组用例要素;
分别根据每一组用例要素生成基线用例。
2.根据权利要求1所述的基线用例自动生成方法,其特征在于,所述根据json字符串确定的json格式对每次请求的请求入参及下游接口入参进行相同场景的划分,包括:
将每次请求的请求入参按照json字符串确定的格式进行分类;
将每次请求调用的所有下游接口的下游接口入参按照json字符串确定的格式进行分类;
分别将每次请求的请求入参与该次调用的与其json格式相同的下游接口入参确定划分为同一场景。
3.根据权利要求1所述的基线用例自动生成方法,其特征在于,所述根据json字符串确定的json格式对每次请求的请求入参及下游接口入参进行相同场景的划分,还包括:
若根据json格式分类判断存在多个json格式相同的场景,则分别根据json格式相同的每一个场景的请求入参的json字符串与下游接口入参的json字符串计算特征值;
将json格式相同的各场景的特征值进行比较;
将特征值相同的场景确定为重复场景;
对重复场景进行去重处理。
4.根据权利要求3所述的基线用例自动生成方法,其特征在于,所述分别根据json格式相同的每一个场景的请求入参的json字符串与下游接口入参的json字符串计算特征值,包括:
将每一个场景的请求入参的json字符串与下游接口入参的json字符串进行拼接得到拼接字符串;
基于信息摘要算法对拼接字符串进行计算,得到特征值。
5.根据权利要求1所述的基线用例自动生成方法,其特征在于,所述分别根据每一组用例要素生成基线用例,包括:
将请求入参确定为所述基线用例的请求入参;
根据下游接口返回数据生成mock数据;
根据被测接口返回数据生成断言;
基于所述基线用例的请求入参、mock数据及断言生成所述基线用例。
6.根据权利要求1所述的基线用例自动生成方法,其特征在于,所述若满足触发条件,则获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串,包括:
根据预设执行时间,获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串;
或
响应于用户输入的触发指令,获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串。
7.根据权利要求6所述的基线用例自动生成方法,其特征在于,所述方法还包括:
若最新生成的任意一个基线用例与历史生成的基线用例属于重复场景,则采用最新生成的基线用例对重复的基线用例进行覆盖。
8.一种基线用例自动生成装置,其特征在于,包括:
获取模块,用于在对生产流量进行回放时,若满足触发条件,则获取被测接口每次请求的请求入参的json字符串及每次请求调用的所有下游接口入参的json字符串;
场景划分模块,用于根据json字符串确定的json格式对每次请求的请求入参及下游接口入参进行相同场景的划分;
用例要素分组模块,用于基于被划分为同一场景的请求入参和下游接口入参,分别获取请求对应的被测接口返回数据、本次请求的下游接口对应的下游接口返回数据,并与当前场景下的请求入参和下游接口入参构成一组用例要素;
用例生成模块,用于分别根据每一组用例要素生成基线用例。
9.一种存储介质,其特征在于:所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述基线用例自动生成方法的步骤。
10.一种计算机设备,其特征在于,包括:一个或多个处理器,以及存储器;
所述存储器中存储有计算机可读指令,所述一个或多个处理器执行时所述计算机可读指令时,执行如权利要求1至7中任一项所述基线用例自动生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211698834.5A CN115858389A (zh) | 2022-12-28 | 2022-12-28 | 基线用例自动生成方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211698834.5A CN115858389A (zh) | 2022-12-28 | 2022-12-28 | 基线用例自动生成方法、装置、存储介质及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115858389A true CN115858389A (zh) | 2023-03-28 |
Family
ID=85655575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211698834.5A Pending CN115858389A (zh) | 2022-12-28 | 2022-12-28 | 基线用例自动生成方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115858389A (zh) |
-
2022
- 2022-12-28 CN CN202211698834.5A patent/CN115858389A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113946986A (zh) | 基于加速退化试验的产品平均失效前时间评估方法和装置 | |
CN114691506A (zh) | 压力测试方法、装置、设备、介质和程序产品 | |
CN110046093A (zh) | 接口测试方法、装置、计算机设备和存储介质 | |
CN114238085A (zh) | 接口测试方法、装置、计算机设备、存储介质 | |
CN115858389A (zh) | 基线用例自动生成方法、装置、存储介质及计算机设备 | |
CN116561003A (zh) | 测试数据生成方法、装置、计算机设备和存储介质 | |
CN114513498B (zh) | 文件传输校验方法、装置、计算机设备和存储介质 | |
CN115757172A (zh) | 测试执行方法、装置、存储介质及计算机设备 | |
CN115834443A (zh) | 流量回放方法、装置、计算机设备和存储介质 | |
CN115730016B (zh) | 数据同步方法、系统、装置、计算机设备和存储介质 | |
CN117453577B (zh) | 基于流量录制生成接口自动化用例的方法、装置和计算机设备 | |
CN117743327A (zh) | 树状数据合并方法、装置、计算机设备及存储介质 | |
CN116842107A (zh) | 实时数据仓库构建方法、装置、设备和存储介质 | |
CN115203173A (zh) | 性能测试方法、装置、电子设备及存储介质 | |
CN116795723A (zh) | 链式单元测试处理方法、装置及计算机设备 | |
CN118093416A (zh) | 分布式集群测试系统、测试方法、设备、介质以及产品 | |
CN117289107A (zh) | 芯片可靠性测试方法、装置、计算机设备和存储介质 | |
CN116820558A (zh) | 应用程序开发方法、装置、设备、存储介质和程序产品 | |
CN117034036A (zh) | 数据处理及时性的检测方法、装置和计算机设备 | |
CN117785939A (zh) | 基于规则引擎的数据分析方法、装置、计算机设备 | |
CN117033168A (zh) | 系统功能验证方法、装置、计算机设备和存储介质 | |
CN117194221A (zh) | 测试方法、装置、计算机设备、存储介质 | |
CN116882008A (zh) | 基于数据驱动的变电站建筑信息模型生成方法和装置 | |
CN117453957A (zh) | 资源处理方法、装置、计算机设备和存储介质 | |
CN116541264A (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 |