分单业务的测试用例生成方法、装置、电子设备及介质转让专利

申请号 : CN202010643379.3

文献号 : CN111797022A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘文锐王玙陈智

申请人 : 北京嘀嘀无限科技发展有限公司

摘要 :

本发明实施例提供的一种分单业务的测试用例生成方法、装置、电子设备及介质,涉及测试技术领域,该方法包括:获取分单业务的日志库;根据预先建立的场景用例模型中至少一个测试场景的场景用例,分别从日志库筛选满足每个测试场景的场景用例的分单数据为每个测试场景的分单数据;根据每个测试场景的分单数据生成每个测试场景对应的测试用例。对分单业务这种复杂度较高的后端数据,采用场景用例模型中测试场景的场景用例确定各测试场景对应的分单数据,继而根据分单数据自动生成各测试场景对应的测试用例,基于该测试用例可以实现对于分单业务数据的自动化测试,极大的提高了测试效率,降低了测试成本。

权利要求 :

1.一种分单业务的测试用例生成方法,其特征在于,所述方法包括:获取分单业务的日志库;

根据预先建立的场景用例模型中至少一个测试场景的场景用例,分别从所述日志库筛选满足每个测试场景的场景用例的分单数据为所述每个测试场景的分单数据;

根据所述每个测试场景的分单数据生成所述每个测试场景对应的测试用例。

2.根据权利要求1所述的方法,其特征在于,所述每个测试场景的场景用例包括:所述每个测试场景的标识,以及所述每个测试场景的标识对应的场景筛选条件;所述根据预先建立的场景用例模型中至少一个测试场景的场景用例,分别从所述日志库筛选满足所述每个测试场景的场景用例的分单数据为所述每个测试场景的分单数据,包括:根据所述场景筛选条件,从所述日志库中筛选满足所述场景筛选条件的分单数据为所述每个测试场景的分单数据。

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:若所述日志库中不存在满足目标测试场景的场景用例的分单数据,根据输入的第一场景用例配置信息,更新所述目标测试场景的标识对应的场景筛选条件。

4.根据权利要求3所述的方法,其特征在于,所述场景筛选条件包括多个子筛选条件,所述根据输入的第一场景用例配置信息,更新所述目标测试场景的标识对应的场景筛选条件之前,所述方法还包括:若所述日志库中不存在满足目标测试场景的场景用例的分单数据,展示所述目标测试场景的筛选结果,所述目标测试场景的筛选结果用于表示所述日志库中满足部分子筛选条件的数据;所述第一场景用例配置信息包括:所述目标测试场景的标识对应的其他子筛选条件的配置数据;

所述根据输入的第一场景用例配置信息,更新所述目标测试场景的标识对应的场景筛选条件,包括:根据所述其他子筛选条件的配置数据,更新所述目标测试场景的标识对应的所述其他子筛选条件。

5.根据权利要求2所述的方法,其特征在于,所述场景筛选条件包括:表征所述每个测试场景的特征字段和所述特征字段对应的特征数据,所述根据所述场景筛选条件,从所述日志库中筛选满足所述场景筛选条件的分单数据为所述每个测试场景的分单数据,包括:根据所述场景筛选条件,从所述日志库中确定包含有所述测试场景的所述特征字段和所述特征数据的分单数据,为所述测试场景对应的分单数据。

6.根据权利要求2所述的方法,其特征在于,表征所述每个测试场景的特征字段包括:表征所述每个测试场景的最少字段集合。

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:对样本分单数据进行参数化解析,得到多个初始特征字段和对应的初始特征数据;

响应输入的匹配操作,根据多个所述初始特征字段和对应的所述初始特征数据,确定各所述测试场景的标识对应的所述场景筛选条件,所述场景筛选条件包括:表征所述每个测试场景的特征字段和所述特征字段对应的特征数据;

根据所述测试场景的标识、所述测试场景的标识对应的所述场景筛选条件,确定所述场景用例模型。

8.根据权利要求7所述的方法,其特征在于,所述样本分单数据为样本全链路分单日志的数据,或者分单服务输出日志中的数据,其中,所述样本全链路分单日志包括:分单服务输入日志、分单服务下游的返回日志、分单服务关键中间日志、所述分单服务输出日志。

9.根据权利要求1所述的方法,其特征在于,所述获取分单业务的日志库,包括:获取预设时间周期内所述分单业务的初始分单数据;

对所述初始分单数据进行参数化解析,得到解析后的分单数据;

将所述解析后的分单数据存储于所述日志库中。

10.根据权利要求1所述的方法,其特征在于,所述根据所述每个测试场景的分单数据生成所述每个测试场景对应的测试用例,包括:根据所述每个测试场景的分单数据的请求信息,对所述每个测试场景的分单数据进行回放,生成所述每个测试场景对应的测试用例。

11.根据权利要求1所述的方法,其特征在于,所述方法还包括:计算所述测试用例的覆盖率与预设覆盖率之间的差值;

根据所述差值,评估所述测试用例的覆盖率。

12.根据权利要求2所述的方法,其特征在于,所述方法还包括:判断所述测试用例的覆盖率是否满足预设条件;

若否,展示不满足各所述测试场景的各所述场景筛选条件的目标分单数据;

响应输入的第二场景用例配置信息,更新所述场景用例模型中的所述测试场景的标识,以及所述测试场景的标识对应的场景筛选条件。

13.一种分单业务的测试用例生成装置,其特征在于,所述装置包括:获取模块,用于获取分单业务的日志库;

筛选模块,用于根据预先建立的场景用例模型中至少一个测试场景的场景用例,分别从所述日志库筛选满足每个测试场景的场景用例的分单数据为所述每个测试场景的分单数据;

生成模块,用于根据所述每个测试场景的分单数据生成所述每个测试场景对应的测试用例。

14.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行如权利要求1至12任一所述的分单业务的测试用例生成方法的步骤。

15.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至12任一所述的分单业务的测试用例生成方法的步骤。

说明书 :

分单业务的测试用例生成方法、装置、电子设备及介质

技术领域

[0001] 本申请涉及测试技术领域,具体而言,涉及一种分单业务的测试用例生成方法、装置、电子设备及介质。

背景技术

[0002] 随着软件规模与复杂度的迅速增长,自动化测试也得到了广泛的应用。自动化测试是指将以人工驱动的测试行为转化为机器执行的一种过程。自动化测试的过程中通常要用到测试用例,因此,对于测试用例的自动化生成也变得越来越重要。
[0003] 相关技术中,对于前端业务,采用有向图的方式,通过顶点表示预期状态,通过边表示实现预期状态要做的动作,实现建立测试模型,以生成测试用例。对于后端业务数据,采用该方式建立测试模型时,容易出现建立的测试模型复杂度较高、难以维护的问题,因此往往通过人工进行测试。
[0004] 但是,相关技术中,通过人工对后端业务数据进行测试时,容易出现测试效率较低,测试成本较高的问题。

发明内容

[0005] 有鉴于此,本申请实施例的目的在于提供一种分单业务的测试用例生成方法、装置、电子设备及介质,以解决相关技术中,通过人工对后端业务数据进行测试时,容易出现测试效率较低,测试成本较高的问题。
[0006] 第一方面,本申请实施例提供了一种分单业务的测试用例生成方法,所述方法包括:
[0007] 获取分单业务的日志库;
[0008] 根据预先建立的场景用例模型中至少一个测试场景的场景用例,分别从所述日志库筛选满足所述每个测试场景的场景用例的分单数据为所述每个测试场景的分单数据;
[0009] 根据所述每个测试场景的分单数据生成所述每个测试场景对应的测试用例。
[0010] 可选的,所述每个测试场景的场景用例包括:所述每个测试场景的标识,以及所述每个测试场景的标识对应的场景筛选条件;所述根据预先建立的场景用例模型中至少一个测试场景的场景用例,分别从所述日志库筛选满足所述每个测试场景的场景用例的分单数据为所述每个测试场景的分单数据,包括:
[0011] 根据所述场景筛选条件,从所述日志库中筛选满足所述场景筛选条件的分单数据为所述每个测试场景的分单数据。
[0012] 可选的,所述方法还包括:
[0013] 若所述日志库中不存在满足目标测试场景的场景用例的分单数据,根据输入的第一场景用例配置信息,更新所述目标测试场景的标识对应的场景筛选条件。
[0014] 可选的,所述场景筛选条件包括多个子筛选条件,所述根据输入的第一场景用例配置信息,更新所述目标测试场景的标识对应的场景筛选条件之前,所述方法还包括:
[0015] 若所述日志库中不存在满足目标测试场景的场景用例的分单数据,展示所述目标测试场景的筛选结果,所述目标测试场景的筛选结果用于表示所述日志库中满足部分子筛选条件的数据;所述第一场景用例配置信息包括:所述目标测试场景的标识对应的其他子筛选条件的配置数据;
[0016] 所述根据输入的第一场景用例配置信息,更新所述目标测试场景的标识对应的场景筛选条件,包括:
[0017] 根据所述其他子筛选条件的配置数据,更新所述目标测试场景的标识对应的所述其他子筛选条件。
[0018] 可选的,所述场景筛选条件包括:表征所述每个测试场景的特征字段和所述特征字段对应的特征数据,所述根据所述场景筛选条件,从所述日志库中筛选满足所述场景筛选条件的分单数据为所述每个测试场景的分单数据,包括:
[0019] 根据所述场景筛选条件,从所述日志库中确定包含有所述测试场景的所述特征字段和所述特征数据的分单数据,为所述测试场景对应的分单数据。
[0020] 可选的,表征所述每个测试场景的特征字段包括:表征所述每个测试场景的最少字段集合。
[0021] 可选的,所述方法还包括:
[0022] 对样本分单数据进行参数化解析,得到多个初始特征字段和对应的初始特征数据;
[0023] 响应输入的匹配操作,根据多个所述初始特征字段和对应的所述初始特征数据,确定各所述测试场景的标识对应的所述场景筛选条件,所述场景筛选条件包括:表征所述每个测试场景的特征字段和所述特征字段对应的特征数据;
[0024] 根据所述测试场景的标识、所述测试场景的标识对应的所述场景筛选条件,确定所述场景用例模型。
[0025] 可选的,所述样本分单数据为样本全链路分单日志的数据,或者分单服务输出日志中的数据,其中,所述样本全链路分单日志包括:分单服务输入日志、分单服务下游的返回日志、分单服务关键中间日志、所述分单服务输出日志。
[0026] 可选的,所述获取分单业务的日志库,包括:
[0027] 获取预设时间周期内所述分单业务的初始分单数据;
[0028] 对所述初始分单数据进行参数化解析,得到解析后的分单数据;
[0029] 将所述解析后的分单数据存储于所述日志库中。
[0030] 可选的,所述根据所述每个测试场景的分单数据生成所述每个测试场景对应的测试用例,包括:
[0031] 根据所述每个测试场景的分单数据的请求信息,对所述每个测试场景的分单数据进行回放,生成所述每个测试场景对应的测试用例。
[0032] 可选的,所述方法还包括:
[0033] 计算所述测试用例的覆盖率与预设覆盖率之间的差值;
[0034] 根据所述差值,评估所述测试用例的覆盖率。
[0035] 可选的,所述方法还包括:
[0036] 判断所述测试用例的覆盖率是否满足预设条件;
[0037] 若否,展示不满足各所述测试场景的各所述场景筛选条件的目标分单数据;
[0038] 响应输入的第二场景用例配置信息,更新所述场景用例模型中的所述测试场景的标识,以及所述测试场景的标识对应的场景筛选条件。
[0039] 第二方面,本申请实施例提供了一种分单业务的测试用例生成装置,所述装置包括:
[0040] 获取模块,用于获取分单业务的日志库;
[0041] 筛选模块,用于根据预先建立的场景用例模型中至少一个测试场景的场景用例,分别从所述日志库筛选满足所述每个测试场景的场景用例的分单数据为所述每个测试场景的分单数据;
[0042] 生成模块,用于根据所述每个测试场景的分单数据生成所述每个测试场景对应的测试用例。
[0043] 可选的,所述每个测试场景的场景用例包括:所述每个测试场景的标识,以及所述每个测试场景的标识对应的场景筛选条件;所述筛选模块,还用于根据所述场景筛选条件,从所述日志库中筛选满足所述场景筛选条件的分单数据为所述每个测试场景的分单数据。
[0044] 可选的,所述装置还包括:
[0045] 第一更新模块,用于若所述日志库中不存在满足目标测试场景的场景用例的分单数据,根据输入的第一场景用例配置信息,更新所述目标测试场景的标识对应的场景筛选条件。
[0046] 可选的,所述场景筛选条件包括多个子筛选条件,所述装置还包括:
[0047] 第一展示模块,用于若所述日志库中不存在满足目标测试场景的场景用例的分单数据,展示所述目标测试场景的筛选结果,所述目标测试场景的筛选结果用于表示所述日志库中满足部分子筛选条件的数据;所述第一场景用例配置信息包括:所述目标测试场景的标识对应的其他子筛选条件的配置数据;
[0048] 所述第一更新模块,用于根据所述其他子筛选条件的配置数据,更新所述目标测试场景的标识对应的所述其他子筛选条件。
[0049] 可选的,所述场景筛选条件包括:表征所述每个测试场景的特征字段和所述特征字段对应的特征数据,所述筛选模块,还用于根据所述场景筛选条件,从所述日志库中确定包含有所述测试场景的所述特征字段和所述特征数据的分单数据,为所述测试场景对应的分单数据。
[0050] 可选的,表征所述每个测试场景的特征字段包括:表征所述每个测试场景的最少字段集合。
[0051] 可选的,所述装置还包括:
[0052] 第一获取模块,用于对样本分单数据进行参数化解析,得到多个初始特征字段和对应的初始特征数据;
[0053] 确定模块,用于响应输入的匹配操作,根据多个所述初始特征字段和对应的所述初始特征数据,确定各所述测试场景的标识对应的所述场景筛选条件,所述场景筛选条件包括:表征所述每个测试场景的特征字段和所述特征字段对应的特征数据;根据所述测试场景的标识、所述测试场景的标识对应的所述场景筛选条件,确定所述场景用例模型。
[0054] 可选的,所述样本分单数据为样本全链路分单日志的数据,或者分单服务输出日志中的数据,其中,所述样本全链路分单日志包括:分单服务输入日志、分单服务下游的返回日志、分单服务关键中间日志、所述分单服务输出日志。
[0055] 可选的,所述获取模块,还用于获取预设时间周期内所述分单业务的初始分单数据;对所述初始分单数据进行参数化解析,得到解析后的分单数据;将所述解析后的分单数据存储于所述日志库中。
[0056] 可选的,所述生成模块,还用于根据所述每个测试场景的分单数据的请求信息,对所述每个测试场景的分单数据进行回放,生成所述每个测试场景对应的测试用例。
[0057] 可选的,所述装置还包括:
[0058] 计算模块,用于计算所述测试用例的覆盖率与预设覆盖率之间的差值;
[0059] 评估模块,用于根据所述差值,评估所述测试用例的覆盖率。
[0060] 可选的,所述装置还包括:
[0061] 判断模块,用于判断所述测试用例的覆盖率是否满足预设条件;
[0062] 第二展示模块,用于若否,展示不满足各所述测试场景的各所述场景筛选条件的目标分单数据;
[0063] 第二更新模块,用于响应输入的第二场景用例配置信息,更新所述场景用例模型中的所述测试场景的标识,以及所述测试场景的标识对应的场景筛选条件。
[0064] 第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行如第一方面任一所述的分单业务的测试用例生成方法的步骤。
[0065] 第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面任一所述的分单业务的测试用例生成方法的步骤。
[0066] 本发明实施例提供的一种分单业务的测试用例生成方法,包括:获取分单业务的日志库;根据预先建立的场景用例模型中至少一个测试场景的场景用例,分别从日志库筛选满足每个测试场景的场景用例的分单数据为每个测试场景的分单数据;根据每个测试场景的分单数据生成每个测试场景对应的测试用例。对分单业务这种复杂度较高的后端数据,采用场景用例模型中测试场景的场景用例确定各测试场景对应的分单数据,继而根据分单数据自动生成各测试场景对应的测试用例,基于该测试用例可以实现对于分单业务数据的自动化测试,极大的提高了测试效率,降低了测试成本。而且,场景用例模型中包括:至少一个测试场景的场景用例,可见该场景用例模型复杂度较低,具有便于维护的优点。

附图说明

[0067] 为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0068] 图1示出了本申请一些实施例提供的分单业务的测试用例生成系统的框图;
[0069] 图2示出了本申请一些实施例提供电子设备的结构示意图;
[0070] 图3示出本申请的一些实施例的一种分单业务的测试用例生成方法的流程示意图;
[0071] 图4示出本申请的一些实施例的一种分单业务的测试用例生成方法的流程示意图;
[0072] 图5示出本申请的一些实施例的一种分单业务的测试用例生成方法的流程示意图;
[0073] 图6示出本申请的一些实施例的一种分单业务的测试用例生成方法的流程示意图;
[0074] 图7示出本申请的一些实施例的一种分单业务的测试用例生成方法的流程示意图;
[0075] 图8示出本申请的一些实施例的一种分单业务的测试用例生成方法的流程示意图;
[0076] 图9示出本申请的一些实施例的一种分单业务的测试用例生成装置的结构示意图;
[0077] 图10示出本申请的一些实施例的一种电子设备的结构示意图。

具体实施方式

[0078] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
[0079] 另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0080] 需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
[0081] 图1示出了本申请一些实施例提供的分单业务的测试用例生成系统的框图。分单业务的测试用例生成系统100可以包括服务器110、网络120、服务请求方终端130、服务提供方终端140和数据库150中的一种或多种,服务器110中可以包括执行指令操作的处理器。
[0082] 在一些实施例中,服务器110可以是单个服务器,也可以是服务器组。服务器组可以是集中式的,也可以是分布式的(例如,服务器110可以是分布式系统)。在一些实施例中,服务器110相对于终端,可以是本地的、也可以是远程的。例如,服务器110可以经由网络120访问服务请求方终端130、服务提供方终端140和数据库150,以访问存储的信息和/或数据。作为另一示例,服务器110可以直接连接到服务请求方终端130、服务提供方终端140和数据库150中至少一个,以访问存储的信息和/或数据。在一些实施例中,服务器110可以在云平台上实现;仅作为示例,云平台可以包括私有云、公有云、混合云、社区云(community cloud)、分布式云、跨云(inter-cloud)、多云(multi-cloud)等,或者它们的任意组合。在一些实施例中,服务器110可以在具有本申请中图2所示的一个或多个组件的电子设备200上实现。
[0083] 在一些实施例中,服务器110可以包括处理器。处理器可以处理与分单业务有关的信息和/或数据,以执行本申请中描述的一个或多个功能。例如,处理器可以基于从服务请求方终端130获得服务请求订单信息,继而为该服务请求订单信息分配该服务请求订单信息对应的服务提供方,并向该服务提供方对应的服务提供方终端140发送服务请求订单信息,以使得该服务提供方终端140对应的服务提供方完成该订单信息的服务请求。在一些实施例中,处理器可以包括一个或多个处理核(例如,单核处理器(S)或多核处理器(S))。仅作为举例,处理器可以包括中央处理单元(Central Processing Unit,CPU)、专用集成电路(Application Specific Integrated Circuit,ASIC)、专用指令集处理器(Application Specific Instruction-set Processor,ASIP)、图形处理单元(Graphics Processing Unit,GPU)、物理处理单元(Physics Processing Unit,PPU)、数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、可编程逻辑器件(Programmable Logic Device,PLD)、控制器、微控制器单元、简化指令集计算机(Reduced Instruction Set Computing,RISC)、或微处理器等,或其任意组合。
[0084] 网络120可以用于信息和/或数据的交换。在一些实施例中,服务器110可以通过网络120向服务请求方终端130、服务提供方终端140、数据库150发送信息和/或数据,服务器110可以通过网络120从服务请求方终端130、服务提供方终端140、数据库150中获取信息和/或数据。在一些实施例中,网络120可以是任何类型的有线或者无线网络,或者是他们的结合。仅作为示例,网络120可以包括有线网络、无线网络、光纤网络、远程通信网络、内联网、因特网、局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、无线局域网(Wireless Local Area Networks,WLAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、公共电话交换网(Public Switched Telephone Network,PSTN)、蓝牙网络、ZigBee网络、或近场通信(Near Field Communication,NFC)网络等,或其任意组合。在一些实施例中,网络120可以包括一个或多个网络接入点。
[0085] 数据库150可以存储数据和/或指令。在一些实施例中,数据库150可以存储从服务请求方终端130和/或服务提供方终端140获得的数据。在一些实施例中,数据库150可以存储在本申请中描述的示例性方法的数据和/或指令。在一些实施例中,数据库150可以包括大容量存储器、可移动存储器、易失性读写存储器、或只读存储器(Read-Only Memory,ROM)等,或其任意组合。作为举例,大容量存储器可以包括磁盘、光盘、固态驱动器等;可移动存储器可包括闪存驱动器、软盘、光盘、存储卡、zip磁盘、磁带等;易失性读写存储器可以包括随机存取存储器(Random Access Memory,RAM);RAM可以包括动态RAM(Dynamic Random Access Memory,DRAM),双倍数据速率同步动态RAM(Double Date-Rate Synchronous RAM,DDR SDRAM);静态RAM(Static Random-Access Memory,SRAM),晶闸管RAM(Thyristor-Based Random Access Memory,T-RAM)和零电容器RAM(Zero-RAM)等。作为举例,ROM可以包括掩模ROM(Mask Read-Only Memory,MROM)、可编程ROM(Programmable Read-Only Memory,PROM)、可擦除可编程ROM(Programmable Erasable Read-only Memory,PEROM)、电可擦除可编程ROM(Electrically Erasable Programmable read only memory,EEPROM)、光盘ROM(CD-ROM)、以及数字通用磁盘ROM等。在一些实施例中,数据库150可以在云平台上实现。仅作为示例,云平台可以包括私有云、公有云、混合云、社区云、分布式云、跨云、多云或者其它类似的等,或其任意组合。
[0086] 在一些实施例中,数据库150可以连接到网络120以与分单业务的测试用例生成系统100中的服务器110、服务请求方终端130、服务提供方终端140、数据库150的一个或者多个组件通信。分单业务的测试用例生成系统100中的一个或多个组件可以经由网络120访问存储在数据库150中的数据或指令。在一些实施例中,数据库150可以直接连接到分单业务的测试用例生成系统100中的一个或多个组件(例如,服务器110、服务请求方终端130、服务提供方终端140等);或者,在一些实施例中,数据库150也可以是服务器110的一部分。
[0087] 图2示出根据本申请的一些实施例提供的可以实现本申请思想的服务器110的电子设备200的示例性硬件和软件组件的示意图。例如,处理器220可以用于电子设备200上,并且用于执行本申请中的功能。
[0088] 电子设备200可以是通用计算机或特殊用途的计算机,两者都可以用于实现本申请的分单业务的测试用例生成方法。本申请尽管仅示出了一个计算机,但是为了方便起见,可以在多个类似平台上以分布式方式实现本申请描述的功能,以均衡处理负载。
[0089] 例如,电子设备200可以包括连接到网络的网络端口210、用于执行程序指令的一个或多个处理器220、通信总线230、和不同形式的存储介质240,例如,磁盘、ROM、或RAM,或其任意组合。示例性地,计算机平台还可以包括存储在ROM、RAM、或其他类型的非暂时性存储介质、或其任意组合中的程序指令。根据这些程序指令可以实现本申请的方法。电子设备200还包括计算机与其他输入输出设备(例如键盘、显示屏)之间的输入/输出(Input/Output,I/O)接口250。
[0090] 为了便于说明,在电子设备200中仅描述了一个处理器。然而,应当注意,本申请中的电子设备200还可以包括多个处理器,因此本申请中描述的一个处理器执行的步骤也可以由多个处理器联合执行或单独执行。例如,若电子设备200的处理器执行步骤A和步骤B,则应该理解,步骤A和步骤B也可以由两个不同的处理器共同执行或者在一个处理器中单独执行。例如,第一处理器执行步骤A,第二处理器执行步骤B,或者第一处理器和第二处理器共同执行步骤A和B。
[0091] 随着软件规模与复杂度的迅速增长,自动化测试也得到了广泛的应用。自动化测试是指将以人工驱动的测试行为转化为机器执行的一种过程。自动化测试的过程中通常要用到测试用例,因此,对于测试用例的自动化生成也变得越来越重要。
[0092] 相关技术中,对于前端业务,采用有向图的方式,通过顶点表示预期状态,通过边表示实现预期状态要做的动作,实现建立测试模型,以生成测试用例。对于后端业务数据,采用该方式建立测试模型时,容易出现建立的测试模型复杂度较高、难以维护的问题,因此往往通过人工进行测试。但是,相关技术中,通过人工对后端数据,即复杂度较高的业务数据进行测试时,容易出现测试效率较低,测试成本较高的问题。
[0093] 本申请实施例提供一种分单业务的测试用例生成方法,对分单业务这种复杂度较高的后端数据,采用场景用例模型中测试场景的场景用例确定各测试场景对应的分单数据,继而根据分单数据自动生成各测试场景对应的测试用例,基于该测试用例可以实现对于分单业务数据的自动化测试,极大的提高了测试效率,降低了测试成本。
[0094] 图3示出本申请的一些实施例的一种分单业务的测试用例生成方法的流程示意图,如图3所示,该方法可以包括:
[0095] S301、获取分单业务的日志库。
[0096] 其中,上述日志库中存储有分单业务所涉及的所有数据,该日志库可以称为全链路日志库。
[0097] 在一些实施方式中,服务器可以将分单业务的线上流量进行引流,获取到线下流量,继而对线下流量进行处理,得到分单业务的日志库。当然,可以通过第三方平台引流线上流量,并对线上流量进行处理,得到分单业务的日志库,服务器还可以从该第三方平台获取分单业务的日志库。服务器还可以采用其他方式获取分单业务的日志库,本申请实施例对此不进行具体限制。
[0098] 需要说明的是,分单业务可以为:获取服务请求方终端的服务请求订单信息,对该服务请求订单信息分配对应的服务提供方终端,以使得服务提供方终端完成该订单信息的服务请求的业务。在实际应用中,分单业务可以为司乘服务对应的分单业务,也可以为代驾服务对应的分单业务、快递服务对应的分单业务等,还可以为其它类型的分单业务,本申请实施例对此不进行具体限制。
[0099] 例如,分单业务可以为司乘服务对应的分单业务,当乘客预乘车时,可以在乘客终端下单,乘客终端可以获取乘车请求订单信息并向服务器发送该乘车请求订单信息,服务器可以获取来自多个乘客终端的乘车请求订单信息,并为乘车请求订单信息分配对应的司机,继而向该司机对应的司机终端发送该乘车请求订单信息,以使该司机终端对应的司机完成该订单信息的乘车请求。
[0100] S302、根据预先建立的场景用例模型中至少一个测试场景的场景用例,分别从日志库筛选满足每个测试场景的场景用例的分单数据为每个测试场景的分单数据。
[0101] 其中,预先建立的场景用例模型中包括:至少一个场景的场景用例。
[0102] 在一种可能的实施方式中,服务器可以根据各测试场景的场景用例,对日志库中的数据进行挑选,当日志库中的数据满足测试场景的场景用例时,则该日志库中的数据可以为该测试场景的分单数据,采用该方式可以确定各测试场景的分单数据。
[0103] 另外,服务器可以依次从日志库中筛选各测试场景的分单数据,也可以同时从日志库中筛选各测试场景的分单数据,还可以采用其他方式筛选各测试场景的分单数据,本申请实施例对此不进行具体限制。
[0104] S303、根据每个测试场景的分单数据生成每个测试场景对应的测试用例。
[0105] 在本申请实施例中,各测试场景的分单数据可以为至少一条,各测试场景对应的测试用例可以为至少一个,一条分单数据可以对应生成一个测试用例。例如,各测试场景的分单数据可以为一条,各测试场景对应的测试用例可以为一个。
[0106] 需要说明的是,服务器可以基于各测试场景对应的测试用例,完成对于各测试场景下分单数据的测试。服务器还可以对各测试场景对应的测试用例进行存储,并向测试设备发送各测试场景对应的测试用例,测试设备可以接收该各测试场景对应的测试用例,并完成对于各测试场景下分单数据的测试。
[0107] 综上所述,本申请实施例提供一种分单业务的测试用例生成方法,包括:获取分单业务的日志库;根据预先建立的场景用例模型中至少一个测试场景的场景用例,分别从日志库筛选满足每个测试场景的场景用例的分单数据为每个测试场景的分单数据;根据每个测试场景的分单数据生成每个测试场景对应的测试用例。对分单业务这种复杂度较高的后端数据,采用场景用例模型中测试场景的场景用例确定各测试场景对应的分单数据,继而根据分单数据自动生成各测试场景对应的测试用例,基于该测试用例可以实现对于分单业务数据的自动化测试,极大的提高了测试效率,降低了测试成本。
[0108] 而且,场景用例模型中包括:至少一个测试场景的场景用例,可见该场景用例模型复杂度较低,具有便于维护的优点。
[0109] 此外,本申请实施例提供的分单业务的测试用例生成方法,是属于MBT(Model based testing,基于模型的测试)方法。
[0110] 可选的,每个测试场景的场景用例包括:每个测试场景的标识,以及每个测试场景的标识对应的场景筛选条件。
[0111] 上述S302的过程,可以包括:根据场景筛选条件,从日志库中筛选满足场景筛选条件的分单数据为每个测试场景的分单数据。
[0112] 在一些实施方式中,服务器可以根据测试场景的标识,确定该测试场景对应的场景筛选条件,继而根据该场景筛选条件从日志库中筛选满足该场景筛选条件的分单数据,则该测试场景的标识、场景筛选条件、分单数据、以及后续根据该分单数据生成的测试用例之间存在对应关系。同理的,采用该方式可以同时或者依次确定各测试场景的分单数据。
[0113] 另外,测试场景的标识可以为下述标识信息中的至少一项:字母标识、数字标识、运算符号标识、标点符号标点、文字标识、图像标识等。应当理解,每个测试场景的标识均不同,各测试场景的标识具有唯一性。
[0114] 综上所述,各测试场景具有对应的标识,可以便于对各测试场景的区分。另外,基于场景筛选条件筛选日志库中的分单数据,可以提高筛选效率。
[0115] 可选的,该分单业务的测试用例生成方法还包括:若日志库中不存在满足目标测试场景的场景用例的分单数据,根据输入的第一场景用例配置信息,更新目标测试场景的标识对应的场景筛选条件。
[0116] 其中,日志库中不存在满足目标测试场景的场景用例的分单数据,是指从日志库中未筛选到目标测试场景的分单数据。该目标测试场景的数量可以为至少一个。
[0117] 另外,服务器可以对目标测试场景对应的原始场景筛选条件直接进行修改,以实现对于场景筛选条件的更新;当然,服务器还可以复制目标测试场景对应的原始场景筛选条件,对复制的原始场景筛选条件进行修改,得到修改后的场景筛选条件,采用修改后的场景筛选条件对原始场景筛选条件进行替换,实现对于场景筛选条件的更新。
[0118] 此外,当目标测试场景的数量为多个时,服务器可以依次对多个目标测试场景对应的场景筛选条件进行更新,也可以同时对多个目标测试场景对应的场景筛选条件进行更新,本申请实施例对此不进行具体限制。
[0119] 综上所述,根据输入的第一场景用例配置信息,更新目标测试场景的标识对应的场景筛选条件,以便基于更新后的测试场景的场景筛选条件确定分单数据,继而生成相应的测试用例,有利于提升测试用例的覆盖度。
[0120] 可选的,场景筛选条件包括多个子筛选条件。
[0121] 图4示出本申请的一些实施例的一种分单业务的测试用例生成方法的流程示意图,如图4所示,在上述根据输入的第一场景用例配置信息,更新目标测试场景的标识对应的场景筛选条件的过程之前,该方法还可以包括:
[0122] S401、若日志库中不存在满足目标测试场景的场景用例的分单数据,展示目标测试场景的筛选结果。
[0123] 其中,目标测试场景的筛选结果可以用于表示日志库中满足部分子筛选条件的数据。
[0124] 在一些实施方式中,场景筛选条件包括多个子筛选条件,服务器根据场景筛选条件,从日志库中筛选满足场景筛选条件的分单数据时,可以将场景筛选条件中各个子筛选条件均满足的分单数据作为测试场景的分单数据。若服务器未从日志库中,筛选到对场景筛选条件中各个子筛选条件均满足的分单数据,则该场景筛选条件为目标场景筛选条件,该场景筛选条件对应的测试场景为目标测试场景。
[0125] 需要说明的是,若服务器可以从日志库中,筛选到满足目标场景筛选条件中的一部分子筛选条件,而不满足目标场景筛选条件中的其他子筛选条件的目标分单数据。服务器所展示的筛选结果,可以包括该目标分单数据,以及目标分单数据中满足子筛选条件的数据、不满足子筛选条件的数据。
[0126] 第一场景用例配置信息包括:目标测试场景的标识对应的其他子筛选条件的配置数据。上述根据输入的第一场景用例配置信息,更新目标测试场景的标识对应的场景筛选条件的过程,可以包括:
[0127] S402、根据其他子筛选条件的配置数据,更新目标测试场景的标识对应的其他子筛选条件。
[0128] 其中,其他子筛选条件的配置数据可以包括:对其他子筛选条件的配置指令,还可以包括其他子筛选条件的配置信息。
[0129] 在一种可能的实施方式中,服务器向用户展示目标测试场景的筛选结果后,用户可以根据目标测试场景的筛选结果,针对其他子筛选条件输入配置操作,服务器可以响应用户的配置操作获取其他子筛选条件的配置数据,继而根据该配置数据,更新目标测试场景的标识对应的其他子筛选条件。其中,更新的方式包括但不限于添加、删除、修改等。
[0130] 相应的,对其他子筛选条件的配置指令可以包括下述指令中的至少一种:添加指令、删除指令、修改指令。添加指令可以用于指示添加新的子筛选条件,删除指令可以用于指示删除至少一个其他子筛选条件,修改指令可以用于指示对其他子筛选条件的内容进行修改。其他子筛选条件的配置信息可以包括下述信息中的至少一项:待添加的新的子筛选条件、修改后的子筛选条件。当然,终端还可以其他方式的配置数据,对目标测试场景的标识对应的其他子筛选条件进行更新,本申请实施例对此不进行具体限制。
[0131] 另外,服务器还可以根据其他子筛选条件的配置数据,和目标测试场景的目标场景筛选条件,添加新的测试场景的标识和场景筛选条件,该新的场景筛选条件为依据配置数据对目标场景筛选条件修改后的条件。另外,还可以保留目标测试场景原有的目标场景筛选条件。
[0132] 综上所述,根据其他子筛选条件的配置数据,更新目标测试场景的标识对应的其他子筛选条件,可以提高更新效率。
[0133] 可选的,场景筛选条件包括:表征每个测试场景的特征字段和特征字段对应的特征数据。上述根据场景筛选条件,从日志库中筛选满足场景筛选条件的分单数据为每个测试场景的分单数据的过程,可以包括:
[0134] 根据场景筛选条件,从日志库中确定包含有测试场景的特征字段和特征数据的分单数据,为测试场景对应的分单数据。
[0135] 其中,特征字段和特征数据是一一对应的,即,一个特征字段可以对应一个特征数据,特征字段的数量和特征数据的数量均可以为至少一个。
[0136] 在一些实施方式中,服务器根据测试场景的至少一个特征字段、对应的至少一个特征数据,从日志库中筛选包含每个特征字段、每个特征数据的分单数据,为该测试场景的分单数据。采用该方式,根据其他测试场景的场景筛选条件筛选,可以得到每个测试场景的分单数据。
[0137] 例如,测试场景的场景筛选条件可以为:fee:991,code:99。若日志库中包括第一数据和第二数据,第二数据的特征字段和特征字段可以包括:traceid:1111,spanid:777,code:88,UtcUffset:-180。第二数据的特征字段和特征字段可以包括:traceid:2222,spanid:333,code:99,UtcUffset:-180,fee:991。服务器可以确定第二数据为分单数据。
[0138] 综上所述,根据场景筛选条件中的特征字段和特征数据,确定测试场景对应的分单数据,可以使得分单数据的确定更加快速和准确。
[0139] 可选的,表征每个测试场景的特征字段包括:表征每个测试场景的最少字段集合。
[0140] 其中,各特征字段均有对应的特征数据,当每个测试场景的特征字段为表征每个测试场景的最少字段集合时,相应的,当每个测试场景的特征数据为表征每个测试场景的最少数据集合,即每个测试场景的场景筛选条件包括:表征每个测试场景的最少映射关系几何,最少映射关系的特征字段和特征数据之间的映射关系。
[0141] 综上所述,表征每个测试场景的特征字段包括:表征每个测试场景的最少字段集合,可以用最少的映射关系表示各测试场景的场景筛选条件,既可以表征测试场景又可以减少筛选条件,可以实现对测试场景的分单数据的快速筛选。
[0142] 可选的,图5示出本申请的一些实施例的一种分单业务的测试用例生成方法的流程示意图,如图5所示,该方法还可以包括:
[0143] S501、对样本分单数据进行参数化解析,得到多个初始特征字段和对应的初始特征数据。
[0144] 其中,样本分单数据可以为从分单业务的历史分单数据中所获取的数据。一个样本分单数据可以对应至少一个测试场景,该一个样本分单数据也可以称为一条样本流量,当测试场景为多个时,可以对应具有至少一个样本分单数据。
[0145] 需要说明的是,服务器可以采用预设规则对每个样本分单数据进行解析,得到每个样本分单数据的多个初始特征字段和对应的初始特征数据。例如,服务器可以采用预设分隔符对每个样本分单数据进行解析。另外,服务器可以依次对各样本分单数据进行解析,也可以同时对各样本分单数据进行解析,本申请实施例对此不进行具体限制。
[0146] 例如,一个样本分单数据可以为:
[0147] traceid=2222||spanid=333||Code=99||Content={“UtcUffset”:“-180”,“lat”:-23.59118.25,“lng”:-46.4868388,“fee”:“991”}
[0148] 服务器进行参数化解析后,得到多个初始特征字段和对应的初始特征数据如表1所示。
[0149] 表1
[0150]
[0151] S502、响应输入的匹配操作,根据多个初始特征字段和对应的初始特征数据,确定各测试场景的标识对应的场景筛选条件。
[0152] 其中,场景筛选条件包括:表征每个测试场景的特征字段和特征字段对应的特征数据。匹配操作可以为通过鼠标输入的操作,也可以为触控操作,还可以为采用其他方式输入的操作,本申请实施例对此不进行具体限制。
[0153] 在一种可能的实施方式中,服务器可以向用户展示多个初始特征字段和对应的初始特征数据,用户可以输入匹配操作,服务器可以根据该匹配操作确定各测试场景的标识,以及各测试场景的标识所对应的表征可以测试场景的特征字段和特征数据,继而可以确定各测试场景的标识对应的场景筛选条件。
[0154] 例如,服务器还可以向用户展示多个测试场景的标识,用户输入的匹配操作为标记操作,该标记操作用于对同一测试场景的标识、对应的特征字段和特征数据,采用同一标记符号进行标记,继而服务器可以确定各测试场景对应的标识和场景筛选条件。
[0155] S503、根据测试场景的标识、测试场景的标识对应的场景筛选条件,确定场景用例模型。
[0156] 其中,测试用例模板中可以包括至少一个测试场景的标识,以及各测试场景的标识对应的一个场景筛选条件,各场景筛选条件中可以包括至少一个子筛选条件。
[0157] 需要说明的是,服务器可以以预设格式对场景用例模型进行保存,例如,可以采用表格的方式对场景模板进行保存,也可以采用文档的方式对场景用例模型进行保存,还可以采用其他方式对场景用例模型进行保存,本申请实施例对此不进行具体限制。
[0158] 例如,如表2所示,场景用例模型的格式为表格形式,场景用例模型中包括:测试场景的标识:aaa场景,以及该测试场景对应的场景筛选条件:fee:991,code:99;测试场景的标识:bbb场景,以及该测试场景对应的场景筛选条件:UtcUffset:-180,lat:-23.59118.25。
[0159] 表2
[0160]测试场景的标识 场景筛选条件
aaa场景 {fee:991,code:99}
bbb场景 {UtcUffset:-180,lat:-23.59118.25}
[0161] 综上所述,本申请实施例中,对样本分单数据进行参数化解析,确定多个初始特征字段和对应的初始特征数据,继而基于匹配操作和多个初始特征字段和对应的初始特征数据确定场景筛选条件,最终确定场景用例模型。实现了对分单业务的高度抽象,该场景用例模型的生成过程具有快速、高效、准确、简单方便的特征点,而且,该场景用例模型易于维护和管理。
[0162] 可选的,样本分单数据为样本全链路分单日志的数据,或者分单服务输出日志中的数据,其中,样本全链路分单日志包括:分单服务输入日志、分单服务下游的返回日志、分单服务关键中间日志、分单服务输出日志。
[0163] 在本申请实施例中,分单服务输入日志中的数据远大于分单服务输出日志中的数据,为了快速确定能够表征测试场景的最小字段集合,可以从分单服务输出日志确定样本分单数据,有助于快速确定场景筛选条件、实现快速确定场景用例模型。
[0164] 可选的,图6示出本申请的一些实施例的一种分单业务的测试用例生成方法的流程示意图,如图6所示,上述S301的过程,可以包括:
[0165] S601、获取预设时间周期内分单业务的初始分单数据。
[0166] 其中,预设时间周期可以为高峰时期,也可以为正常时期,预设时间周期可以根据实际需求进行设定,本申请实施例对此不进行具体限制。例如,高峰期可以为假期、上下班时间段等,即分单业务的初始分单数据可以为假期的分单数据、也可以为上下班时间段的分单数据。
[0167] 在一种可能的实施方式中,服务器可以对分单业务中,预设时间周期内的线上流量进行引流,将预设时间周期内的线上流量引流至线下,继而获取了分单业务的初始分数据。
[0168] S602、对初始分单数据进行参数化解析,得到解析后的分单数据。
[0169] 其中,解析后的分单数据可以包括特征字段、特征字段对应的特征数据。服务器对初始分单数据进行参数化解析的方式,与对样本分单数据进行参数化解析的方式可以相同。
[0170] 在一些实施方式中,服务器可以采用预设规则对初始分单数据进行解析,得到初始分单数据的特征字段和对应的特征数据。例如,服务器可以采用预设符号对每个样本分单数据进行解析,该预设符号可以为初始分单数据中的符号。此外,初始分单数据为多条时,服务器可以依次对各初始分单数据进行解析,也可以同时对各初始分单数据进行解析,本申请实施例对此不进行具体限制。
[0171] 另外,初始分单数据的数量可以为多条,每条初始分单数据具有对应的解析后的分单数据,即每条初始分单数据具有对应的特征字段和特征数据,特征字段的数量可以为多个,相应的,特征数据的数量也可以为多个。
[0172] S603、将解析后的分单数据存储于日志库中。
[0173] 需要说明的是,初始分单数据可以为样本全链路分单日志中的数据,所存储的日志库可以称为全链路日志库。另外,解析后的分单数据可以为预设格式存储在全链路日志库中,以根据便场景用例模型对日志库中解析后的分单数据进行自动挑选。
[0174] 例如,可以以表格的方式存储于全链路日志库中,也可以以文档的方式存储于全链路日志库中,还可以为以其他格式存储于全链路日志库中,本申请实施例对此不进行具体限制。
[0175] 综上所述,获取预设时间周期内分单业务的初始分单数据;对初始分单数据进行参数化解析,得到解析后的分单数据;将解析后的分单数据存储于日志库中。可以便于后续通过场景用例模型对分单数据的快速筛选。
[0176] 可选的,上述S303的过程,可以包括:
[0177] 根据每个测试场景的分单数据的请求信息,对每个测试场景的分单数据进行回放,生成每个测试场景对应的测试用例。
[0178] 其中,测试场景的分单数据可以为traceid串联的全链路日志流量对应的分单数据,即对traceid串联的全链路日志流量解析后的数据。
[0179] 在本本申请实施例中,服务器在确定每个测试场景的分单数据,可以确定各分单数据的请求信息,根据请求信息对每个测试场景的分单数据进行回放,便可以生成每个测试场景对应的测试用例,极大的降低了生成测试用例的复杂度,提高了生成测试用例的效率。
[0180] 可选的,图7示出本申请的一些实施例的一种分单业务的测试用例生成方法的流程示意图,如图7所示,该方法还可以包括:
[0181] S701、计算测试用例的覆盖率与预设覆盖率之间的差值。
[0182] 其中,预设覆盖率可以为预设数值,例如,该预设数值可以为百分之百。
[0183] 需要说明的是,服务器可以根据解析后的分单数据、以及所筛选过的分单数据,计算测试用例的覆盖率;继而将预设覆盖率减去测试用例的覆盖率,得到差值。
[0184] S702、根据差值,评估测试用例的覆盖率。
[0185] 其中,服务器可以根据差值和预设阈值,评估测试用例的覆盖率,也可以根据差值和预设映射关系,评估测试用例的覆盖率。
[0186] 在一种可能的实施方式中,服务器可以根据差值和预设阈值,评估测试用例的覆盖率时,服务器可以判断差值是否大于预设阈值,若差值大于预设阈值,则测试用例的覆盖率较低,若差值小于或者等于预设阈值,则测试用例的覆盖率较高。
[0187] 在另一种可能的实施方式中,服务器根据差值和预设映射关系,评估测试用例的覆盖率时,预设映射关系为预设范围与评价等级之间的映射关系。服务器可以确定差值所落入的预设范围,继而可以根据预设映射关系确定相应的评价等级。需要说明的是,评价等价越高,则表示测试用例的覆盖率越高;评价等价越低,则表示测试用例的覆盖率越低。
[0188] 可选的,图8示出本申请的一些实施例的一种分单业务的测试用例生成方法的流程示意图,如图8所示,该方法还可以包括:
[0189] S801、判断测试用例的覆盖率是否满足预设条件。
[0190] S802、若否,展示不满足各测试场景的各场景筛选条件的目标分单数据。
[0191] 在本申请实施例中,服务器可以判断测试用例的覆盖率,是否大于预设覆盖率,若测试用例的覆盖率不大于预设覆盖率,则确定测试用例的覆盖率满足预设条件。测试场景的场景筛选条件包括多个子筛选条件,若分单数据对于各个测试场景的各个子筛选条件均不满足,则可以确定该分单数据为目标分单数据,继而可以向用户展示目标分单数据。
[0192] 例如,分单数据可以包括第一分单数据、第二分单数据、第三分单数据,测试场景可以包括第一测试场景和第二测试场景,第一测试场景的子筛选条件可以包括:a、b、c;第一测试场景的子筛选条件可以包括:x、y、z。第一分单数据仅满足子筛选a,第二分单数据满足均子筛选条件x、y、z,第三分单数据对于a、b、c、x、y、z均不满足,则可以确定第三分单数据为目标分单数据。
[0193] S803、响应输入的第二场景用例配置信息,更新场景用例模型中的测试场景的标识,以及测试场景的标识对应的场景筛选条件。
[0194] 在一些实施实施方式中,服务器向用户展示目标分单数据后,用户根据目标分单数据可以进行配置操作,服务器可以响应用户的配置操作获取第二场景用例配置信息。第二场景用例配置信息用于指示在场景用例模型中添加新的测试场景的标识,以及对应的场景筛选条件,实现对于场景用例模型的更新。
[0195] 在本申请实施例中,S801至S803的实现过程,可以为基于优化抓手的实现过程,该优化抓手为预设程序代码。
[0196] 需要说明的是,添加的测试场景的标识,以及对应的场景筛选条件,可以实现对目标分单数据、以及与目标分单数据同类的分单数据的筛选和测试,实现了对场景模板的完善,使得场景用例模型的覆盖率更高。
[0197] 下述对用以执行本申请所提供的分单业务的测试用例生成方法的分单业务的测试用例生成装置、电子设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述分单业务的测试用例生成方法的相关内容,下述不再赘述。
[0198] 图9示出本申请的一些实施例的一种分单业务的测试用例生成装置的结构示意图,如图9所示,该装置可以包括:
[0199] 获取模块901,用于获取分单业务的日志库;
[0200] 筛选模块902,用于根据预先建立的场景用例模型中至少一个测试场景的场景用例,分别从日志库筛选满足每个测试场景的场景用例的分单数据为每个测试场景的分单数据;
[0201] 生成模块903,用于根据每个测试场景的分单数据生成每个测试场景对应的测试用例。
[0202] 可选的,每个测试场景的场景用例包括:每个测试场景的标识,以及每个测试场景的标识对应的场景筛选条件;筛选模块902,还用于根据场景筛选条件,从日志库中筛选满足场景筛选条件的分单数据为每个测试场景的分单数据。
[0203] 可选的,装置还包括:
[0204] 第一更新模块,用于若日志库中不存在满足目标测试场景的场景用例的分单数据,根据输入的第一场景用例配置信息,更新目标测试场景的标识对应的场景筛选条件。
[0205] 可选的,场景筛选条件包括多个子筛选条件,装置还包括:
[0206] 第一展示模块,用于若日志库中不存在满足目标测试场景的场景用例的分单数据,展示目标测试场景的筛选结果,目标测试场景的筛选结果用于表示日志库中满足部分子筛选条件的数据;第一场景用例配置信息包括:目标测试场景的标识对应的其他子筛选条件的配置数据;
[0207] 第一更新模块,用于根据其他子筛选条件的配置数据,更新目标测试场景的标识对应的其他子筛选条件。
[0208] 可选的,场景筛选条件包括:表征每个测试场景的特征字段和特征字段对应的特征数据,筛选模块902,还用于根据场景筛选条件,从日志库中确定包含有测试场景的特征字段和特征数据的分单数据,为测试场景对应的分单数据。
[0209] 可选的,表征每个测试场景的特征字段包括:表征每个测试场景的最少字段集合。
[0210] 可选的,装置还包括:
[0211] 第一获取模块,用于对样本分单数据进行参数化解析,得到多个初始特征字段和对应的初始特征数据;
[0212] 确定模块,用于响应输入的匹配操作,根据多个初始特征字段和对应的初始特征数据,确定各测试场景的标识对应的场景筛选条件,场景筛选条件包括:表征每个测试场景的特征字段和特征字段对应的特征数据;根据测试场景的标识、测试场景的标识对应的场景筛选条件,确定场景用例模型。
[0213] 可选的,样本分单数据为样本全链路分单日志的数据,或者分单服务输出日志中的数据,其中,样本全链路分单日志包括:分单服务输入日志、分单服务下游的返回日志、分单服务关键中间日志、分单服务输出日志。
[0214] 可选的,获取模块901,还用于获取预设时间周期内分单业务的初始分单数据;对初始分单数据进行参数化解析,得到解析后的分单数据;将解析后的分单数据存储于日志库中。
[0215] 可选的,生成模块903,还用于根据每个测试场景的分单数据的请求信息,对每个测试场景的分单数据进行回放,生成每个测试场景对应的测试用例。
[0216] 可选的,装置还包括:
[0217] 计算模块,用于计算测试用例的覆盖率与预设覆盖率之间的差值;
[0218] 评估模块,用于根据差值,评估测试用例的覆盖率。
[0219] 可选的,装置还包括:
[0220] 判断模块,用于判断测试用例的覆盖率是否满足预设条件;
[0221] 第二展示模块,用于若否,展示不满足各测试场景的各场景筛选条件的目标分单数据;
[0222] 第二更新模块,用于响应输入的第二场景用例配置信息,更新场景用例模型中的测试场景的标识,以及测试场景的标识对应的场景筛选条件。
[0223] 上述模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合线缆等,或其任意组合。无线连接可以包括通过LAN、WAN、蓝牙、ZigBee、或NFC等形式的连接,或其任意组合。两个或更多个模块可以组合为单个模块,并且任何一个模块可以分成两个或更多个单元。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0224] 所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0225] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0226] 需要说明的是,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(Digital SingnalProcessor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(System-on-a-chip,简称SOC)的形式实现。
[0227] 图10是示出本申请的一些实施例的电子设备的结构示意图,如图10所示,该电子设备包括:处理器1001和存储器1002,其中:
[0228] 存储器1002用于存储程序,处理器1001调用存储器1002存储的程序,以执行上述图3至图8任一所述的方法实施例。具体实现方式和技术效果类似,这里不再赘述。
[0229] 可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述图3至图8任一所述的方法实施例。
[0230] 以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。