CN110162466B - 自动测试方法、装置、计算机设备和存储介质 - Google Patents
自动测试方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110162466B CN110162466B CN201910319535.8A CN201910319535A CN110162466B CN 110162466 B CN110162466 B CN 110162466B CN 201910319535 A CN201910319535 A CN 201910319535A CN 110162466 B CN110162466 B CN 110162466B
- Authority
- CN
- China
- Prior art keywords
- test
- keyword
- target partition
- target
- partition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请揭示了一种自动测试方法、装置、计算机设备和存储介质,其中方法包括:提取出每一个测试用例的关键字,并进行归纳得到多个关键字类型;建立与每一个关键字类型对应的分区;将所述测试用例存储到目标分区内,所述目标分区对应的关键字类型与所述测试用例的关键字所对应的关键字类型相同;调用与第一目标分区对应的第一测试框架;控制所述第一测试框架对所述第一目标分区中的全部测试用例进行多线程测试;当第一目标分区测试后,再进行其他分区的测试。本申请在测试大量的测试用例前,先将各测试用例进行分类,便于测试的时候集中对同一类型的测试用例进行测试,有效的提高整体的测试速度。
Description
技术领域
本申请涉及到软件测试技术领域,特别是涉及到一种自动测试方法、装置、计算机设备和存储介质。
背景技术
目前常见的自动化测试框架大多是单个顺序执行测试用例,首先根据一个测试用例的类型,调用对应的测试框架进行测试。当测试完一个测试用例后,再到数据库中读取下一个测试用例,依上述方法进行测试。但是当对大量的测试用例进行测试时,不同类型的测试用例调用不同的测试框架,当对大量的测试用例进行测试的时候,就需要频繁的调用对应的测试框架,消耗较多的时间,从而导致测试的效率非常低。
发明内容
本申请的主要目的为提供一种自动测试方法、装置、计算机设备和存储介质,旨在解决上述测试大量的测试用例时效率低的问题。
为了实现上述发明目的,本申请提出一种自动测试方法,包括:
读取存储器中所有的测试用例,分别提取出每一个所述测试用例的关键字,所述关键字是表示与测试用例匹配的测试框架的文本;
将全部关键字按照类型进行归纳计算,得到多个关键字类型;
在所述存储器中建立与每一个所述关键字类型对应的分区;
将所述测试用例存储到目标分区内,所述目标分区对应的关键字类型与所述测试用例的关键字所对应的关键字类型相同;
按照预设的规则在多个目标分区中选择第一目标分区,在测试工具中调用与所述第一目标分区对应的目标关键字类型对应的第一测试框架;
控制所述第一测试框架对所述第一目标分区中的全部测试用例进行多线程测试;
当所述第一目标分区中的全部测试用例测试结束后,再次根据所述预设的规则选择第二目标分区,及第二目标分区对应的第二测试框架进行多线程测试,直至测试完所述存储器中的所有测试用例。
进一步地,所述控制所述第一测试框架对所述第一目标分区中的全部测试用例进行多线程测试的步骤,包括:
开启多个进程;
控制测试框架在每一个进程中执行所述第一目标分区中的一个测试用例;
当任一个所述进程执行完成一个所述测试用例后,读取所述第一目标分区中的一个未测试的测试用例进行测试。
进一步地,所述将所述测试用例存储到目标分区内的步骤,包括:
在每个所述分区中各设置一个队列;
根据每一个所述测试用例的关键字对应的关键字类型,查找到对应的目标分区,并按照预设的顺序依次放入目标分区的队列中。
进一步地,所述开启多个进程的步骤,包括:
获取所述第一测试框架的类型;
根据测试框架的类型与进程数量的对应关系,获取与所述第一测试框架对应的进程数量M,其中,所述M为正整数;
开启与所述M个进程。
进一步地,所述开启所述M个进程的步骤,包括:
判断所述进程数量是否小于所述第一目标分区中的测试用例的数量;
若是,则开启所述M个进程。
进一步地,所述当所述第一目标分区中的全部测试用例测试结束后,再次根据所述预设的规则选择第二目标分区,及第二目标分区对应的第二测试框架进行多线程测试,直至测试完所述存储器中的所有测试用例的步骤之后,包括:
建立一个表格,并将每一个所述关键字类型从第一列的第一行起,依次加载在第一列中;
将各所述测试用例对应的测试结果加载在所述表格中与所述关键字类型对应的行内。
进一步地,所述读取存储器中所有的测试用例,分别提取出每一个所述测试用例的关键字的步骤,包括:
获取测试用例,解析出所述测试用例的代码文本;
在所述代码文本中进行遍历查找,判断所述代码文本中是否有预设的关键字库中的词语;
若是,从该代码文本中提取出所述词语,作为该测试用例的关键字。
本申请还提供一种自动测试装置,包括:
提取模块,用于读取存储器中所有的测试用例,分别提取出每一个所述测试用例的关键字,所述关键字是表示与测试用例匹配的测试框架的文本;
归纳模块,用于将全部关键字按照类型进行归纳计算,得到多个关键字类型;
建立模块,用于在所述存储器中建立与每一个所述关键字类型对应的分区;
存储模块,用于所述测试用例存储到目标分区内,所述目标分区对应的关键字类型与所述测试用例的关键字所对应的关键字类型相同;
选择模块,用于按照预设的规则在多个目标分区中选择目标分区,在测试工具中调用与所述第一目标分区对应的目标关键字类型对应的第一测试框架;
测试模块,用于控制所述第一测试框架对所述第一目标分区中的全部测试用例进行多线程测试;
结束模块,用于当所述第一目标分区中的全部测试用例测试结束后,再次根据所述预设的规则选择第二目标分区,及第二目标分区对应的第二测试框架进行多线程测试,直至测试完所述存储器中的所有测试用例。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的自动测试方法、装置、计算机设备和存储介质,在测试大量的测试用例前,先将各测试用例进行分类,便于测试的时候集中对同一类型的测试用例进行测试,减少测试不同类型的测试用例而需要不同测试框架之间的切换产生的时间,有效的提高整体的测试速度。开启多个进程,使一个类型的测试用例测试结束后快速测试另一个类型的测试用例,提高了测试的整体速度。
附图说明
图1为本申请一实施例的自动测试方法的流程示意图;
图2为本申请一实施例的自动测试装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例提供一种自动测试方法,包括步骤:
S1、读取存储器中所有的测试用例,分别提取出每一个所述测试用例的关键字,所述关键字是表示与测试用例匹配的测试框架的文本;
S2、将全部关键字按照类型进行归纳计算,得到多个关键字类型;
S3、在所述存储器中建立与每一个所述关键字类型对应分区;
S4、将所述测试用例存储到目标分区内,所述目标分区对应的关键字类型与所述测试用例的关键字所对应的关键字类型相同;
S5、按照预设的规则在多个目标分区中选择第一目标分区,在测试工具中调用与所述第一目标分区对应的目标关键字类型对应的第一测试框架;
S6、控制所述第一测试框架对所述第一目标分区中的全部测试用例进行多线程测试;
S7、当所述第一目标分区中的全部测试用例测试结束后,再次根据所述预设的规则选择第二目标分区,及第二目标分区对应的第二测试框架进行多线程测试,直至测试完所述存储器中的所有测试用例。
本实施例中,测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果的程序,以便测试某个程序路径或核实是否满足某个特定需求。每针对一个测试主体以及测试目的均有一个对应的测试用例。例如,对一个应用软件平安壹账通的用户注册这一测试任务,对应的需要一个测试用例。本方案是针对需要执行多个测试任务时,对应的需要多个测试用例。将所有的需要测试的任务对应的测试用例均存储在一个指定的存储器中。具体的,执行该自动测试方法的是一台电脑,该电脑包括处理器和存储器,存储器中存储有测试框架以及用于测试所有任务对应的所有的测试用例。处理器接收用户上传的测试用例后,在存储器中划分出一片存储空间,用于存储上述全部的测试用例。
关键字是用户设置的用于表示对应于该测试用例最合适的测试框架的文本。用户对存储器中的每一个测试用例均以关键字来添加标记,处理器读取测试用例,通过读取测试用例的标记来提取出测试用例的关键字。或者,用户可以将关键字记载在测试用例的数据中,处理器读取测试用例,遍历所有的数据,查看是否有预设的关键字库中的关键字,如果有,则提取出来。关键字库中包括有各测试框架名称对应的关键字。
关键字均是属于关键字库中的,每一个测试用例的均有一个对应的关键字,多个测试用例各自对应的关键字也有相同或相近的。处理器读取到所有的关键字,将所有的关键字进行归纳,将属于同一类型或相同的关键字归为一类,则得到多个关键字类型,每一个关键字类型对应至少一个关键字,每一个关键字均是属于其中一个关键字类型。
处理器获取到关键字类型后,在存储器中建立与关键字类型的数量相同的分区,使所有的测试用例的关键字中,每一个关键字类型均对应一个分区,然后将具有该关键字类型的关键字对应的测试用例放置在对应的分区中。在一具体实施例中,处理器提取出第一个测试用例的关键字后,归纳出该关键字对应的关键字类型,然后在存储器中设置一个分区并存储该测试用例,同时以关键字类型为该分区命名,即该分区为具有该关键字类型的关键字的测试用例的目标分区;当提取出第二个测试用例的关键字后,将该关键字与第一个测试用例的关键字类型进行比较,看第二个关键字是否是该关键字类型,若不是,则归纳出第二个关键字对应的关键字类型,然后在存储器中再设置一个分区并存储第二个测试用例,同时以第二个关键字的关键字类型为第二个分区命名,若第二个测试用例的关键字与第一个测试用例的关键字的类型相同,则直将将第二个测试用例存储在第一个分区内。如此,直到将所有的测试用例的关键字提取出来并,并建立多个分区,将所有的测试用例分别放置在对应的目标分区内。
处理器建立多个分区并将所有的测试用例一一放置在各个对应的目标分区后,预设的规则是随机选中一个没有进行过测试的目标分区,作为第一目标分区,该第一目标分区对应的关键字类型定义为目标关键字类型,然后根据上述目标关键字类型查找与目标关键字类型匹配的测试框架,即测试该分区内的所有的测试用例时最匹配的测试框架。其中,关键字类型与测试框架的对应关系是由工作人员预先设置好后存储在处理器中的指定存储空间。处理器获取到目标关键字类型后,调用上述关键字类型与测试框架的对应关系表,查找到与关键字类型对应的第一测试框架,并获取到第一测试框架的接口位置,然后启动该接口位置,来调用与目标关键字类型对应的第一测试框架。在其他实施例中,预设的规则是将未进行测试的目标分区按照其中的测试用例的数量进行排序,然后按照从高到低的顺序来选择一个目标分区,作为第一目标分区,然后对第一目标分区中的测试用例进行测试。
然后处理器调用第一测试框架,利用第一测试框架读取上述第一目标分区中的测试用例,对第一目标分区中的全部测试用例依次进行测试,在测试过程中,第一测试框架开启多个线程,以对第一目标分区中的多个测试用例可以同时处理多个测试。
当第一目标分区中的全部测试用例测试结束后,则继续在其他未测试过的目标分区中选择一个分区,即第二目标分区,然后再根据第二目标分区找到第二目标分区的关键字类型对应的第二测试框架,以第二测试框架对第二目标分区中的测试用例进行测试。直至对存储器中的所有的测试用例测试完成。选择第二目标分区的方法,也是遵循上述预设的规则,随机选择一个或者是按照上述排序的方法选择一个目标分区作为第二目标分区。
在一个实施例中,上述控制所述第一测试框架对所述第一目标分区中的全部测试用例进行多线程测试的步骤,包括:
S61、开启多个进程;
S62、控制测试框架在每一个进程中执行所述第一目标分区中的一个测试用例;
S63、当任一个所述进程执行完成一个所述测试用例后,读取所述第一目标分区中的一个未测试的测试用例进行测试。
本实施例中,处理器同时开启多个进程,每个进程独立运行一个测试任务,处理器将第一目标分区中的不同的测试用例输入到不同的进程中,然后控制测试框架同时运行上述全部进程,实现同时批量对多个测试用例同时进行测试。由于每个测试任务以及测试用例各不相同,因此,每个测试所需要的时间不完全相同,当有任一个测试用例测试结束后,将第一目标分区中另一测试用例加载到刚测试结束对应的进程上,使该进程继续测试下一个测试用例。同样,其他的进程也是如此保持继续测试。则可以使多个测试用例快速全部测试完成,提高测试的速度与效率。
在一个实施例中,上述将所述测试用例存储到目标分区内的步骤,包括:
S41、在每个所述分区中各设置一个队列;
S42、根据每一个所述测试用例的关键字对应的关键字类型,查找到对应的目标分区,并按照预设的顺序依次放入目标分区的队列中。
本实施例中,处理器在每一个分区中各设置一个队列,队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,遵循先进先出的顺序。同时,每一个分区对应一个关键字类型。存储器的一个分区中设置一个队列,然后将所有的该分区对应的关键字类型对应的测试用例按照测试时的先后顺序依次放入到队列中,便于在后续测试的时候按照一定的顺序进行测试。同时,队列中是每次只可取出一个测试用例,避免测试时同时取出多个测试用例而导致系统混乱。其中,预设的顺序是工作人员对每个测试用例设置的标签;处理器读取标签后,根据该分区中的所有的测试用例的标签的大小顺序依次将测试用例放入到存储器中的队列中。当工作人员没有对上述队列设置顺序时,处理器按照随机抽取的原则将测试用例依次放入在队列中。在另一个实施例中,队列可以由栈来代替,对应的放入的顺序与上述队列的放入顺序相反。
在一个实施例中,上述开启多个进程的步骤,包括:
S611、获取所述第一测试框架的类型;
S612、根据测试框架的类型与进程数量的对应关系,获取与所述第一测试框架对应的进程数量M,其中,所述M为正整数;
S613、开启所述M个进程。
本实施例中,一般来说,进程的数量最好是与测试用例的数量一样多,这样可以使得测试的速度最快。但是处理器的负载处理速度有限,进程的数量过多会导致处理器崩溃或宕机。每个类型的测试用例所测试的时间不一样,对应的对处理器的负载要求也不一样。测试用例所占用的处理器内存小,则处理器可以开启较多的进程;测试用例所占用的处理器内存大,则处理器开启的进程较少。因此,工作人员根据测试框架的类型以及处理器的性能,设置了与测试框架的类型与进程数量的对应关系,并将该对应关系存储在存储器中。处理器读取第一测试框架的类型,然后调用上述测试框架的类型与进程数量的对应关系,获取到第一测试框架对应的进程的数量M,即可以开启的最大进程数量M。然后开启M个进程。这样即可以保证处理器最高效的正常运转,最快速的测试完所有的测试用例。
在一个实施例中,上述处理器开启所述M个进程的步骤,包括:
S6131、判断所述进程数量是否小于所述第一目标分区中的测试用例的数量;
S6132、若是,则开启所述M个进程。
本实施例中,处理器若只开启一个进程测试一个测试样例,所用的时间比处理器开启两个进种测试一个样例所花的时间短。开启进程数量最好是不要超过测试用例的个数,否则反而会减缓测试的整体时间。因此,获取到处理器可以承载的最大进程的进程数量后,再访问上述第一目标分区中的测试用例的数量,然后将进程数量与测试用例的数量进行比较,如果测试用例的数量比进程数量大,则说明处理器的至少一个进程需要进行二次测试,因此,开启与进程数量个数相同的进程。如果进程数量大于或等于测试用例数量,则说明处理器开启最大数量的进程后,只需一次就可以对全部的测试用例测试完成,甚至有可能多的进程是空载,会浪费存储器的一部分运行空间。因此,当第一目标分区中的测试用例的数量大于或等于进程数量,则开启与测试用例的数量相同数量的进程。
在一个实施例中,上述当所述第一目标分区中的全部测试用例测试结束后,再次根据所述预设的规则选择第二目标分区,及第二目标分区对应的第二测试框架进行多线程测试,直至测试完所述存储器中的所有测试用例的步骤之后,包括:
S8、建立一个表格,并将每一个所述关键词从第一列的第一行起,依次加载在第一列中;
S9、将各所述测试用例对应的测试结果加载在所述表格中与所述关键字对应的行内。
本实施例中,测试框架控制测试软件运行后,当测试软件运行结束,对应的输出测试结果。每当一个测试框架将测试结果输入到处理器中,处理器接收该测试框架输出的测试结果,并发送给工作人员以便于对测试结果进行评判,同时处理器还将测试结果存储起来。当全部的测试框架测试结束后,则处理器接收所有的测试框架输出的测试结果。具体的接收测试结果的过程是,服务器首先建立一个表格,并将该表格以“测试结果”进行命名,然后根据上述关键字类型的数量,将每一个关键字类型依次填写在表格中的第一列,即第一列的第一行加载一个关键字类型,第一列的第二行再加载另一个关键字类型,依次将全部的关键字加载在第一列中。然后每测试完一个测试用例,输出一个测试结果,将该测试结果加载在对应的关键字类型所在的行中的表格中。这样测试结束后,所有的测试结果均在该表格中,而且是根据关键字类型进行分开展示,便于工作人员进行总结归纳。在一具体实施例中,首先建立一个excel表格,然后读取存储空间中的所有的目标分区,提取出每一个目标分区的关键字类型,然后将关键字类型依次加载在第一列中,在第一列中,从第一行开始,每一行均加载一个关键字类型,直至将全部的关键字类型加载在第一列中。或者,首先读取每个目标分区中的测试用例的数量,然后按照测试用例的数量的高低,依次将对应的关键字类型加载在第一列中。例如,存储器中有三个目标分区,第一个目标分区中有100个测试用例,对应的关键字类型是接口类型;第二个目标分区中有500个测试用例,对应的关键字类型是web类型;第三个目标分区中有300个测试用例,对应的关键字类型是APP类型;则首先建立表格,然后将这三个目标分区进行排序,具有测试用例最多的是第二个目标分区,对应的关键字类型是web类型,将“web类型”文本加载到表格中的第一行第一列中,具有测试用例第二多的是第三个目标分区,对应的关键字类型是APP类型,将“APP类型”文本加载到表格中的第二行第一列中,具有测试用例第三多的是第三个目标分区,对应的关键字类型是接口类型,将“接口类型”文本加载到表格中的第三行第一列中。然后每对第一个目标分区中的100个测试用例进行测试,将测试结果分别输入到第三行的第二列到第101列中。如此,依次将测试结果输入到该表格中的指定位置。
在一个实施例中,所述读取存储器中所有的测试用例,分别提取出每一个所述测试用例的关键字的步骤,包括:
S11、获取测试用例,解析出所述测试用例的代码文本;
S12、在所述代码文本中进行遍历查找,判断所述代码文本中是否有预设的关键字库中的词语;
S13、若是,从该代码文本中提取出所述词语,作为该测试用例的关键字。
本实施例中,测试用例是一个执行程序,其中包含有运行时所利用的脚本,脚本即代码文本,获取一个测试用例后,将其中的脚本解析出来,得到该测试用例的代码文本。然后调用预设的关键字库,关键字库中存储有多个词语,每一个词语均是一个关键字;将代码文本进行遍历查找,具体的,是从头到尾进行遍历,看代码文本中是否有关键字库中的任一个词语,如果有一个,则将该词语提取出来,作为该测试用例的关键字。如果遍历查找出了多个,则根据上述归纳的方法,判断多个关键字是否属于同一个关键字类型,如果是,则提取出任一个词语即可,作为上述测试用例的关键词;如果多个关键词不是属于同一个关键词类型,则发出错误报告,提示工作人员该测试用例的脚本错误。
在一个实施例中,所述框架用例的类型包括:指接口测试框架、web UI测试框架、APP UI测试框架、关键字驱动测试框架,所述测试用例的类型与所述进程数量的对应关系为:
测试框架的类型 | 进程数量 |
接口测试框架 | 10 |
web UI测试框架 | 5 |
APP UI测试框架 | 3 |
关键字驱动测试框架 | 2 |
。
本实施例中,上述各类型的测试框架与进程数量的对应关系是基于一台服务器在室温下经过大量测试后得出的数据,在各类型的测试框架时开启对应的进程,可以使服务器最高速的运转同时不会宕机,最大效率的利用服务器进行测试。由于各个类型的测试框架在运行时所占用的运行内存大小不一样,所以可以开启的最大进程数量不一样。在其他主机上进行测试时,测试框架的类型与进程数量的关系,可以按照比例进行增加或减少。测试框架对应的进程数量的比例为:web UI测试:APP UI测试:关键字驱动测试=10:5:3:2。
综上所述,本申请的自动测试方法,在测试大量的测试用例前,先将各测试用例进行分类,便于测试的时候集中对同一类型的测试用例进行测试,减少测试不同类型的测试用例而需要不同测试框架之间的切换产生的时间,有效的提高整体的测试速度。开启多个进程,使一个类型的测试用例测试结束后快速测试另一个类型的测试用例,提高了测试的整体速度。
参照图2,本申请实施例中还提供一种自动测试装置,包括:
提取模块1,用于读取存储器中所有的测试用例,分别提取出每一个所述测试用例的关键字,所述关键字是表示与测试用例匹配的测试框架的文本;
归纳模块2,用于将全部关键字按照类型进行归纳计算,得到多个关键字类型;
建立模块3,用于在所述存储器中建立与每一个所述关键字类型对应的分区;
存储模块4,用于将所述测试用例存储到目标分区内,所述目标分区对应的关键字类型与所述测试用例的关键字所对应的关键字类型相同;
选择模块5,用于按照预设的规则在多个目标分区中选择第一目标分区,在测试工具中调用与所述第一目标分区对应的目标关键字类型对应的第一测试框架;
测试模块6,用于控制所述第一测试框架对所述第一目标分区中的全部测试用例进行多线程测试;
结束模块7,用于当所述第一目标分区中的全部测试用例测试结束后,再次根据所述预设的规则选择第二目标分区,及第二目标分区对应的第二测试框架进行多线程测试,直至测试完所述存储器中的所有测试用例。
本实施例中,测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果的程序,以便测试某个程序路径或核实是否满足某个特定需求。每针对一个测试主体以及测试目的均有一个对应的测试用例。例如,对一个应用软件平安壹账通的用户注册这一测试任务,对应的需要一个测试用例。本方案是针对需要执行多个测试任务时,对应的需要多个测试用例。将所有的需要测试的任务对应的测试用例均存储在一个指定的存储器中。具体的,执行该自动测试方法的是一台电脑,该电脑包括处理器和存储器,存储器中存储有测试框架以及用于测试所有任务对应的所有的测试用例。处理器接收用户上传的测试用例后,在存储器中划分出一片存储空间,用于存储上述全部的测试用例。关键字是用户设置的用于表示对应于该测试用例最合适的测试框架的文本。用户对存储器中的每一个测试用例均以关键字来添加标记,处理器读取测试用例,提取模块1通过读取测试用例的标记来提取出测试用例的关键字。或者,用户可以将关键字记载在测试用例的数据中,处理器读取测试用例,遍历所有的数据,查看是否有预设的关键字库中的关键字,如果有,则提取出来。关键字库中包括有各测试框架名称对应的关键字。
关键字均是属于关键字库中的,每一个测试用例的均有一个对应的关键字,多个测试用例各自对应的关键字也有相同或相近的。归纳模块2读取到所有的关键字,将所有的关键字进行归纳,将属于同一类型或相同的关键字归为一类,则得到多个关键字类型,每一个关键字类型对应至少一个关键字,每一个关键字均是属于其中一个关键字类型。
归纳模块2获取到关键字类型后,建立模块3在存储器中建立与关键字类型的数量相同的分区,使所有的测试用例的关键字中,每一个关键字类型均对应一个分区,然后将具有该关键字类型的关键字对应的测试用例放置在对应的分区中。在一具体实施例中,处理器提取出第一个测试用例的关键字后,归纳出该关键字对应的关键字类型,然后存储模块4在存储器中设置一个分区并存储该测试用例,同时以关键字类型为该分区命名,即该分区为具有该关键字类型的关键字的测试用例的目标分区;当提取出第二个测试用例的关键字后,将该关键字与第一个测试用例的关键字类型进行比较,看第二个关键字是否是该关键字类型,若不是,则归纳出第二个关键字对应的关键字类型,然后在存储器中再设置一个分区并存储第二个测试用例,同时以第二个关键字的关键字类型为第二个分区命名,若第二个测试用例的关键字与第一个测试用例的关键字的类型相同,则直将将第二个测试用例存储在第一个分区内。如此,直到将所有的测试用例的关键字提取出来并,并建立多个分区,将所有的测试用例分别放置在对应的目标分区内。
建立模块3建立多个分区,存储模块4将所有的测试用例一一放置在各个对应的分区后,预设的规则是随机选中一个没有进行过测试的目标分区,则选择模块5在没有进行测试过的目标分区中随机选中一个目标分区,作为第一目标分区,该第一目标分区对应的关键字类型定义为目标关键字类型,然后根据上述目标关键字类型查找与目标关键字类型匹配的测试框架,即测试该分区内的所有的测试用例时最匹配的测试框架。其中,关键字类型与测试框架的对应关系是由工作人员预先设置好后存储在处理器中的指定存储空间。处理器获取到目标关键字类型后,选择模块5调用上述关键字类型与测试框架的对应关系表,查找到与关键字类型对应的第一测试框架,并获取到第一测试框架的接口位置,然后启动该接口位置,来调用与目标关键字类型对应的第一测试框架。在其他实施例中,预设的规则是将未进行测试的目标分区按照其中的测试用例的数量进行排序,然后按照从高到低的顺序来选择一个目标分区,作为第一目标分区,然后对第一目标分区中的测试用例进行测试。
然后测试模块6调用第一测试框架,利用第一测试框架读取上述第一目标分区中的测试用例,对第一目标分区中的全部测试用例依次进行测试,在测试过程中,第一测试框架开启多个线程,以对第一目标分区中的多个测试用例可以同时处理多个测试。
当第一目标分区中的全部测试用例测试结束后,则结束模块7继续在其他未测试过的目标分区中选择一个目标分区,即第二目标分区,然后再根据第二目标分区找到第二目标分区的关键字类型对应的第二测试框架,以第二测试框架对第二目标分区中的测试用例进行测试。直至对存储器中的所有的测试用例测试完成。选择第二目标分区的方法,也是遵循上述预设的规则,随机选择一个或者是按照上述排序的方法选择一个目标分区作为第二目标分区。
在一个实施例中,上述测试模块6包括:
开启子模块,用于开启多个进程;
测试子模块,用于控制测试框架在每一个进程中执行一个所述第一目标分区中的一个测试用例;
读取子模块,用于当任一个所述进程执行完成一个所述测试用例后,读取所述第一目标分区中的一个未测试的测试用例进行测试。
本实施例中,然后开启子模块61同时开启多个进程,每个进程独立运行一个测试任务,处理器将第一目标分区中的不同的测试用例输入到不同的进程中,然后测试子模块62控制测试框架同时运行上述全部进程,实现同时批量对多个测试用例同时进行测试。由于每个测试任务以及测试用例各不相同,因此,每个测试所需要的时间不完全相同,当有任一个测试用例测试结束后,读取子模块63将第一目标分区中另一测试用例加载到刚测试结束对应的进程上,使该进程继续测试下一个测试用例。同样,其他的进程也是如此保持继续测试。则可以使多个测试用例快速全部测试完成,提高测试的速度与效率。
在一个实施例中,上述存储模块4,包括:
设置单元,用于在每个所述分区中各设置一个队列;
放入单元,用于根据每一个所述测试用例的关键字对应的关键字类型,查找到对应的目标分区,并按照预设的顺序依次放入目标分区的队列中。
本实施例中,设置单元在每一个分区中各设置一个队列,队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,遵循先进先出的顺序。同时,每一个分区对应一个关键字类型。设置单元在存储器的一个分区中设置一个队列,然后放入单元将所有的该分区对应的关键字类型对应的测试用例按照测试时的先后顺序依次放入到队列中,便于在后续测试的时候按照一定的顺序进行测试。同时,队列中是每次只可取出一个测试用例,避免测试时同时取出多个测试用例而导致系统混乱。其中,预设的顺序是工作人员对每个测试用例设置的标签;处理器读取标签后,根据该分区中的所有的测试用例的标签的大小顺序依次将测试用例放入到存储器中的队列中。当工作人员没有对上述队列设置顺序时,处理器按照随机抽取的原则将测试用例依次放入在队列中。在另一个实施例中,队列可以由栈来代替,对应的放入的顺序与上述队列的放入顺序相反。
在一个实施例中,上述开启子模块包括:
获取单元,用于获取所述第一测试框架的类型;
确定单元,用于根据测试框架的类型与进程数量的对应关系,获取与所述第一测试框架对应的进程数量M,其中,所述M为正整数;
开启单元,用于开启所述M个进程。
本实施例中,一般来说,进程的数量最好是与测试用例的数量一样多,这样可以使得测试的速度最快。但是处理器的负载处理速度有限,进程的数量过多会导致处理器崩溃或宕机。每个类型的测试用例所测试的时间不一样,对应的对处理器的负载要求也不一样。测试用例所占用的处理器内存小,则处理器可以开启较多的进程;测试用例所占用的处理器内存大,则处理器开启的进程较少。因此,工作人员根据测试框架的类型以及处理器的性能,设置了与测试框架的类型与进程数量的对应关系,并将该对应关系存储在存储器中。获取单元读取第一测试框架的类型,然后确定单元调用上述测试框架的类型与进程数量的对应关系,获取到第一测试框架对应的进程的数量M,即可以开启的最大进程数量M。然后开启M个进程。这样即可以保证处理器最高效的正常运转,最快速的测试完所有的测试用例。
在一个实施例中,上述开启单元包括:
判断子单元,用于判断所述进程数量是否小于所述第一目标分区中的测试用例的数量;
开启子单元,用于若所述进程数量小于所述分区中的测试用例的数量,则开启所述M个进程。
本实施例中,处理器若只开启一个进程测试一个测试样例,所用的时间比处理器开启两个进种测试一个样例所花的时间短。开启进程数量最好是不要超过测试用例的个数,否则反而会减缓测试的整体时间。因此,获取到处理器可以承载的最大进程的进程数量后,再访问上述第一目标分区中的测试用例的数量,然后将进程数量与测试用例的数量进行比较,如果测试用例的数量比进程数量大,则说明处理器的至少一个进程需要进行二次测试,因此,开启子单元开启与进程数量个数相同的进程。如果进程数量大于或等于测试用例数量,则说明处理器开启最大数量的进程后,只需一次就可以对全部的测试用例测试完成,甚至有可能多的进程是空载,会浪费存储器的一部分运行空间。因此,当判断子单元判定第一目标分区中的测试用例的数量大于或等于进程数量,则开启子单元开启与测试用例的数量相同数量的进程。
在一个实施例中,上述自动测试装置包括:
建立模块,用于建立一个表格,并将每一个所述关键词从第一列的第一行起,依次加载在第一列中;
加载模块,用于将各所述测试用例对应的测试结果加载在所述表格中与所述关键字对应的行内。
本实施例中,测试框架控制测试软件运行后,当测试软件运行结束,对应的输出测试结果。每当一个测试框架将测试结果输入到处理器中,处理器接收该测试框架输出的测试结果,并发送给工作人员以便于对测试结果进行评判,同时处理器还将测试结果存储起来。当全部的测试框架测试结束后,则处理器接收所有的测试框架输出的测试结果。具体的接收测试结果的过程是,建立模块首先建立一个表格,并将该表格以“测试结果”进行命名,然后建立单元根据上述关键字类型的数量,将每一个关键字类型依次填写在表格中的第一列,即第一列的第一行加载一个关键字类型,第一列的第二行再加载另一个关键字类型,依次将全部的关键字加载在第一列中。然后每测试完一个测试用例,输出一个测试结果,加载模块将该测试结果加载在对应的关键字类型所在的行中的表格中。这样测试结束后,所有的测试结果均在该表格中,而且是根据关键字类型进行分开展示,便于工作人员进行总结归纳。在一具体实施例中,首先建立一个excel表格,然后读取存储空间中的所有的目标分区,提取出每一个目标分区的关键字类型,然后将关键字类型依次加载在第一列中,在第一列中,从第一行开始,每一行均加载一个关键字类型,直至将全部的关键字类型加载在第一列中。或者,首先读取每个目标分区中的测试用例的数量,然后按照测试用例的数量的高低,依次将对应的关键字类型加载在第一列中。例如,存储器中有三个目标分区,第一个目标分区中有100个测试用例,对应的关键字类型是接口类型;第二个目标分区中有500个测试用例,对应的关键字类型是web类型;第三个目标分区中有300个测试用例,对应的关键字类型是APP类型;则首先建立表格,然后将这三个目标分区进行排序,具有测试用例最多的是第二个目标分区,对应的关键字类型是web类型,将“web类型”文本加载到表格中的第一行第一列中,具有测试用例第二多的是第三个目标分区,对应的关键字类型是APP类型,将“APP类型”文本加载到表格中的第二行第一列中,具有测试用例第三多的是第三个目标分区,对应的关键字类型是接口类型,将“接口类型”文本加载到表格中的第三行第一列中。然后每对第一个目标分区中的100个测试用例进行测试,将测试结果分别输入到第三行的第二列到第101列中。如此,依次将测试结果输入到该表格中的指定位置。
在一个实施例中,上述提取模块1包括:
解析单元,用于获取测试用例,解析出所述测试用例的代码文本;
判断单元,用于在所述代码文本中进行遍历查找,判断所述代码文本中是否有预设的关键字库中的词语;
提取单元,用于若所述代码文本中有预设的关键字库中的词语,从该代码文本中提取出所述词语,作为该测试用例的关键字。
本实施例中,测试用例是一个执行程序,其中包含有运行时所利用的脚本,脚本即代码文本,获取一个测试用例后,解析单元将其中的脚本解析出来,得到该测试用例的代码文本。然后判断单元调用预设的关键字库,关键字库中存储有多个词语,每一个词语均是一个关键字;将代码文本进行遍历查找,具体的,是从头到尾进行遍历,看代码文本中是否有关键字库中的任一个词语,如果有一个,则提取单元将该词语提取出来,作为该测试用例的关键字。如果遍历查找出了多个,则根据上述归纳的方法,判断多个关键字是否属于同一个关键字类型,如果是,则提取出任一个词语即可,作为上述测试用例的关键词;如果多个关键词不是属于同一个关键词类型,则发出错误报告,提示工作人员该测试用例的脚本错误。
在一个实施例中,上述框架用例的类型包括:指接口测试框架、web UI测试框架、APP UI测试框架、关键字驱动测试框架,所述测试用例的类型与所述进程数量的对应关系为:
测试框架的类型 | 进程数量 |
接口测试框架 | 10 |
web UI测试框架 | 5 |
APP UI测试框架 | 3 |
关键字驱动测试框架 | 2 |
。
本实施例中,上述各类型的测试框架与进程数量的对应关系是基于一台服务器在室温下经过大量测试后得出的数据,在各类型的测试框架时开启对应的进程,可以使服务器最高速的运转同时不会宕机,最大效率的利用服务器进行测试。由于各个类型的测试框架在运行时所占用的运行内存大小不一样,所以可以开启的最大进程数量不一样。在其他主机上进行测试时,测试框架的类型与进程数量的关系,可以按照比例进行增加或减少。测试框架对应的进程数量的比例为:web UI测试:APP UI测试:关键字驱动测试=10:5:3:2。
综上所述,本申请的自动测试装置,在测试大量的测试用例前,先将各测试用例进行分类,便于测试的时候集中对同一类型的测试用例进行测试,减少测试不同类型的测试用例而需要不同测试框架之间的切换产生的时间,有效的提高整体的测试速度。开启多个进程,使一个类型的测试用例测试结束后快速测试另一个类型的测试用例,提高了测试的整体速度。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储测试用例、关键字等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种自动测试方法。
上述处理器执行上述自动测试方法的步骤:读取存储器中所有的测试用例,分别提取出每一个所述测试用例的关键字,所述关键字是表示与测试用例匹配的测试框架的文本;将全部关键字按照类型进行归纳计算,得到多个关键字类型;在所述存储器中建立与每一个所述关键字类型对应的分区;将所述测试用例存储到目标分区内,所述目标分区对应的关键字类型与所述测试用例的关键字所对应的关键字类型相同;按照预设的规则在多个目标分区中选择第一目标分区,在测试工具中调用与所述第一目标分区对应的目标关键字类型对应的第一测试框架;控制所述第一测试框架对所述第一目标分区中的全部测试用例进行多线程测试;当所述第一目标分区中的全部测试用例测试结束后,再次根据所述预设的规则选择第二目标分区,及第二目标分区对应的第二测试框架进行多线程测试,直至测试完所述存储器中的所有测试用例。
在一个实施例中,上述处理器执行上述控制所述第一测试框架对所述第一目标分区中的全部测试用例进行多线程测试的步骤,包括:开启多个进程;控制测试框架在每一个进程中执行所述第一目标分区中的一个测试用例;当任一个所述进程执行完成一个所述测试用例后,读取所述第一目标分区中的一个未测试的测试用例进行测试。
在一个实施例中,上述处理器执行上述将所述测试用例存储到目标分区内的步骤,包括:在每个所述分区中各设置一个队列;根据每一个所述测试用例的关键字对应的关键字类型,查找到对应的目标分区,并按照预设的顺序依次放入目标分区的队列中。
在一个实施例中,上述处理器执行上述开启多个进程的步骤,包括:获取所述第一测试框架的类型;根据测试框架的类型与进程数量的对应关系,获取与所述第一测试框架对应的进程数量M,其中,所述M为正整数;开启与所述M个进程。
在一个实施例中,上述处理器执行上述开启所述M个进程的步骤,包括:判断所述进程数量是否小于所述第一目标分区中的测试用例的数量;若是,则开启所述M个进程。
在一个实施例中,上述处理器执行上述当所述第一目标分区中的全部测试用例测试结束后,再次根据所述预设的规则选择第二目标分区,及第二目标分区对应的第二测试框架进行多线程测试,直至测试完所述存储器中的所有测试用例的步骤之后,包括建立一个表格,并将每一个所述关键字类型从第一列的第一行起,依次加载在第一列中;将各所述测试用例对应的测试结果加载在所述表格中与所述关键字类型对应的行内。
在一个实施例中,上述处理器执行读取存储器中所有的测试用例,分别提取出每一个所述测试用例的关键字的步骤,包括:获取测试用例,解析出所述测试用例的代码文本;在所述代码文本中进行遍历查找,判断所述代码文本中是否有预设的关键字库中的词语;若是,从该代码文本中提取出所述词语,作为该测试用例的关键字。
综上所述,本申请的计算机设备,在测试大量的测试用例前,先将各测试用例进行分类,便于测试的时候集中对同一类型的测试用例进行测试,减少测试不同类型的测试用例而需要不同测试框架之间的切换产生的时间,有效的提高整体的测试速度。开启多个进程,使一个类型的测试用例测试结束后快速测试另一个类型的测试用例,提高了测试的整体速度。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种自动测试方法,具体为:读取存储器中所有的测试用例,分别提取出每一个所述测试用例的关键字,所述关键字是表示与测试用例匹配的测试框架的文本;将全部关键字按照类型进行归纳计算,得到多个关键字类型;在所述存储器中建立与每一个所述关键字类型对应的分区;将所述测试用例存储到目标分区内,所述目标分区对应的关键字类型与所述测试用例的关键字所对应的关键字类型相同;按照预设的规则在多个目标分区中选择第一目标分区,在测试工具中调用与所述第一目标分区对应的目标关键字类型对应的第一测试框架;控制所述第一测试框架对所述第一目标分区中的全部测试用例进行多线程测试;当所述第一目标分区中的全部测试用例测试结束后,再次根据所述预设的规则选择第二目标分区,及第二目标分区对应的第二测试框架进行多线程测试,直至测试完所述存储器中的所有测试用例。
在一个实施例中,上述处理器执行上述控制所述第一测试框架对所述第一目标分区中的全部测试用例进行多线程测试的步骤,包括:开启多个进程;控制测试框架在每一个进程中执行所述第一目标分区中的一个测试用例;当任一个所述进程执行完成一个所述测试用例后,读取所述第一目标分区中的一个未测试的测试用例进行测试。
在一个实施例中,上述处理器执行上述将所述测试用例存储到目标分区内的步骤,包括:在每个所述分区中各设置一个队列;根据每一个所述测试用例的关键字对应的关键字类型,查找到对应的目标分区,并按照预设的顺序依次放入目标分区的队列中。
在一个实施例中,上述处理器执行上述开启多个进程的步骤,包括:获取所述第一测试框架的类型;根据测试框架的类型与进程数量的对应关系,获取与所述第一测试框架对应的进程数量M,其中,所述M为正整数;开启与所述M个进程。
在一个实施例中,上述处理器执行上述开启所述M个进程的步骤,包括:判断所述进程数量是否小于所述第一目标分区中的测试用例的数量;若是,则开启所述M个进程。
在一个实施例中,上述处理器执行上述当所述第一目标分区中的全部测试用例测试结束后,再次根据所述预设的规则选择第二目标分区,及第二目标分区对应的第二测试框架进行多线程测试,直至测试完所述存储器中的所有测试用例的步骤之后,包括:
建立一个表格,并将每一个所述关键字类型从第一列的第一行起,依次加载在第一列中;将各所述测试用例对应的测试结果加载在所述表格中与所述关键字类型对应的行内。
在一个实施例中,上述处理器执行读取存储器中所有的测试用例,分别提取出每一个所述测试用例的关键字的步骤,包括:获取测试用例,解析出所述测试用例的代码文本;在所述代码文本中进行遍历查找,判断所述代码文本中是否有预设的关键字库中的词语;若是,从该代码文本中提取出所述词语,作为该测试用例的关键字。
综上所述,本申请的计算机可读存储介质,在测试大量的测试用例前,先将各测试用例进行分类,便于测试的时候集中对同一类型的测试用例进行测试,减少测试不同类型的测试用例而需要不同测试框架之间的切换产生的时间,有效的提高整体的测试速度。开启多个进程,使一个类型的测试用例测试结束后快速测试另一个类型的测试用例,提高了测试的整体速度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (7)
1.一种自动测试方法,其特征在于,包括:
读取存储器中所有的测试用例,分别提取出每一个所述测试用例的关键字,所述关键字是表示与测试用例匹配的测试框架的文本;
将全部关键字按照类型进行归纳计算,得到多个关键字类型;
在所述存储器中建立与每一个所述关键字类型对应的分区;
将所述测试用例存储到目标分区内,所述目标分区对应的关键字类型与所述测试用例的关键字所对应的关键字类型相同;
按照预设的规则在多个目标分区中选择第一目标分区,在测试工具中调用与所述第一目标分区对应的目标关键字类型对应的第一测试框架,所述预设的规则是将未进行测试的目标分区按照其中的测试用例的数量进行排序,然后按照从高到低的顺序来选择一个目标分区,作为第一目标分区;
控制所述第一测试框架对所述第一目标分区中的全部测试用例进行多线程测试;
当所述第一目标分区中的全部测试用例测试结束后,再次根据所述预设的规则选择第二目标分区,及第二目标分区对应的第二测试框架进行多线程测试,直至测试完所述存储器中的所有测试用例;
所述控制所述第一测试框架对所述第一目标分区中的全部测试用例进行多线程测试的步骤,包括:
开启多个进程;
控制测试框架在每一个进程中执行所述第一目标分区中的一个测试用例;
当任一个所述进程执行完成一个所述测试用例后,读取所述第一目标分区中的一个未测试的测试用例进行测试;
所述开启多个进程的步骤,包括:
获取所述第一测试框架的类型;
根据测试框架的类型与进程数量的对应关系,获取与所述第一测试框架对应的进程数量M,其中,所述M为正整数;
开启所述M个进程;
所述开启所述M个进程的步骤,包括:
判断所述进程数量是否小于所述第一目标分区中的测试用例的数量;
若是,则开启所述M个进程。
2.如权利要求1所述的自动测试方法,其特征在于,所述将所述测试用例存储到目标分区内的步骤,包括:
在每个所述分区中各设置一个队列;
根据每一个所述测试用例的关键字对应的关键字类型,查找到对应的目标分区,并按照预设的顺序依次放入目标分区的队列中。
3.如权利要求1所述的自动测试方法,其特征在于,所述当所述第一目标分区中的全部测试用例测试结束后,再次根据所述预设的规则选择第二目标分区,及第二目标分区对应的第二测试框架进行多线程测试,直至测试完所述存储器中的所有测试用例的步骤之后,包括:
建立一个表格,并将每一个所述关键字类型从第一列的第一行起,依次加载在第一列中;
将各所述测试用例对应的测试结果加载在所述表格中与所述关键字类型对应的行内。
4.如权利要求1所述的自动测试方法,其特征在于,所述读取存储器中所有的测试用例,分别提取出每一个所述测试用例的关键字的步骤,包括:
获取测试用例,解析出所述测试用例的代码文本;
在所述代码文本中进行遍历查找,判断所述代码文本中是否有预设的关键字库中的词语;
若是,从该代码文本中提取出所述词语,作为该测试用例的关键字。
5.一种自动测试装置,其特征在于,包括:
提取模块,用于读取存储器中所有的测试用例,分别提取出每一个所述测试用例的关键字,所述关键字是表示与测试用例匹配的测试框架的文本;
归纳模块,用于将全部关键字按照类型进行归纳计算,得到多个关键字类型;
建立模块,用于在所述存储器中建立与每一个所述关键字类型对应的分区;
存储模块,用于将所述测试用例存储到目标分区内,所述目标分区对应的关键字类型与所述测试用例的关键字所对应的关键字类型相同;
选择模块,用于按照预设的规则在多个目标分区中选择目标分区,在测试工具中调用与所述第一目标分区对应的目标关键字类型对应的第一测试框架,所述预设的规则是将未进行测试的目标分区按照其中的测试用例的数量进行排序,然后按照从高到低的顺序来选择一个目标分区,作为第一目标分区;
测试模块,用于控制所述第一测试框架对所述第一目标分区中的全部测试用例进行多线程测试;
结束模块,用于当所述第一目标分区中的全部测试用例测试结束后,再次根据所述预设的规则选择第二目标分区,及第二目标分区对应的第二测试框架进行多线程测试,直至测试完所述存储器中的所有测试用例;
所述测试模块包括:
开启子模块,用于开启多个进程;
测试子模块,用于控制测试框架在每一个进程中执行一个所述第一目标分区中的一个测试用例;
读取子模块,用于当任一个所述进程执行完成一个所述测试用例后,读取所述第一目标分区中的一个未测试的测试用例进行测试;
所述开启子模块包括:
获取单元,用于获取所述第一测试框架的类型;
确定单元,用于根据测试框架的类型与进程数量的对应关系,获取与所述第一测试框架对应的进程数量M,其中,所述M为正整数;
开启单元,用于开启所述M个进程;
所述开启单元包括:
判断子单元,用于判断所述进程数量是否小于所述第一目标分区中的测试用例的数量;
开启子单元,用于若所述进程数量小于所述分区中的测试用例的数量,则开启所述M个进程。
6.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910319535.8A CN110162466B (zh) | 2019-04-19 | 2019-04-19 | 自动测试方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910319535.8A CN110162466B (zh) | 2019-04-19 | 2019-04-19 | 自动测试方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110162466A CN110162466A (zh) | 2019-08-23 |
CN110162466B true CN110162466B (zh) | 2021-02-09 |
Family
ID=67638640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910319535.8A Active CN110162466B (zh) | 2019-04-19 | 2019-04-19 | 自动测试方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110162466B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416744A (zh) * | 2020-01-21 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 一种测试控制系统、方法及设备 |
CN112416743A (zh) * | 2020-01-21 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 一种测试控制系统、方法及设备 |
CN112416745A (zh) * | 2020-01-21 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 一种测试控制系统、方法及设备 |
CN116805521B (zh) * | 2023-08-22 | 2023-11-14 | 南通大学附属医院 | 面向历史信息的医院档案监控平台与方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212759B (zh) * | 2006-12-26 | 2011-03-02 | 中兴通讯股份有限公司 | 一种手机软件集成测试方法 |
US7958495B2 (en) * | 2007-03-08 | 2011-06-07 | Systemware, Inc. | Program test system |
JP4946651B2 (ja) * | 2007-06-15 | 2012-06-06 | 富士通株式会社 | 仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法 |
CN101620566A (zh) * | 2009-07-23 | 2010-01-06 | 北京航空航天大学 | 一种动态随机测试方法 |
CN101650687B (zh) * | 2009-09-14 | 2011-03-30 | 清华大学 | 一种大规模并行程序性能预测实现方法 |
US20120102462A1 (en) * | 2010-10-26 | 2012-04-26 | Microsoft Corporation | Parallel test execution |
CN102609352B (zh) * | 2011-01-19 | 2014-11-19 | 阿里巴巴集团控股有限公司 | 一种并行测试方法及并行测试服务器 |
CN102214139B (zh) * | 2011-06-01 | 2013-11-27 | 北京航空航天大学 | 一种面向分布式系统的自动化测试的执行控制与调度方法 |
CN104077218B (zh) * | 2013-03-29 | 2018-12-14 | 百度在线网络技术(北京)有限公司 | MapReduce分布式系统的测试方法及设备 |
US9201768B1 (en) * | 2014-02-06 | 2015-12-01 | Amdoes Software Systems Limited | System, method, and computer program for recommending a number of test cases and effort to allocate to one or more business processes associated with a software testing project |
CN105224450B (zh) * | 2014-07-02 | 2018-06-05 | 阿里巴巴集团控股有限公司 | 并发测试方法及装置 |
CN108595339A (zh) * | 2018-05-09 | 2018-09-28 | 成都致云科技有限公司 | 自动化测试方法、装置及系统 |
-
2019
- 2019-04-19 CN CN201910319535.8A patent/CN110162466B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110162466A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162466B (zh) | 自动测试方法、装置、计算机设备和存储介质 | |
CN109815991A (zh) | 机器学习模型的训练方法、装置、电子设备及存储介质 | |
CN109446173A (zh) | 日志数据处理方法、装置、计算机设备和存储介质 | |
CN111176996A (zh) | 测试用例生成方法、装置、计算机设备及存储介质 | |
CN109710402A (zh) | 处理资源获取请求的方法、装置、计算机设备和存储介质 | |
CN109597874B (zh) | 信息推荐方法、装置及服务器 | |
CN111367595B (zh) | 数据处理方法、程序运行方法、装置及处理设备 | |
CN110297767B (zh) | 测试用例自动执行方法、装置、设备及存储介质 | |
CN108399125B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN110532056A (zh) | 一种应用于用户界面中的控件识别方法及装置 | |
CN111124872A (zh) | 基于差异代码分析的分支检测方法、装置及存储介质 | |
CN116841885A (zh) | 一种基于测试用例库的测试方法、装置及电子设备 | |
CN113434395A (zh) | 测试用例的自动化生成方法、装置、设备及介质 | |
CN114936269A (zh) | 文档搜索平台、搜索方法、装置、电子设备及存储介质 | |
WO2015124086A1 (en) | Virus signature matching method and apparatus | |
CN112732819A (zh) | 基于etl的数据处理方法、装置、设备和存储介质 | |
CN109002980B (zh) | 一种场景化的知识检验方法及装置 | |
CN112783775A (zh) | 特殊字符输入测试方法及装置 | |
CN108804311B (zh) | 一种执行测试文件的方法及装置 | |
JP5325931B2 (ja) | 影響分析方法および影響分析プログラム | |
CN112181831A (zh) | 基于关键词的脚本性能校验方法、装置、设备及存储介质 | |
CN111427870B (zh) | 一种资源管理方法、装置及设备 | |
CN114357433A (zh) | 应用程序的启动控制方法及装置 | |
US20230259536A1 (en) | Data processing device, data processing method, and data processing program | |
CN113515454A (zh) | 测试用例生成方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |