一种控制测试执行的方法及装置的制作方法

文档序号:6423614阅读:106来源:国知局
专利名称:一种控制测试执行的方法及装置的制作方法
技术领域
本申请涉及测试技术,特别是涉及在性能测试过程中,一种控制测试执行的方法
及装置。
背景技术
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。软件测试中的性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。在性能测试中,包括并发性能测试、疲劳强度测 试、大数据量测试和速度测试等,其中并发性能测试是重点。并发性能测试的执行策略一般分为两种,一种是按照指定次数执行,另外ー种是按照指定时长执行。在性能测试工作中,测试被测系统的健壮性需要长时间运行并发请求生成工具,如果按照指定执行次数的策略来操作,并且如果被测系统运行速度足够快,则被测系统很快就将该请求执行完毕,这就无法达到长期测试某一系统健壮性的目的。例如,测试某系统,期望执行一天来测试该系统的性能,如果设定执行次数,但该系统很快运行完所设定的执行次数,则未达到执行一天的测试要求。如果设定的执行次数过多,又可能超过一天的执行要求。综上所述,如果按照指定执行次数的策略,就很难把握测试的时间要求,尤其是对于测试时间要求比较长的系统健壮性等测试,无法按时完成测试。

发明内容
本申请提供了一种控制测试执行的方法及装置,能够按照指定时长执行测试。为了解决上述问题,本申请公开了一种控制测试执行的方法,包括启动测试后,设定用于控制定时执行的全局定时器;当运行并发操作时生成多进程,每个进程又生成多线程;每个线程在并发执行过程中根据所述全局定时器循环判断并发执行是否结束,如果是,则结束该线程的执行。优选的,所述每个线程在并发执行过程中根据所述全局定时器循环判断并发执行是否结束,包括启动测试后,设定用于控制每个线程循环的全局条件变量,并在所述全局定时器的计时结束后修改所述全局条件变量;每个线程在并发执行过程中循环判断所述全局条件变量是否被修改,如果被修改,则结束该线程的执行。优选的,所述设定用于控制每个线程循环的全局条件变量包括启动父进程,在所述父进程初始化的过程中,生成进程共享的内存区域,并在该区域中声明ー个全局条件变量,设定该全局条件变量的初始值为true ;其中,所述父进程用于生成多个子进程,每个子进程又生成多个子线程;所述方法还包括每个子线程在并发执行过程中从所述共享的内存区域读取该全局条件变量。优选的,所述设定用于控制定时执行的全局定时器包括父进程生成一个定时器线程;在所述全局定时器的计时结束后修改所述全局条件变量包括在所述定时器线程计时结束后,发送信号通知父进程将所述全局条件变量的值修改为false。优选的,所述每个线程在并发执行过程中循环判断所述全局条件变量是否被修改,包括每个子线程在并发执行过程中循环判断所述全局条件变量的值,如果为false,则已被修改。优选的,每个子线程单独运行ー套测试代码。本申请还提供了一种控制测试执行的装置,包括、
定时器设置单元,用于启动测试后,设定用于控制定时执行的全局定时器;并发执行単元,用于当运行并发操作时生成多进程,每个进程又生成多线程;定时控制単元,用于每个线程在并发执行过程中根据所述全局定时器循环判断并发执行是否结束,如果是,则结束该线程的执行。优选的,所述装置还包括变量设置単元,用于启动测试后,设定用于控制每个线程循环的全局条件变量,并在所述全局定时器的计时结束后修改所述全局条件变量;则每个线程在并发执行过程中循环判断所述全局条件变量是否被修改,如果被修改,则结束该线程的执行。优选的,所述变量设置单元包括共享内存生成子単元,用于启动父进程,在所述父进程初始化的过程中,生成进程共享的内存区域;其中,所述父进程用于生成多个子进程,每个子进程又生成多个子线程;变量声明子単元,用于在所述内存区域中声明ー个全局条件变量,设定该全局条件变量的初始值为true。优选的,所述定时器设置单元包括定时器生成子単元,用于由父进程生成ー个定时器线程;消息通知子単元,用于在所述定时器线程计时结束后,发送信号通知父进程将所述全局条件变量的值修改为false。优选的,每个子线程在并发执行过程中循环判断所述全局条件变量的值,如果为fal se,则已被修改。优选的,每个子线程单独运行ー套测试代码。与现有技术相比,本申请包括以下优点首先,本申请提出一种基于多进程多线程的定时测试控制方法,通过设置定时器,每个进程及其子线程在执行到一定时间后可以自动停止,从而让测试工作几天、几周的长期执行,而不用考虑需要设置ー个多大的执行次数才能持续测试几天、几周。其次,所述用于定时控制的定时器是ー个全局定时器,每个进程及其子线程都是根据该全局定时器判断是否停止执行,这样就可以保证所有的并发线程同时开始执行、同时结束,实现最大并发量。而且,通过ー个定时器更方便全局的管理,提高测试效率。再次,本申请基于所述全局定时器,通过ー个全局的条件变量来控制测试的定时执行。具体的,在所述定时器在计时结束后会改变所述条件变量的值,而每个进程及其子线程循环判断所述全局的条件变量的值是否改变,如果改变则停止执行。这种进行条件控制的方式能够减轻执行负担,提闻执行效率。
最后,本申请中每个子线程都单独运行ー套测试代码,这样通过每个子线程发出的请求都是独立的、并行的,从而保证了最大并发量。当然,实施本申请的任一产品不一定需要同时达到以上所述的所有优点。


图I是本申请实施例所述ー种控制测试执行的方法流程图;图2是本申请优选实施例所述ー种控制压力测试执行的模型示意图;图3是图2所示模型控制压力测试定时执行的方法流程图;图4是本申请实施例所述ー种控制测试执行的装置结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本申请作进一步详细的说明。为了按照指定时长执行测试,本申请提出一种基于多进程多线程的定时测试控制方法及装置,可以使每个进程及其子线程在执行到一定时间后自动停止。本申请主要适用于各种并发性能测试中。下面通过实施例对本申请所述方法的实现流程进行详细说明。參照图1,是本申请实施例所述ー种控制测试执行的方法流程图。所述方法主要用于控制并发性能测试的定时执行,包括以下步骤步骤101,启动测试后,设定用于控制定时执行的全局定时器;其中,所述定时器是ー个全局定时器,所述“全局”是指该定时器的作用域为整个程序,而不是某个函数内部。全局定时器的作用是控制并发测试的定时执行,当全局定时器开始计时后,并发操作开始执行;当全局定时器结束计时后,并发操作停止执行。根据测试需要,可设定全局定时器的时间为几小时、一天、更长或更短的时间。步骤102,当运行并发操作时生成多进程,每个进程又生成多线程;即所述并发性能测试运行的是ー个多进程多线程的模型,多个进程同时执行,每个进程生成的多个线程也在同时执行,因此总的并发数量为进程数量乘以每个进程生成的线程数量。由此可见,这种多进程多线程的模型能够最大程度地提高并发能力。步骤103,每个线程在并发执行过程中根据所述全局定时器循环判断并发执行是否结束,如果是,则结束该线程的执行。如上所述,全局定时器的作用就是控制并发测试的定时执行,其中每个线程都是根据所述全局定时器进行判断,这样就可以保证所有并发执行的线程都可以同时执行、同时停止,从而保证并发量。根据所述全局定时器判断并发执行是否结束的方法可以有多种,本申请实施例提供了以下两种实现方法ー种方法是在启动测试后,设定用于控制每个线程循环的全局条件变量,并在所述全局定时器的计时结束后修改所述全局条件变量;每个线程在并发执行过程中循环判断所述全局条件变量是否被修改,如果被修改,则结束该线程的执行;如果一直未被修改,则继续循环执行。还有ー种方法是每个线程在毎次循环时都将当前系统时间与所述全局定时器中设定的时间进行比较,看是否已达到全局定时器中设定的时间。如果达到,则退出循环,结束该线程的执行;如果一直未达到,则继续循环执行。对比上述两种实现方法可以看出,第二种方法由于每次多出一个获取当前系统时间的操作,因此加重了运行的负担;而且,如果负担很重导致执行速度很慢,每个线程可能会执行不同歩,导致大量并发无法统ー结束。但是,上述两种方法都可以根据所述全局定时器判断定时是否结束,并且实际应用中也可以有其他的判断方法,本申请实施例对此不做限定。综上所述,图I所示实施例所述的方法在多进程多线程执行过程中,通过设置定时器,每个进程及其子线程在执行到一定时间后可以自动停止,从而让测试工作几天、几周 的长期执行,而不用考虑需要设置ー个多大的执行次数才能持续测试几天、几周。而且,所述用于定时控制的定时器是ー个全局定时器,每个进程及其子线程都是根据该全局定时器判断是否停止执行,这样就可以保证所有的并发线程同时开始执行、同时结束,实现最大并发量。在实际应用中,性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多祥。性能测试包括三个方面应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预測。其中,服务端性能测试区别于n性能测试、客户端性能测试等,通过产生大量高请求频率高并发的访问请求对服务端进行访问,让服务端在长时间高负载情况下运行,检查系统运行正确性、稳定性的测试方法。在服务端性能测试中,负载测试和压カ测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情況。压カ测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。为了使本领域技术人员进ー步了解本申请的内容,下面以服务端的压カ测试为例进行更加详细的说明。參照图2,是本申请优选实施例所述ー种控制压力测试执行的模型示意图。在所述压カ测试过程中,由压カ端产生压カ来测试服务端的性能。压カ端是ー种在性能测试时,模拟用户的某种业务操作,并将该操作或请求通过压カ生成方法变成高并发高频率的请求,以达到让服务端受压的目的。并且本实施例中,压カ端生成的压カ是可控的,比如主控程序可以让每个压カ执行指定时间,暂停、恢复、停止、退出等。在性能测试中,被测系统承受的压力大小取决于两个主要因素1)单个请求的请求频率;2)并发请求的请求数量。这种并发请求产生的压カ叫做并发压力,本实施例通过压カ端产生并发压カ来测试服务端的性能。从图2可以看出首先,本实施例是基于多进程多线程的性能测试。压カ端产生压力的入口进程称为父进程,当启动父进程后,在执行到压カ生成函数时,父进程会生成很多的子进程,如图2所示的子进程I到子进程N。而每个子进程主要的任务就是再生成很多的子线程,如图2所示的子线程I. I到子线程I. M。并且,负责生成压カ的代码运行于每个子线程中。这样,从应用级看,通过每个子线程的压カ生成代码发出的请求都是独立的、并行的,所以在运行时理论上的最大并发数应该遵循以下公式最大并发数=子进程数NX子线程M。以上是性能最高的高并发性能测试压力端压カ生成模型。其次,压カ生成代码运行在子线程的ー个循环语句中,这样可以让每个子线程可控的循环执行压カ测试,产生源源不断的请求。而每个子线程中循环语句的执行过程都由ー个全局统ー的循环条件变量控制,从而解决定时控制执行的问题。上述的循环条件变量被ー个全局的定时器线程所控制,正常执行时该循环条件变量为真(TRUE),当定时器计时结束后,定时器线程改变该循环条件变量为假(FALSE),从而达到中断循环的目的。下面通过图3的步骤详细说明图2所示模型中压カ端定时产生压カ的过程。 參照图3,是图2所示模型控制压力测试定时执行的方法流程图。以Xnix系统(Unix及Linux系统,并包括他们的衍生版本)为例,当然所述方法同样适用于Windows等其他操作系统。步骤301,启动压カ测试后,启动父进程;步骤302,在所述父进程初始化的过程中,生成进程共享的内存区域,并在该区域中声明ー个全局条件变量,设定该全局条件变量的初始值为true ;在Xnix系统中,可以通过mmap方法生成ー块进程共享的内存区域。在压カ生成过程中,子进程不改变该全局条件变量,该全局条件变量将作为模型中每个子线程循环结构的控制条件,由于该变量在进程共享的内存区内,所以不需要为每ー个进程都分配ー个条件变量,这便使得父进程可以统ー管理各个子进程的执行状态,同时节约了内存资源。步骤303,父进程生成一个定时器线程;所述定时器线程用于控制测试执行的时间,可以设为一天、ー小时等等。步骤304,当模型运行压力生成函数时,所述父进程生成多个子进程,每个子进程又生成多个子线程;在Xnix系统中,父进程可通过fork()方法生成子进程,子进程可继承父进程共享内存的访问权限。步骤305,所述定时器线程开始计时,每个子线程循环产生压カ请求;步骤306,所述定时器线程计时结束后,发送信号通知父进程将所述全局条件变量的值修改为false ;步骤307,每个子线程在每次循环中从所述共享的内存区域读取该全局条件变量,判断所述全局条件变量的值,如果为true,则不断产生压カ请求;如果为false,则退出循环,结束压カ的产生。需要说明的是,对于图3所示实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。通过以上流程,父进程通过定时器线程和设在共享内存的全局条件变量,就可以统ー管理所有并发的子线程的执行。
在Xnix系统中,父进程通过以下方式实现图3所示流程父进程在步骤302分配完全局条件变量后,具体还包括以下处理I、先实现ー个信号控制函数叫做cb_trap,该函数的作用是当执行该函数时,父进程改变处于进程共享空间中的全局条件变量,使其值为false ;2、再通过signal (SIGINT, cb_trap)方法,将cb_trap注册 为一个信号处理函数,信号量可以任意选择,本实施例采用SIGINT作为中断信号,当父进程接收到SIGINT信号时,便执行cb_trap函数;3、最后再生成ー个定时器线程,该定时器线程执行过程如下a)先接受一个回调函数及回调參数(本实施例中回调函数是cb_kill,它的作用是向父进程发送回调參数这个信号量,回调參数是所采用的信号量SIGINT);
b)定时器线程执行过程中通过select (0,0,0,0, time)进入阻塞状态;其中,所述time就是压カ端的各子线程定时执行的时间。在定时器线程的阻塞状态下,子线程源源不断的产生压カ请求,当时间到达time时所述定时器线程被唤醒;c)计时结束后执行回调函数并传入回调參数;d)回调函数向父进程发送SIGINT信号;e)父进程执行信号处理函数cb_trap ;f) cb_trap执行后改变处于共享内存区域的条件变量为false ;g)这时当每个子进程中的每个子线程所在的循环体进行下一次条件判断时,发现条件已变为false,于是退出循环执行,压カ端的压カ生成过程在该时间执行完毕。由上可知,父进程通过函数cb_trap改变全局条件变量的值,定时器线程通过回调函数及回调參数的方式通知父进程修改变量值,而子线程根据所述全局条件变量的值定时执行。在实际应用中,上述方法可以由C语言实现,可以达到很好的效果。而且,所述方法不依赖于特定的操作系统或硬件,还可跨平台执行。上述实施例是以压力测试为例进行说明,但具体应用中也可以应用到其他的性能测试中,其实施原理与上述实施例相似,故不再赘述。基于上述图I至图3的内容,为了突出本申请实施例所述方法的优点,下面将本申请与实际应用中可能采用的其他定时控制方法进行比较I、与可能采用的单进程多线程模型相比对于单进程多线程模型,可采用与本申请类似的定时控制方法。由于是单进程,所以控制定时执行的策略可以很简单,即每个进程都启动ー个专门计时的线程,每个进程中有ー个全局变量作为是否继续执行的判断条件,当时间到达后该计时线程改变该进程的全局变量,从而使得循环结构跳出,终止执行。这种单进程多线程模型也可以解决定时执行的问题,但是与本申请相比第一,所述单进程多线程模型需要在每个单进程中都生成ー个计时线程,因此浪费了ー个宝贵的线程资源,影响了执行效率;第二,所述单进程多线程模型生成的并发压カ不如多进程多线程模型強大。2、与另ー种可能采用的多进程多线程模型相比对于多进程多线程模型,其定时执行策略与单进程多线程模型类似,每个线程启动ー个线程用作定时。与本申请相比,这种多进程多线程模型存在以下两个缺点(I)效率低。由于该模型是多进程,而每个进程的每个线程都要再生成一个线程去做计时,因此浪费了一个宝贵的线程资源。假设有一台压カ测试服务器,它最高可以以500个进程每个进程100个线程,总共50000个线程并发去执行该模型,但由于每个线程都需要一个单独的线程做计时,其中就有50000个线程用作计时,而无法当做压カ生成线程来用,而这些资源本可以让这台服务器的并发压力生成能力达到100000个并发。(2)不能统ー管理。由于每个进程每个线程的定时器都是独立的,当一个定时器线程收到一个阻塞信号后,该线程的实际执行时间便和其他线程无法同步了。或者由于定时器线程实现的问题(比如通过获得当前系统时间和期望执行时间比较的方法实现定时),当大量的线程同时执行获取系统时间操作时,系统无法及时返回,导致该线程计时不准确,和其他线程出现较
大误差。与上述的多进程多线程模型相比,本申请同样能够以多进程多线程模型运行,但是可以产生单台计算机最大的并发压力,同时由于本申请只需要ー个定时器线程,所以还可以解决定时器效率低和不能统ー管理的问题,不会浪费计算机的计算能力,也不会让各个线程执行时间不同歩。基于上述方法实施例的说明,本申请还提供了相应的控制测试执行的装置实施例,来实现上述方法实施例所述的内容。參照图4,是本申请实施例所述ー种控制测试执行的装置结构图。所述装置可以包括定时器设置单元41、并发执行単元42和定时控制単元43,其中,定时器设置单元41,用于启动测试后,设定用于控制定时执行的全局定时器;并发执行単元42,用于当运行并发操作时生成多进程,每个进程又生成多线程;定时控制単元43,用于每个线程在并发执行过程中根据所述全局定时器循环判断并发执行是否结束,如果是,则结束该线程的执行。其中,所述定时控制单元43可采用两种策略进行判断第一种策略是是在启动测试后,设定用于控制每个线程循环的全局条件变量,并在所述全局定时器的计时结束后修改所述全局条件变量;每个线程在并发执行过程中循环判断所述全局条件变量是否被修改,如果被修改,则结束该线程的执行;如果一直未被修改,则继续循环执行。第二种策略是每个线程在毎次循环时都将当前系统时间与所述全局定时器中设定的时间进行比较,看是否已达到全局定时器中设定的时间。如果达到,则退出循环,结束该线程的执行;如果一直未达到,则继续循环执行。这种策略由于每次多出一个获取当前系统时间的操作,因此加重了运行的负担;而且,如果负担很重导致执行速度很慢,每个线程可能会执行不同歩,导致大量并发无法统ー结束。因此,上述第一种策略更加优选,基于上述第一种策略,所述装置还可以包括变量设置単元44,用于启动测试后,设定用于控制每个线程循环的全局条件变量,并在所述全局定时器的计时结束后修改所述全局条件变量;
则每个线程在并发执行过程中循环判断所述全局条件变量是否被修改,如果被修改,则结束该线程的执行。进ー步,所述变量设置单元44具体包括共享内存生成子単元441,用于启动父进程,在所述父进程初始化的过程中,生成进程共享的内存区域;其中,所述父进程用于生成多个子进程,每个子进程又生成多个子线程;变量声明子単元442,用于在所述内存区域中声明ー个全局条件变量,设定该全局条件变量的初始值为true。进ー步,所述定时器设置单元41具体包括
定时器生成子単元411,用于由父进程生成一个定时器线程;消息通知子単元412,用于在所述定时器线程计时结束后,发送信号通知父进程将所述全局条件变量的值修改为false。基于所述变量声明子単元442和消息通知子単元412,每个子线程在并发执行过程中循环判断所述全局条件变量的值,如果为false,则已被修改,结束该线程的执行。优选的,本实施例中每个子线程还可以单独运行ー套测试代码,这样可以让每个子线程可控的循环执行测试,产生源源不断的请求。上述控制测试执行的装置可用于多进程多线程的并发测试中,每个进程及其子线程在执行到一定时间后可以自动停止,从而让测试工作几天、几周的长期执行,而不用考虑需要设置ー个多大的执行次数才能持续测试几天、几周。而且,通过ー个定时器更方便全局的管理,提高了测试效率,还可以实现最大并发量。对于上述控制测试执行的装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处參见图I至图3所示方法实施例的部分说明即可。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相參见即可。以上对本申请所提供的一种控制测试执行的方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
权利要求
1.一种控制测试执行的方法,其特征在于,包括 启动测试后,设定用于控制定时执行的全局定时器; 当运行并发操作时生成多进程,每个进程又生成多线程; 每个线程在并发执行过程中根据所述全局定时器循环判断并发执行是否结束,如果是,则结束该线程的执行。
2.根据权利要求I所述的方法,其特征在于,所述每个线程在并发执行过程中根据所述全局定时器循环判断并发执行是否结束,包括 启动测试后,设定用于控制每个线程循环的全局条件变量,并在所述全局定时器的计时结束后修改所述全局条件变量; 每个线程在并发执行过程中循环判断所述全局条件变量是否被修改,如果被修改,则结束该线程的执行。
3.根据权利要求2所述的方法,其特征在干, 所述设定用于控制每个线程循环的全局条件变量包括启动父进程,在所述父进程初始化的过程中,生成进程共享的内存区域,并在该区域中声明ー个全局条件变量,设定该全局条件变量的初始值为true ;其中,所述父进程用于生成多个子进程,每个子进程又生成多个子线程; 所述方法还包括每个子线程在并发执行过程中从所述共享的内存区域读取该全局条件变量。
4.根据权利要求3所述的方法,其特征在干, 所述设定用于控制定时执行的全局定时器包括父进程生成一个定时器线程; 在所述全局定时器的计时结束后修改所述全局条件变量包括在所述定时器线程计时结束后,发送信号通知父进程将所述全局条件变量的值修改为false。
5.根据权利要求4所述的方法,其特征在干,所述每个线程在并发执行过程中循环判断所述全局条件变量是否被修改,包括 每个子线程在并发执行过程中循环判断所述全局条件变量的值,如果为false,则已被修改。
6.根据权利要求I至5任一所述的方法,其特征在于 每个子线程单独运行ー套测试代码。
7.—种控制测试执行的装置,其特征在于,包括 定时器设置单元,用于启动测试后,设定用于控制定时执行的全局定时器; 并发执行単元,用于当运行并发操作时生成多进程,每个进程又生成多线程; 定时控制単元,用于每个线程在并发执行过程中根据所述全局定时器循环判断并发执行是否结束,如果是,则结束该线程的执行。
8.根据权利要求7所述的装置,其特征在于,还包括 变量设置単元,用于启动测试后,设定用于控制每个线程循环的全局条件变量,并在所述全局定时器的计时结束后修改所述全局条件变量; 则每个线程在并发执行过程中循环判断所述全局条件变量是否被修改,如果被修改,则结束该线程的执行。
9.根据权利要求8所述的装置,其特征在于,所述变量设置单元包括共享内存生成子単元,用于启动父进程,在所述父进程初始化的过程中,生成进程共享的内存区域;其中,所述父进程用于生成多个子进程,每个子进程又生成多个子线程; 变量声明子単元,用于在所述内存区域中声明ー个全局条件变量,设定该全局条件变量的初始值为true。
10.根据权利要求9所述的装置,其特征在于,所述定时器设置单元包括 定时器生成子単元,用于由父进程生成一个定时器线程; 消息通知子単元,用于在所述定时器线程计时结束后,发送信号通知父进程将所述全局条件变量的值修改为false。
11.根据权利要求10所述的装置,其特征在干 每个子线程在并发执行过程中循环判断所述全局条件变量的值,如果为false,则已被修改。
12.根据权利要求7至11任一所述的装置,其特征在于 每个子线程单独运行ー套测试代码。
全文摘要
本申请提供了一种控制测试执行的方法及装置,能够按照指定时长执行测试。所述方法包括启动测试后,设定用于控制定时执行的全局定时器;当运行并发操作时生成多进程,每个进程又生成多线程;每个线程在并发执行过程中根据所述全局定时器循环判断并发执行是否结束,如果是,则结束该线程的执行。本申请基于多进程多线程,通过设置定时器,每个进程及其子线程在执行到一定时间后可以自动停止,从而让测试工作几天、几周的长期执行,而不用考虑需要设置一个多大的执行次数才能持续测试几天、几周。
文档编号G06F11/36GK102768637SQ20111011597
公开日2012年11月7日 申请日期2011年5月5日 优先权日2011年5月5日
发明者崔峥 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1