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

一种冒烟测试方法及相关设备与流程

2022-11-28 10:34:54 来源:中国专利 TAG:


1.本技术实施例涉及测试技术领域,尤其涉及一种冒烟测试方法及相关设备。


背景技术:

2.程序开发人员在开发程序提测后,测试人员便需要对程序进行测试。其中,需要测试人员做基本的主流程测试。如果主流程测试不通过,则测试人员需要将程序打回给程序开发人员,需要开发人员自行测试通过后才能再次提测。如果此测试过程通过,则测试人员开始进行系统测试(st,system test)。
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.图1为本技术实施例公开的一种冒烟测试方法的流程示意图;
70.图2为本技术实施例公开的另一种冒烟测试方法的流程示意图;
71.图3为本技术实施例公开的一种冒烟测试系统的结构示意图;
72.图4为本技术实施例公开的一种冒烟测试装置的结构示意图。
具体实施方式
73.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
74.需要说明的是,在本技术中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第
一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
75.目前市面上的接口自动化测试工具,有些需要录制脚本,每次需求点优化后,就需要重新录制脚本;有些对代码要求能力极高,查找问题对于测试人员来说十分繁琐和复杂,软件上手困难,操作使用困难,用户使用不方便,人力资源浪费成本高。
76.目前的自动化测试小程序必须对用例顺序有要求,在维护用例过程中,特别是有先后执行顺序的用例,必须严格按照执行顺序编写和维护,当用例特别多时,特别容易出错,因此急需一款不需要保证用例执行顺利、冒烟快速执行的自动化测试方案。
77.需要说明的是,冒烟测试指的是开发程序提测后,需要测试人员做的基本主流程测试。如果此过程测试不通过,则测试人员需要打回给开发人员,并且需要开发人员自测通过后才能再次提测。如果此过程测试通过,则测试人员开始系统(st,system test)阶段测试。
78.对应的,用例指的是针对于被测系统,对每一个系统功能进行测试验证,所编写的执行步骤和预期结果。
79.为方便描述,后续不再对冒烟测试以及用例的具体含义进行赘述。
80.为解决上述问题,本技术实施例提供了一种冒烟测试方法及相关设备,用于减少冒烟测试步骤,以提高测试效率。
81.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
82.请参阅图1,图1为本技术实施例公开的一种冒烟测试方法的流程示意图。包括步骤101-步骤103。
83.101、获取目标页面的待测试用例、样本数据及真实结果数据。
84.待测试用例或称为待测试案例,可以理解为任何一个在被测系统中,对每一个功能测试验证,所编写的执行步骤和预期结果。为方便描述,后续对于该部分的描述,均以用例进行详细描述。
85.按照冒烟流程,可以在不同的sheet页面需要维护不同的流程用例,不难理解的是,上述sheet页面即为目标页面,为方便描述,后续对于目标页面的描述以sheet页面进行详细描述,其中,需要说明的是,sheet是一种显示在workbook窗口中的表格。
86.由于每一个待测试用例都具有对应的代称程序,对此,可以理解的是,待测试用例,可以理解为任何一个由于代码变更后具有测试需求的软件、系统或者应用程序,上述代码变更后具有测试需求的软件、系统或者应用程序,上述代码变更包括代码删减、代码增加、代码替换等任意一种或多种代码变更情况。根据软件工程知识体系(swebok,software engineering body ofknowledge)的分类,软件开发过程由一组软件开发活动构成,一组软件开发活动主要包括:需求工程、软件设计、软件构造、软件测试、软件维护和演化。冒烟测试属于软件测试的一个部分,用于测试用例变更后是否能正常运行,是否不会破坏待测
试用例运行的稳定性等。
87.当在同一个页面的待测试用例更改后,由于每一个用例可能对应不同的代码,由此,代码会影响待测试用例中的部分或全部接口。在本实施例中,接口可以理解调用系统数据时所使用的接口,由于本实施例主要应用于冒烟测试流程,因此将该接口具体命名为冒烟测试接口,为方便描述,后续对于接口的描述,均以冒烟测试接口进行详细描述。
88.换而言之,该冒烟测试接口具体为一种统一资源定位符(url,uniformresource locator)。举例来说,开发人员希望在待测试用例中测试新增账户的流程用例,即通过新增账户流程用例对应的代码创建一个新增账户的url,从而调用在与该url对应的网页功能或系统功能,以完成上述交互,其中,接口数量可以是一个或多个。
89.接口的格式包括js对象简谱(json,java script object notation)、标记语言(yaml,yaml ain`t a markup language)、可扩展标记语言(xml, extensible markup language)或python等任意一种格式。为方便描述,在本实施例中,仅以python语法进行详细说明,具体的,就是将业务的主流程涉及到的所有接口提取出来,通过编写一个公共的接口自动化测试程序,验证接口的功能性和延续性。
90.按照冒烟流程,在不同的sheet页面维护不同的流程用例。例如新增账户、新增用户、外债引入等主流程,状态均为未执行状态。不难理解的是,本实施例并不对主流程的具体所需执行的流程进行限制,后续也不再对此进行赘述。对应的,当某一流程用例处于未执行状态时,该用例即为待测试用例。
91.具体的,获取当前sheet页面存在状态为未执行的用例,对应的,由上述对于用例的描述可知,每一个用例都有设置好对应的入参值和出参值。不难理解的是,此时的入参值即为上述中所描述的样本数据。为方便描述,后续对于样本数据的描述以入参值进行对应的描述。其中,还需要说明的是,入参值可以根据对该用例进行开发时所编译的开发文档或需求文档确定的,具体此处不做限制。还需要说明的是,真实结果数据可以理解为该用例的预期出参结果,也是可以根据对该用例进行开发时所编译的开发文档或需求文档进行确定。
92.在进一步的实施例中,若当前sheet页面不存在状态为未执行的用例,也就是说当前sheet页面的所有用例均以执行完成,就依次执行其他sheet页面的用例。例如,当前sheet页面为sheet【0】页面,下一个页面为sheet【1】页面。可以同时执行sheet【0】页面,或sheet【1】页面的流程用例,也可以先执行完sheet【0】页面,再执行sheet【1】页面的流程用例,具体此处不对不同的sheet页面的执行顺序进行限制。
93.102、将样本数据输入所述待测试用例,以输出样本数据的预测结果数据。
94.对应于一个状态为未执行的用例,也就是待测试用例而言,若要对该待测试用例进行检测,具体的,需要先获取到当前sheet页面中的冒烟测试接口,执行状态为未执行的冒烟接口用例,不难理解的是,该冒烟测试接口即为需要测试的用例的接口。
95.然后通过该冒烟测试接口将入参值输入至待测试用例,由上述对于待测试用例的描述可知,具体的,事件入参值输入到与冒烟测试接口对应的网页或系统,其中的网页或系统可执行对应的程序流程,例如,新增账户、新增用户、外债引入等,具体此处不对网页或系统所搭载的程序流程进行限制,后续也不再对此进行赘述。
96.最后,当把入参值输入到待测试用例时,待测试用例会根据入参值进行运算,从而
输出针对于该入参值的出参值,不难理解的是,本实施例中所描述的出参值即为上述中所描述的预测结果数据,为方便描述,后续对于预测结果数据的描述以出参值进行详细描述,还需要说明的是,每一个用例都对应有一个入参值或预期结果数据。
97.103、对预测结果数据及真实结果数据进行验证,并将待测试用例标记为已测试用例,以完成待测试用例的测试。
98.将预测结果数据及真实结果数据进行验证,具体的,就是将出参值与预期结果数据进行比较,验证该用例的出参值与预期结果是否一致。
99.对应的,在生成出参值时,就将该待测试用例标记为已执行用例,从而完成该待测试用例的测试。
100.进一步的是,当完成该待测试用例的测试后,就可以对下一个待测试用例进行验证。
101.具体的,若下一个待测试用例仍属于当前sheet页面,那么就继续在当前 sheet页面对下一个待测试用例进行检测。若下一个待测试用例属于下一个 sheet页面,也就是说当前sheet页面不存在执行状态为未执行的用例时,或描述为所有待测试用例均以执行完成,即所有待测试用例以标记为已测试用例时,就执行下一sheet页面的用例。
102.通过本实施例提出的一种冒烟测试方法及相关设备,先获取目标页面的待测试用例、样本数据及真实结果数据,再将样本数据输入待测试用例,以输出样本数据的预测结果数据,最后,对预测结果数据及真实结果数据进行验证,并将待测试用例标记为已测试用例,以完成待测试用例的测试。由此,当测试人员确定好测试用例以及对应于该测试用例的样本数据及真实结果数据后,并将测试用例放置于目标页面,即可直接对测试用例进行检测,无需考虑每个测试用例的执行顺序,维护简单,而且测试步骤也比较简单,尽可能地减少了人力资源的成本。
103.为方便对本技术进行详细描述,请参阅图2,图2为本技术实施例公开的另一种冒烟测试方法的流程示意图,包括步骤201-步骤209。
104.201、获取目标页面的待测试用例、样本数据及真实结果数据。
105.本实施例中步骤201与前述图1中步骤101类似,具体此处不做赘述,但需要说明的是,若某一具体用例的入参值有需要用到部分上一个具体用例的出参值,那么就确定这一部分为变量值。
106.需要说明的是,变量值即为上述部分中所提及的变量数据。具体的,变量值是可以是根据开发文档或者需求文档确定的,也可以从与冒烟测试接口对应的网页或系统经过运算后,包含在出参值中的数值。结合上述图1中的步骤,可以理解的是,出参值中的变量值可能是下一个待测试用例的输入条件。为方便理解和描述,后续不再对变量值的具体含义进行赘述。
107.具体而言,需要先确定当前页面是否存在状态为未执行的用例,若存在,就执行后续步骤。若不存在,就获取下一页面的存在状态为未执行的用例。也就是分sheet页,依次获取sheet页中的冒烟接口,执行状态为未执行的冒烟测试接口用例。需要说明的是,本实施例中的sheet可以在excel表格中进行列举,也可以通过其他表格形式或其他表现形式进行列举,具体此处不进行限制。
108.例如,在当前页面,也就是目标页面中,存在两个状态为未执行的待测试用例,将
其命名为第一测试用例及第二测试用例。对应的,由上述描述可知,每一个测试用例都对应有入参值及预期结果数据。那么也就是第一入参值、第一预期结果数据、第二入参值及第二预期结果数据。不难理解的是,第一入参值或第二入参值即为上述部分中所描述的第一样本数据或第二样本数据。为方便描述,后续以第一入参值或第二入参值进行详细描述。对应的,第一预期结果数据或第二预期结果数据也是如此。
109.在其中一个实施例中,当前sheet页面为sheet【0】页面,下一个页面为 sheet【1】页面。若sheet【0】页面不存在状态为未执行的用例,也就是sheet 【0】页面中的所有用例均执行完成,就获取sheet【1】页面的所有状态为未执行状态的用例。
110.在另外一个实施例中,可以同时执行sheet【0】页面,或sheet【1】页面的流程用例,也可以先执行完sheet【0】页面,再执行sheet【1】页面的流程用例,具体此处不对不同的sheet页面的执行顺序进行限制。
111.总体而言,冒烟流程具体的:
112.s1、测试人员根据需求文档,编写整个系统主流程的测试案例;
113.s2、开发代码开发好,且自测通过后,发布到st环境,供测试人员进行测试;
114.s3、测试人员在st环境,根据之前写的用例,按照顺序逐步执行,把所有的测试用例执行完成之后,若没有问题,则算冒烟通过,否则,冒烟不通过,需要开发人员重新修改代码,开发自测通过后,测试人员再次进行冒烟流程测试。
115.其中,对于冒烟小程序,也就是冒烟环节的程序代码进行描述,具体的:
116.for i in range(1,rows):
117.testcasename=sh.cell_value(i,0)
118.testcasemethod=sh.cell_value(i,1)
119.testcaseurl=sh.cell_value(i,2)
120.testcaseheader=sh.cell_value(i,3)
121.testcastrequestbody=sh.cell_value(i,4)
122.testcaseresponsebody=sh.cell_value(i,5)
123.trueresponse=request.request(testcasemethod,testcaseurl,headers=testca seheader,json=testcaserequestbody)
124.sh.write(i,6,trueresponse)
125.for j in trueresponse.keys[str(j)]:
[0126]
value_eval=x[str(j)]
[0127]
value_test=y[str(j)]
[0128]
diff=diff.sequencematcher(none,value_eval,value_test).quick_ratio()
[0129]
sh.write(i,7,diff)
[0130]
不难理解的是,本实施例并不对程序代码的具体内容进行限制,后续也不再对此进行赘述。
[0131]
202、判断待测试用例是否存在未赋值的变量数据。若否,执行步骤203;若是,执行步骤204。
[0132]
当获取到所有状态为未执行状态的用例后,也就是所有的待测试用例后,会判断待测试用例是否存在没有赋值的未知变量,具体的,也就是判断该待测试用例的入参值中
是否有变量值未赋值。若是,就执行步骤204;若否,就执行步骤203。需要说明的是,未知变量指的是在程序代码中,一般程序代码会定义变量值,比如i=1,或k=2等,如果该变量值i或k没有赋值,则为未知变量,也就是未给变量值赋值。
[0133]
在其中一个实施例中,根据步骤201对于待测试用例的描述,第一测试用例和第二测试用例均为执行状态为未执行的用例,那么就先判断第一测试用例中的入参值是否存在未赋值的变量值。例如,第一测试用例为登陆流程用例,第二测试用例为信用验证流程用例。对应的,第一入参值为账号和密码,测试人员通过冒烟测试接口将账号和密码输入至登陆流程用例对应的网页,然后网页接收到该账号和密码后,会通过冒烟测试接口输出一个出参值,其中,对应的该出参值中包括有该用户的身份证号码,而且,该身份证号码需要当做第二测试用例的入参值。那么就确定该身份证号码为变量值。
[0134]
最后,若第一测试用例中的入参值未存在未赋值的变量值,就执行步骤 203;若第一测试用例中的入参值存在未赋值的变量值,就执行步骤204。不难理解的是,对于第二测试用例也是如此。
[0135]
203、将样本数据输入待测试用例,以输出样本数据的预测结果数据。
[0136]
若入参值中没有未知变量,就执行该待测试用例,也就是对该测试用例进行验证测试。
[0137]
具体的,将入参值通过冒烟测试接口输入到对应的网页或系统,从而入参值便可以在该待测试用例中运行,从而使得待测试用例输出该待测试用例的出参值。
[0138]
在其中一个实施例中,待测试用例包括第一测试用例。由于第一测试用例的入参值中没有未知变量,就将第一测试用例的第一入参值输入到第一测试用例,从而生成第一入参值的出参值。
[0139]
204、拒绝将样本数据输入待测试用例。执行步骤202。
[0140]
若入参值中存在未知变量,就执行该待测试用例,也就是拒绝为该测试用例进行验证测试。
[0141]
具体的,就是跳过此待测试用例,并执行下一个待测试用例。
[0142]
在其中一个实施例中,待测试用例包括第一测试用例及第二测试用例,由于第一测试用例的入参值中存在未知变量,就不再对第一测试用例进行测试,从而执行第二测试用例,也就是执行步骤202。也就是判断第二测试用例是否存在未赋值的变量数据。若第二测试用例也存在未知变量,就继续寻找第三测试用例、第四测试用例,直至待测试用例的入参值中没有未知变量。
[0143]
205、将待测试用例标记为已测试用例,并判断预测结果数据是否与真实结果数据相同。若是,执行步骤206;若否,执行步骤207。
[0144]
当将入参值输入至待测试用例时,将该待测试用例标记为已测试用例。然后,判断该用例的出参值是否与预期结果数据相同。
[0145]
具体的,就是将入参值通过冒烟测试接口输入到对应的网页或系统时,将测试用例的状态标记为已执行,并检验冒烟测试接口的出参值是否与预期结果数据相同。
[0146]
在其中一个实施例中,待测试用例包括第一测试用例。当第一入参值通过冒烟测试接口对第一测试用例进行测试时,将第一测试用例的执行状态标记为已执行。然后检验第一测试用例的冒烟测试接口的出参值,是否与excel 中的预期出参结果一致。若是,执行
步骤206;若否,执行步骤207。
[0147]
206、判断真实结果数据是否存在应用于下一用例的变量数据。若是,执行步骤208;若否,执行步骤209。
[0148]
当获取到执行状态为已执行的测试用例的出参值,且已测试用例的出参值与预期结果数据一致后,就判断该出参值是否存在应用于下一测试用例的变量数据。不难理解的事,此时的变量数据即为上述部分中所提及的目标变量数据,为方便描述,后续不再对此进行赘述。
[0149]
在其中一个实施例中,待测试用例包括第一测试用例及第二测试用例。此时,第一测试用例已执行完成,且获取到第一入参值的出参值。检验冒烟测试接口的出参值,也就是先确定第一预期结果数据是否存在变量值,也就是说,第一测试用例的出参值是否需要当做第二测试用例的入参值。若是,执行步骤208;若否,执行步骤209。
[0150]
207、将已测试用例记录为不合格的测试用例,以完成待测试用例的测试。
[0151]
若已测试用例的出参值与预期结果数据不一致,就将该已测试用例记录为执行失败的测试用例,从而完成该测试用例的测试。不难理解的是,已测试用例就是执行状态为已执行的测试用例。
[0152]
具体的,就是将excel中异常的冒烟测试接口标记,并统计起来,然后将该测试用例的执行状态标记为执行失败。对应的,当该测试用例执行失败后,就需要测试人员对该测试用例的冒烟测试接口进行调整,具体的,可以是调整该接口的程序代码,具体此处不对测试人员如何调整冒烟测试接口的逻辑进行限制。
[0153]
在其中一个实施例中,待测试用例包括第一测试用例。若第一测试用例的出参值与第一预期结果数据不一致,就确定第一测试用例执行失败,并将第一测试用例的冒烟测试接口标记并记录。
[0154]
208、将下一用例确定为待测试用例,并根据预测结果数据中的变量数据对样本数据中待赋值变量数据进行赋值,以获取已赋值变量数据。
[0155]
若预期结果数据中存在变量值,然后将当前的待测试用例的出参值中的变量值赋值给相应的变量,从而获取到对应的已赋值的变量数据。然后执行步骤203,也就是执行下一个待测试用例。
[0156]
具体的,在其中一个实施例中,待测试用例包括第一测试用例及第二测试用例。若第一测试用例的预期结果数据存在变量值,用实际出参值赋值给相应的变量,也就是使用第一测试用例的出参值中的变量值对第二入参值中变量值进行赋值,从而后续冒烟测试接口的入参变量此时就可以全部赋值成功,能够执行。然后执行步骤203。
[0157]
例如,第一测试用例为登陆流程用例,第二测试用例为信用验证流程用例。对应的,第一入参值为账号和密码,测试人员通过冒烟测试接口将账号和密码输入至登陆流程用例对应的网页,然后网页接收到该账号和密码后,会通过冒烟测试接口输出一个出参值,其中,对应的该出参值中包括有该用户的身份证号码,而且,该身份证号码需要当做第二测试用例的入参值。那么就确定该身份证号码为变量值。对应的,也就是使用第一测试用例中的出参值中所包含的身份证号码对第二入参值的变量值进行赋值。
[0158]
209、将下一用例确定为待测试用例。
[0159]
若预期结果数据中未存在变量值,就直接执行下一个用例。
[0160]
在其中一个实施例中,待测试用例包括第一测试用例及第二测试用例。若第一测试用例的预期结果数据未存在变量值,就执行执行第二测试用例。
[0161]
需要补充的是,可以检查当前sheet页面未执行的用例,并重新执行,直到当前sheet页面所有用例全部执行成功,再依次再执行其他sheet页面用例,对应的,也可以同时执行其他sheet页面的用例。
[0162]
最后,收集所有的测试用例的测试结果,以便于测试人员对测试结果进行分析。
[0163]
综上所述,对应的python代码可以为:
[0164]
第一步:打开excel表。
[0165]
bk=xlrd.open_workbook(excel文件名)
[0166]
第二步:获取当前excel的sheet页。
[0167]
sh=bk.sheet_by_name(excel表名)
[0168]
第三步:获取当前excel的sheet页面中的所有的编写的案例,并执行,将接口结果和与预期结果的对比结果写在对应表格中。
[0169]
nrows=sh.nrows
[0170]
for i in range(1,rows):
[0171]
testcasename=sh.cell_value(i,0)
[0172]
testcasemethod=sh.cell_value(i,1)
[0173]
testcaseurl=sh.cell_value(i,2)
[0174]
testcaseheader=sh.cell_value(i,3)
[0175]
testcastrequestbody=sh.cell_value(i,4)
[0176]
testcaseresponsebody=sh.cell_value(i,5)
[0177]
trueresponse=request.request(testcasemethod,testcaseurl,headers=testca seheader,json=testcaserequestbody)
[0178]
sh.write(i,6,trueresponse)
[0179]
for j in trueresponse.keys[str(j)]:
[0180]
value_eval=x[str(j)]
[0181]
value_test=y[str(j)]
[0182]
diff=diff.sequencematcher(none,value_eval,value_test).quick_ratio()
[0183]
sh.write(i,7,diff)
[0184]
其中,对于返回结果中,如果有些参数需要下一请求接口使用,则将接口返回值中的实际结果,赋值到一边公用变量上
[0185]
ifa[i].contains('${%}'}:
[0186]
a[i]=trueresponse[i]
[0187]
如果入参值中,有未知变量,则跳过执行下一个接口。
[0188]
if a[i].contains('${%}')break;
[0189]
不难理解的是,本实施例并不对程序代码的具体内容进行限制,后续也不再对此进行赘述。
[0190]
综上所述,可以理解的是,本技术实施例在冒烟测试环节,主要是主流程的测试,重点在于主流程接口是否跑通,因此涉及的不同流程用例都是单独sheet页面维护,单独页
面的主流程用例维护不用考虑用例执行顺序,可并发执行。
[0191]
通过本实施例提出的一种冒烟测试方法,不仅减少了维护成本,使维护用例更加简单,只用维护excel中的冒烟测试接口用例,且不用关注用例顺序,而且,测试用例可以根据系统的流程进行自定义设置并测试,不再需要人工反复执行检验系统是否能冒烟测试通过,节省时间和资源,将更多的时间用于用例设计中,尽可能地减少了人力资源的成本。同时,可适配性强,所有的接口冒烟测试,都可以通过冒烟小程序执行。
[0192]
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0193]
若方案涉及敏感信息(如用户信息、企业信息),则应当说明针对敏感信息的收集、使用和处理需要遵守相关国家和地区的法律法规和标准,且需要在相应主体(如用户或企业等)许可或同意的情况下进行。
[0194]
下面请参阅图3,图3为本技术实施例公开的一种冒烟测试系统的结构示意图。
[0195]
获取单元301,用于获取目标页面的待测试用例、样本数据及真实结果数据;
[0196]
输入单元302,用于将样本数据输入待测试用例,以输出样本数据的预测结果数据;
[0197]
验证单元303,用于对预测结果数据及真实结果数据进行验证,并将待测试用例标记为已测试用例,以完成待测试用例的测试。
[0198]
示例性地,待测试用例包括第一测试用例及第二测试用例,样本数据包括第一样本数据及第二样本数据;
[0199]
冒烟测试系统还包括:执行单元304;
[0200]
执行单元304,用于当第一样本数据存在未赋值的第一变量数据时,拒绝将第一样本数据输入第一测试用例;
[0201]
输入单元302,具体用于将第二样本数据输入第二测试用例,以输出第二样本数据的预测结果数据。
[0202]
示例性地,冒烟测试系统包括:
[0203]
输入单元302,具体用于当第一样本数据存在已赋值的第一变量数据,将第一样本数据输入第一待测试用例,以输出第一样本数据的预测结果数据;
[0204]
示例性地,冒烟测试系统还包括:判断单元305及赋值单元306;
[0205]
判断单元305,用于判断真实结果数据是否存在应用于第二测试用例的第二变量数据;
[0206]
赋值单元306,用于当第一样本数据的预测结果数据存在应用于第二测试用例的第二变量数据时,根据第一样本数据的预测结果数据中的变量数据对第二变量数据进行赋值,并执行将第二样本数据输入第二测试用例,以输出第二样本数据的预测结果数据的步骤;其中,第二样本数据包括已赋值的第二变量数据;
[0207]
执行单元304,还用于当第一样本数据的预测结果数据未存在应用于第二测试用例的第二变量数据时,执行将第二样本数据输入第二测试用例,以输出第二样本数据的预测结果数据的步骤。
[0208]
示例性地,冒烟测试系统还包括:标记单元307、记录单元308及确定单元309;
[0209]
标记单元307,用于将待测试用例标记为已测试用例;
[0210]
判断单元305,具体用于判断预测结果数据是否与真实结果数据相同;
[0211]
记录单元308,用于当预测结果数据与真实结果数据不相同时,将已测试用例记录为不合格的测试用例,以完成待测试用例的测试;
[0212]
确定单元309,用于当预测结果数据与真实结果数据相同时,确定完成待测试用例的测试。
[0213]
示例性地,冒烟测试系统还包括:
[0214]
确定单元309,还用于当真实结果数据存在应用于下一用例的变量数据时,将下一用例确定为待测试用例;
[0215]
赋值单元306,还用于根据所述预测结果数据中的变量数据对样本数据中的待赋值变量数据进行赋值,以获取已赋值变量数据;
[0216]
输入单元302,还用于将包含已赋值变量数据的样本数据输入待测试用例,以执行输出样本数据的预测结果数据的步骤。
[0217]
示例性地,冒烟测试系统还包括:
[0218]
确定单元309,还用于当预测结果数据不存在应用于下一用例的目标变量数据时,将下一用例确定为待测试用例,并执行将样本数据输入待测试用例,以输出样本数据的预测结果数据的步骤。
[0219]
示例性地,冒烟测试系统还包括:
[0220]
确定单元309,还用于当目标页面的待测试用例已标记为已测试用例时,将下一页面确定为目标页面,以执行获取目标页面的待测试用例、样本数据及真实结果数据的步骤。
[0221]
下面请参阅图4,图4为本技术实施例公开的一种冒烟测试装置的结构示意图包括:
[0222]
中央处理器401,存储器405,输入输出接口404,有线或无线网络接口 403以及电源402;
[0223]
存储器405为短暂存储存储器或持久存储存储器;
[0224]
中央处理器401配置为与存储器405通信,并执行存储器405中的指令操作以执行前述图1或图2中任一项所示实施例中的方法。
[0225]
本技术实施例还提供一种芯片系统,其特征在于,芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行前述图1或图2所示实施例中的方法。
[0226]
本技术实施例还提供了一种计算机程序产品,包括计算机程序或者指令,所述计算机程序或者指令在被处理器执行时实现前述图1或图2中任一种所示实施例中的方法。
[0227]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0228]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以
通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0229]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0230]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0231]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献