本公开涉及数据处理,尤其涉及一种测试数据的生成方法及装置、电子设备和存储介质。
背景技术:
1、在软件测试中,测试数据是测试的基础,对测试结果的准确性和全面性有着至关重要的影响。测试人员需要根据需求场景来进行测试数据的设计和生成,可以利用测试数据生成工具来快速生成大量的测试数据。
2、在测试过程中,往往会需要构造大量的测试数据,且这些测试数据需要满足各种不同的类型,各种不同的参数以及各种场景。相关的测试数据生成技术,通过测试参数来表征生成测试数据的条件,预设数据库中已经存储了一部分所需要的测试数据,根据设置的参数到数据库中取出对应条件下的测试数据。
3、但是,根据设置的参数进行测试数据的构造生成的方法,不能支持多个参数多种类型的数据的随机分布,不能模拟生产环境的数据情况。
技术实现思路
1、本公开提供了一种测试数据的生成方法、装置、电子设备和存储介质。其主要目的在于解决根据设置的参数进行测试数据的构造生成的方法,不能支持多个参数多种类型的数据的随机分布,不能模拟生产环境的数据情况的问题。
2、根据本公开的第一方面,提供了一种测试数据的生成方法,其中,包括:
3、响应于测试数据的生成指令,基于所述生成指令中的规则配置文件获取测试数据生成规则,所述测试数据生成规则包括测试数据的目标数量及参数权重列表,所述参数权重列表包括不同数据类别的关键词参数列表及对应的权重列表;
4、基于所述测试数据生成规则,分别根据不同数据类别的关键词参数列表及对应的权重列表生成对应的关键词组;
5、将所述关键词组输入训练好的预设语言模型,得到所述关键词组对应的目标测试数据。
6、可选地,在所述响应于测试数据的生成指令,基于所述生成指令中的规则配置文件获取测试数据生成规则之前,所述方法包括:
7、响应于对所述规则配置文件的配置指令,获取所述配置指令所携带的规则配置文件;
8、基于所述规则配置文件,按照预设测试数据生成规则的配置模板编写测试数据生成规则;
9、对所述测试数据生成规则进行校验;
10、在确定所述测试数据生成规则通过校验后,将所述测试数据生成规则写入预设数据库。
11、可选地,在所述基于所述测试数据生成规则,分别根据不同数据类别的关键词参数列表及对应的权重列表生成对应的关键词组之前,所述方法还包括:
12、获取所述参数权重列表,其中,一个关键词参数对应一个权重值及一个第一下标,所述第一下标与所述关键词参数存在映射关系;所述第一下标为所述参数权重列表中存储所述关键词参数的存储地址对应的下标;
13、对所述权重列表中的权重值进行初始化,得到对应的前缀和列表,所述前缀和列表为根据所述权重值加和的大小有序递增列表,用于表示权重值的边界,其中,所述第一下标与所述第二下标对应;所述前缀和列表中的每个边界值分别对应一个第三下标,所述第三下标与所述第二下标对应;
14、基于所述第二下标建立所述第一下标与所述第三下标之间的映射关系。
15、可选地,所述基于所述测试数据生成规则,分别根据不同数据类别的关键词参数列表及对应的权重列表生成对应的关键词组包括:
16、调用权重随机选择算法,根据所述权重值生成随机数字,其中,所述随机数字为1至所述前缀和列表中边界值的最大值范围内的任一个数字;
17、调用二分查找算法,分别查找所述随机数字对应于所述前缀和列表的目标边界值;
18、分别获取所述目标边界值对应的第三下标;
19、根据所述第一下标与所述第三下标之间的映射关系,分别查找所述第三下标对应的第一下标;
20、根据所述第一下标,从所述关键词参数列表中查找对应的关键词参数;
21、根据所述查找到的关键词参数组合成所述关键词组。
22、可选地,所述根据所述第一下标,从所述关键词参数列表中查找对应的关键词参数包括:
23、当检测到所述关键词参数的数量达到目标数量时,停止调用随机选择算法生成所述随机数字。
24、可选地,所述预设语言模型的训练方法包括:
25、从预设数据库获取不同数据类别的训练用文本数据;
26、根据预设过滤规则对所述训练用文本数据进行过滤,得到目标数据类别的训练用关键词组,所述预设过滤规则包括基于正则表达式规则去除预设数据类别的文本数据;
27、将所述目标数据类别的训练用关键词组输入预设语言模型进行训练,得到训练好的预设语言模型。
28、可选地,在将所述关键词组输入预设语言模型,得到所述关键词组对应的目标测试数据之后,所述方法包括:
29、读取所述测试数据生成规则中的定时发送信息,判断是否定时发送所述目标测试数据;
30、在确定定时发送所述目标测试数据的情况下,当满足定时发送条件时,根据所述关键词参数的数据类别将所述目标测试数据分别发送至对应数据类别的目标数据库;
31、若监测到所述目标测试数据的发送数量与所述目标数据库的接收数量一致,则完成所述目标测试数据的传输;
32、若监测到所述目标数据库接收到的目标测试数据的数量与目标数量不一致,则确定所述目标数据传输异常。
33、根据本公开的第二方面,提供了一种测试数据的生成装置,包括:
34、获取单元,用于响应于测试数据的生成指令,基于所述生成指令中的规则配置文件获取测试数据生成规则,所述测试数据生成规则包括测试数据的目标数量及参数权重列表,所述参数权重列表包括不同数据类别的关键词参数列表及对应的权重列表;
35、生成单元,用于基于所述测试数据生成规则,分别根据不同数据类别的关键词参数列表及对应的权重列表生成对应的关键词组;
36、输入单元,用于将所述关键词组输入训练好的预设语言模型,得到所述关键词组对应的目标测试数据。
37、可选地,所述装置还包括编写单元,所述编写单元包括:
38、第一获取模块,用于在所述响应于测试数据的生成指令,基于所述生成指令中的规则配置文件获取测试数据生成规则之前,响应于对所述规则配置文件的配置指令,获取所述配置指令所携带的规则配置文件;
39、编写模块,用于基于所述规则配置文件,按照预设测试数据生成规则的配置模板编写测试数据生成规则;
40、校验模块,用于对所述测试数据生成规则进行校验;
41、写入模块,用于在确定所述测试数据生成规则通过校验后,将所述测试数据生成规则写入预设数据库。
42、可选地,所述装置还包括建立单元,所述建立单元包括:
43、第二获取模块,用于在所述基于所述测试数据生成规则,分别根据不同数据类别的关键词参数列表及对应的权重列表生成对应的关键词组之前,获取所述参数权重列表,其中,一个关键词参数对应一个权重值及一个第一下标,所述第一下标与所述关键词参数存在映射关系;所述第一下标为所述参数权重列表中存储所述关键词参数的存储地址对应的下标;
44、初始化模块,用于对所述权重列表中的权重值进行初始化,得到对应的前缀和列表,所述前缀和列表为根据所述权重值加和的大小有序递增列表,用于表示权重值的边界,其中,所述第一下标与所述第二下标对应;所述前缀和列表中的每个边界值分别对应一个第三下标,所述第三下标与所述第二下标对应;
45、建立模块,用于基于所述第二下标建立所述第一下标与所述第三下标之间的映射关系。
46、可选地,所述生成单元包括:
47、生成模块,用于调用权重随机选择算法,根据所述权重值生成随机数字,其中,所述随机数字为1至所述前缀和列表中边界值的最大值范围内的任一个数字;
48、第一查找模块,用于调用二分查找算法,分别查找所述随机数字对应于所述前缀和列表的目标边界值;
49、第三获取模块,用于分别获取所述目标边界值对应的第三下标;
50、第二查找模块,用于根据所述第一下标与所述第三下标之间的映射关系,分别查找所述第三下标对应的第一下标;
51、第三查找模块,用于根据所述第一下标,从所述关键词参数列表中查找对应的关键词参数;
52、组合模块,用于根据所述查找到的关键词参数组合成所述关键词组。
53、可选地,所述组合模块还用于:
54、当检测到所述关键词参数的数量达到目标数量时,停止调用随机选择算法生成所述随机数字。
55、可选地,所述装置还包括训练单元,所述训练单元包括:
56、第四获取模块,用于从预设数据库获取不同数据类别的训练用文本数据;
57、过滤模块,用于根据预设过滤规则对所述训练用文本数据进行过滤,得到目标数据类别的训练用关键词组,所述预设过滤规则包括基于正则表达式规则去除预设数据类别的文本数据;
58、训练模块,用于将所述目标数据类别的训练用关键词组输入预设语言模型进行训练,得到训练好的预设语言模型。
59、可选地,所述装置还包括监测单元,所述监测单元包括:
60、判断模块,用于在将所述关键词组输入预设语言模型,得到所述关键词组对应的目标测试数据之后,读取所述测试数据生成规则中的定时发送信息,判断是否定时发送所述目标测试数据;
61、发送模块,用于在确定定时发送所述目标测试数据的情况下,当满足定时发送条件时,根据所述关键词参数的数据类别将所述目标测试数据分别发送至对应数据类别的目标数据库;
62、第一监测模块,用于若监测到所述目标测试数据的发送数量与所述目标数据库的接收数量一致,则完成所述目标测试数据的传输;
63、第二监测模块,用于若监测到所述目标数据库接收到的目标测试数据的数量与目标数量不一致,则确定所述目标数据传输异常。
64、根据本公开的第三方面,提供了一种电子设备,包括:
65、至少一个处理器;以及
66、与所述至少一个处理器通信连接的存储器;其中,
67、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第一方面所述的方法。
68、根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行前述第一方面所述的方法。
69、根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如前述第一方面所述的方法。
70、本公开提供的测试数据的生成方法及装置、电子设备和存储介质,响应于测试数据的生成指令,基于所述生成指令中的规则配置文件获取测试数据生成规则,所述测试数据生成规则包括测试数据的目标数量及参数权重列表,所述参数权重列表包括不同数据类别的关键词参数列表及对应的权重列表;基于所述测试数据生成规则,分别根据不同数据类别的关键词参数列表及对应的权重列表生成对应的关键词组;将所述关键词组输入训练好的预设语言模型,得到所述关键词组对应的目标测试数据。本公开提供的测试数据的生成方法,通过编写测试数据生成规则对不同数据类别的关键词参数加权,并根据测试数据生成规则实现对测试数据的构造,使得生成的测试数据更加符合生产数据的分布特性,在满足了测试数据多样性的同时也保证了测试数据的随机性;并基于训练好的预设语言模型根据关键词组生成目标测试数据,满足测试过程中需要大量测试数据的需求。
71、应当理解,本部分所描述的内容并非旨在标识本技术的实施例的关键或重要特征,也不用于限制本技术的范围。本技术的其它特征将通过以下的说明书而变得容易理解。