CN102222036B - 一种自动化测试方法和设备 - Google Patents
一种自动化测试方法和设备 Download PDFInfo
- Publication number
- CN102222036B CN102222036B CN201010150005.4A CN201010150005A CN102222036B CN 102222036 B CN102222036 B CN 102222036B CN 201010150005 A CN201010150005 A CN 201010150005A CN 102222036 B CN102222036 B CN 102222036B
- Authority
- CN
- China
- Prior art keywords
- case
- test
- test case
- request
- assert
- 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.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种自动化测试方法和设备,主要内容包括:将测试过程中的用例划分为测试用例和断言用例两部分,在测试用例执行完毕后停止该测试用例,在停止测试用例之后建立起对应的断言用例执行条件,在所述条件满足时再执行对应的断言用例,进而确定被测对象的状态。由于本申请方案中将测试用例和断言用例作为两个独立的用例,在测试用例执行完毕后停止该测试用例,因此,避免了在等待被测设备返回测试结果的过程中占用系统资源,减少了系统资源的浪费。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种自动化测试方法和设备。
背景技术
在自动化测试技术中,需要使用测试用例对被测对象进行测试,并根据测试结果进行断言,进而确定被测对象是否处于正常运行的状态。在一个测试用例的执行过程中,首先向被测对象发起测试请求,等待被测对象根据接收到的测试请求进行计算操作或是业务处理操作后返回测试结果,并根据返回的测试结果进行断言。在测试用例的执行过程中,被测对象进行计算操作或是业务处理操作需要占用一段时间,在该段时间内,测试用例将会一直处于等待状态,持续占用系统资源。
传统的自动化测试方案采用的是串行测试,将待执行的测试用例进行排序,在前一个测试用例执行完成之后再执行下一个测试用例。在串行测试方式下,如果前一个测试用例在执行过程中需要等待较长的时间才能得到被测对象返回的测试结果,后一个测试用例只能等待前一个测试用例完成后才能执行,因此在串行测试方式下,测试过程的效率低下。
为了解决测试过程效率低下的问题,目前提出了一种并行测试方式,即多进程或者多台计算机网络分布式并行执行测试用例的方式。在并行测试方式下,多个测试用例同时执行,则一个测试用例在等待测试结果的过程中,不会阻塞其他测试用例的执行。但是,测试用例在等待测试结果时会一直占用系统资源,如果测试用例等待的时间较长,则这种并行测试方式将会浪费大量的系统资源,特别是对于需要使用大量的测试用例对被测对象进行测试时,因系统资源被等待测试结果的测试用例占用,从而导致系统资源利用效率低下。
综上所述,目前的自动化测试技术中,存在测试用例在等待测试结果的过程中浪费系统资源的问题。
申请内容
本申请的目的在于,提供一种自动化测试方法和设备,用以解决现有技术中存在的测试用例在等待测试结果的过程中浪费系统资源的问题。
一种自动化测试的方法,包括:
步骤1)、执行测试用例,根据测试用例向被测对象发起测试请求;
步骤2)、停止执行所述测试用例;
步骤3)、根据设定的触发条件,执行停止的测试用例对应的断言用例。
一种自动化测试设备,包括:
测试用例执行模块,用于执行测试用例,并根据测试用例向被测对象发起测试请求;
停止模块,用于在发起测试请求之后,停止执行测试用例;
断言用例执行模块,用于根据设定的触发条件,执行停止的测试用例对应的断言用例。
本申请有益效果如下:
本申请将测试过程中的用例划分为测试用例和断言用例两部分,在测试用例执行完毕后停止该测试用例,在停止测试用例之后再执行对应的断言用例,进而确定被测对象的状态。由于本申请方案中将测试用例和断言用例作为两个独立的用例,在测试用例执行完毕后停止该测试用例,因此避免了在等待被测设备返回测试结果的过程中占用系统资源,减少了系统资源的浪费。
附图说明
图1为本申请实施例一执行自动化测试的方法示意图;
图2为本申请实施例二配置文件的结构示意图;
图3为本申请实施例二执行自动化测试的方法示意图;
图4为本申请实施例三配置文件的结构示意图;
图5为本申请实施例三执行自动化测试的方法示意图;
图6为本申请实施例四自动化测试设备结构示意图。
具体实施方式
本申请提出将测试过程中的用例划分为测试用例和断言用例两部分,并对针对同一测试过程的测试用例和断言用例关联在一起,在对被测对象进行测试时,执行完成测试用例之后停止该测试用例,以达到释放系统资源的目的;停止测试用例之后再执行对应的断言用例,确定被测对象的状态。通过本申请的方案,在等待测试结果时,测试用例无需占用系统资源,减少了系统资源浪费。
下面结合说明书附图对本申请的方案进行详细说明。
实施例一
如图1所示,为本申请实施例一中执行自动化测试的方法示意图,所述方法包括以下步骤:
步骤101:服务器执行测试用例,根据测试用例向被测对象发起测试请求。
根据被测对象测试需求的不同,设计不同的测试用例,在服务器端启动这些测试用例时,根据测试用例向被测对象发起相应的测试请求,被测对象收到测试请求后执行相应的计算操作或是业务处理操作。
此时,服务器可对当前执行的测试用例的执行状态进行监控,包括但不限于监控测试用例是否处于运行状态和/或监控测试用例占用的系统资源(包括系统的CPU、内存等)等。本实施例中的服务器是自动化测试过程的发起者,同时也是对自动化测试过程进行实时监控的监控者。服务器可能需要执行多个测试用例,因此可能需要对多个被测对象发起测试请求,也可能需要针对一个被测对象发起多个测试请求,这些测试用例可以采用并行的方式执行。
步骤102:停止执行测试用例。
该步骤中,服务器还可对被测对象进行监控,判断被测对象是否正确接收到测试请求,若是,则停止执行被测对象已成功接收的测试请求对应的测试用例;否则,确定被测对象处于非正常状态,停止执行该测试用例,并且可设定不再执行该测试用例对应的断言用例。
具体地,监控被测对象是否正确接收到测试请求包括但不限于以下方式:
对被测对象针对测试请求返回的响应进行实时监控,当被测对象针对某一个或多个测试请求返回响应时,表明该测试请求已被被测对象成功接收;如果未监控到被测对象针对测试请求返回的响应,则表明该测试请求未被被测对象成功接收。
已经成功接收到测试请求的被测对象将在后台进行计算操作或是业务处理操作,服务器端对应的测试用例运行或停止都不会对被测对象产生影响,因此服务器可停止被测对象已成功接收的测试请求对应的测试用例,释放该停止的测试用例占用的系统资源,这样可避免现有技术中因等待被测对象的测试结果而造成测试用例占用系统资源的问题,大幅提高了服务器端系统资源的利用率。
步骤103:根据设定的断言用例的触发条件,执行该停止的测试用例对应的断言用例。
在步骤102中虽然停止执行测试用例,但被测对象仍然在继续执行计算操作或是业务处理操作。为了进一步确定被测对象是否处于正常运行的状态,在停止执行测试用例之后,建立停止的测试用例对应的断言用例的触发条件,在断言用例的触发条件满足时执行停止的测试用例对应的断言用例,利用该断言用例对被测对象返回的测试结果进行断言。
在本实施例一中,停止测试用例之后触发对应的断言用例的触发条件包括但不限于以下两种:
第一种触发条件:将每个测试用例对应的异步回调间隔作为触发条件,所述异步回调间隔是指测试用例停止执行至对应的断言用例开始执行之间的时间间隔。在该异步回调间隔内,停止执行异步回调间隔对应的测试用例且未执行对应的断言用例,由被测对象在后台执行计算操作或是业务处理操作,这样可有效地减少系统资源的占用。
第二种触发条件:将接收到被测对象返回的测试结果作为触发条件。也就是说,在停止执行测试用例且被测对象返回测试结果之前,不执行对应的断言用例,以减少系统资源的占用;在被测对象返回测试结果后,执行对应的断言用例,这样能够在最短的时间内执行断言用例,提高了自动化测试的效率。
通过实施例一的方案,将测试用例和断言用例异步执行,在等待被测对象返回测试结果时,测试用例不再占用系统资源,减少了系统资源浪费;进一步地,在测试用例停止后,使用上述第一种断言用例的触发条件触发断言用例时,能够使断言用例在系统处于相对空闲的状态被调用;使用上述第二种断言用例的触发条件触发断言用例时,由于被测对象已完成计算操作或业务操作,在保证系统资源高效的利用率的情况下,提高了测试效率。
实施例二
本实施例二以异步回调间隔作为触发条件对实施例一的方案进行详细说明。
在本实施例二中,通过配置文件预先对测试用例和对应的断言用例进行资源配置,如图2所示,为配置文件的结构示意图,对本配置文件的说明如下:
配置文件中包含测试用例注册表、断言用例注册表和异步断言规则表。
测试用例注册表中记录了每个测试用例的名称、位置和请求超时时长。其中,测试用例的名称唯一表示测试用例;测试用例的位置表示服务器调用测试用例时的访问地址;请求超时时长表示针对测试用例的测试请求向被测对象发送后,收到被测对象响应的最大延迟时长。
断言用例注册表中也记录了每个断言用例的名称、位置和断言超时时长。其中,断言用例的名称唯一表示断言用例;断言用例的位置表示服务器调用断言用例时的访问地址;断言超时时长表示调用断言用例后接收被测对象发送的测试结果的最大延迟时长。
异步断言规则表中记录了测试用例和断言用例的对应关系,以及测试用例与异步回调时间间隔的对应关系。
在对测试用例和对应的断言用例进行资源配置后,可以将配置文件存储在服务器或者能够与服务器进行通信的其它存储设备中,然后进行自动化测试操作。
如图3所示,本实施例二的方案包括以下步骤:
步骤301:服务器执行测试用例,根据执行的测试用例向被测对象发起测试请求。
在本步骤之前,服务器可以加载配置文件,执行执行测试用例注册表中的测试用例,根据测试用例向被测对象发起测试请求。
在本实施例中,测试用例采用并行的方式执行。并可以设置请求并行池,所述请求并行池用于记录待执行的测试用例的测试请求。服务器为请求并行池中的每一个测试请求分配系统资源,每当有新的测试用例需要执行时,向请求并行池中增加该新的测试用例的测试请求;当有测试用例执行完毕时,从请求并行池中删除执行完毕的测试用例的测试请求,并收回对应的已经分配系统资源。
服务器根据加载的配置文件中的请求超时时长,判断是否有测试用例执行完成,若是,则执行步骤302;否则,继续对测试用例的执行状态进行监控。
服务器判断是否有测试用例执行完成的具体实现方式为:
首先,从配置文件中读取执行的测试用例对应的请求超时时长。
然后,在发起测试请求时,启动计时器,针对每个测试用例,判断在测试用例对应的请求超时时长到达之前是否接收到该测试用例对应的测试请求的响应;若接收到,则表示被测对象成功接收测试请求,此时,该测试用例执行完毕,执行步骤302;否则,继续对是否接收到测试请求的响应进行监控,如果在请求超时时长到达时仍未接收到响应,表示被测对象未成功接收测试请求(传输故障或是被测对象非正常运行),则停止未接收到响应的测试请求对应的测试用例,停止的测试用例所测试的被测对象处于非正常状态。此时,确定被测对象处于非正常状态后,可以继续执行后续步骤,也可以不再执行停止的测试用例对应的断言用例。
步骤302:停止执行完成的测试用例。
在一个测试用例执行完成后,从请求并行池中删除完成的测试用例对应的测试请求,并释放为该测试请求分配的资源。
步骤303:服务器以异步回调间隔作为触发条件,执行停止的测试用例对应的断言用例。
服务器根据所述配置文件的异步断言规则表,得到该停止执行的测试用例所对应的异步回调间隔和断言用例。
在本步骤中,可以设定一个断言并行表,将停止的测试用例对应的异步回调间隔和对应的断言用例的相关信息记录在断言并行表中,所述相关信息包括断言用例的名称、地址和断言超时时长等。当服务器从配置文件中读取停止的测试用例对应的异步回调间隔和断言用例后,向断言并行表中增加异步回调间隔和对应的断言用例的相关信息;当有断言用例执行完毕时,从断言并行表中删除执行完毕的断言用例和对应的异步回调间隔。
确定异步回调间隔之后,利用所述异步回调间隔触发断言用例的方案为:
首先,判断当前时刻与停止执行测试用例时刻之间的第一时长是否不小于该测试用例对应的异步回调间隔;若是,表示在停止测试用例之后等待的时长不小于异步回调间隔,可以在当前时刻立即执行停止的测试用例对应的断言用例;否则,表示在停止测试用例之后等待的时长过短,还未达到异步回调间隔,则继续等待第二时长后再执行停止的测试用例对应的断言用例,所述第一时长与第二时长之和不小于该测试用例对应的异步回调间隔。
在触发了断言用例之后,具体执行所述断言用例的方案为:
首先,根据断言用例注册表或断言并行表中断言用例与断言超时时长的对应关系,确定执行的断言用例对应的断言超时时长。
然后,针对每个断言用例,判断在断言用例对应的断言超时时长到达之前是否接收到测试结果;若是,表示被测对象正常地返回了测试结果,则断言用例根据测试结果进行断言,确定被测对象的状态;否则,表示被测对象未正常返回测试结果(传输故障或是被测对象非正常运行),确定其对应的被测对象处于非正常状态。
步骤304:服务器判断测试用例是否全部执行完毕;若是,则执行步骤305;否则,转至步骤301,继续执行请求并行池中未执行的测试请求。并且可继续监控请求并行池中测试用例的执行完成状态。
在本实施例中,服务器可以根据请求并行池中是否还有待执行的测试用例来判断测试用例是否全部执行完毕。
步骤305:服务器判断断言用例是否全部执行完成,若是,则停止自动化测试操作;否则,跳转至步骤303,继续执行断言并行表未执行的断言用例。并且可继续监控正在执行的断言用例的完成状态。
在本实施例中,服务器可以根据断言并行表中是否还有待执行的断言用例来判断断言用例是否全部执行完毕。
通过实施例二的方案,通过配置文件中已记录的异步回调间隔作为执行断言用例的触发条件,使得自动化测试实现方式简便,过程更加高效。
实施例三
本实施例三以接收被测对象返回的测试结果作为触发条件对实施例一的方案进行详细说明。
在本实施例三中,需要对测试用例和对应的断言用例进行资源配置,如图4所示,为配置文件的结构示意图,对本配置文件的说明如下:
配置文件中包含测试用例注册表、断言用例注册表和异步断言规则表。
测试用例注册表中记录的信息与图2中测试用例注册表的信息相同;断言用例注册表中也记录的信息与图2中断言用例注册表的信息相同;异步断言规则表中记录了测试用例和断言用例的对应关系。
在对测试用例和对应的断言用例进行资源配置后,可以进行自动化测试操作,如图5所示,包括以下步骤(步骤501~步骤502与实施例二中步骤301~步骤302相同):
步骤501:服务器执行测试用例,根据执行的测试用例向被测对象发起测试请求。
步骤502:停止执行完成的测试用例。
本步骤可以与实施例二类似地维护一个断言并行表,将从配置文件中读取的停止执行的测试用例对应的断言用例的相关信息记录在断言并行表中,所述相关信息包括断言用例的名称、地址和断言超时时长等。
步骤503:服务器接收被测对象返回的测试结果作为触发条件,执行停止的测试用例对应的断言用例。
服务器判断是否接收到停止的测试用例所测试的被测对象返回的测试结果;若是,则执行停止的测试用例对应的断言用例;否则,确定所述被测对象处于非正常状态。
在本步骤中,可以进一步判断在停止的测试用例之后,是否在设定时长内收到停止的测试用例所测试的被测对象返回的测试结果;若是,则执行停止的测试用例对应的断言用例;否则,确定所述被测对象处于非正常状态。在确定被测对象处于非正常状态之后,可以继续执行后续步骤,也可以不再执行停止的测试用例对应的断言用例。
实施例三的步骤504~步骤505与实施例二中步骤304~步骤305相同。
步骤504:服务器判断测试用例是否全部执行完毕;若是,则执行步骤505;否则,转至步骤501。
在本实施例中,服务器可以根据请求并行池中是否还有待执行的测试用例来判断测试用例是否全部执行完毕。
步骤505:服务器判断断言用例是否全部执行完成,若是,则停止自动化测试操作;否则,跳转至步骤503,继续执行断言用例。
在本实施例中,服务器可以根据断言并行表中是否还有待执行的断言用例来判断断言用例是否全部执行完毕。
通过本实施例三的方案,在确定被测对象已经完成计算操作和业务处理的情况下调用断言用例,在最短的时间内正确执行断言,提高了自动化测试的效率。
实施例四
本实施例四提供一种自动化测试设备,如图6所示,包括测试用例执行模块11、停止模块12和断言用例执行模块13,其中:
测试用例执行模块11用于执行测试用例,并根据测试用例向被测对象发起测试请求;停止模块12用于在发起测试请求之后,停止执行测试用例;断言用例执行模块13用于在停止执行测试用例之后,根据设定的触发条件,执行停止的测试用例对应的断言用例。
所述触发条件为停止执行的测试用例对应的异步回调间隔或接收到被测对象返回的测试结果,因此,所述停止模块12可以是当被测对象正确接收到所述测试请求时,或者是等待异步回调间隔后,停止执行被测对象已成功接收的测试请求对应的测试用例。
具体地,所述停止模块12包括请求超时时长判断模块201、测试用例停止模块202和测试用例非正常状态确定模块203,其中:请求超时时长判断模块201用于判断在每个测试用例对应的请求超时时长到达之前是否接收到该测试用例对应的测试请求的响应,若是触发测试用例停止模块202,否则,触发测试用例非正常状态确定模块203;测试用例停止模块202用于停止接收到响应的测试请求对应的该测试用例;测试用例非正常状态确定模块203用于停止未接收到响应的测试请求对应的测试用例,并确定停止的测试用例所测试的被测对象处于非正常状态。
具体地,所述测试用例执行模块11包括配置文件加载模块204、测试用例并行执行模块205和测试请求发起模块206,其中:配置文件加载模块204用于加载配置文件,所述配置文件用于预先对测试用例和对应的断言用例进行资源配置,其中包含测试用例注册表、断言用例注册表和异步断言规则表;测试用例并行执行模块205用于并行执行测试用例注册表中的测试用例;测试请求发起模块206用于根据测试用例向被测对象发起测试请求。
其中,所述停止模块12具体用于根据测试用例注册表中的各测试用例及其对应的请求超时时长,判断是否有测试用例执行完成,若是,则停止执行完成的测试用例;否则,继续对测试用例的执行状态进行监控。
具体地,所述断言用例执行模块13包括触发条件判断模块207和触发执行模块208,其中:触发条件判断模块207用于根据异步断言规则表中测试用例与断言用例的对应关系判断是否满足触发条件;触发执行模块208用于在满足所述触发条件时,执行停止的测试用例对应的断言用例。
所述测试用例执行模块11还包括请求并行池模块209,用于通过设定的请求并行池记录待执行的测试用例的测试请求,当有新的测试用例需要执行时,向所述请求并行池中增加该新的测试用例的测试请求并分配系统资源;当有测试用例执行完毕时,从请求并行池中删除执行完毕的测试用例的测试请求,并收回为执行完毕的测试请求分配的系统资源。
所述断言用例执行模块13还包括断言并行表模块210,用于设定断言并行表,将停止的测试用例对应的异步回调间隔和对应的断言用例的相关信息记录在该断言并行表中,当从配置文件中读取停止的测试用例对应的异步回调间隔和断言用例后,向断言并行表中增加异步回调间隔和对应的断言用例的相关信息;当有断言用例执行完毕时,从断言并行表中删除执行完毕的断言用例和对应的异步回调间隔。
其中,所述测试用例执行模块11还包括请求用例执行完毕判断模块211,用于判断请求并行池中是否还有需要执行的测试请求,若是,则继续执行执行测试用例;否则,触发断言用例执行完毕判断模块212。
所述断言用例执行模块13还包括断言用例执行完毕判断模块212,用于判断断言并行表中是否还有未执行的断言用例,若是,则继续执行停止的测试用例对应的断言用例;否则,结束自动化测试。
所述断言用例执行模块13包括断言超时时长判断模块213、触发断言用例模块214和断言用例非正常状态确定模块215,其中:断言超时时长判断模块213用于针对每个断言用例,判断在断言用例对应的断言超时时长到达之前是否接收到测试结果,若是,触发断言用例模块214,否则,触发断言用例非正常状态确定模块215;断言用例模块214用于根据接收到的测试结果执行该断言用例;断言用例非正常状态确定模块215用于确定未接收到测试结果的断言用例对应的被测对象处于非正常状态。
所述断言用例执行模块13还可以是具体用于判断当前时刻与停止执行测试用例时刻之间的第一时长是否不小于该测试用例对应的异步回调间隔,若是,则执行停止的测试用例对应的断言用例,否则,等待第二时长后执行停止的测试用例对应的断言用例,所述第一时长与第二时长之和不小于该测试用例对应的异步回调间隔。
通过本申请提供的方法和设备,将测试用例和断言用例并行执行,解决了串行传输时的阻塞问题;同时,在等待被测对象返回测试结果时,停止测试用例,减少了系统资源浪费;并且,通过异步回调断言用例,断言用例在系统空闲或是在被测对象已完成计算操作或业务操作的情况下被调用,在保证系统资源高效的利用率的情况下,提高了测试效率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变形而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变形属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变形在内。
Claims (12)
1.一种自动化测试的方法,其特征在于包括:
步骤1、执行测试用例,根据测试用例向被测对象发起测试请求;
步骤2、针对每个测试用例,根据测试用例对应的测试请求的请求超时时长,判断在请求超时时长到达之前是否接收到对应测试请求的响应,若是,则停止执行所述测试用例;否则,确定该测试用例对应的被测对象处于非正常状态,停止执行所述测试用例;
步骤3、以异步回调间隔或接收被测对象返回的测试结果作为触发条件,执行停止的测试用例对应的断言用例,其中,所述异步回调间隔是指测试用例停止执行至对应的断言用例开始执行之间的时间间隔;所述接收被测对象返回的测试结果是指被测对象是否接收到对应测试请求的响应。
2.如权利要求1所述的方法,其特征在于:
通过配置文件预先对测试用例和对应的断言用例进行资源配置,配置文件中包含测试用例注册表、断言用例注册表和异步断言规则表;
所述步骤1具体为,加载该配置文件,并行执行测试用例注册表中的测试用例,根据测试用例向被测对象发起测试请求;
所述步骤2具体为,根据测试用例注册表中的各测试用例对应的请求超时时长,判断是否有测试用例执行完成,若是,则停止执行完成的测试用例;否则,继续对是否接收到测试请求的响应进行监控,如果在请求超时时长到达时仍未接收到响应,表示被测对象未成功接收测试请求,则停止未接收到响应的测试请求对应的测试用例,停止的测试用例所测试的被测对象处于非正常状态;
所述步骤3具体为,根据异步断言规则表中测试用例与断言用例的对应关系,当满足触发条件时,执行停止的测试用例对应的断言用例。
3.如权利要求2所述的方法,其特征在于,通过设定请求并行池记录待执行的测试用例的测试请求,当有新的测试用例需要执行时,向所述请求并行池中增加该新的测试用例的测试请求并分配系统资源;当有测试用例执行完毕时,从请求并行池中删除执行完毕的测试用例的测试请求,并收回为执行完毕的测试请求分配的系统资源。
4.如权利要求3所述的方法,其特征在于,所述步骤3中还包括:
设定断言并行表,将停止的测试用例对应的异步回调间隔和对应的断言用例的相关信息记录在该断言并行表中,当从配置文件中读取停止的测试用例对应的异步回调间隔和断言用例后,向断言并行表中增加异步回调间隔和对应的断言用例的相关信息;当有断言用例执行完毕时,从断言并行表中删除执行完毕的断言用例和对应的异步回调间隔。
5.如权利要求1所述的方法,其特征在于,所述步骤3具体为:
设定断言用例对应的断言超时时长,针对每个断言用例,判断在断言超时时长到达之前是否接收到该断言用例对应的测试结果,若是,则根据接收到的测试结果执行该断言用例;否则,确定未接收到测试结果的断言用例对应的被测对象处于非正常状态。
6.如权利要求4所述的方法,其特征在于,所述步骤3之后还包括:
步骤4、判断请求并行池中是否还有需要执行的测试请求,若是,则执行步骤1;否则,执行步骤5;
步骤5、判断断言并行表中是否还有未执行的断言用例;若是,则执行步骤3;否则,结束自动化测试。
7.一种自动化测试设备,其特征在于包括测试用例执行模块、停止模块和断言用例执行模块,其中:
测试用例执行模块,用于执行测试用例,并根据测试用例向被测对象发起测试请求;
停止模块包括请求超时时长判断模块、测试用例停止模块和测试用例非正常状态确定模块,其中:
请求超时时长判断模块,用于判断在每个测试用例对应的请求超时时长到达之前是否接收到该测试用例对应的测试请求的响应,若是,则触发测试用例停止模块,否则,触发测试用例非正常状态确定模块;
测试用例停止模块,用于停止接收到响应的测试请求对应的该测试用例;
测试用例非正常状态确定模块,用于停止未接收到响应的测试请求对应的测试用例,并确定停止的测试用例所测试的被测对象处于非正常状态;
断言用例执行模块,用于以异步回调间隔或接收被测对象返回的测试结果作为触发条件,执行停止的测试用例对应的断言用例,其中,所述异步回调间隔是指测试用例停止执行至对应的断言用例开始执行之间的时间间隔;所述接收被测对象返回的测试结果是指被测对象是否接收到对应测试请求的响应。
8.如权利要求7所述的设备,其特征在于,
所述测试用例执行模块包括:
配置文件加载模块,用于加载配置文件,所述配置文件用于预先对测试用例和对应的断言用例进行资源配置,其中包含测试用例注册表、断言用例注册表和异步断言规则表;
测试用例并行执行模块,用于并行执行测试用例注册表中的测试用例;
测试请求发起模块,用于根据测试用例向被测对象发起测试请求;
所述停止模块,具体用于根据测试用例注册表中的各测试用例对应的请求超时时长,判断是否有测试用例执行完成,若是,则停止执行完成的测试用例;否则,继续对是否接收到测试请求的响应进行监控,如果在请求超时时长到达时仍未接收到响应,表示被测对象未成功接收测试请求,则停止未接收到响应的测试请求对应的测试用例,停止的测试用例所测试的被测对象处于非正常状态;
所述断言用例执行模块包括:
触发条件判断模块,用于根据异步断言规则表中测试用例与断言用例的对应关系判断是否满足触发条件;
触发执行模块,用于在满足所述触发条件时,执行停止的测试用例对应的断言用例。
9.如权利要求8所述的设备,其特征在于,
所述测试用例执行模块还包括:
请求并行池模块,用于通过设定的请求并行池记录待执行的测试用例的测试请求,当有新的测试用例需要执行时,向所述请求并行池中增加该新的测试用例的测试请求并分配系统资源;当有测试用例执行完毕时,从请求并行池中删除执行完毕的测试用例的测试请求,并收回为执行完毕的测试请求分配的系统资源。
10.如权利要求9所述的设备,其特征在于,
所述断言用例执行模块还包括:
断言并行表模块,用于设定断言并行表,将停止的测试用例对应的异步回调间隔和对应的断言用例的相关信息记录在该断言并行表中,当从配置文件中读取停止的测试用例对应的异步回调间隔和断言用例后,向断言并行表中增加异步回调间隔和对应的断言用例的相关信息;当有断言用例执行完毕时,从断言并行表中删除执行完毕的断言用例和对应的异步回调间隔。
11.如权利要求10所述的设备,其特征在于,
所述测试用例执行模块还包括:
请求用例执行完毕判断模块,用于判断请求并行池中是否还有需要执行的测试请求,若是,则继续执行执行测试用例;否则,触发断言用例执行完毕判断模块;
所述断言用例执行模块还包括:
断言用例执行完毕判断模块,用于判断断言并行表中是否还有未执行的断言用例,若是,则继续执行停止的测试用例对应的断言用例;否则,结束自动化测试。
12.如权利要求7所述的设备,其特征在于,
所述断言用例执行模块包括:
断言超时时长判断模块,用于针对每个断言用例,判断在断言用例对应的断言超时时长到达之前是否接收到测试结果,若是,触发断言用例模块,否则,触发断言用例非正常状态确定模块;
断言用例模块,用于根据接收到的测试结果执行该断言用例;
断言用例非正常状态确定模块,用于确定未接收到测试结果的断言用例对应的被测对象处于非正常状态。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010150005.4A CN102222036B (zh) | 2010-04-14 | 2010-04-14 | 一种自动化测试方法和设备 |
HK12100313.6A HK1160244A1 (zh) | 2010-04-14 | 2012-01-11 | 種自動化測試方法和設備 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010150005.4A CN102222036B (zh) | 2010-04-14 | 2010-04-14 | 一种自动化测试方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102222036A CN102222036A (zh) | 2011-10-19 |
CN102222036B true CN102222036B (zh) | 2014-11-12 |
Family
ID=44778592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010150005.4A Expired - Fee Related CN102222036B (zh) | 2010-04-14 | 2010-04-14 | 一种自动化测试方法和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102222036B (zh) |
HK (1) | HK1160244A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662837B (zh) * | 2012-03-29 | 2015-04-29 | 北京奇虎科技有限公司 | 一种浏览器的测试方法和系统 |
CN103793318B (zh) * | 2012-10-29 | 2018-06-12 | 百度在线网络技术(北京)有限公司 | 一种模块稳定性的分布式测试方法及装置 |
CN106326092B (zh) * | 2015-06-25 | 2019-02-19 | 阿里巴巴集团控股有限公司 | 一种集成测试方法及装置 |
CN107273286B (zh) * | 2017-06-02 | 2020-10-27 | 携程计算机技术(上海)有限公司 | 针对任务应用的场景自动化测试平台及方法 |
CN108614770B (zh) * | 2018-04-09 | 2021-08-27 | 中国工商银行股份有限公司 | 自动化测试断言方法、装置、存储介质及设备 |
CN108595331B (zh) * | 2018-04-24 | 2021-11-02 | 杭州网易智企科技有限公司 | 异步接口的测试方法、介质、装置和计算设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1932776A (zh) * | 2006-09-29 | 2007-03-21 | 上海科泰世纪科技有限公司 | 嵌入式操作系统中接口测试的自动化运行方法 |
CN101052020A (zh) * | 2007-05-21 | 2007-10-10 | 中兴通讯股份有限公司 | 一种自动化测试执行过程的监控方法和系统 |
CN101226502A (zh) * | 2008-02-03 | 2008-07-23 | 中兴通讯股份有限公司 | 一种自动化测试方法及系统 |
-
2010
- 2010-04-14 CN CN201010150005.4A patent/CN102222036B/zh not_active Expired - Fee Related
-
2012
- 2012-01-11 HK HK12100313.6A patent/HK1160244A1/zh not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1932776A (zh) * | 2006-09-29 | 2007-03-21 | 上海科泰世纪科技有限公司 | 嵌入式操作系统中接口测试的自动化运行方法 |
CN101052020A (zh) * | 2007-05-21 | 2007-10-10 | 中兴通讯股份有限公司 | 一种自动化测试执行过程的监控方法和系统 |
CN101226502A (zh) * | 2008-02-03 | 2008-07-23 | 中兴通讯股份有限公司 | 一种自动化测试方法及系统 |
Non-Patent Citations (1)
Title |
---|
张德平,聂长海,徐宝文.《基于Markov 决策过程用交叉熵方法优化软件测试》.《软件学报》.2008,第19卷(第10期), * |
Also Published As
Publication number | Publication date |
---|---|
CN102222036A (zh) | 2011-10-19 |
HK1160244A1 (zh) | 2012-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102222036B (zh) | 一种自动化测试方法和设备 | |
CN103034554B (zh) | 一种纠错重启以及自动判断启动的etl调度系统及方法 | |
EP2715539B1 (en) | Distributed computing framework | |
CN102779075A (zh) | 一种在多处理器核系统中进行调度的方法、装置及系统 | |
CN109064327B (zh) | 一种智能合约处理方法、装置及设备 | |
CN108632365A (zh) | 服务资源调整方法、相关装置和设备 | |
CN102591754A (zh) | 用于由计算机控制的电子产品的自动测试方法 | |
CN102662740B (zh) | 非对称多核系统及其实现方法 | |
CN103176774A (zh) | 应用程序的编译方法、装置以及系统 | |
CN102479146A (zh) | 一种场景测试监控方法、装置及场景测试监控系统 | |
CN112769810B (zh) | 防火墙测试方法、装置、非易失性存储介质和电子装置 | |
CN102768637A (zh) | 一种控制测试执行的方法及装置 | |
CN107015850A (zh) | 线程调度方法和装置 | |
CN109324983A (zh) | 一种自动清理缓存文件的方法、存储介质、设备及系统 | |
CN104516809A (zh) | 一种自动化测试系统及方法 | |
CN112765028B (zh) | 基于群控机制的Android应用程序测试方法及系统 | |
CN102207888A (zh) | 定时器管理方法和装置 | |
CN103488536A (zh) | 任务调度方法、装置及操作系统 | |
CN103888306A (zh) | 一种对消息转发系统的性能测试方法及性能测试设备 | |
CN104992271B (zh) | 一种不同流程实例协同运行的系统及其实现方法 | |
CN104731702B (zh) | 测试系统及其服务端 | |
CN109992388B (zh) | 一种用于核电厂安全级设备软件多任务管理系统 | |
CN110795334B (zh) | 一种测试装置和方法 | |
CN111177232B (zh) | 一种数据处理方法、装置、系统和存储介质 | |
CN102122249B (zh) | 启动java应用的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1160244 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1160244 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141112 |