数据处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:39247818 阅读:8 留言:0更新日期:2023-10-30 11:59
本申请公开了一种数据处理方法、装置、电子设备及存储介质,该方法包括:在接收到针对目标服务的测试请求的情况下,若接收到针对目标服务的虚拟服务重启指令,查询目标服务对应的预设覆盖场景标签;虚拟服务重启指令用于触发代码覆盖路径的生成处理;在查询到预设覆盖场景标签的情况下,获取目标服务对应的至少一个第一目标源文件,至少一个第一目标源文件为目标服务处理测试请求过程中需要生成代码覆盖文件的执行程序;生成至少一个第一目标源文件对应的至少一个第一代码覆盖文件

【技术实现步骤摘要】
数据处理方法、装置、电子设备及存储介质


[0001]本申请涉及计算机
,尤其涉及一种数据处理方法、装置、电子设备及存储介质。

技术介绍

[0002]代码覆盖数据是软件测试中的一种度量,描述程序中源代码被测试的比例和程度。
[0003]相关技术中,需要通过重启服务才能收集代码覆盖数据,具体的,例如基于Gcc(GNU Compiler Collection,GNU编译器集合编译器集合,GNU是一个操作系统)生成代码覆盖数据过程中,需要通过杀掉进程,重启后才能基于gcov(gcov是GCC编译器集合中的一个工具,用于代码覆盖率分析)产生代码覆盖文件,接着,对产生的代码覆盖文件多次合并计算得到具体的行覆盖率数据。但单个测试用例的行覆盖率数据对测试用例萃取场景的作用不大,虽然业界会有利用行覆盖率数据跟代码行号做映射,以此来判断该测试用例的请求处理过程中对代码的覆盖情况,但是这种方法需要记录每个请求覆盖了全部的源代码文件哪些行,计算量较大,存在耗时,操作繁琐复杂的问题;且服务大部分是多进程的,每个请求的子步骤跑的进程可能都不一致,如果服务无法实现优雅退出或者在进程还没完全退出的时候进行重启,就会存在生成的代码覆盖文件信息不完整的情况,导致统计出来的代码覆盖数据会有一部分缺失,影响代码覆盖数据的准确性;且服务频繁重启不仅带来很多不必要的耗时,还会影响服务的稳定性和可用性。

技术实现思路

[0004]本申请提供了一种数据处理方法、装置、设备、存储介质及计算机程序产品,可以有效避免服务重启带来的不必要的耗时,提升代码覆盖数据生成效率、服务的稳定性和可用性,保证代码覆盖文件信息完整性;且可以有效简化代码覆盖数据的获取操作,提升代码覆盖数据生成效率,进而也可以提升测试用例萃取等场景的处理效率。
[0005]一方面,本申请提供了一种数据处理方法,所述方法包括:
[0006]在接收到针对目标服务的测试请求的情况下,若接收到针对所述目标服务的虚拟服务重启指令,查询所述目标服务对应的预设覆盖场景标签;所述虚拟服务重启指令用于触发代码覆盖路径的生成处理;所述预设覆盖场景标签用于指示所述目标服务具有代码覆盖路径生成的场景需求;
[0007]在查询到所述预设覆盖场景标签的情况下,获取所述目标服务对应的至少一个第一目标源文件,所述至少一个第一目标源文件为所述目标服务处理所述测试请求过程中需要生成代码覆盖文件的执行程序;
[0008]生成所述至少一个第一目标源文件对应的至少一个第一代码覆盖文件;
[0009]基于所述至少一个第一代码覆盖文件,生成所述测试请求对应的目标代码覆盖路径。
[0010]另一方面提供了一种数据处理装置,所述装置包括:
[0011]第一标签查询模块,被配置为执行在接收到针对目标服务的测试请求的情况下,若接收到针对所述目标服务的虚拟服务重启指令,查询所述目标服务对应的预设覆盖场景标签;所述虚拟服务重启指令用于触发代码覆盖路径的生成处理;所述预设覆盖场景标签用于指示所述目标服务具有代码覆盖路径生成的场景需求;
[0012]第一目标源文件获取模块,被配置为执行在查询到所述预设覆盖场景标签的情况下,获取所述目标服务对应的至少一个第一目标源文件,所述至少一个第一目标源文件为所述目标服务处理所述测试请求过程中需要生成代码覆盖文件的执行程序;
[0013]第一代码覆盖文件生成模块,被配置为执行生成所述至少一个第一目标源文件对应的至少一个第一代码覆盖文件;
[0014]目标代码覆盖路径生成模块,被配置为执行基于所述至少一个第一代码覆盖文件,生成所述测试请求对应的目标代码覆盖路径。
[0015]另一方面提供了一种电子设备,包括:处理器;
[0016]用于存储所述处理器可执行指令的存储器;
[0017]其中,所述处理器被配置为执行所述指令,以实现上述任一项所述的数据处理方法。
[0018]另一方面提供了一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述任一数据处理方法。
[0019]另一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的数据处理方法。
[0020]本申请提供的数据处理方法、装置、设备、存储介质及计算机程序产品,具有如下技术效果:
[0021]本申请在接收到针对目标服务的测试请求的情况下,通过触发针对目标服务的虚拟服务重启指令,可以在无需重启目标服务的情况下,动态触发代码覆盖路径的生成处理,有效避免了服务重启带来的不必要的耗时,提升了代码覆盖数据生成效率、服务的稳定性和可用性,且可以有效避免服务无法优雅退出或者在进程还没完全退出的时候进行重启,带来的代码覆盖文件信息不完整的情况;接着,通过预设的用于指示目标服务具有代码覆盖路径生成的场景需求的预设覆盖场景标签,可以在不需要对业务模块接入改造的基础上,进行针对目标服务的代码覆盖收集流程,获取目标服务对应的至少一个第一目标源文件;并生成至少一个第一目标源文件对应的至少一个第一代码覆盖文件;且基于至少一个第一代码覆盖文件,生成测试请求对应的目标代码覆盖路径,即以代码覆盖路径为代码覆盖数据,可以无需进行单个测试用例对应请求的行覆盖率数据等计算,有效简化了代码覆盖数据的获取操作,提升了代码覆盖数据生成效率,进而也可以提升测试用例萃取等场景的处理效率。
附图说明
[0022]为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施
例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0023]图1是本申请实施例提供的一种数据处理方法的应用环境的示意图;
[0024]图2是本申请实施例提供的一种数据处理方法的流程示意图;
[0025]图3是本申请实施例提供的一种基于至少一个第一代码覆盖文件,生成测试请求对应的目标代码覆盖路径的流程示意图;
[0026]图4是本申请实施例提供的另一种基于至少一个第一代码覆盖文件,生成测试请求对应的目标代码覆盖路径的流程示意图;
[0027]图5是本申请实施例提供的一种生成第一噪声信息的流程示意图;
[0028]图6是本申请实施例提供的一种两次运行过程中的代码覆盖路径的部分对比示意图;
[0029]图7是本申请实施例提供的另一种基于至少一个第一代码覆盖文件,生成测试请求对应的目标代码覆盖路径的流程示意图;
[0030]图8是本申请实施例提供的一种生成第二噪声信息的流程示意图;
[0031]图9是本申请实施例提供的一种两次处理预设请求过程中的差异解析本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:在接收到针对目标服务的测试请求的情况下,若接收到针对所述目标服务的虚拟服务重启指令,查询所述目标服务对应的预设覆盖场景标签;所述虚拟服务重启指令用于触发代码覆盖路径的生成处理;所述预设覆盖场景标签用于指示所述目标服务具有代码覆盖路径生成的场景需求;在查询到所述预设覆盖场景标签的情况下,获取所述目标服务对应的至少一个第一目标源文件,所述至少一个第一目标源文件为所述目标服务处理所述测试请求过程中需要生成代码覆盖文件的执行程序;生成所述至少一个第一目标源文件对应的至少一个第一代码覆盖文件

基于所述至少一个第一代码覆盖文件,生成所述测试请求对应的目标代码覆盖路径。2.根据权利要求1所述的方法,其特征在于,所述基于所述至少一个第一代码覆盖文件,生成所述测试请求对应的目标代码覆盖路径包括:对所述至少一个第一代码覆盖文件进行解析,得到每个代码覆盖文件对应的至少一个第一覆盖解析文件;生成每个第一覆盖解析文件对应的第一散列数据;基于所述至少一个第一代码覆盖文件对应的第一散列数据和所述至少一个第一目标源文件对应的源文件执行顺序,构建所述目标代码覆盖路径。3.根据权利要求2所述的方法,其特征在于,在生成每个第一覆盖解析文件对应的第一散列数据之前,所述基于所述至少一个第一代码覆盖文件,生成所述测试请求对应的目标代码覆盖路径还包括:获取第一噪声信息,所述第一噪声信息用于指示属于噪声文件的覆盖解析文件;基于所述第一噪声信息,对所述至少一个第一代码覆盖文件对应的第一覆盖解析文件进行过滤,得到至少一个第二覆盖解析文件;所述生成每个第一覆盖解析文件对应的第一散列数据包括:生成每个第二覆盖解析文件对应的第二散列数据;所述基于所述至少一个第一代码覆盖文件对应的第一散列数据和所述至少一个第一目标源文件对应的源文件执行顺序,构建所述目标代码覆盖路径包括:基于所述至少一个第二代码覆盖文件对应的第二散列数据和所述源文件执行顺序,构建所述目标代码覆盖路径。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:多次运行所述目标服务;在所述目标服务每次运行过程中,若接收到针对所述目标服务的所述虚拟服务重启指令,查询所述预设覆盖场景标签;在查询到所述预设覆盖场景标签的情况下,获取所述目标服务每次运行过程中的至少一个第二目标源文件;所述至少一个第二目标源文件为所述目标服务每次运行过程中需要生成代码覆盖文件的执行程序;生成每次运行过程中所述至少一个第二目标源文件对应的至少一个第三代码覆盖文件;对每个第三代码覆盖文件进行解析,得到所述每个第三代码覆盖文件对应的第三覆盖
解析文件;基于所述多次运行过程中对应的第三覆盖解析文件间的差异信息,生成所述第一噪声信息。5.根据权利要求4所述的方法,其特征在于,所述基于所述多次运行过程中对应的第三覆盖解析文件间的差异信息,生成所述第一噪声信息包括:对所述多次运行过程中对应的第三覆盖解析文件进行比对,得到第一比对结果;在所述第一比对结果指示所述多次运行过程中对应的第三覆盖解析文件间存在第一差异解析文件的情况下,基于所述第一差异解析文件,生成所述第一噪声信息。6.根据权利要求5所述的方法,其特征在于,所述基于所述多次运行过程中对应的第三覆盖解析文件间的差异信息,生成所述第一噪声信息还包括:在所述第一比对结果指示所述多次运行过程中对应的第三覆盖解析文件间不存在第一差异解析文件的情况下,基于所述多次运行过程中对应的至少一个第三代码覆盖文件,生成多次运行过程中对应的代码覆盖路径;对所述多次运行过程中对应的代码覆盖路径进行比对,得到第二比对结果;在所述第二比对结果指示多次运行过程中对应的代码覆盖路径间存在差异路径节点的情况下,基于所述差异路径节点,生成所述第一噪声信息。7.根据权利要求2所述的方法,其特征在于,在生成每个第一覆盖解析文件对应的第一散列数据之前,所述基于所述至少一个第一代码覆盖文件,生成所述测试请求对应的目标代码覆盖路径还包括:获取第二噪声信息,所述第二噪声信息用于指示覆盖解析文件中存在噪声的行信息;基于所述第二噪声信息,对所述至少一个第一代码覆盖文...

【专利技术属性】
技术研发人员:高文冠
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1