一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种生成测试报文的方法、装置、设备及可读存储介质与流程

2022-06-02 13:03:45 来源:中国专利 TAG:


1.本发明涉及软件测试技术领域,具体而言,涉及一种生成测试报文的方法、装置、设备及可读存储介质。


背景技术:

2.在实际测试中,测试人员需要根据接口规范,设计测试案例,手动组装或者在内部测试系统的界面中配置各个案例需要的报文,反复修改数据不仅需要投入大量的人力,还容易出现拼写错误、重复测试同一案例场景、遗漏部分案例场景等问题。开发人员在开发过程中也需要进行足够的测试,以保证开发质量。因未进入正式测试阶段,代码未部署至测试系统,开发人员只能手动组装报文,经常由于异常情况考虑不足,测试中发现问题,影响项目进度。


技术实现要素:

3.本发明的目的在于提供一种生成测试报文的方法、装置、设备及可读存储介质,以改善上述问题。
4.为了实现上述目的,本发明采取的技术方案如下:
5.一方面,本技术实施例提供了一种生成测试报文的方法,所述方法包括:
6.获取校验文件和映射表,所述映射表包括生成函数;
7.解析所述校验文件得到键值对,所述键值对包括字段名称和调用参数,所述字段名称对应至少一个所述调用参数,所述调用参数与所述生成函数一一对应;
8.利用所述生成函数为每个所述字段名称生成至少一个测试值;
9.基于每个所述字段名称对应的所述测试值得到至少一个第一测试报文。
10.可选的,所述利用所述生成函数为每个所述字段名称生成至少一个测试值,包括:
11.查找得到每个所述字段名称对应的所述调用参数,其中,所述字段名称对应一个第一调用参数和至少一个第二调用参数;
12.根据所述第一调用参数查找对应的所述生成函数,生成所述第一测试值,所述第一测试值为测试软件接口时所需要的正确测试值;
13.查找每个所述第二调用参数对应的所述生成函数,生成至少一个所述第二测试值,所述第二测试值为测试软件接口时所需要的错误测试值。
14.可选的,所述利用所述生成函数为每个所述字段名称生成至少一个测试值后,还包括:
15.将所述测试值与其对应的所述字段名称相匹配,得到匹配信息,所述匹配信息包括所述字段名称和与所述字段名称相匹配的所述测试值;
16.将所述匹配信息按所述字段名称进行分组得到至少一组分组信息,所述分组信息包括一个所述字段名称和一个所述字段名称对应的全部所述测试值,不同的所述分组信息包括的所述字段名称不同。
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.第三方面,本技术实施例提供一种生成测试报文的设备,所述设备包括存储器和处理器。存储器用于存储计算机程序;处理器用于执行所述计算机程序时实现上述生成测试报文的方法的步骤。
48.第四方面,本技术实施例提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述生成测试报文的方法的步骤。
49.本发明的有益效果为:
50.本发明通过优化已有的软件接口校验文件,为每个字段名称添加对应的调用参数,通过调用参数在建立好的映射表中查找对应的生成函数为每个字段名称生成不同的测试值,通过测试值的组合对应不同的测试场景,生成不同的测试报文,解决了人工组装测试报文操作时间成本高且易遗漏和重复一些测试报文的问题,为生成测试报文提供了一种低成本且覆盖测试范围大的方法。
51.本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
52.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
53.图1为本发明实施例中所述的生成测试报文的方法流程示意图。
54.图2为本发明实施例中所述的生成测试报文的装置结构示意图。
55.图3为本发明实施例中所述的生成测试报文设备结构示意图。
具体实施方式
56.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
57.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
58.实施例1
59.如图1所示,本实施例提供了一种生成测试报文的方法,该方法包括步骤s1、步骤s2、步骤s3和步骤s9。
60.步骤s1、获取校验文件和映射表,所述映射表包括生成函数;
61.步骤s2、解析所述校验文件得到键值对,所述键值对包括字段名称和调用参数,所述字段名称对应至少一个所述调用参数,所述调用参数与所述生成函数一一对应;
62.步骤s3、利用所述生成函数为每个所述字段名称生成至少一个测试值;
63.步骤s9、基于每个所述字段名称对应的所述测试值得到至少一个第一测试报文。
64.在现有生成测试报文的方式中,测试人员需要根据接口规范,设计测试案例,手动组装或者在内部测试系统的界面中配置各个案例需要的报文,但是手动组装存在容易出现重复测试同一案例、遗漏部分案等问题,因此需要一种能生成多种测试报文且覆盖测试场景范围广的方法,应对手动组装报文出现的问题。
65.因此本实施例通过采用优化需要测试的软件接口校验文件,为每个字段名称添加对应的调用参数,建立调用参数与生成函数的映射表,通过调用参数查找映射表中对应的生成函数,为每个字段名称生成不同的测试值,通过不同字段的测试值的组合对应不同的测试场景,生成不同的测试报文用于测试软件接口时可能面对的多种测试场景,保证了测试场景覆盖范围广且不会重复的问题,且通过优化软件接口校验文件还解决了人工组装测试报文操作时间成本高的问题,为生成测试报文提供了一种低成本且覆盖范围广的方法,本方法可广泛用于测试不同的软件接口,通过优化软件接口校验文件,添加调用参数,并根
据调用参数建立生成函数的映射表,生成适应软件接口所需的正常情况下的测试值和异常情况下的测试值。
66.在本公开的一种具体实施方式中,所述步骤s3,还可以包括步骤s31、步骤s32和步骤s33。
67.步骤s31、查找得到每个所述字段名称对应的所述调用参数,其中,所述字段名称对应一个第一调用参数和至少一个第二调用参数;
68.步骤s32、根据所述第一调用参数查找对应的所述生成函数,生成所述第一测试值,所述第一测试值为测试软件接口时所需要的正确测试值;
69.步骤s33、查找每个所述第二调用参数对应的所述生成函数,生成至少一个所述第二测试值,所述第二测试值为测试软件接口时所需要的错误测试值。
70.在本实施例中,例如一个字段名称为时间,查找时间字段名称对应的第一调用参数用于生成测试软件接口时生成当前正确的时间,用于测试软件接口时间正常的情况,查找第二调用参数用于测试软件接口时生成至少一个非当前时间的错误时间,用于测试软件接口时间异常的情况,字段名称为字段名称添加的第二调用参数越多,生成的测试值就越多,同时生成的测试报文也就越多,代表测试软件接口时可以测试大量可能遇到的测试场景,可以有效的增加测试场景的覆盖范围,避免了人工配置可能出现案例遗漏或案例重复等问题。
71.在本公开的一种具体实施方式中,所述步骤s3后,还可以包括步骤s4和步骤s5。
72.步骤s4、将所述测试值与其对应的所述字段名称相匹配,得到匹配信息,所述匹配信息包括所述字段名称和与所述字段名称相匹配的所述测试值;
73.步骤s5、将所述匹配信息按所述字段名称进行分组得到至少一组分组信息,所述分组信息包括一个所述字段名称和一个所述字段名称对应的全部所述测试值,不同的所述分组信息包括的所述字段名称不同。
74.在本实施例中,将通过调用参数调用生成函数生成得到的多个不同的测试值与其调用参数对应的字段名称进行匹配,可以得到多个字段名称和与其匹配的测试值,再通过字段名称进行分组,将相同的字段名称分为一组可以得到一个字段名称对应的多个测试值,即得到一个字段名称对应的多个测试场景。
75.在本公开的一种具体实施方式中,所述步骤s5后,还可以包括步骤s6。
76.步骤s6、根据所述分组信息构建树结构,所述树结构包括第一结点层和至少一个第二结点层,所述第一结点层中包括至少一个根结点,所述第二结点层中包括至少一个结点,其中,在全部的所述分组信息中随机选取一组所述分组信息,将随机选取得到的所述分组信息中包括的测试值作为所述第一结点层中每个所述根结点的值,所述第一结点层中每个根结点的值均不相同;利用随机选取后剩余的所述分组信息构建第二结点层,其中,一组所述分组信息中包括的所述测试值对应一个所述第二结点层中每个所述结点的值,所述第二结点层中每个所述结点所对应的所述测试值不相同。
77.在本实施例中,根据不同的分组信息构建树结构,一组分组信息包括一个字段名称对应的全部测试值,随机选择一组分组信息作为树结构的第一结点层,一个测试值对应第一结点层中的一个根结点,再将剩余的分组信息作为树结构的第二结点层,一组分组信息对应一层第二结点层,一个字段名称的一个测试值对应第二结点层的一个结点,并且每
个根结点中的测试值均不相同,每个结点中的测试值也均不相同,保证了在组合生成多个测试报文后,不会存在重复的测试报文,提高了测试软件接口的效率。
78.在本公开的一种具体实施方式中,所述步骤s6后,还可以包括步骤s7和步骤s8。
79.步骤s7、在所述第一结点层中随机选取一个根结点,在每个所述第二结点层中随机选取一个所述结点;
80.步骤s8、将随机选取得到的根结点的值和随机选取得到的结点的值组合在一起得到至少一个所述第一测试报文。
81.在本实施例中,通过查找树结构中第一结点层中的根结点和第二结点层中的每一层结点,并从第一结点层中随机提取一个根结点和第二结点层中的每一层随机提取一个结点进行组合,可以得到一条测试报文,提取不同的根结点和结点可以得到不同的测试报文,通过本方法可以组合得到大量的测试报文,且不存在重复的测试报文还覆盖了大量的异常案例的测试报文,有效的解决了手动组装报文存在的问题,同时降低了时间成本。
82.在本公开的一种具体实施方式中,所述步骤s9后,还可以包括步骤s10、步骤s11和步骤s12。
83.步骤s10、提取所述第一测试报文中包含的内容,得到所述测试报文内容信息;
84.步骤s11、获取格式信息,所述格式信息包括能进行软件接口测试的测试报文的格式;
85.步骤s12、基于所述格式信息对所述测试报文内容信息进行格式调整,得到第二测试报文,所述第二测试报文为能进行软件接口测试的测试报文。
86.在本实施例中,通过解析校验文件得到键值对,对键值对进行处理,得到测试报文后,需要对测试报文进行格式转换,将测试报文转换为xml格式才能用于对软件接口进行测试,将测试报文用于实际测试中。
87.实施例2
88.如图2所示,本实施例提供了生成测试报文的装置,所述装置包括第一获取模块901、解析模块902、第一生成模块903和第二生成模块909。
89.所述第一获取模块901,用于获取校验文件和映射表,所述映射表包括生成函数;
90.所述解析模块902,用于解析所述校验文件得到键值对,所述键值对包括字段名称和调用参数,所述字段名称对应至少一个所述调用参数,所述调用参数与所述生成函数一一对应;
91.所述第一生成模块903,用于利用所述生成函数为每个所述字段名称生成至少一个测试值;
92.所述第二生成模块909,用于基于每个所述字段名称对应的所述测试值得到至少一个第一测试报文。
93.本实施例的装置可以实现低成本且覆盖测试范围大的生成测试报文,同时不存在重复的测试场景,较人工组装测试报文提供了一种时间成本低和人力成本低的装置,本装置可以广泛应用于测试各类软件接口且覆盖较多的测试场景。
94.在本公开的一种具体实施方式中,所述第一生成模块903,包括查找单元9031、第一生成单元9032和第二生成单元9033。
95.所述查找单元9031,用于查找得到每个所述字段名称对应的所述调用参数,其中,
所述字段名称对应一个第一调用参数和至少一个第二调用参数;
96.所述第一生成单元9032,用于根据所述第一调用参数查找对应的所述生成函数,生成所述第一测试值,所述第一测试值为测试软件接口时所需要的正确测试值;
97.所述第二生成单元9033,用于查找每个所述第二调用参数对应的所述生成函数,生成至少一个所述第二测试值,所述第二测试值为测试软件接口时所需要的错误测试值。
98.在本公开的一种具体实施方式,所述装置,还包括匹配模块904和分组模块905。
99.所述匹配模块904,用于将所述测试值与其对应的所述字段名称相匹配,得到匹配信息,所述匹配信息包括所述字段名称和与所述字段名称相匹配的所述测试值;
100.所述分组模块905,用于将所述匹配信息按所述字段名称进行分组得到至少一组分组信息,所述分组信息包括一个所述字段名称和一个所述字段名称对应的全部所述测试值,不同的所述分组信息包括的所述字段名称不同。
101.在本公开的一种具体实施方式中,所述装置,还包括构建模块906。
102.所述构建模块906,用于根据所述分组信息构建树结构,所述树结构包括第一结点层和至少一个第二结点层,所述第一结点层中包括至少一个根结点,所述第二结点层中包括至少一个结点,其中,在全部的所述分组信息中随机选取一组所述分组信息,将随机选取得到的所述分组信息中包括的测试值作为所述第一结点层中每个所述根结点的值,所述第一结点层中每个根结点的值均不相同;利用随机选取后剩余的所述分组信息构建第二结点层,其中,一组所述分组信息中包括的所述测试值对应一个所述第二结点层中每个所述结点的值,所述第二结点层中每个所述结点所对应的所述测试值不相同。
103.在本公开的一种具体实施方式中,所述装置,还包括第一选取模块907和第二选取模块908。
104.所述第一选取模块907,用于在所述第一结点层中随机选取一个根结点,在每个所述第二结点层中随机选取一个所述结点;
105.所述第二选取模块908,用于将随机选取得到的根结点的值和随机选取得到的结点的值组合在一起得到至少一个所述第一测试报文。
106.在本公开的一种具体实施方式中,所述装置,还包括提取模块910、第二获取模块911和调整模块912。
107.所述提取模块910,用于提取所述第一测试报文中包含的内容,得到所述测试报文内容信息;
108.所述第二获取模块911,用于获取格式信息,所述格式信息包括能进行软件接口测试的测试报文的格式;
109.所述调整模块912,用于基于所述格式信息对所述测试报文内容信息进行格式调整,得到第二测试报文,所述第二测试报文为能进行软件接口测试的测试报文。
110.需要说明的是,关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
111.实施例3
112.相应于上面的方法实施例,本公开实施例还提供生成测试报文的设备,下文描述的生成测试报文的设备与上文描述的生成测试报文的方法可相互对应参照。
113.图3是根据一示例性实施例示出的生成测试报文的设备800的框图。如图3所示,该
生成测试报文的设备800可以包括:处理器801,存储器802。该生成测试报文的设备800还可以包括多媒体组件803,输入/输出(i/o)接口804,以及通信组件805中的一者或多者。
114.其中,处理器801用于控制该生成测试报文的设备800的整体操作,以完成上述的生成测试报文的方法中的全部或部分步骤。存储器402用于存储各种类型的数据以支持在该生成测试报文的设备800的操作,这些数据例如可以包括用于在该生成测试报文的设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该生成测试报文的设备800与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(near field communication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:wi-fi模块,蓝牙模块,nfc模块。
115.在一示例性实施例中,该生成测试报文的设备800可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的生成测试报文的方法。
116.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的生成测试报文的方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由该生成测试报文的设备800的处理器801执行以完成上述的生成测试报文的方法。
117.相应于上面的方法实施例,本公开实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的生成测试报文的方法可相互对应参照。
118.实施例4
119.一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的生成测试报文的方法的步骤。
120.该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
121.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
122.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献