一种测试方法、装置、设备及存储介质与流程

文档序号:32291976发布日期:2022-11-23 01:50阅读:33来源:国知局
一种测试方法、装置、设备及存储介质与流程

1.本技术涉及计算机技术领域,特别涉及一种测试方法、装置、设备及存储介质。


背景技术:

2.目前,基于测试平台测试程序时,可以以文件或变量入参。即:读取文件内容或变量值进行数据驱动来测试程序。其中,由于文件中的内容并不都需要入参,因此需要在代码中指定哪些参数需要入参,哪些不需要。同时还需要在代码中指定待测程序的遍历次数,因此测试代码需要依据入参参数和遍历次数频繁修改。当入参变量较多时,无法有针对性的精准控制每个变量。
3.因此,如何精准控制程序测试过程中的入参变量,提高测试灵活性,是本领域技术人员需要解决的问题。


技术实现要素:

4.有鉴于此,本技术的目的在于提供一种测试方法、装置、设备及存储介质,以精准控制程序测试过程中的入参变量,提高测试灵活性。其具体方案如下:
5.为实现上述目的,一方面,本技术提供了一种测试方法,包括:
6.获取用户基于人机交互界面确定的至少一个测试项;每个测试项包括:变量名称;所述变量名称对应的遍历方式、变量值和变量值确定方式;所述变量名称是否被指定为主循环变量名称的标识信息;
7.若基于所述标识信息确定每个测试项中的变量名称均未被指定为所述主循环变量名称,则基于所述变量值确定方式判断是否存在通过文件引用方式确定变量值的测试项;若是,则从该测试项中选择变量值个数最多的变量名称作为所述主循环变量名称,并将所述主循环变量名称的变量值个数确定为遍历次数;
8.将每个测试项作为待测项,按照所述待测项中的变量值确定方式为所述待测项中的变量名称赋值,并按照所述遍历次数和所述待测项中的遍历方式,将赋值后的变量名称传入待测程序进行程序测试。
9.优选地,所述按照所述待测项中的变量值确定方式为所述待测项中的变量名称赋值,包括:
10.若基于所述待测项中的变量值确定方式,确定所述待测项通过文件引用方式确定变量值,且所述待测项包括至少一个变量名称,则在所述待测项对应的引用文件中,查询与所述待测项中的变量名称相同的字符串,并利用所述字符串在所述引用文件中对应的数据值,为所述待测项中的变量名称赋值。
11.优选地,所述按照所述待测项中的变量值确定方式为所述待测项中的变量名称赋值,包括:
12.若基于所述待测项中的变量值确定方式,确定所述待测项通过用户指定方式确定变量值,且所述待测项包括一个变量名称,则利用用户基于所述人机交互界面输入的数据
值,为所述待测项中的变量名称赋值;
13.或
14.若基于所述待测项中的变量值确定方式,确定所述待测项通过用户指定方式确定变量值,所述待测项包括至少两个变量名称且所述至少两个变量名称对应的变量值相同,则利用用户基于所述人机交互界面输入的数据值,为所述待测项中的变量名称赋值。
15.优选地,所述按照所述待测项中的变量值确定方式为所述待测项中的变量名称赋值,包括:
16.若基于所述待测项中的变量值确定方式,确定所述待测项通过文件引用方式和用户指定方式确定变量值,且所述待测项包括一个变量名称,则在所述待测项对应的引用文件中,查询与所述待测项中的变量名称相同的字符串,利用所述字符串在所述引用文件中对应的数据值,为所述待测项中的变量名称赋值后,利用用户基于所述人机交互界面输入的数据值为所述待测项中的变量名称赋值。
17.优选地,所述按照所述待测项中的变量值确定方式为所述待测项中的变量名称赋值,包括:
18.每个测试项还包括:所述变量名称在一个请求中被多次调用时是否需要重复赋相同值的重复标记,若基于所述待测项中的重复标记,确定所述待测项中的变量名称需要重复赋相同值,则按照所述待测项中的变量值确定方式为所述待测项中的变量名称重复赋相同值。
19.优选地,所述将赋值后的变量名称传入待测程序进行程序测试之后,还包括:
20.记录程序测试结果,将所述程序测试结果与预期结果进行对比,获得对比结果,存储并可视化所述对比结果。
21.优选地,还包括:
22.若基于所述标识信息确定有n个测试项中的变量名称被指定为所述主循环变量名称,则从所述n个测试项中选择变量值个数最多的变量名称作为所述主循环变量名称。
23.优选地,还包括:
24.若基于所述变量值确定方式确定不存在通过文件引用方式确定变量值的测试项,则从所有测试项中选择变量值个数最多的变量名称作为所述主循环变量名称。
25.又一方面,本技术还提供了一种测试装置,包括:
26.获取模块,用于获取用户基于人机交互界面确定的至少一个测试项;每个测试项包括:变量名称;所述变量名称对应的遍历方式、变量值和变量值确定方式;所述变量名称是否被指定为主循环变量名称的标识信息;
27.确定模块,用于若基于所述标识信息确定每个测试项中的变量名称均未被指定为所述主循环变量名称,则基于所述变量值确定方式判断是否存在通过文件引用方式确定变量值的测试项;若是,则从该测试项中选择变量值个数最多的变量名称作为所述主循环变量名称,并将所述主循环变量名称的变量值个数确定为遍历次数;
28.测试模块,用于将每个测试项作为待测项,按照所述待测项中的变量值确定方式为所述待测项中的变量名称赋值,并按照所述遍历次数和所述待测项中的遍历方式,将赋值后的变量名称传入待测程序进行程序测试。
29.优选地,所述测试模块包括:
30.第一赋值单元,用于若基于所述待测项中的变量值确定方式,确定所述待测项通过文件引用方式确定变量值,且所述待测项包括至少一个变量名称,则在所述待测项对应的引用文件中,查询与所述待测项中的变量名称相同的字符串,并利用所述字符串在所述引用文件中对应的数据值,为所述待测项中的变量名称赋值。
31.优选地,所述测试模块包括:
32.第二赋值单元,用于若基于所述待测项中的变量值确定方式,确定所述待测项通过用户指定方式确定变量值,且所述待测项包括一个变量名称,则利用用户基于所述人机交互界面输入的数据值,为所述待测项中的变量名称赋值;或若基于所述待测项中的变量值确定方式,确定所述待测项通过用户指定方式确定变量值,所述待测项包括至少两个变量名称且所述至少两个变量名称对应的变量值相同,则利用用户基于所述人机交互界面输入的数据值,为所述待测项中的变量名称赋值。
33.优选地,所述测试模块包括:
34.第三赋值单元,用于若基于所述待测项中的变量值确定方式,确定所述待测项通过文件引用方式和用户指定方式确定变量值,且所述待测项包括一个变量名称,则在所述待测项对应的引用文件中,查询与所述待测项中的变量名称相同的字符串,利用所述字符串在所述引用文件中对应的数据值,为所述待测项中的变量名称赋值后,利用用户基于所述人机交互界面输入的数据值为所述待测项中的变量名称赋值。
35.优选地,所述测试模块包括:
36.第四赋值单元,用于每个测试项还包括:所述变量名称在一个请求中被多次调用时是否需要重复赋相同值的重复标记,若基于所述待测项中的重复标记,确定所述待测项中的变量名称需要重复赋相同值,则按照所述待测项中的变量值确定方式为所述待测项中的变量名称重复赋相同值。
37.优选地,还包括:
38.记录模块,用于记录程序测试结果,将所述程序测试结果与预期结果进行对比,获得对比结果,存储并可视化所述对比结果。
39.优选地,所述确定模块还包括:
40.第一确定单元,用于若基于所述标识信息确定有n个测试项中的变量名称被指定为所述主循环变量名称,则从所述n个测试项中选择变量值个数最多的变量名称作为所述主循环变量名称。
41.优选地,所述确定模块还包括:
42.第二确定单元,用于若基于所述变量值确定方式确定不存在通过文件引用方式确定变量值的测试项,则从所有测试项中选择变量值个数最多的变量名称作为所述主循环变量名称。
43.又一方面,本技术还提供了一种电子设备,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述测试方法。
44.又一方面,本技术还提供了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述测试方法。
45.可见,本技术可以让用户基于人机交互界面确定至少一个测试项;每个测试项都
包括:变量名称;变量名称对应的遍历方式、变量值和变量值确定方式;变量名称是否被指定为主循环变量名称的标识信息。即:用户可以基于人机交互界面指定上述各项信息,尤其可以自主指定主循环变量名称,主循环变量名称的变量值个数即为当前测试的遍历次数。若用户没有指定主循环变量,那么可以基于变量值确定方式选择测试项,并从所选的测试项中选择变量值个数最多的变量名称作为主循环变量名称,从而将主循环变量名称的变量值个数确定为遍历次数,完成主循环变量名称和遍历次数的自动确定。之后将每个测试项作为待测项,按照待测项中的变量值确定方式为待测项中的变量名称赋值,并按照遍历次数和待测项中的遍历方式,将赋值后的变量名称传入待测程序进行程序测试。其中,主循环变量名称对应的变量即为主循环变量,其他变量的入参次数需要和主循环变量的入参次数保持一致。由于测试尽可能多的参数可以避免测试疏漏,因此选择变量值个数最多的变量名称作为主循环变量名称能够测试到更多的参数值,从而保障测试的全面性和完整性。由于用户已经指定了各个变量名称对应的遍历方式、变量值和变量值确定方式,因此实际测试时可以据此对各个变量分别控制,从而实现有针对性的精准测试每个变量。同时,用户基于人机交互界面就可以完成测试项中各项信息的更改,故无需频繁修改测试代码,提高了测试灵活性。
46.相应地,本技术提供的测试装置、设备及存储介质,也同样具有上述技术效果。
附图说明
47.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
48.图1为本技术提供的一种本技术适用的物理架构示意图;
49.图2为本技术提供的第一种测试方法流程图;
50.图3为本技术提供的一种人机交互界面示意图;
51.图4为本技术提供的第二种测试方法流程图;
52.图5为本技术提供的第三种测试方法流程图;
53.图6为本技术提供的一种变量名称与变量值对应后的示意图;
54.图7为本技术提供的一种测试装置示意图;
55.图8为本技术提供的一种服务器结构图;
56.图9为本技术提供的一种终端结构图。
具体实施方式
57.目前在测试程序时,需要在代码中指定哪些参数需要入参,哪些不需要。同时还需要在代码中指定待测程序的遍历次数,因此测试代码需要依据入参参数和遍历次数频繁修改。当入参变量较多时,无法有针对性的精准控制每个变量。
58.鉴于目前所存在的上述问题,本技术提出了测试方案,该方案可以精准控制程序测试过程中的入参变量,提高测试灵活性。
59.为了便于理解,先对本技术所适用的物理框架进行介绍。
60.如图1所示,图1为本技术适用的物理架构示意图。在图1中,具有测试功能的系统或程序可以运行于服务器,该服务器通过网络从其他终端设备中获取测试任务(包括待测程序、相关测试用例等)、测试任务对应的各个测试项等。该服务器在获取到至少一个测试项后,首先基于各测试项中的标识信息确定哪个测试项中的哪个变量名称被指定为主循环变量名称,若没有指定主循环变量名称,则基于各个测试项中的变量值确定方式判断是否存在通过文件引用方式确定变量值的测试项;若存在,则从该测试项中选择变量值个数最多的变量名称作为主循环变量名称,并将主循环变量名称的变量值个数确定为遍历次数;将每个测试项作为待测项,按照待测项中的变量值确定方式为待测项中的变量名称赋值,并按照遍历次数和待测项中的遍历方式,将赋值后的变量名称传入待测程序进行程序测试,从而实现主循环变量名称和遍历次数的自动确定,以及各个变量的精准控制。
61.如图可知,该服务器可以与多个设备建立通信连接,服务器从这些设备中获取测试任务、测试任务对应的测试项等。图1中示出了多种终端设备,在实际场景中可以有更多或更少种类的终端设备参与到测试的过程中,具体数量和种类因实际场景而定,此处不做限定,另外,图1中示出了一个服务器,但在实际场景中,也可以有多个服务器的参与,具体服务器数量因实际场景而定。
62.应当注意的是,本实施例提供的测试方法可以离线进行,也可以在线进行。
63.可以理解的是,上述具有测试功能的系统或程序也可以运行于个人终端设备,也可以作为云端服务程序的一种,具体运作模式因实际场景而定,此处不做限定。其中,终端设备可以是固定终端,也可以是移动终端。示例性的,固定终端可以是台式计算机等,移动终端可以是智能手机、ipad、手提电脑、可穿戴设备、车载设备等。
64.结合以上共性,请参见图2,图2为本技术实施例提供的第一种测试方法流程图。如图2所示,该测试方法可以包括以下步骤:
65.s201、获取用户基于人机交互界面确定的至少一个测试项。
66.其中,每个测试项包括:变量名称;变量名称对应的遍历方式、变量值和变量值确定方式;变量名称是否被指定为主循环变量名称的标识信息。
67.在人机交互界面展示的各个测试项可参照图3,参考图3所示,一个测试项中的变量值确定方式可以是:用户指定方式、文件引用方式、或者用户指定方式和文件引用方式共存。
68.若变量值确定方式仅是用户指定方式,那么变量名称的输入栏可填写一个或多个变量名称。当填写一个变量名称时,变量值的输入栏可填写多个变量值,此时表示:该测试项中的这一个变量名称可以赋所填写的这多个变量值。当填写多个变量名称时,变量值的输入栏可填写一个变量值,此时表示:该测试项中的这多个变量名称均赋所填写的这一个变量值,即:所有变量名称对应的变量值相同。
69.若变量值确定方式仅是文件引用方式,那么变量名称的输入栏可填写一个或多个变量名称,变量值的输入栏不填写(即该输入栏为空),此时表示:可以在当前测试项对应的引用文件中查询这一个或多个变量名称可赋的变量值。
70.若变量值确定方式是用户指定方式和文件引用方式共存,那么优先用文件所提供的变量值。此时变量名称的输入栏可填写一个变量名称,变量值的输入栏可填写多个变量值,此时表示:先在当前测试项对应的引用文件中查询这一个变量名称可赋的变量值,若引
用文件中的变量值被测试完,则继续使用变量值这一栏所填写的变量值进行测试。
71.需要说明的是,当变量值确定方式包括用户指定方式时,由于需要确定变量名称与变量值之间的对应关系,因此需要明确下述两种情况:(1)一个变量名称对应不同变量值;(2)多个变量名称对应同一变量值。当然,若是可以在人机交互界面指定变量名称与变量值之间的对应关系,那么当变量值确定方式包括用户指定方式时,可以用不同标记指定变量名称与变量值之间的对应关系。例如:用户指定有变量名称a和b,那么a对应的变量值在变量值输入栏可以呈现为10a,b对应的变量值在变量值输入栏可以呈现为13b。如此用各个变量名称作为其对应的变量值的标记,从而可指定变量名称与变量值之间的对应关系。若变量名称a对应多个变量值,那么可以在变量值输入栏填写:11a、12a、13a等。
72.其中,可以设定变量名称输入栏和变量值输入栏的填写规则。例如:填写多个变量名称时用半角逗号隔开,填写多个变量值时也用半角逗号隔开。
73.其中,变量名称对应的遍历方式可以为顺序遍历或随机遍历。如:对某一个变量名称所对应的变量值输入栏所填写的变量值进行顺序遍历或进行随机遍历。或者对某一个变量名称在引用文件里所对应的变量值进行顺序遍历或随机遍历。引用文件如:excel表。若是一个测试项包括多个变量名称,那么这多个变量名称遵循相同的遍历方式。
74.基于图3所示的人机交互界面,可以在该界面指示填写信息需要遵循的规则和相关提示。具体可以在变量名和变量值的输入栏中显示填写格式和相关提示。例如:变量名输入栏填写格式和相关提示:a,b或者c不带“[%%]”。变量值输入栏填写格式和相关提示:多个变量值用“,”分隔,[%random()%]或者[%random(string(5))%]可生成随机变量值。
[0075]
图3中的一个item即对应一个测试项,通常一个item中设置一个变量名称。用户点击图3中的删除按钮,即可删除当前item中的相关信息。
[0076]
s202、若确定每个测试项中的变量名称均未被指定为主循环变量名称,则判断是否存在通过文件引用方式确定变量值的测试项;若是,则执行s203;若否,则执行s204。
[0077]
一个变量名称即对应一个变量,该变量可以为全局变量。主循环变量名称对应的变量即为主循环变量,其他变量的入参次数需要和主循环变量的入参次数保持一致。例如:某一个测试项中仅包括一个变量名称,若该变量名称被指定为主循环变量名称,且该变量名称的变量值有10个,即该变量名称需要入参10次,那么不管其他测试项中的各个变量名称的变量值有几个,它们也都需要入参10次。若其他测试项中的各个变量名称的变量值不够10个,那么重复入参相同变量值以达到10个,若其他测试项中的各个变量名称的变量值超过10个,则按顺序选前10个变量值入参。
[0078]
其中,变量名称是否被指定为主循环变量名称的标识信息可以用0或1表示。0表示未被指定为主循环变量名称,1表示被指定为主循环变量名称。当前也可以用其他标识信息,如:f(表示未被指定)和t(表示被指定)。参照图3所示,若用户勾选了“主循环参数”,则表示在当前测试项中选主循环变量。若用户未勾选“主循环参数”,则表示不在当前测试项中选主循环变量。当然,还可以让用户在勾选了“主循环参数”后,自主填写其所指定的主循环变量名称。若用户在勾选了“主循环参数”后,未填写其所指定的主循环变量名称或者填写错误,那么在当前测试项中选择变量值个数最多的变量名称作为主循环变量名称;若当前测试项中仅包括一个变量名称,那么可直接确定其为主循环变量名称。
[0079]
需要说明的是,不管是选择主循环变量,还是选择变量值,都是以引用文件为高优
先级。
[0080]
当一个测试项中用户指定方式和文件引用方式共存,且需要选择主循环变量时,直接基于引用文件进行选择。当一个测试项中用户指定方式和文件引用方式共存,且需要选择变量值时,先基于引用文件进行选择,后基于用户指定方式进行选择。
[0081]
s203、从通过文件引用方式确定变量值的测试项中选择变量值个数最多的变量名称作为主循环变量名称,并将主循环变量名称的变量值个数确定为遍历次数。
[0082]
若每个测试项中的变量名称均未被指定为主循环变量名称,此情况参照图3,就是用户没有勾选任何一个测试项中的“主循环参数”,那么判断当前所有测试项中是否存在通过文件引用方式确定变量值的测试项,因为引用文件为高优先级。
[0083]
若是当前所有测试项中存在通过文件引用方式确定变量值的测试项,那么看这些测试项中哪个变量名称的变量值个数最多,并将变量值个数最多的变量名称确定为主循环变量名称,以覆盖尽可能多的参数值。其中,若某一个测试项中用户指定方式和文件引用方式共存,那么某一变量名称的变量值个数包括:引用文件中的数据值个数和用户指定的数据值个数。
[0084]
s204、从所有测试项中选择变量值个数最多的变量名称作为主循环变量名称,并将主循环变量名称的变量值个数确定为遍历次数。
[0085]
若是当前所有测试项中不存在通过文件引用方式确定变量值的测试项,也即:当前测试没有引用文件。那么看所有测试项中哪个变量名称的变量值个数最多,并将变量值个数最多的变量名称确定为主循环变量名称,以覆盖尽可能多的参数值。
[0086]
s205、将每个测试项作为待测项,按照待测项中的变量值确定方式为待测项中的变量名称赋值,并按照遍历次数和待测项中的遍历方式,将赋值后的变量名称传入待测程序进行程序测试。
[0087]
在确定当前需要测试的各个变量,变量的赋值、遍历方式和遍历次数后,即可据此编写相应测试用例,以便进行程序测试。待测程序可以是某一接口调用程序、某一页面跳转程序等。
[0088]
由于本实施例由用户自主指定各个变量,变量的赋值、遍历方式和遍历次数,因此测试过程中可以对各个变量分别控制,从而有针对性的精准测试每个变量,提高了测试灵活性。并且,在用户未指定遍历次数时,后台可以自动确定遍历次数。
[0089]
可见,本实施例可以让用户基于人机交互界面确定至少一个测试项;每个测试项都包括:变量名称;变量名称对应的遍历方式、变量值和变量值确定方式;变量名称是否被指定为主循环变量名称的标识信息,并在用户未指定主循环变量名称时,选择变量值个数最多的变量名称作为主循环变量名称能够测试到更多的参数值,从而保障测试的全面性和完整性。由于用户已经指定了各个变量名称对应的遍历方式、变量值和变量值确定方式,因此实际测试时可以据此对各个变量分别控制,从而实现有针对性的精准测试每个变量。同时,用户基于人机交互界面就可以完成测试项中各项信息的更改,故无需频繁修改测试代码,提高了测试灵活性。
[0090]
请参见图4,图4为本技术实施例提供的第二种测试方法流程图。如图4所示,该测试方法可以包括以下步骤:
[0091]
s401、获取用户基于人机交互界面确定的至少一个测试项;
[0092]
s402、判断各个测试项中是否存在被指定有主循环变量名称的测试项;若是,则执行s403;若否,则执行s404;
[0093]
s403、从被指定有主循环变量名称的测试项中选择变量值个数最多的变量名称作为主循环变量名称,并执行s407;
[0094]
s404、判断是否存在通过文件引用方式确定变量值的测试项;若是,则执行s405;若否,则执行s406;
[0095]
s405、从通过文件引用方式确定变量值的测试项中选择变量值个数最多的变量名称作为主循环变量名称,并执行s407;
[0096]
s406、从所有测试项中选择变量值个数最多的变量名称作为主循环变量名称,并执行s407;
[0097]
s407、将主循环变量名称的变量值个数确定为遍历次数;
[0098]
s408、将每个测试项作为待测项,按照待测项中的变量值确定方式为待测项中的变量名称赋值,并按照遍历次数和待测项中的遍历方式,将赋值后的变量名称传入待测程序进行程序测试。
[0099]
在本实施例中,若存在被指定有主循环变量名称的测试项(此时被指定有主循环变量名称的测试项的个数n大于等于1且小于测试项的总个数),则从被指定有主循环变量名称的测试项中选择变量值个数最多的变量名称作为主循环变量名称,以覆盖尽可能多的参数值。
[0100]
若没有一个测试项中有指定主循环变量名称(即每个测试项中的变量名称均未被指定为主循环变量名称),那么判断是否存在通过文件引用方式确定变量值的测试项。若当前所有测试项中存在通过文件引用方式确定变量值的测试项,那么看通过文件引用方式确定变量值的测试项中哪个变量名称的变量值个数最多,并将变量值个数最多的变量名称确定为主循环变量名称,以覆盖尽可能多的参数值。
[0101]
若当前所有测试项中不存在通过文件引用方式确定变量值的测试项,也即:当前测试没有引用文件。那么看所有测试项中哪个变量名称的变量值个数最多,并将变量值个数最多的变量名称确定为主循环变量名称,以覆盖尽可能多的参数值。
[0102]
可见,本实施例既可以让用户在人机交互界面指定主循环变量名称,又可以在用户未指定主循环变量名称的情况下,自动确定主循环变量名称,从而确定遍历次数。由于用户已经指定了各个变量名称对应的遍历方式、变量值和变量值确定方式,因此实际测试时可以据此对各个变量分别控制,从而实现有针对性的精准测试每个变量。同时,用户基于人机交互界面就可以完成测试项中各项信息的更改,故无需频繁修改测试代码,提高了测试灵活性。
[0103]
基于上述任意实施例,需要说明的是,由于一个测试项中的变量值确定方式可以是:用户指定方式、文件引用方式、或者用户指定方式和文件引用方式共存;一个测试项中的变量名称、变量值的个数也都不定,因此给变量名称赋值时,需要参考这些情况相应进行。
[0104]
在一种具体实施方式中,按照待测项中的变量值确定方式为待测项中的变量名称赋值,包括:若基于待测项中的变量值确定方式,确定待测项通过文件引用方式确定变量值,且待测项包括至少一个变量名称,则在待测项对应的引用文件中,查询与待测项中的变
量名称相同的字符串,并利用字符串在引用文件中对应的数据值,为待测项中的变量名称赋值。
[0105]
其中,引用文件可以是excel表,故直接查询表头即可确定需要赋值的变量名称。一个表头对应的数据值列表即为相应变量名称对应的各个变量值。当然,不是引用文件中的所有数据值都需要入参,用户在人机交互界面指定了哪些变量名称,就提取哪些变量名称对应的数据值入参。
[0106]
在一种具体实施方式中,按照待测项中的变量值确定方式为待测项中的变量名称赋值,包括:若基于待测项中的变量值确定方式,确定待测项通过用户指定方式确定变量值,且待测项包括一个变量名称,则利用用户基于人机交互界面输入的数据值,为待测项中的变量名称赋值。或若基于所述待测项中的变量值确定方式,确定所述待测项通过用户指定方式确定变量值,所述待测项包括至少两个变量名称且所述至少两个变量名称对应的变量值相同,则利用用户基于所述人机交互界面输入的数据值,为所述待测项中的变量名称赋值。
[0107]
其中,若待测项通过用户指定方式确定变量值,那么需要确定用户基于人机交互界面指定的变量值和变量名称的对应关系。为方便确定此对应关系,本实施例限定:当用户基于人机交互界面指定一个变量名称时,可以指定多个变量值,以表示:该测试项中的这一个变量名称可以赋所填写的这多个变量值。当用户基于人机交互界面指定多个变量名称时,只能指定一个变量值,以表示:该测试项中的这多个变量名称对应同一个变量值。当然,若是用户基于人机交互界面指定了变量值和变量名称的对应关系,那么可不用受此实施例的限制。
[0108]
例如:用户指定有变量名称a和b,并指定a对应的变量值为10a,b对应的变量值为13b。即:用各个变量名称作为其对应的变量值的标记,从而指定变量名称与变量值之间的对应关系。若变量名称对应多个变量值,那么可以在每个变量值中进行标记。如:变量名称a对应的变量值为11a、12a、13a等。
[0109]
在一种具体实施方式中,按照待测项中的变量值确定方式为待测项中的变量名称赋值,包括:若基于待测项中的变量值确定方式,确定待测项通过文件引用方式和用户指定方式确定变量值,且待测项包括一个变量名称,则在待测项对应的引用文件中,查询与待测项中的变量名称相同的字符串,利用字符串在引用文件中对应的数据值,为待测项中的变量名称赋值后,利用用户基于人机交互界面输入的数据值为待测项中的变量名称赋值。
[0110]
其中,若确定待测项通过文件引用方式和用户指定方式确定变量值,那么也需要确定用户基于人机交互界面指定的变量值和变量名称的对应关系。为方便确定此对应关系,本实施例限定:此情况下,用户基于人机交互界面只能指定一个变量名称,可以指定多个变量值,以表示:该测试项中的这一个变量名称可以赋人机交互界面所指定的这多个变量值,以及引用文件中的相应数据值。当然,若是用户基于人机交互界面指定了变量值和变量名称的对应关系,那么可不用受此实施例的限制。具体可参照上文的相关介绍。
[0111]
基于上述任意实施例,需要说明的是,每个测试项还可以包括其他信息内容,例如:每个测试项还可以包括变量名称在一个请求中被多次调用时是否需要重复赋相同值的重复标记,以此表示:当一个请求中需要调用某一个变量名称多次时,这几次是否赋同一变量值。
[0112]
在一种具体实施方式中,按照待测项中的变量值确定方式为待测项中的变量名称赋值,包括:每个测试项还包括:变量名称在一个请求中被多次调用时是否需要重复赋相同值的重复标记,若基于待测项中的重复标记,确定待测项中的变量名称需要重复赋相同值,则按照待测项中的变量值确定方式为待测项中的变量名称重复赋相同值。
[0113]
需要说明的是,此处所述的“变量名称在一个请求中被多次调用时重复赋相同值”,不同于“对某一个变量值进行重复测试时的重复赋值”。变量名称在一个请求中被多次调用时是否需要重复赋相同值的重复标记即图3中的“请求体中变量值不重复”。若用户勾选此项,则在一个请求中需要调用某一个变量名称多次时,这几次赋不同变量值;若用户未勾选此项,则在一个请求中需要调用某一个变量名称多次时,这几次赋相同变量值。
[0114]
基于上述任意实施例,需要说明的是,将赋值后的变量名称传入待测程序进行程序测试之后,还包括:记录程序测试结果,将程序测试结果与预期结果进行对比,获得对比结果,存储并可视化对比结果。
[0115]
其中,预期结果也可以用变量表示,以方便对比程序测试结果与预期结果。若基于对比结果确定:程序测试结果有误,那么可以具体展示出错的参数、函数等相关细节。
[0116]
下面通过具体的应用场景实例描述,来介绍本技术提供的一种测试方案。该测试方案包括:测试服务器和测试客户端。
[0117]
请参见图5,该测试方案包括如下步骤:
[0118]
s501、用户基于测试客户端的人机交互界面确定至少一个测试项;
[0119]
s502、测试客户端将至少一个测试项发送至测试服务器;
[0120]
s503、测试服务器获取这些测试项,并基于所有测试项中的相关信息确定主循环变量名称和遍历次数;
[0121]
s504、测试服务器基于所有测试项中的相关信息精细控制各个变量进行程序测试;
[0122]
s505、测试完成后,测试服务器返回测试结果给测试客户端;
[0123]
s506、测试客户端展示测试结果。
[0124]
其中,关于本实施例中各个步骤的具体工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0125]
在本实施例中,每个测试项包括:变量名称;变量名称对应的遍历方式、变量值和变量值确定方式;变量名称是否被指定为主循环变量名称的标识信息;变量名称在一个请求中被多次调用时是否需要重复赋相同值的重复标记。具体可参照图3。
[0126]
本实施例将引用文件和变量自主赋值相结合,既可以有多个自主赋值变量,也可以有多个引用文件,且都是以全局变量的形式展现给用户。用户可以增加多个全局变量,这些全局变量可以是以文件驱动,也可以是以手动录入变量值驱动,当然可以有多个文件共同来进行数据驱动。其中,若使用多个文件共同来进行数据驱动,那么可以提前按照业务场景将同类数据划分至同一文件中,从而获得多个文件。例如:按照地域、职业、年龄等划分数据,从而将数据分类至多个文件,以便调用测试。
[0127]
用户可以在人机交互界面增加或删减item,如图3。用户点击图3中的上传按钮,并上传一个引用文件(如excel表),同时在变量名输入栏中填写和与文件配套的变量名称(所谓配套就是文件的表头名字和变量名相同)。
[0128]
用户填写完成各个item并提交后,测试服务器会读取引用文件中的表头,并和用户指定的变量名对比匹配,若确定相同,则该表头下的文件内容,并对应到用户指定的变量名上。具体请参见图6,图6中的每行数据表明了:变量名称对应的变量值。
[0129]
为了确定主循环变量,测试服务器可以计算变量值的长度(即个数)。若使用引用文件中的变量值,则直接以文件中数据的行数为准。若使用用户自主赋值的变量值,则基于分隔符号“,”的个数进行计算,如:“,”的个数加一。可见,在用户不指定主循环变量的情况下,测试服务器能够自主选择并确定主循环变量。当然,若用户有指定主循环变量,则以用户所指定的为准。
[0130]
在测试服务器中的执行引擎确认了主循环变量的情况下,其他非变量遵循主循环变量的遍历次数,同时按照相应item中的具体信息(如随机遍历或顺序遍历的遍历方式,一个请求体中是否重复赋值等)进行测试,达到精细控制各个变量的目的。
[0131]
本实施例能在用户不指定主循环变量的情况下,根据文件中数据的行数和/或用户自主赋值的变量值个数判断出主循环变量,具有主动识别变量值个数的能力,且能够根据用户的设定的item灵活地进行用例的数据驱动。其中,在确定上述主循环变量、主循环变量的遍历次数、各个item后,可以通过统一数据格式(如json格式)传递告知执行引擎。测试过程中遍历的精细化控制,由执行引擎完成。由于赋予了每个变量的遍历方式(如顺序遍历或随机遍历),因此整个测试过程可在用户的定义下,使得每个变量遵循相应item中所设定的遍历方式。
[0132]
可见,本实施例在低代码平台中实现了复杂的数据驱动操作,文件驱动与自主变量在测试中灵活调用,不失灵活性。在某一待测程序的测试用例执行过程中,主循环变量的遍历方式与非主循环变量的遍历方式可以不同且能够共存。以变量为控制粒度,精细化管理测试用例的驱动方式,遍历方式和遍历次数等。增加了数据驱动场景的灵活性,并能通过用户的配置,解决复杂场景的数据驱动问题。
[0133]
请参见图7,图7为本技术实施例提供的一种测试装置示意图,包括:
[0134]
获取模块701,用于获取用户基于人机交互界面确定的至少一个测试项;每个测试项包括:变量名称;变量名称对应的遍历方式、变量值和变量值确定方式;变量名称是否被指定为主循环变量名称的标识信息;
[0135]
确定模块702,用于若基于标识信息确定每个测试项中的变量名称均未被指定为主循环变量名称,则基于变量值确定方式判断是否存在通过文件引用方式确定变量值的测试项;若是,则从该测试项中选择变量值个数最多的变量名称作为主循环变量名称,并将主循环变量名称的变量值个数确定为遍历次数;
[0136]
测试模块703,用于将每个测试项作为待测项,按照待测项中的变量值确定方式为待测项中的变量名称赋值,并按照遍历次数和待测项中的遍历方式,将赋值后的变量名称传入待测程序进行程序测试。
[0137]
在一种具体实施方式中,测试模块包括:
[0138]
第一赋值单元,用于若基于待测项中的变量值确定方式,确定待测项通过文件引用方式确定变量值,且待测项包括至少一个变量名称,则在待测项对应的引用文件中,查询与待测项中的变量名称相同的字符串,并利用字符串在引用文件中对应的数据值,为待测项中的变量名称赋值。
[0139]
在一种具体实施方式中,测试模块包括:
[0140]
第二赋值单元,用于若基于待测项中的变量值确定方式,确定待测项通过用户指定方式确定变量值,且待测项包括一个变量名称,则利用用户基于人机交互界面输入的数据值,为待测项中的变量名称赋值。或若基于所述待测项中的变量值确定方式,确定所述待测项通过用户指定方式确定变量值,所述待测项包括至少两个变量名称且所述至少两个变量名称对应的变量值相同,则利用用户基于所述人机交互界面输入的数据值,为所述待测项中的变量名称赋值。
[0141]
在一种具体实施方式中,测试模块包括:
[0142]
第三赋值单元,用于若基于待测项中的变量值确定方式,确定待测项通过文件引用方式和用户指定方式确定变量值,且待测项包括一个变量名称,则在待测项对应的引用文件中,查询与待测项中的变量名称相同的字符串,利用字符串在引用文件中对应的数据值,为待测项中的变量名称赋值后,利用用户基于人机交互界面输入的数据值为待测项中的变量名称赋值。
[0143]
在一种具体实施方式中,测试模块包括:
[0144]
第四赋值单元,用于每个测试项还包括:变量名称在一个请求中被多次调用时是否需要重复赋相同值的重复标记,若基于待测项中的重复标记,确定待测项中的变量名称需要重复赋相同值,则按照待测项中的变量值确定方式为待测项中的变量名称重复赋相同值。
[0145]
在一种具体实施方式中,还包括:
[0146]
记录模块,用于记录程序测试结果,将程序测试结果与预期结果进行对比,获得对比结果,存储并可视化对比结果。
[0147]
在一种具体实施方式中,确定模块还包括:
[0148]
第一确定单元,用于若基于所述标识信息确定有n个测试项中的变量名称被指定为主循环变量名称,则从n个测试项中选择变量值个数最多的变量名称作为主循环变量名称。
[0149]
在一种具体实施方式中,确定模块还包括:
[0150]
第二确定单元,用于若基于所述变量值确定方式确定不存在通过文件引用方式确定变量值的测试项,则从所有测试项中选择变量值个数最多的变量名称作为主循环变量名称。
[0151]
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0152]
可见,本实施例提供了一种测试装置,该装置既可以让用户在人机交互界面指定主循环变量名称,又可以在用户未指定主循环变量名称的情况下,自动确定主循环变量名称,从而确定遍历次数。由于用户已经指定了各个变量名称对应的遍历方式、变量值和变量值确定方式,因此实际测试时可以据此对各个变量分别控制,从而实现有针对性的精准测试每个变量。同时,用户基于人机交互界面就可以完成测试项中各项信息的更改,故无需频繁修改测试代码,提高了测试灵活性。
[0153]
进一步的,本技术实施例还提供了一种电子设备。其中,上述电子设备既可以是如图8所示的服务器50,也可以是如图9所示的终端60。图8和图9均是根据一示例性实施例示
出的电子设备结构图,图中的内容不能被认为是对本技术的使用范围的任何限制。
[0154]
图8为本技术实施例提供的一种服务器的结构示意图。该服务器50,具体可以包括:至少一个处理器51、至少一个存储器52、电源53、通信接口54、输入输出接口55和通信总线56。其中,所述存储器52用于存储计算机程序,所述计算机程序由所述处理器51加载并执行,以实现前述任一实施例公开的测试方法中的相关步骤。
[0155]
本实施例中,电源53用于为服务器50上的各硬件设备提供工作电压;通信接口54能够为服务器50创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口55,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
[0156]
另外,存储器52作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统521、计算机程序522及数据523等,存储方式可以是短暂存储或者永久存储。
[0157]
其中,操作系统521用于管理与控制服务器50上的各硬件设备以及计算机程序522,以实现处理器51对存储器52中数据523的运算与处理,其可以是windows server、netware、unix、linux等。计算机程序522除了包括能够用于完成前述任一实施例公开的测试方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据523除了可以包括测试任务等数据外,还可以包括应用程序的开发商信息等数据。
[0158]
图9为本技术实施例提供的一种终端的结构示意图,该终端60具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
[0159]
通常,本实施例中的终端60包括有:处理器61和存储器62。
[0160]
其中,处理器61可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器61可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器61也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器61可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器61还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0161]
存储器62可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器62还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器62至少用于存储以下计算机程序621,其中,该计算机程序被处理器61加载并执行之后,能够实现前述任一实施例公开的由终端侧执行的测试方法中的相关步骤。另外,存储器62所存储的资源还可以包括操作系统622和数据623等,存储方式可以是短暂存储或者永久存储。其中,操作系统622可以包括windows、unix、linux等。数据623可以包括但不限于测试任务、测试项。
[0162]
在一些实施例中,终端60还可包括有显示屏63、输入输出接口64、通信接口65、传
感器66、电源67以及通信总线68。
[0163]
本领域技术人员可以理解,图9中示出的结构并不构成对终端60的限定,可以包括比图示更多或更少的组件。
[0164]
进一步的,本技术实施例还公开了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的测试方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0165]
需要指出的是,上述仅为本技术的较佳实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
[0166]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0167]
本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1