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

文档序号:31053708发布日期:2022-08-06 09:49阅读:106来源:国知局
一种测试方法、装置、电子设备及存储介质与流程

1.本公开涉及互联网技术领域,尤其涉及一种测试方法、装置、电子设备及存储介质。


背景技术:

2.随着当前的移动互联网的迅速发展,海量的应用和网站被投放入市场或者根据用户的反馈不断迭代更新,为了保证上传的应用或者网站尽量少的出现程序错误,也就是bug,开发人员需要在其上线前进行测试。
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.在一些可能的实施例中,当至少一个待测试功能中的一个待测试功能为目标待测试功能,测试模块,被配置为执行:
54.从目标待测试功能的测试数据中获取脚本数据和预期数据;
55.基于脚本数据获取目标待测试功能的测试数据;
56.基于预测数据和预期数据确定目标待测试功能的测试结果。
57.在一些可能的实施例中,当目标待测试功能为第一待测试功能,且第一待测试功能的测试需求种类为前端界面显示的第一测试需求时,测试模块,被配置为执行:
58.从第一待测试功能的测试数据中获取界面脚本数据和第一预期数据;
59.基于界面脚本数据获取第一待测试功能中的目标的当前数据;
60.基于当前数据和第一预期数据确定第一待测试功能的测试结果。
61.在一些可能的实施例中,当目标待测试功能为第二待测试功能,且第二待测试功能的测试需求种类为后端接口调用的第二测试需求时,测试模块,被配置为执行:
62.从第二待测试功能的测试数据中获取调用脚本数据和第二预期数据;
63.基于调用脚本数据获取第二待测试功能的返回数据;
64.基于返回数据和第二预期数据确定第二待测试功能的测试结果。
65.在一些可能的实施例中,测试模块,被配置为执行:
66.从第二待测试功能的测试数据中获取输入数据;
67.基于调用脚本数据调用第二待测试功能对应的接口,获取输入数据的第一类模拟的返回数据。
68.在一些可能的实施例中,当目标待测试功能为第三待测试功能,且第三待测试功能的测试需求种类为前端界面显示和后端接口调用的混合测试需求时,测试模块,被配置为执行:
69.从第三待测试功能的测试数据中获取界面脚本数据、调用脚本数据、第一预期数据和第二预期数据;
70.基于界面脚本数据获取第三待测试功能中的目标的当前数据;
71.基于调用脚本数据获取第三待测试功能的返回数据;
72.基于当前数据和第一预期数据确定第一待测试功能的第一测试结果;
73.基于返回数据和第二预期数据确定第二待测试功能的第二测试结果;
74.根据第一测试结果和第二测试结果确定混合测试结果。
75.在一些可能的实施例中,测试模块,被配置为执行:
76.基于调用脚本数据调用实例建立语句,获取第三待测试功能对应的实例的第二类模型的返回数据。
77.根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现如上述第一方面中任一项的方法。
78.根据本公开实施例的第四方面,提供一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本公开实施例的第一方面中任一项的方法。
79.根据本公开实施例的第五方面,提供一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序存储在可读存储介质中,计算机设备的至少一个处理器从可读存储介质读取并执行计算机程序,使得计算机设备执行本公开实施例的第一方面中任一项的方法。
80.本公开的实施例提供的技术方案至少带来以下有益效果:
81.获取待测试对象和待测试对象的测试描述文档,基于测试描述文档确定待测试对象对应的一个或多个测试任务,多个测试任务中的每个测试任务包括一个待测试功能的测试数据、测试需求种类和测试顺序标识,基于每个测试任务包括的待测试功能的测试顺序标识确定一个或多个测试集,多个测试集中的每个测试集包括至少一个待测试功能,在同一时间段内,基于目标测试集包括的至少一个待测试功能的测试数据和测试需求种类,对目标测试集包括的至少一个待测试功能进行并行测试,目标测试集为多个测试集中的一个测试集。本技术通过并行测试,可以提升测试执行效率,减少测试时间。
82.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
83.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
84.图1是根据一示例性实施例示出的一种应用环境的示意图;
85.图2是根据一示例性实施例示出的一种测试方法的流程图;
86.图3是根据一示例性实施例示出的一种确定测试任务的流程图;
87.图4是根据一示例性实施例示出的一种测试环境的示意图;
88.图5是根据一示例性实施例示出的一种测试第一待测试功能的流程图;
89.图6是根据一示例性实施例示出的一种测试第二待测试功能的流程图;
90.图7是根据一示例性实施例示出的一种测试第三待测试功能的流程图;
91.图8是根据一示例性实施例示出的一种测试装置的框图;
92.图9是根据一示例性实施例示出的一种用于测试的电子设备的框图。
具体实施方式
93.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
94.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的第一对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
95.本技术中有关用户的所有数据均是用户授权后的数据。
96.请参阅图1,图1是根据一示例性实施例示出的一种测试方法的应用环境的示意图,如图1所示,该应用环境可以包括测试设备01和服务器02。
97.本技术实施例中,测试设备01可以获取待测试对象和待测试对象的测试描述文档,基于测试描述文档确定待测试对象对应的一个或多个测试任务,多个测试任务中的每个测试任务包括一个待测试功能的测试数据、测试需求种类和测试顺序标识,基于每个测试任务包括的待测试功能的测试顺序标识确定一个或多个测试集,多个测试集中的每个测试集包括至少一个待测试功能,在同一时间段内,基于目标测试集包括的至少一个待测试功能的测试数据和测试需求种类,对目标测试集包括的至少一个待测试功能进行并行测试,目标测试集为多个测试集中的一个测试集。
98.可选的呢,测试设备01可以包括但不限于智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、数字助理、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、智能可穿戴设备等类型的设备。也可以为运行于上述设备的软体,例如应用程序、小程序等。可选的,设备上运行的操作系统可以包括但不限于安卓系统、ios系统、linux、windows、unix等。
99.可选的,服务器02用于辅助测试设备测试使用,可以包括独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器上运行的操作系统可以包括但不限于安卓系统、ios系统、linux、windows、unix等。
100.此外,需要说明的是,图1所示的仅仅是本公开提供的测试方法的一种应用环境,在实际应用中,还可以包括其他应用环境。
101.图2是根据一示例性实施例示出的一种测试方法的流程图,如图2所示,测试方法可以应用于服务器,也可以应用于客户端,包括以下步骤:
102.在步骤s201中,获取待测试对象和待测试对象的测试描述文档。
103.在一些可能的实施例中,测试设备可以获取待测试对象和待测试对象的测试描述文档。
104.可选的,待测试对象可以是一个应用程序或者网站。可选的,待测试对象可以是应用程序或者网站中的某个单一模块,或者是某些模块的集合。
105.在步骤s203中,基于测试描述文档确定待测试对象对应的一个或多个测试任务;多个测试任务中的每个测试任务包括一个待测试功能的测试数据、测试需求种类和测试顺序标识。
106.在一种可选的实施例中,待测试对象的测试描述文档可以包括一个文件或者多个文件,一个文件或者多个文件可以对应一个测试任务。该测试任务中可以包括待测试功能的测试数据、测试需求种类和测试顺序标识。
107.在一种可选的实施例中,待测试对象的测试描述文档可以包括多个文件,多个文件中的每个文件可以对应一个测试任务,一个测试任务中可以包括一个待测试功能所需要的所有数据。也就是说,测试描述文档包括多个测试任务,每个测试任务可以包括待测试功能的测试数据、测试需求种类和测试顺序标识。
108.上述的实施例中,上传至测试设备的测试描述文档已经被提前规划好,测试设备可以直接从中提取一个个测试任务进行后续的测试。如此,本技术实施例减轻了测试设备用于确定出测试任务所需的硬件软件资源。
109.在另一种可选的实施例中,测试描述文档中并不存在一个个独立的,已经区分开的测试任务,而是基于一定的规则,通过测试描述文档确定的待测试对象对应的多个测试任。如此,可以减轻前期人工的准备工作,减少人力成本。图3是根据一示例性实施例示出的一种确定测试任务的流程图,如图3所示:
110.在步骤s2031中,基于测试描述文档确定每个待测试功能的测试数据和功能描述语句。
111.本技术实施例中,测试设备可以基于测试描述文档确定每个待测试功能的测试数据和功能描述语句。
112.在一些可能的实施例中,测试数据可以根据其所属的待测功能来确定。可选的,测试数据可以包括脚本数据和预期数据,可以包括输入数据、脚本数据和预期数据。其中,输入数据可以被称为入参。
113.在一些可能的实施例中,功能描述语句可以包括待测试功能的名称或者是代号,还可以包括该待测试功能所要达到的测试效果描述。
114.举个例子,一个功能描述语句为“目录拖拽,将第三条目录从原先的位置拖拽至第一条目录的位置上并显示,且拖拽完毕后,当第三条目录被点击后,可以通过跳转接口测试确定是否可以跳转至内容处”。其中,功能描述语句中的“目录拖拽”为待测试功能的名称或者是代号,其他“将第三条目录从原先的位置拖拽至第一条目录的位置上,且拖拽完毕后,当第三条目录被点击后,可以通过跳转接口测试确定是否可以跳转至预设内容处”是该待测试功能所要达到的测试效果描述。
115.再举个例子,一个功能描述语句为“表格1的获取,通过数据库接口获取表格1”。其中,功能描述语句中的“表格1的获取”为待测试功能的名称或者是代号,其他“通过数据库接口获取表格1”是该待测试功能所要达到的测试效果描述。
116.在步骤s2033中,识别功能描述语句的需求种类关键字,得到每个待测试功能的测试需求种类。
117.本技术实施例中,测试需求种类可以根据实际的测试需求进行确定。由于本技术着重于前端界面显示和后端接口调用测试之间的区分,因此,可以将测试需求种类定义为包括以下三类:前端界面显示的第一测试需求,后端接口调用的第二测试需求,前端界面显示和后端接口调用的混合测试需求。
118.具体的,前端界面显示的第一测试需求为用户界面测试验证的需求,例如验证图表正常显示功能,只需要在网页上验证图表的展示位置以及图例信息是否正确。后端接口调用的第二测试需求验证对应的接口是否可以正常调用。前端界面显示和后端接口调用的混合测试需求是上述两个内容的结合,比如不仅要验证图表是否调用成功,也需要验证网页上的图表的展示位置以及图例信息是否展示正确。
119.现有技术中,使用的测试方案更多的专注于后端接口调用的测试,忽略了前端界面显示的测试。当被测试对象需要前端界面显示的测试时,一般通过测试人员手工测试,由于拆分成设备自主测试和人工测试,使得整个测试过程不仅没有了测试的连贯性,且加大了测试人员的工作量。基于此,本神请实施例可以对功能描述语句进行需求种类关键字识别,得到每个待测试功能的测试需求种类。
120.在对功能描述语句进行需求种类关键字识别之前,测试设备可以先获取测试需求种类对应的关键字,举个例子,若出现“显示”,“展示”,“出现”等涉及到前端界面显示的一些字或者词,则确定待测试功能的测试需求种类包括前端界面显示的第一测试需求。若出现“调用接口”,“返回值”,“通过
……
接口”等涉及到后端接口调用的一些字或者词,则确定待测试功能的测试需求种类包括后端接口调用的第二测试需求。若既出现“显示”,“展示”,“出现”等涉及到前端界面显示的一些字或者词,还出现“调用接口”,“返回值”等涉及到后端接口调用的一些字或者词,则确定待测试功能的测试需求种类包括前端界面显示和后端接口调用的混合测试需求。其中,上述内容中出现的测试需求种类对应的关键字是预先设置的,也可以存在其他可行的关键字词。
121.基于第一个功能描述语句的例子继续阐述,当测试设备获取“目录拖拽,将第三条目录从原先的位置拖拽至第一条目录的位置上并显示,且拖拽完毕后,当第三条目录被点击后,可以通过跳转接口测试确定是否可以跳转至内容处”的功能描述语句后,测试设备可以进行需求种类关键字识别,具体为:基于“显示”确定待测试功能需要进行前端界面显示测试,基于“通过
……
接口”确定待测试功能需要进行后端接口调用测试,由此,可以确定该待测试功能的测试需求种类为前端界面显示和后端接口调用的混合测试需求。
122.基于第二个功能描述语句的例子继续阐述,当测试设备获取“表格1的获取,通过数据库接口获取表格1”的功能描述语句后,测试设备可以进行需求种类关键字识别,具体为:基于“通过
……
接口”确定待测试功能需要进行后端接口调用测试,由此,可以确定该待测试功能的测试需求种类为后端接口调用的第二测试需求。
123.基于第三个功能描述语句的例子继续阐述,当测试设备获取“界面展示,在界面上展示xxx的图表”的功能描述语句后,测试设备可以进行需求种类关键字识别,具体为:基于“展示”确定待测试功能需要进行前端界面显示测试,由此,可以确定该待测试功能的测试需求种类为前端界面显示的第一测试需求。
124.以上示例的功能描述语句只是可选的一种方式,即通过纯文字的方式表示功能描述语句。但是,由于某些功能描述语句的表述可能存在一些原因(比如说错字,别字),不能
很好地被测试设备识别出关键字。基于此,测试设备在定义关键字的时候,不仅可以定义如“显示”,“展示”,“出现”等涉及到前端界面显示的一些字或者词,还可以定义“【1】”来代表待测试功能需要进行前端界面显示测试。同样的,不仅可以定义如“调用接口”,“返回值”,“通过
……
接口”等涉及到后端接口调用的一些字或者词,还可以定义“【2】”来代表待测试功能需要进行后端接口调用测试。
125.如此,当测试设备获取“目录拖拽,将第三条目录从原先的位置拖拽至第一条目录的位置上并显示【1】,且拖拽完毕后,当第三条目录被点击后,可以通过跳转接口【2】测试确定是否可以跳转至内容处”的功能描述语句后,测试设备可以进行需求种类关键字识别,具体为:基于“显示”和/或【1】确定待测试功能需要进行前端界面显示测试,基于“通过
……
接口”和/或【2】确定待测试功能需要进行后端接口调用测试,由此,可以确定该待测试功能的测试需求种类为前端界面显示和后端接口调用的混合测试需求。上述的“【1】”和“【2】”为示例性的指代测试需求的标识,在本技术实施例中,还可以使用如“aaa”和“bbb”等字符串来表示,对此,本技术不做限制。
126.在步骤s2035中,识别功能描述语句的顺序标识,得到每个待测试功能的测试顺序标识。
127.本技术实施例中,测试顺序标识可以用于确定出一个或者多个测试集,其中,多个测试集中的每个测试集包括至少一个待测试功能,以便测试设备在同一时间段内,基于目标测试集包括的至少一个待测试功能的测试数据和测试需求种类对目标测试集包括的至少一个待测试功能进行并行测试,而不是串行地,一个一个测试。基于此,为了使得测试设备可以确定出哪些待测试功能可以放在同一时间并行测试,功能描述语言除了包括上述的待测试功能的名称或者是代号,以及所要达到的测试效果描述,还可以包括测试顺序标识。举个例子,功能描述语句1“界面展示,在界面上展示xxx的图表,widget”,功能描述语句2“界面展示,在界面上展示yyy的图表,widget”,功能描述语句3“界面展示,在界面上展示zzz的图表,widget”都包括同一个测试顺序标识“widget”,当测试设备获取上述3个功能描述语句中的任一个,都可以识别得到测试顺序标识“widget”。
128.在步骤s2037中,基于每个待测试功能的测试数据、测试需求种类和测试顺序标识,确定一个或多个测试任务。
129.本技术实施例中,测试设备可以将识别得到的测试需求种类和测试顺序标识和测试数据进行打包,得到一个测试任务,其他的测试任务可以按照上述打包得到。
130.在步骤s205中,基于每个测试任务包括的待测试功能的测试顺序标识确定一个或多个测试集;多个测试集中的每个测试集包括至少一个待测试功能。
131.本技术实施例中,测试设备可以基于每个测试任务包括的待测试功能的测试顺序标识确定一个或者多个测试集。其中,每个测试集包括至少一个待测试功能,或者说,每个测试集包括至少一个测试任务。
132.比如,可以将上述都带有测试顺序标识“widget”的3个测试任务归属于一个测试集。
133.可选的,归属于一个测试集中的待测试功能之间不存在顺序关系,假设一个测试集中包括1,2,3共三个待测试功能,以待测试功能1和待测试功能2为例子,不存在顺序关系是指:不能出现测试完待测试功能1之后才能测试待测试功能2的情况,即待测是功能1和待
测试功能2在实际应用过程中互不干涉。
134.在上述s201-s205的步骤都执行完之后,就可以进行测试步骤了。
135.本技术实施例中,在进行测试之前,需要基于待测试对象的开发语言以及涉及的服务确定测试框架。比如,当开发语言为java语言时,可以使用java配套的一些插件软件,比如使用junit5和selenium两种框架进行测试。
136.待测试功能可以是集成测试或者单元测试。举个例子,某个待测试功能是集成测试,当启动该待测试功能的集成测试前,需要构建起依赖环境,然后运行单元测试和集成测试脚本进行测试。
137.图4是根据一示例性实施例示出的一种测试环境的示意图,如图4所示,包括待测试功能(服务a),服务a依赖于下游服务,包括外部服务b,外部服务c,内部服务d和内部服务e,其中,外部服务b和外部服务c是第三方提供的服务(比如鉴权服务)。实际上,在线下或者测试阶段是调不通第三方服务的,只要把服务a上线,部署到容器云中,才能调通外部服务b和外部服务c。如此,本技术可以通过模拟mock思想模拟第三方服务的返回值,来保证测试过程的顺利实行。
138.本技术实施例中,集成测试也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。单元测试是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如c语言中单元指一个函数,java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
139.本技术实施例中,mock思想是指在测试过程中,对于一些不容易构造/获取的对象,创建一个mock对象来模拟对象的行为。比如说需要调用h服务,可是h服务还没有开发完成,那么就可以将调用h服务的那部分给mock掉,并编写想要的返回结果。
140.在步骤s207中,在同一时间段内,基于目标测试集包括的至少一个待测试功能的测试数据和测试需求种类,对目标测试集包括的至少一个待测试功能进行并行测试,目标测试集为多个测试集中的一个测试集。
141.本技术实施例中,在构建好待测试对象的测试环境后,测试设备可以在同一时间段内,基于目标测试集包括的至少一个待测试功能的测试数据和测试需求种类对目标个测试集包括的至少一个待测试功能进行并行测试。
142.可选的,假设至少一个待测试功能中的一个待测试功能为目标待测试功能,在该目标待测试功能和同属目标测试集的其他待测试功能被同一时间段测试时,目标待测试功能的测试过程为:测试设备从目标待测试功能的测试数据中获取脚本数据和预期数据,基于脚本数据获取目标待测试功能的测试数据,基于预测数据和预期数据确定目标待测试功能的测试结果。
143.其中,预期数据是指预期想要得到的数据,用来和实际测试过程中得到的测试数据进行对比,从而得到测试结果。
144.在一种可选的实施例中,当目标待测试功能为第一待测试功能,且第一待测试功能的测试需求种类为前端界面显示的第一测试需求时,图5是根据一示例性实施例示出的
一种测试第一待测试功能的流程图,如图5所示:
145.在步骤s501中,从第一待测试功能的测试数据中获取界面脚本数据和第一预期数据。
146.可选的,界面脚本数据用于模拟用户进行操作,第一预期数据指理想的数据。前端界面显示的单一测试需求需要执行自动化操作页面脚本捕获目标元素的取值,来进行结果比对。
147.在步骤s503中,基于界面脚本数据获取第一待测试功能中的目标的当前数据。
148.可选的,测试设备可以执行界面脚本数据来模拟用户进行操作,比如进行点击,从而获取表格中某个字段的当前比对值,比如年份的显示格式。
149.在步骤s505中,基于当前数据和第一预期数据确定第一待测试功能的测试结果。
150.测试设备可以基于当前数据和第一预期数据确定第一待测试功能的测试结果。具体的,当年份的显示格式和第一预期数据一致,则测试成功,否则失败。
151.在另一种可选的实施例中,当目标待测试功能为第二待测试功能,且第二待测试功能的测试需求种类为后端接口调用的第二测试需求时,图6是根据一示例性实施例示出的一种测试第二待测试功能的流程图,如图6所示:
152.在步骤s601中,从第二待测试功能的测试数据中获取调用脚本数据和第二预期数据。
153.可选的,调用脚本数据用于模拟用户进行操作,第二预期数据指理想的数据。
154.在步骤s603中,基于调用脚本数据获取第二待测试功能的返回数据。
155.在步骤s605中,基于返回数据和第二预期数据确定第二待测试功能的测试结果。
156.在一些可能的实施例中,测试设备基于调用脚本数据获取第二待测试功能的返回数据可以表示为:测试设备从第二待测试功能的测试数据中获取输入数据,基于调用脚本数据调用第二待测试功能对应的接口,获取输入数据的第一类模拟的返回数据。该返回数据是基于上述的mock思想定义的返回数据。该返回数据可以是别人模拟的,可以环境生成的,可以是在进行待测试对象测试前,准备好的。
157.以新建图表对应的待测试功能为例,该待测试功能所要达到的测试效果描述为新建图表数据库中对应表的数据会发生变化和调用新建图表接口会返回结果。
158.本技术实施例采用缓存数据库专门用于测试功能需求,与实际项目使用的数据隔离,确保测试工作不会影响项目实际数据。测试的所有数据都来自于缓存数据库,其测试结果也是与缓存数据库中的数据进行对比。举个例子,调用接口之后,会基于输入数据自动从缓存数据库中获取需要的表,并将此表打印成json文件,然后通过读取json文件和新建图表之前对应的表的json文件,查找表中新增或更改的数据。此时的第二预期数据为新增或更改的数据。
159.若要返回的表格是一个很大的对象,该很大的对象里面含有多个对象和多个集合(属性集合,或者参数集合),多个对象和多个集合内部也包含其他复杂对象和集合。本技术实施例可以保证返回的内嵌的对象都实现和预期数据的比对。
160.可选的,也可以采取封装的结果对比工具类进行结果验证。对比工具类中可以是对list,set等集合类型的结果对比,也可以是对某类对象的结果对比。如此,可以将返回的对象和第二预期数据(预期返回的对象)进行比对。
161.如此,本技术不仅可以对最外表的对象进行验证,还可以对对象内,内嵌的对象和集合进行验证,实现了多维度验证测试结果,从而保证测试的准确性。
162.在另一些可能的实施例中,测试设备基于调用脚本数据获取第二待测试功能的返回数据可以表示为:基于调用脚本数据调用实例建立语句,获取第二待测试功能对应的实例的第二类模型的返回数据。举个例子,要测试正常连接某个数据库对象,该数据库对象是一个非常复杂的数据库。该数据库利用原有的mock思想不能生成,也没有别人模拟得到的数据。基于此,测试设备可以在测试前构造一个外部服务实例去返回特定的结果。
163.例如,待测试对象依赖的外部服务中有一个数据库连接服务类名为sqlutils,该类下有一个方法为数据库连接方法名为connect(source source),调用该方法时需要传入一个数据库资源,它会实现数据库连接。但是当对象部署到其他环境时无法保证数据库总被成功连接,那么这时候就需要模拟外部服务,如果不通过mock的方式实现的话,可以给sqlutils类新增一个set(source source)方法,然后新建一个sqlutils实例,该实例调用set(source source)方法,而传入的数据库资源为事先准备好的数据库(保证在不同环境能成功连接,这个数据库一般为缓存数据库)。即,新建一个外部服务实例(sqlutils实例),然后测试的时候调用其set方法(即实例建立语句),就会返回一个事先准备好的实例。这是因为sqlutils它代表mysql数据库工具类,内部包含数据库连接函数,测试设备利用它可以连接数据库。
164.在另一种可选的实施例中,当目标待测试功能为第三待测试功能,且第三待测试功能的测试需求种类为前端界面显示和后端接口调用的混合测试需求时,图7是根据一示例性实施例示出的一种测试第三待测试功能的流程图,如图7所示:
165.在步骤s701中,从第三待测试功能的测试数据中获取界面脚本数据、调用脚本数据、第一预期数据和第二预期数据。
166.可选的,界面脚本数据用于模拟用户进行操作,调用脚本数据用于模拟用户进行操作,第一预期数据和第二预期数据指理想的数据。前端界面显示的第一一测试需求需要执行自动化操作页面脚本捕获目标元素的取值,来进行结果比对。
167.在步骤s702中,基于界面脚本数据获取第三待测试功能中的目标的当前数据。
168.可选的,测试设备可以执行界面脚本数据来模拟用户进行操作,比如进行点击,从而获取表格中某个字段的当前比对值,比如年份的显示格式。
169.在步骤s703中,基于调用脚本数据获取第三待测试功能的返回数据。
170.在步骤s704中,基于当前数据和第一预期数据确定第一待测试功能的第一测试结果。
171.测试设备可以基于当前数据和第一预期数据确定第一待测试功能的测试结果。具体的,当年份的显示格式和第一预期数据一致,则测试成功,否则失败。
172.在步骤s705中,基于返回数据和第二预期数据确定第二待测试功能的第二测试结果。
173.测试设备可以基于返回数据和第二预期数据确定第二待测试功能的第二测试结果。
174.在步骤s706中,根据第一测试结果和第二测试结果确定混合测试结果。
175.本技术实施例中,测试设备可以基于第一测试结果和第二测试结果确定混合测试
结果,来确定测试是否通过。
176.在一些可能的实施例中,测试设备基于调用脚本数据获取第三待测试功能的返回数据包括:测试设备基于调用脚本数据调用实例建立语句,获取第三待测试功能对应的实例的第二类模型的返回数据。
177.举个例子,要测试正常连接某个数据库对象,该数据库对象是一个非常复杂的数据库。该数据库利用原有的mock思想不能生成,也没有别人模拟得到的数据。基于此,测试设备可以在测试前构造一个外部服务实例去返回特定的结果。
178.例如,待测试对象依赖的外部服务中有一个数据库连接服务类名为sqlutils,该类下有一个方法为数据库连接方法名为connect(source source),调用该方法时需要传入一个数据库资源,它会实现数据库连接。但是当对象部署到其他环境时无法保证数据库总被成功连接,那么这时候就需要模拟外部服务,如果不通过mock的方式实现的话,可以给sqlutils类新增一个set(source source)方法,然后新建一个sqlutils实例,该实例调用set(source source)方法,而传入的数据库资源为事先准备好的数据库(保证在不同环境能成功连接,这个数据库一般为缓存数据库)。即,新建一个外部服务实例(sqlutils实例),然后测试的时候调用其set方法(即实例建立语句),就会返回一个事先准备好的实例。这是因为sqlutils它代表mysql数据库工具类,内部包含数据库连接函数,测试设备利用它可以连接数据库。
179.在另一些可能的实施例中,测试设备基于调用脚本数据获取第三待测试功能的返回数据包括:测试设备从第三待测试功能的测试数据中获取输入数据,基于调用脚本数据调用第三待测试功能对应的接口,获取输入数据的第一类模拟的返回数据。该返回数据是基于上述的mock思想定义的返回数据。该返回数据可以是别人模拟的,可以环境生成的,在进行待测试对象测试前,准备好的。
180.以新建图表对应的待测试功能为例,该待测试功能所要达到的测试效果描述为新建图表数据库中对应表的数据会发生变化和调用新建图表接口会返回结果。
181.本技术实施例采用缓存数据库专门用于测试功能需求,与实际项目使用的数据隔离,确保测试工作不会影响项目实际数据。测试的所有数据都来自于缓存数据库,其测试结果也是与缓存数据库中的数据进行对比。举个例子,调用接口之后,会基于输入数据自动从缓存数据库中获取需要的表,并将此表打印成json文件,然后通过读取json文件和新建图表之前对应的表的json文件,查找表中新增或更改的数据。此时的第二预期数据为新增或更改的数据。
182.若要返回的表格是一个很大的对象,该很大的对象里面含有多个对象和多个集合(属性集合,或者参数集合),多个对象和多个集合内部也包含其他复杂对象和集合。本技术实施例可以保证返回的内嵌的对象都实现和预期数据的比对。
183.可选的,也可以采取封装的结果对比工具类进行结果验证。对比工具类中可以是对list,set等集合类型的结果对比,也可以是对某类对象的结果对比。如此,可以将返回的对象和第二预期数据(预期返回的对象)进行比对。
184.如此,本技术通过接口脚本数据调用待测试功能对应的接口,不仅可以对最外表的表格的获取进行验证,还可以对表格内,内嵌的对象和集合(属性数据和参数数据)进行验证,同时,还可以验证表格在界面上的呈现,如此,实现了多维度验证测试结果,从而保证
测试的准确性。
185.综上所述,本技术研发出一种面向前端界面显示和后端接口调用的自动化测试方法能够满足绝大多数项目中的功能测试,提升了需求测试的覆盖率,使得更多的需求可测。其次,本技术提出的测试结果验证方式,可以多维度比对验证结果,更大程度去发现测试结果的对比漏洞,提升了测试结果正确的可信度。再者,本发明提供的基于以抵用实例建立语句实行的轻量化的mock思想可以模拟外部服务,简单操作。最后,本发明通过并行测试,提升执行效率,较少测试时间。
186.图8是根据一示例性实施例示出的一种测试装置框图。参照图8,该装置包括获取模块801,任务确定模块802,测试集确定模块803和测试模块804。
187.获取模块,被配置为执行获取待测试对象和待测试对象的测试描述文档;
188.任务确定模块,被配置为执行基于测试描述文档确定待测试对象对应的一个或多个测试任务;多个测试任务中的每个测试任务包括一个待测试功能的测试数据、测试需求种类和测试顺序标识;
189.测试集确定模块,被配置为执行基于每个测试任务包括的待测试功能的测试顺序标识确定一个或多个测试集;多个测试集中的每个测试集包括至少一个待测试功能;
190.测试模块,被配置为执行在同一时间段内,基于目标测试集包括的至少一个待测试功能的测试数据和测试需求种类,对目标测试集包括的至少一个待测试功能进行并行测试;
191.目标测试集为多个测试集中的一个测试集。
192.在一些可能的实施例中,任务确定模块,被配置为执行:
193.基于测试描述文档确定每个待测试功能的测试数据和功能描述语句;
194.识别功能描述语句的需求种类关键字,得到每个待测试功能的测试需求种类;
195.识别功能描述语句的顺序标识,得到每个待测试功能的测试顺序标识;
196.基于每个待测试功能的测试数据、测试需求种类和测试顺序标识,确定一个或多个测试任务。
197.在一些可能的实施例中,测试需求种类包括前端界面显示的第一测试需求、后端接口调用的第二测试需求、前端界面显示和后端接口调用的混合测试需求。
198.在一些可能的实施例中,当至少一个待测试功能中的一个待测试功能为目标待测试功能,测试模块,被配置为执行:
199.从目标待测试功能的测试数据中获取脚本数据和预期数据;
200.基于脚本数据获取目标待测试功能的测试数据;
201.基于预测数据和预期数据确定目标待测试功能的测试结果。
202.在一些可能的实施例中,当目标待测试功能为第一待测试功能,且第一待测试功能的测试需求种类为前端界面显示的第一测试需求时,测试模块,被配置为执行:
203.从第一待测试功能的测试数据中获取界面脚本数据和第一预期数据;
204.基于界面脚本数据获取第一待测试功能中的目标的当前数据;
205.基于当前数据和第一预期数据确定第一待测试功能的测试结果。
206.在一些可能的实施例中,当目标待测试功能为第二待测试功能,且第二待测试功能的测试需求种类为后端接口调用的第二测试需求时,测试模块,被配置为执行:
207.从第二待测试功能的测试数据中获取调用脚本数据和第二预期数据;
208.基于调用脚本数据获取第二待测试功能的返回数据;
209.基于返回数据和第二预期数据确定第二待测试功能的测试结果。
210.在一些可能的实施例中,测试模块,被配置为执行:
211.从第二待测试功能的测试数据中获取输入数据;
212.基于调用脚本数据调用第二待测试功能对应的接口,获取输入数据的第一类模拟的返回数据。
213.在一些可能的实施例中,当目标待测试功能为第三待测试功能,且第三待测试功能的测试需求种类为前端界面显示和后端接口调用的混合测试需求时,测试模块,被配置为执行:
214.从第三待测试功能的测试数据中获取界面脚本数据、调用脚本数据、第一预期数据和第二预期数据;
215.基于界面脚本数据获取第三待测试功能中的目标的当前数据;
216.基于调用脚本数据获取第三待测试功能的返回数据;
217.基于当前数据和第一预期数据确定第一待测试功能的第一测试结果;
218.基于返回数据和第二预期数据确定第二待测试功能的第二测试结果;
219.根据第一测试结果和第二测试结果确定混合测试结果。
220.在一些可能的实施例中,测试模块,被配置为执行:
221.基于调用脚本数据调用实例建立语句,获取第三待测试功能对应的实例的第二类模型的返回数据。
222.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
223.图9是根据一示例性实施例示出的一种用于测试的装置2000的框图。例如,装置2000可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
224.参照图9,装置2000可以包括以下一个或多个组件:处理组件2002,存储器2004,电力组件2006,多媒体组件2008,音频组件2010,输入/输出(i/o)的接口2012,传感器组件2014,以及通信组件2016。
225.处理组件2002通常控制装置2000的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件2002可以包括一个或多个处理器2020来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件2002可以包括一个或多个模块,便于处理组件2002和其他组件之间的交互。例如,处理组件2002可以包括多媒体模块,以方便多媒体组件2008和处理组件2002之间的交互。
226.存储器2004被配置为存储各种类型的数据以支持在设备2000的操作。这些数据的示例包括用于在装置2000上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器2004可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
227.电源组件2006为装置2000的各种组件提供电力。电源组件2006可以包括电源管理系统,一个或多个电源,及其他与为装置2000生成、管理和分配电力相关联的组件。
228.多媒体组件2008包括在所述装置2000和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件2008包括一个前置摄像头和/或后置摄像头。当设备2000处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
229.音频组件2010被配置为输出和/或输入音频信号。例如,音频组件2010包括一个麦克风(mic),当装置2000处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器2004或经由通信组件2016发送。在一些实施例中,音频组件2010还包括一个扬声器,用于输出音频信号。
230.i/o接口2012为处理组件2002和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
231.传感器组件2014包括一个或多个传感器,用于为装置2000提供各个方面的状态评估。例如,传感器组件2014可以检测到设备2000的打开/关闭状态,组件的相对定位,例如所述组件为装置2000的显示器和小键盘,传感器组件2014还可以检测装置2000或装置2000一个组件的位置改变,用户与装置2000接触的存在或不存在,装置2000方位或加速/减速和装置2000的温度变化。传感器组件2014可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件2014还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件2014还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
232.通信组件2016被配置为便于装置2000和其他设备之间有线或无线方式的通信。装置2000可以接入基于通信标准的无线网络,如wifi,运营商网络(如2g、3g、4g或5g),或它们的组合。在一个示例性实施例中,通信组件2016经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件2016还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
233.在示例性实施例中,装置2000可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
234.在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器2004,上述指令可由装置2000的处理器2020执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1