大批量测试数据的处理方法、装置及存储介质与流程

未命名 07-20 阅读:109 评论:0


1.本领域涉及数据处理技术领域,具体涉及一种大批量测试数据的处理方法、装置及存储介质。


背景技术:

2.在传统的软件测试活动中,自动化接口测试通常是对接口进行调用后,通过对返回值进行判断,并通过日志输出查看各个用例的测试结果,并查看错误原因。该方法仅适用于测试用例少,测试结果判断值少的情况,例如一般为几十个或者上百个测试用例,测试结果判断值仅几个。对于上万以及数十万的大批量测试数据,在写入excel时,会严重影响追加速度,延长数据处理时间。


技术实现要素:

3.本技术提供大批量测试数据的处理方法、装置及存储介质,以解决相关现有技术中,大批量测试数据处理慢的技术问题。
4.本发明第一方面实施例提供大批量测试数据的处理方法,包含:将待测试数据分组;调用接口对分组后的待测试数据进行校验得到每组对应的测试数据;引入xlrd模块将每组对应的测试数据分别追加写入不同的xls格式的文件中,得到多个xls格式的文件,所述多个xls格式的文件数量与待测试数据分组的数量相同;以及将所述多个xls格式的文件合并为一个xlsx格式的文件。
5.根据上述技术手段,本技术实施例通过对测试数据分组,减少了追加写入时读取excel文件的次数,同时引入xlrd模块将每组的测试数据对应的xls文件合并为一个xlsx的文件,进一步缩短了数据处理的时间。
6.可选的,在本技术的一个实施例中,所述多个xls格式的文件中每个xls格式的文件写入不超过65535条。
7.根据上述技术手段,本技术实施例通过控制每个xls格式的文件中的数量条数,能够进一步缩短数据处理时间。
8.可选的,在本技术的一个实施例中,通过xlsxwriter将所述多个xls格式的文件合并为一个xlsx格式的文件。
9.可选的,在本技术的一个实施例中,所述每组对应的测试数据中包含:测试场景、测试入参、错误字段、错误字段期望值、错误字段实际值。
10.可选的,在本技术的一个实施例中,所述分组包含按照业务功能分组、按照请求的协议分组等。
11.本发明第二方面实施例提供大批量测试数据的处理装置,包括:分组测试模块,用于将待测试数据分组;校验模块,用于调用接口对分组后的待测试数据进行校验得到每组对应的测试数
据;写入模块,用于引入xlrd模块将每组对应的测试数据分别追加写入不同的xls格式的文件中,得到多个xls格式的文件,所述多个xls格式的文件数量与待测试数据分组的数量相同;合并模块,用于将所述多个xls格式的文件合并为一个xlsx格式的文件。
12.本发明第三方面实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以用于实现以上所述的大批量测试数据的处理方法。
13.本技术实施例具有以下有益效果:本技术实施例提供的大批量测试数据的处理方法和处理装置,通过将测试数据分组、测试输出多个xls格式的文件后再合并为一个xlsx格式的文件的方法,可以通过xls格式的文件查看测试结果,该xls格式的文件中的数据可以自由定制,能够解决大数据量(上万甚至数十万级别)的用例以及对应的结果输出慢的问题,方便软件开发与测试人员快速的查看具体的错误并定位具体原因。
14.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
15.图1为本技术实施例提供的电子设备的结构框图;图2为本技术实施例提供的大批量测试数据的处理方法流程示意图;图3为本技术实施例提供的大批量测试数据的处理装置的示意性结构框图。
具体实施方式
16.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
17.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
18.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为只是或暗示相对重要性。
19.在本发明的描述中,除非另有明确的规定和限定,术语“设置”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
20.下面参考附图描述本技术实施例的大批量测试数据的处理方法、装置、及存储介
质。
21.如图1所示,本发明第一方面实施例提供了一种电子设备10,包括存储器12、处理器14及大批量测试数据的处理装置100,其中,该大批量测试数据的处理装置100包括一个或多个存储于所述存储器中12中并由所述处理器14执行的软件功能模块。
22.可选地,所述电子设备10的具体形式不受限制,可以根据实际应用进行设置。在本实施例中,提供一种可行的示例,所述电子设备10可以为计算机。
23.其中,所述存储器12和处理器14之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述数据导入装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储器12中的软件功能模块。所述处理器14用于执行所述存储器12中存储的可执行的计算机程序,例如,所述大批量测试数据的处理装置100所包括的软件功能模块及计算机程序等,以实现大批量测试数据的处理方法。
24.其中,所述存储器12可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-onlymemory,prom) ,可擦除只读存储器(erasable programmableread-only memory,eprom) ,电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。其中,存储器12用于存储程序,所述处理器14在接收到执行指令后,执行所述程序。
25.所述处理器14可能是一种集成电路芯片,具有信号的处理能力。上述的处理器14可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
26.可以理解,图1所示的结构仅为示意,所述电子设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
27.本技术实施例的第二方面,提供大批量测试数据的处理方法。其中,所述方法有关的流程所定义的方法步骤可以由所述处理器14实现。
28.在传统的软件测试活动中,通常通过断言(assert等方法)来进行数据对比并输出日志,最后被采集后输出到测试报告中。本技术实施方式在测试过程中,测试结果输出到excel中进行查看。写入excel通常是通过追加的方式进行,即,每进行完一次测试就向excel中写入一条测试结果,随着测试量的增加,excel中的数据也会随着增加。现有技术中,使用openpyxl模块将测试结果追加写入excel,但随着写入的数据量逐渐增大,会使得写入时间越来越长。这主要是因为每次写入时,都会先读取该excel文件,越大的excel读取越慢,使得整体写入时间变慢。以一个以30个长度组成的列表为例,其中每个元素均为4个字符,在使用openpyxl模块进行追加写入时,所花费的时间为:写入第一条数据花费15ms, 写入第100条数据花费83ms,写入第200条数据花费160ms, 写入第500条数据花费360ms,由此可见随着追加写的excel文件中数据的变多,每追加一条数据的时间会变得越来越长。针对这些技术问题,本技术提供了大批量测试数据的处理方法,本方法能够解决excel在追加
写入时速度慢的技术问题。
29.如图2所示,该大批量测试数据的处理方法包括以下步骤:步骤s110中,将待测试数据分组。
30.可理解的,将待测试数据按照一定规则进行分组,分组的规则可以为按照业务功能来分类,还可以按请求的协议来分类等。
31.示例性的,按照业务功能来分类时,在整车中,包含车窗、车门、空调等多个功能模块;在车窗功能模块中,还包含有打开车窗、关闭车窗等多个场景;对于打开车窗这个场景,包含多种语音指令,如“打开车窗”、“打开一下车窗”、“开启车窗”、“降一下车窗”、“让车窗打开”等多种语音交互的目的均是为了打开车窗。因此,若按照功能进行分组,可以将车窗模块下多个场景、多种语音交互指令等分为同一组。按照请求的协议来分类时,可以分为get请求和post请求。
32.步骤s120中,调用接口对分组后的待测试数据进行校验得到每组对应的测试数据。
33.可理解的,在将待测试数据分组后,对每组的待测试数据进行测试,即调用接口对分组后的待测试数据进行校验得到每组对应的测试数据。
34.对于待测数据的校验方法并无特殊限定,能够验证接口返回字段的正确性的方法都适用于本技术实施例。自动化测试过程中一般只需校验少量字段,在本技术的一些优选实施例中也可以对多个字段甚至所有字段进行校验来比较数据的正确性。
35.对于测试大批量测试数据的输出方法,在传统的软件测试活动中,是将测试结果输出为日志呈现,被采集后输出到测试报告中,这种情况下通过测试报告查看每一个错误原因会显著增加工作量。本技术的实施例中将对应的错误信息输出到xls格式的文件,即excel中进行查看,对于输出的结果至少要包含能够反应错误信息的字段,也可以包含正确信息的字段,能够实现自定义输出的内容。例如,只输出错误的值或者只输出错误字段的值。输出的字段越多,数据量越大,输出的时间越长。
36.示例性的,输出到excel中的字段可以包含:测试场景、测试入参、错误字段、错误字段期望值、错误字段实际值等。
37.通过步骤s102,会得到包含所有测试数据的excel文件,软件开发和软件测试等人员均可通过对该excel文件的查看得知软件中存在的错误信息,并且输出的内容可以仍以添加,与传统的通过assert等方法对比相比,具有更大的灵活性。
38.步骤s130中,引入xlrd模块将每组对应的测试数据分别追加写入不同的xls格式的文件中,得到多个xls格式的文件,所述多个xls格式的文件数量与待测试数据分组的数量相同。
39.在测试的过程中,测试结果写入excel通常是通过追加的方式进行。即,每进行完一次测试就往excel中写入一条测试结果,随着测试量的增加,excel中的数据也会随着增加。在追加写入excel时,若使用openpyxl模块来将测试结果写入xlsx格式的文件,则在数据量大的情况下会造成写入时间越来越长的问题,这是由于每次写入时,会先读取该excel文件,越大的excel读取越慢,便造成了感觉写入很慢的假象。以一个以30个长度组成的列表为例,其中每个元素都是4个字符,在使用openpyxl进行追加写的时候,所花费的时间为:写第一条数据时花费15ms, 写第100条数据时花费83ms,写第200条数据时花费160ms, 写
第500条数据时花费360ms,如表1所示;由此可见随着追加写的excel文件中数据的变多,每追加一条数据的时间会变得越来越长。因而,本技术实施例通过引入xlrd模块将每组对应的测试数据分别追加写入不同的xls格式的文件中,此实施例在每次追加写入时由于不再需要遍历excel中每一行,而直接获取到最大行数后追加写入,能够明显增加追加写入的速度。
40.示例性的,以一个以30个长度组成的列表为例,其中每个元素都是4个字符。使用xlrd模块进行追加时,所花费的时间为:写第一条数据时花费11ms, 写第100条数据时花费12ms,写第200条数据时花费12ms,写第500条数据时花费12ms,如表1所示。由此可见,在大数据量的测试任务下,采用此方法可以大幅度提高写入excel的速度。
41.在通过openpyxl或xlrd模块进行分组写入时,可以分别写入以下excel文件:车窗.xls,车门.xls,空调.xls等等。
42.表1:通过openpyxl和xlrd两种模块分别写入时耗时对比。
43.在一些优选实施方式中,由于单个文件数据量的存在限制,最大为65535条,因此在对数据分组时,需要控制单个xls格式文件的数据量。例如,当总数据量大于65535条时,需要对该数据进行分组,可以分为2组、也可以分为3组、还可以分为4组等,具体分组的数量以及分组后每组的数据条数均可以自行定义,无特殊要求,只要满足每组数据量小于65535条即可。当总数量小于65535条时,可自行决定是否要分组,可以选择分组,也可以不分组,分组时具体分组的数量以及分组后每组的数据条数也可以自行定义。
44.步骤s140中,将所述多个xls格式的文件合并为一个xlsx格式的文件。
45.可理解的,此步骤是对s103中得到的所有xls格式的文件进行合并。在一些优选实施例中,通过xlsxwriter将s103中得到的所有xls格式的文件合并为一个xlsx格式的文件。合并后得到的xlsx格式的文件能够方便快速查看问题错误等原因。
46.本技术实施例的第三方面,提供了一种可应用于上述电子设备10的大批量测试数据的处理装置100,图3为本技术实施例所提供的大批量测试数据的处理装置的结构示意图。
47.大批量测试数据的处理装置100,包括:分组测试模块110、校验模块120、写入模块130、合并模块140。
48.所述分组测试模块110,用于将待测试数据分组。在本实施例中,所述分组测试模块110可以用于执行图2所示的步骤s110,关于所述分组测试模块110的具体描述可以参照前文对s110的具体描述。
49.所述校验模块120,用于调用接口对分组后的待测试数据进行校验得到每组对应的测试数据。在本实施例中,所述校验模块120可以用于执行图2所示的步骤s120,关于所述校验模块120的具体描述可参照前文对s120的具体描述。
50.所述写入模块130,用于引入xlrd模块将每组对应的测试数据分别追加写入不同的xls格式的文件中,得到多个xls格式的文件,所述多个xls格式的文件数量与待测试数据分组的数量相同。在本实施例中,所述写入模块130可以用于执行图2所示的步骤s130,关于所述写入模块130的具体描述可参照前文对s130的具体描述。
51.所述合并模块140,用于将所述多个xls格式的文件合并为一个xlsx格式的文件。在本实施例中,所述合并模块140可以用于执行图2所示的步骤s140,关于所述合并模块140的具体描述可以参照前文对s140的具体描述。
52.综上所述,本发明实施例提供的大批量测试数据的处理方法和处理装置,可以通过将测试数据分组、测试输出多个xls格式的文件后再合并为一个xlsx格式的文件的方法,通过xls格式的文件查看测试结果,该xls格式的文件中的数据可以自由定制,能够解决大数据量(上万甚至数十万级别)的用例以及对应的结果输出慢的问题,方便软件开发与测试人员快速的查看具体的错误并定位具体原因。
53.需要说明的是,在上述实施例中,各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
54.本领域的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可读程序代码的计算机可读存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
55.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
56.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
57.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
58.本技术实施例的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以用于实现如上的大批量测试数据的处理方法。
59.所述大批量测试数据的处理装置/终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
60.其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
61.在本技术所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分﹐实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
62.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
63.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
64.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。
65.以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。

技术特征:
1.大批量测试数据的处理方法,其特征在于,包含:将待测试数据分组;调用接口对分组后的待测试数据进行校验得到每组对应的测试数据;引入xlrd模块将每组对应的测试数据分别追加写入不同的xls格式的文件中,得到多个xls格式的文件,所述多个xls格式的文件数量与待测试数据分组的数量相同;以及将所述多个xls格式的文件合并为一个xlsx格式的文件。2.如权利要求1所述的大批量测试数据的处理方法,其特征在于,所述多个xls格式的文件中每个xls格式的文件写入不超过65535条。3.如权利要求1所述的大批量测试数据的处理方法,其特征在于,通过xlsxwriter将所述多个xls格式的文件合并为一个xlsx格式的文件。4.如权利要求1所述的大批量测试数据的处理方法,其特征在于,所述每组对应的测试数据中包含:测试场景、测试入参、错误字段、错误字段期望值、错误字段实际值。5.如权利要求1所述的大批量测试数据的处理方法 ,其特征在于,所述分组包含按照业务功能分组、按照请求的协议分组。6.大批量测试数据的处理装置,其特征在于,包括:分组测试模块,用于将待测试数据分组;校验模块,用于调用接口对分组后的待测试数据进行校验得到每组对应的测试数据;写入模块,用于引入xlrd模块将每组对应的测试数据分别追加写入不同的xls格式的文件中,得到多个xls格式的文件,所述多个xls格式的文件数量与待测试数据分组的数量相同;合并模块,用于将所述多个xls格式的文件合并为一个xlsx格式的文件。7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以用于实现如权利要求1-5任一项所述的大批量测试数据的处理方法。

技术总结
本发明属于数据处理技术领域,具体公开了一种大批量测试数据的处理方法、装置及存储介质。该方法包含:将待测试数据分组;调用接口对分组后的待测试数据进行校验得到每组对应的测试数据;引入xlrd模块将每组对应的测试数据分别追加写入不同的XLS格式的文件中,得到多个XLS格式的文件,所述多个XLS格式的文件数量与待测试数据分组的数量相同;以及将所述多个XLS格式的文件合并为一个XLSX格式的文件。本发明可以通过XLS格式的文件查看测试结果,该XLS格式的文件中的数据可以自由定制,能够解决大数据量的用例以及对应的结果输出慢的问题,方便软件开发与测试人员快速的查看具体的错误并定位具体原因。错误并定位具体原因。错误并定位具体原因。


技术研发人员:付虹升 叶松林
受保护的技术使用者:成都赛力斯科技有限公司
技术研发日:2023.04.21
技术公布日:2023/7/18
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐