CN111913858A - 一种压力测试***和方法 - Google Patents
一种压力测试***和方法 Download PDFInfo
- Publication number
- CN111913858A CN111913858A CN202010668605.3A CN202010668605A CN111913858A CN 111913858 A CN111913858 A CN 111913858A CN 202010668605 A CN202010668605 A CN 202010668605A CN 111913858 A CN111913858 A CN 111913858A
- Authority
- CN
- China
- Prior art keywords
- test
- task
- test task
- execution
- server
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 655
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004891 communication Methods 0.000 claims description 22
- 125000002015 acyclic group Chemical group 0.000 claims description 7
- 230000001419 dependent effect Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 16
- 238000009662 stress testing Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000007723 transport mechanism Effects 0.000 description 2
- 230000002860 competitive effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种压力测试***和方法,压力测试方法适于在压力测试***中运行,方法包括步骤:控制服务器创建测试任务并设置配置信息,将测试任务及配置信息发送至测试服务器;测试服务器中的解析模块解析配置信息获取测试任务的依赖关系,根据依赖关系绘制测试任务的任务关系图;测试服务器中的执行模块根据任务关系图执行测试任务进行压力测试。本发明还一并公开了一种计算设备和计算机可读存储介质。
Description
技术领域
本发明涉及服务器压力测试领域,特别涉及一种压力测试***和方法。
背景技术
随着社会生活和通信技术的发展,服务器需要处理越来越复杂多样的任务,从而对服务器的性能及处理任务的稳定性提出了更高的要求,因此需要对处理任务的服务器进行压力测试,从而保证服务器在对任务进行处理时能够符合要求的完成。
在众多任务类型中,包括定时任务,即需要在规定时间节点、规定时间范围内或按照预定频率进行执行。而在进行压力测试时,往往执行的是多个定时任务,且多个任务之间具有关联关系,一个任务的完成与否可能影响下一任务的执行,即下一项任务的执行条件依赖于前一任务的执行情况。
现有技术中用户通过设置不同类型的定时任务,不同的定时任务排列在任务列表中进行执行,但在进行压力测试时遇到具有逻辑依赖关系的测试任务就无法满足需求的完成测试,同时在进行压力测试时遇到测试任务存在异常的情况,执行定时任务超出预定时长时也无法妥善进行处理。
为此,需要一种新的压力测试***和方法。
发明内容
为此,本发明提供一种压力测试***和方法,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供一种压力测试***,包括控制服务器和测试服务器,控制服务器与测试服务器通信连接;控制服务器适于创建测试任务并设置配置信息,将测试任务及配置信息发送至测试服务器;测试服务器包括解析模块和执行模块,解析模块适于解析配置信息获取测试任务的依赖关系,根据依赖关系绘制测试任务的任务关系图;执行模块适于根据任务关系图执行测试任务进行压力测试。
可选地,在根据本发明的***中,任务关系图采用有向无环图DAG,测试服务器中的解析模块进一步适于:将测试任务作为DAG图的节点;根据测试任务的依赖关系确定测试任务执行条件所依赖的测试任务,连接具有依赖关系的测试任务作为DAG图的边。
可选地,在根据本发明的***中,配置信息还包括测试任务的执行时间和执行频率;执行模块进一步适于:达到测试任务的执行时间时根据DAG图判断测试任务的所依赖的测试任务是否执行完毕;若所依赖的测试任务执行完毕,则分配测试资源,按照测试任务的执行频率执行测试任务。
可选地,在根据本发明的***中,控制服务器还适于设置测试任务配置信息中的任务类型;测试服务器中的解析模块还适于根据测试任务的任务类型调用不同的操作类型执行测试任务。
可选地,在根据本发明的***中,控制服务器还适于设置测试任务配置信息中的任务级别;当DAG图中后一测试任务依赖有多个测试任务需要执行时,测试服务器中的解析模块还适于根据多个测试任务的任务级别,确定多个测试任务的执行顺序;执行模块还适于根据所确定的执行顺序优先向任务级别高的测试任务分配测试资源执行测试任务。
可选地,在根据本发明的***中,控制服务器还适于设置测试任务配置信息的结束时间和结束方式,结束方式包括强制结束和执行完毕后结束;控制服务器还适于对执行模块执行测试任务进行监控,当达到测试任务的结束时间时,根据结束方式指示执行模块强制结束执行测试任务或继续执行测试任务,等待测试任务执行完毕。
可选地,在根据本发明的***中,控制服务器还适于设置测试任务配置信息的重启策略,重启策略包括当测试任务执行失败时,继续执行DAG图上的下一测试任务或重新执行该测试任务;当测试任务执行失败时,根据重启策略指示执行模块继续执行下一测试任务或重新执行该测试任务。
可选地,在根据本发明的***中,控制服务器还适于对测试任务的执行情况进行显示,生成并存储测试任务的测试日志。
根据本发明的另一个方面,提供一种压力测试方法,适于在一种压力测试***中执行,方法包括:控制服务器创建测试任务并设置配置信息,将测试任务及配置信息发送至测试服务器;测试服务器中的解析模块解析配置信息获取测试任务的依赖关系,根据依赖关系绘制测试任务的任务关系图;测试服务器中的执行模块根据任务关系图执行测试任务进行压力测试。
可选地,在根据本发明的方法中,任务关系图采用有向无环图DAG,解析模块根据依赖关系绘制测试任务的DAG图包括:将测试任务作为DAG图的节点;根据测试任务的依赖关系确定测试任务执行条件所依赖的测试任务,连接具有依赖关系的测试任务作为DAG图的边。
可选地,在根据本发明的方法中,配置信息还包括测试任务的执行时间和执行频率;执行模块根据DAG图对执行测试任务进行压力测试包括:达到测试任务的执行时间时根据DAG图判断测试任务的所依赖的测试任务是否执行完毕;若所依赖的测试任务执行完毕,则分配测试资源,按照测试任务的执行频率执行测试任务。
可选地,在根据本发明的方法中,还包括:控制服务器设置测试任务配置信息中的任务类型;测试服务器中的解析模块根据测试任务的任务类型调用不同的操作类型执行测试任务。
可选地,在根据本发明的方法中,还包括:控制服务器设置测试任务配置信息中的任务级别;当DAG图中后一测试任务依赖有多个测试任务需要执行时,测试服务器中的解析模块根据多个测试任务的任务级别,确定多个测试任务的执行顺序;执行模块根据所确定的执行顺序优先向任务级别高的测试任务分配测试资源执行测试任务。
可选地,在根据本发明的方法中,还包括:控制服务器设置测试任务配置信息的结束时间和结束方式,结束方式包括强制结束和执行完毕后结束;控制服务器对执行模块执行测试任务进行监控,当达到测试任务的结束时间时,根据结束方式指示执行模块强制结束执行测试任务或继续执行测试任务,等待测试任务执行完毕。
可选地,在根据本发明的方法中,还包括:控制服务器设置测试任务配置信息的重启策略,重启策略包括当测试任务执行失败时,继续执行下一测试任务或重新执行该测试任务;当测试任务执行失败时,根据重启策略指示执行模块继续执行DAG图上的下一测试任务或重新执行该测试任务。
可选地,在根据本发明的方法中,还包括:控制服务器对测试任务的执行情况进行显示,生成并存储测试任务的测试日志。
根据本发明的又一方面,提供了一种计算设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本发明的一种压力测试方法的任一方法的指令。
根据本发明的还有一个方面,提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,该指令当由计算设备执行时,使得计算设备执行根据本发明的一种压力测试方法中的任一方法。
本发明中,压力测试***包括通信连接的控制服务器和测试服务器,在控制服务器中创建测试任务并设置配置信息,测试服务器中的解析模块解析配置信息并绘制测试任务的任务关系图,执行模块根据任务关系图执行测试任务进行压力测试,从而能够对具有关联关系的测试任务进行执行完成较为复杂的测试任务。
并进一步的,绘制测试任务的任务关系图为有向无环图DAG,测试任务为DAG图的节点,测试任务的依赖关系为DAG图的边,对于一项测试任务依赖有多个测试任务需要执行时,控制服务器对多个测试任务的任务级别进行设置,执行模块根据测试任务的任务级别分配测试资源进行执行完成相应的压力测试,使得在有限的计算机资源的情况下,能够优先完成重要的测试任务,尽可能的达到好的测试效果。
最后,在设置测试任务时,设置测试任务的执行时间和执行频率,以便完成需要定期执行的测试任务;设置测试任务的任务类型,实现对多种不同的测试任务,使用不同的操作类型执行相应的测试任务;设置测试任务的结束时间,结束方式以及测试任务的重启策略,从而能够实现在规定时间范围内对测试任务进行执行,避免执行测试任务超时而导致后续测试任务不能按时执行,在任务执行失败时,如果是较为重要的核心任务,按照重启策略重新执行该测试任务以便完成重要的测试目标。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个示范性实施例的压力测试***的示意图100;
图2示出了根据本发明一个示范性实施例的计算设备200的结构框图;
图3示出了根据本发明一个实施例的一种压力测试方法300的流程图;以及
图4示出了根据本发明一个实施例的任务关系图示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个示范性实施例的压力测试***的示意图100。如图100所示,压力测试***100包括控制服务器110和测试服务器120,控制服务器110与测试服务器120通信连接。测试服务器120包括解析模块121和执行模块122。控制服务器110创建测试任务并设置配置信息,测试任务及其配置信息由服务器压力测试人员进行预先设置,控制服务器110进行读取,配置信息也可以由控制服务器110根据测试任务进行生成。本发明对测试任务及其配置信息的创建及设置方式不作限制,在具体实践中,测试任务及其配置信息被设置为一种模版形式,在其中选择或输入需要的测试参数即可完成对测试任务的设置。历史的压力测试所执行的测试任务被保存为设置好的配置信息模版,直接进行修改并添加即可创建测试任务。根据本发明的一个实施例,控制服务器110中运行Zookeeper,实现对大量的测试任务进行管理,并设置其配置信息,以及监控测试服务器120执行测试任务的执行情况。
测试服务器120在设置完毕测试任务的配置信息后,将测试任务及配置信息发送至测试服务器120。测试服务器120接收测试任务及配置信息,解析模块121对测试任务及其配置信息进行解析后,得到测试任务的依赖关系,根据依赖关系绘制测试任务的任务关系图,执行模块122根据任务关系图执行测试任务进行压力测试。测试任务的依赖关系为在执行顺序上,后一项测试任务依赖前一项测试任务的执行情况,后一项测试任务的执行条件需要前测试任务执行完成。解析模块121解析依赖关系后,据此依赖关系绘制任务关系图即有向无环DAG图,便于执行模块122根据有向无环DAG图执行测试任务。执行模块122在执行测试任务时,向测试任务分配资源以便执行该测试任务,资源包括计算资源和存储资源,其中,计算资源包括计算机CPU资源,具体可实现为依据测试任务所需资源大小而配置的CPU内核及其线程,存储资源包括磁盘存储空间及内存资源。控制服务器110在创建测试任务时,同时自动生成测试任务的执行函数,测试服务器120中的执行模块122在向测试任务分配完毕测试资源后,调用该测试任务的执行函数执行该测试任务。
压力测试***100中控制服务器110和测试服务器120均可以具体实现为一种计算设备。图2示出了根据本发明一个示范性实施例的计算设备200的结构框图。如图2所示,在基本的配置202中,计算设备200典型地包括***存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和***存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,***存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。***存储器206可以包括操作***220、一个或者多个程序222以及程序数据224。在一些实施方式中,程序222可以布置为在操作***上由一个或者多个处理器204利用程序数据224执行指令。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备200中,应用222包括执行一种压力测试方法300的多条程序指令,这些程序指令可以指示处理器204执行本发明的一种在压力测试***100中运行的压力测试方法300中的部分步骤,以便压力测试***100中的各部分通过执行本发明的一种压力测试方法300来实现对服务器的压力测试。
计算设备200可以实现为服务器,例如文件服务器140、数据库150服务器、应用程序服务器等,这些电子设备可以是诸如个人数字助理(PDA)、无线网络浏览设备、应用专用设备、或者可以包括上面任何功能的混合设备。可以实现为包括桌面计算机和笔记本计算机配置的个人计算机,也在一些实施例中,计算设备200被配置为执行一种压力测试方法300。
图3示出了根据本发明一个实施例的一种压力测试方法300的流程图。压力测试方法适于在一种压力测试***中执行,如在压力测试***100中执行。如图3所示,压力测试方法300始于步骤S310,控制服务器110创建测试任务并设置配置信息,将测试任务及配置信息发送至测试服务器120。在进行压力测试时,所创建每一项抽象的测试任务均对应于测试服务器120需要执行的一项具体的压力测试项目。测试任务的配置信息即测试任务的任务属性,指示测试任务的具体执行规则,测试服务器120中的解析模块121对配置信息进行解析得到测试任务的执行规则,执行模块122按照解析得到的执行规则执行测试任务。
随后,执行步骤S320,测试服务器120中的解析模块121解析配置信息获取测试任务的依赖关系,根据依赖关系绘制测试任务的任务关系图。配置信息中的一项为测试任务的依赖关系。在步骤S310中,由控制服务器110所创建的多项测试任务中,其中部分测试任务之间具有依赖关系,即该多项测试任务中,后一项测试任务的执行条件依赖于前一项测试任务的执行情况,需要前项测试任务均执行完毕后才能开始执行。多项测试任务具有联系的执行顺序,需要在测试过程中按照预定执行顺序完成测试。
解析模块121解析获得依赖关系后,根据依赖关系绘制测试任务的任务关系图。任务关系图的内容包括测试任务和测试任务之间的依赖关系。根据本发明的一个实施例,任务关系图为有向无环DAG图,解析模块121根据依赖关系绘制测试任务的DAG图的步骤包括:将测试任务作为DAG图的节点;根据测试任务的依赖关系确定测试任务执行条件所依赖的测试任务,连接具有依赖关系的测试任务作为所述DAG图的边。因此,有向无环DAG图中的每个节点均代表一项测试任务,每两个有连线的测试任务代表后一项测试任务的执行条件依赖于前一项测试任务的执行情况。
根据本发明的一个实施例,控制服务器110创建有测试任务1~9,测试服务器120中的解析模块121解析测试任务的配置信息得到测试任务1~9之间的依赖关系,将测试任务1~9的依赖关系绘制得到一张任务关系图,该任务关系图为有向无环DAG图。图4示出了根据本发明一个实施例的任务关系图示意图。如图4所示,测试任务1~9之间的依赖关系如下:测试任务4在测试任务1执行完毕后,需要测试任务2和测试任务3均执行完毕或执行其中一项才能开始执行;测试任务9在测试任务4执行完毕后,需要测试任务5~8均执行完毕或执行完毕其中一项才能开始执行。测试服务器120中的执行模块122根据绘制的任务关系图执行测试任务1~9,后续将结合图4进一步说明执行模块122根据任务关系图执行测试任务的执行过程。
随后,执行步骤S330,测试服务器120中的执行模块122根据任务关系图执行测试任务进行压力测试。测试服务器120根据任务关系图执行压力测试时,从开始执行第一项测试任务到结束执行最后一项测试任务,执行的每一项测试任务均被定时执行,测试任务被设置为单次执行或设置一定的执行频率。单次执行即执行测试任务一次,被设置执行频率时,执行模块122按照设置的执行频率重复执行测试任务。
根据本发明的一个实施例,控制服务器110中设置的配置信息中还包括测试任务的执行时间和执行频率;执行模块122根据DAG图对执行测试任务进行压力测试包括:达到测试任务的执行时间时根据DAG图判断测试任务的所依赖的测试任务是否执行完毕;若所依赖的测试任务执行完毕,则分配测试资源,按照测试任务的执行频率执行所述测试任务。执行时间即为开始执行测试任务的时间,可以为按照时区划分而设置的自然时间,如某年某月某日,具体到某时某分。本发明对测试任务的开始时间的设置方式不做限制。以图4为例,测试任务1被设置为某天8:00开始执行,测试任务3被设置为该天8:30开始执行,并且从8:30~9:00,每10分钟执行一次。测试任务4的执行条件依赖于测试任务2和测试任务3均执行完毕。则到该天8:00时,执行模块122开始执行测试任务1,测试任务1执行完毕后,执行测试任务2和测试任务3,。到该天8:30时,执行模块122判断测试任务4所依赖的测试任务2和测试任务3是否执行完毕。若测试任务2和测试任务3执行完毕,则向测试任务4分配测试资源,按照预定的每10分钟执行一次的频率执行测试任务4。
根据本发明的一个实施例,控制服务器110可以设置多种不同的任务类型的测试任务,测试任务的配置信息中的一项为该测试任务的任务类型,测试服务器120中的解析模块121解析测试任务的配置信息得到该测试任务的任务类型,调用不同的操作类型执行测试任务。测试任务的类型包括:java类型,javaScript类型以及html类型,本发明对测试任务的类型不作限制。解析模块121调用不同的操作类型对不同类型的测试任务进行执行,解析模块121中存储的操作类型包括:与java任务类型对应的HttpServer操作类型以及TimerOrchestrationServer操作类型;与javaScript任务类型对应的TimerInfoUpload操作类型;与html任务类型对应的HtmlGenerator操作类型,本发明对解析模块121中存储的以备调用的操作类型的种类和数量不作限制。以测试任务2和测试任务3为例,测试任务2被设置为任务类型为javaScript类型,则解析模块121调用TimerInfoUpload操作类型以便执行模块122对测试任务2进行执行,测试任务3为html类型,则解析模块121调用HtmlGenerator操作类型以便执行模块122对测试任务3进行执行。
根据本发明的一个实施例,控制服务器110可以设置多种不同的任务级别的测试任务,测试任务的配置信息中的一项为该测试任务的任务级别。测试服务器120中的解析模块121解析测试任务的配置信息得到该测试任务的任务级别,按照不同任务级别执行测试任务。当DAG图中后一测试任务依赖有多个测试任务需要执行时,测试服务器120中的解析模块121根据多个测试任务的任务级别,确定多个测试任务的执行顺序;执行模块122根据所确定的执行顺序优先向任务级别高的测试任务分配测试资源执行测试任务。
由于在实际压力测试过程中,不同的测试任务在实际上会有不同的重要性,对应于不同的任务级别。而在服务器执行测试任务时,往往需要将有限的计算机资源进行合理的分配,从而达到最大效率的利用计算机资源对数量繁多的测试任务进行测试,从而在最少的时间内达到较好的测试效果。以图4所示的测试任务1~9为例,测试任务4在测试任务1执行完毕后,需要测试任务2和测试任务3均执行完毕或执行其中一项才能开始执行;测试任务9在测试任务4执行完毕后,需要测试任务5~8均执行完毕或执行完毕其中一项才能开始执行。若控制服务器110设置测试任务4在测试任务2或测试任务3中的一项执行完毕后,即可开始执行,而测试任务9在测试任务5~8均执行完毕后才可开始执行。相应的测试任务2和测试任务3之间,测试任务5~8之间在具体执行压力测试时,在执行顺序上就为一种竞合关系。若不对测试任务2或测试任务3,以及测试任务5~8的任务级别进行设置,则执行模块122可以按照任务序号优先执行测试任务2以及依次执行测试任务5~8,或随机选择测试任务2或测试任务3中的一项进行执行,以及按照随机顺序执行测试任务5~8。
测试任务的任务级别设置为高级别,中级别,低级别三种,本发明对测试任务的任务级别的数量不作限制,其他数目的任务级别的执行方式与本实施例中示出的执行方式相同。若对测试任务2或测试任务3,以及测试任务5~8的任务级别进行设置,则执行模块122按照测试任务的任务级别进行执行。根据本发明的一个实施例,控制服务器110设置测试任务3的任务级别高于测试任务2,测试任务5~8中,测试任务5的任务级别为高级别,测试任务6的任务级别为中级别,测试任务7和测试任务8的任务级别为低级别。则执行模块122在执行测试任务1~9时,先执行测试任务1,随后按照优先选择高级别任务进行执行的原则选择测试任务3进行执行。执行完毕测试任务4后,在选择执行测试任务5~8的执行顺序上,按照优先执行高级别测试任务的原则,确定测试任务5~8的执行顺序为执顺序1:测试任务5、测试任务6、测试任务7、测试任务8,或执行顺序2:测试任务5、测试任务6、测试任务8、测试任务7。由于测试任务7与测试任务8的任务级别相同均为低优先级,则可以按照任务序号顺序执行上述执行顺序1,或者随机执行执行顺序1或执行顺序2,本发明对执行同等级的测试任务的执行方式不作限制。测试任务5~8均执行完毕后,才执行测试任务9。
根据本发明的一个实施例,控制服务器110可以设置不同测试任务的结束时间和结束方式,测试任务的配置信息中还包括该测试任务的结束时间和结束方式。结束时间与测试任务的开始时间相同,均可为按照时区划分而设置的自然时间,如某年某月某日,具体到某时某分。本发明对测试任务的结束时间的设置方式不做限制。控制服务器110设置测试任务配置信息的结束时间和结束方式,结束方式包括强制结束和执行完毕后结束;控制服务器110对执行模块122执行测试任务进行监控,当达到测试任务的结束时间时,根据所述结束方式指示执行模块122强制结束执行测试任务或继续执行测试任务,等待测试任务执行完毕。由于在具体实践过程中,考虑到测试效率及任务测试环境需求,测试任务被设置了开始执行时间和结束时间,结束时间减开始时间即为测试任务被允许的最大执行时长,一旦控制服务器110监控测试任务的执行时间达到结束时间,任务持续执行时长达到最大执行时长时,就会指示测试服务器120执行相应措施继续执行该测试任务或直接强制结束该测试任务,为其他的后续测试任务空出测试时间和测试资源。
以图4中测试任务1~9为例。测试任务9的开始执行时间为该天12:00,测试任务7和测试任务8的结束时间为该天12:00,根据实际执行情况,得到测试经验测试任务7的测试超时概率高于测试任务8,测试任务7有较概率执行时长大于被允许的最大执行时长,因此控制服务器110设置测试任务7的结束方式为执行完毕后结束,即当测试任务7为测试任务5~8的执行顺序中最后一项,达到规定的结束时间时,等待测试任务7执行完毕后执行测试任务9。控制服务器110设置测试任务8的结束方式为强制结束,即当测试任务8为测试任务5~8的执行顺序中最后一项,达到规定的结束时间时,直接结束执行测试任务8,执行测试任务9。按照上述的配置信息,控制服务器110在执行模块122按照上述执行测试任务5~8的执行顺序1执行,超出最后测试任务8的结束时间时,指示执行模块122结束强制结束执行测试任务8执行测试任务9;在执行模块122按照上述执行测试任务5~8的执行顺序2执行,超出最后测试任务7的结束时间时,指示执行模块122等待测试任务7执行完毕后,执行测试任务9。
根据本发明的一个实施例,控制服务器110可以设置不同测试任务的重启策略,测试任务的配置信息中还包括该测试任务的重启策略。重启策略包括当测试任务执行失败时,继续执行下一测试任务或重新执行该测试任务;当测试任务执行失败时,根据重启策略指示执行模块122继续执行DAG图上的下一测试任务或重新执行该测试任务。在具体实践过程中,具有关联关系的测试任务中,某些测试任务在众多测试任务中处于核心地位,属于核心任务必须进行测试。因此,控制服务器110设置测试任务的重启策略。当该测试任务应某种原因执行失败时,重新执行该测试任务。或某些测试任务由于测试效率的非必要执行成功,则可以设置该测试任务执行失败时,继续执行下一项测试任务。以图4所示的测试任务1~9为例,测试任务1~8为非必要执行成功,则控制服务器110设置测试任务1~8的重启策略为当测试任务执行失败时,继续执行下一测试任务。测试任务9在整个测试任务中处于核心地位,因此设置测试任务9的执行策略为测试任务9执行失败时,重复执行该测试任务。测试服务器120中的执行模块122在执行测试任务1~9时,根据测试任务1~9的重启策略,当测试任务1~8中的某一项执行失败时,继续执行下一项测试任务。当测试任务9执行失败时,重新执行测试任务9以完成压力测试目标。
根据本发明的一个实施例,控制服务器110对测试任务的执行情况进行显示,生成并存储测试任务的测试日志。测试任务的执行情况包括:等待执行,正在执行,执行完毕和执行异常。等待执行即为还未到该测试任务的执行时间或所依赖的前项测试任务执行超时还未执行完毕;正在执行为测试服务器120中的执行模块122正在执行该测试任务;执行完毕为执行模块122结束执行完毕该测试任务;执行异常可以包括执行模块122在执行测试任务时所遇到的多种情况,包括执行失败或执行过程中所分配的资源出现异常等情况,均显示执行异常以便测试人员及时对压力测试故障进行排查解决。测试任务的测试日志为执行模块122在调用测试任务的执行函数时,所生成的日志信息。控制模块将执行模块122生成的日志信息进行整合生成日志信息并存储,以便测试人员查看分析压力测试的执行情况,提高压力测试的测试效果。
本发明中,压力测试***包括通信连接的控制服务器和测试服务器,在控制服务器中创建测试任务并设置配置信息,测试服务器中的解析模块121解析配置信息并绘制测试任务的任务关系图,执行模块122根据任务关系图执行测试任务进行压力测试,从而能够对具有关联关系的测试任务进行执行完成较为复杂的测试任务。
并进一步的,绘制测试任务的任务关系图为有向无环图DAG,测试任务为DAG图的节点,测试任务的依赖关系为DAG图的边,对于一项测试任务依赖有多个测试任务需要执行时,控制服务器对多个测试任务的任务级别进行设置,执行模块根据测试任务的任务级别分配测试资源进行执行完成相应的压力测试,使得在有限的计算机资源的情况下,能够优先完成重要的测试任务,尽可能的达到好的测试效果。
最后,在设置测试任务时,设置测试任务的执行时间和执行频率,以便完成需要定期执行的测试任务;设置测试任务的任务类型,实现对多种不同的测试任务,使用不同的操作类型执行相应的测试任务;设置测试任务的结束时间,结束方式以及测试任务的重启策略,从而能够实现在规定时间范围内对测试任务进行执行,避免执行测试任务超时而导致后续测试任务不能按时执行,在任务执行失败时,如果是较为重要的核心任务,按照重启策略重新执行该测试任务以便完成重要的测试目标。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
A8、如A1-A7中任一项所述的***,所述控制服务器还适于对所述测试任务的执行情况进行显示,生成并存储所述测试任务的测试日志。
B10、如B9所述的方法,其中,所述任务关系图采用有向无环DAG图,所述解析模块根据所述依赖关系绘制所述测试任务的DAG图包括:
将所述测试任务作为DAG图的节点;
根据所述测试任务的依赖关系,确定所述测试任务执行条件所依赖的测试任务,连接具有依赖关系的测试任务作为所述DAG图的边。
B11、如B10所述的方法,其中,所述配置信息还包括所述测试任务的执行时间和执行频率;
所述执行模块根据所述DAG图执行所述测试任务进行压力测试包括:
达到所述测试任务的执行时间时,根据所述DAG图判断所述测试任务的所依赖的测试任务是否执行完毕;
若所依赖的测试任务执行完毕,则分配测试资源,按照所述测试任务的执行频率执行所述测试任务。
B12、如B9-B11中任一项所述的方法,还包括:
所述控制服务器设置所述测试任务配置信息中的任务类型;
所述测试服务器中的解析模块根据所述测试任务的任务类型调用不同的操作类型执行所述测试任务。
B13、如B9-B12中任一项所述的方法,还包括:
所述控制服务器设置所述测试任务配置信息中的任务级别;
当所述DAG图中后一测试任务依赖有多个所述测试任务需要执行时,所述测试服务器中的解析模块根据多个所述测试任务的任务级别,确定多个所述测试任务的执行顺序;
所述执行模块根据所确定的执行顺序,优先向任务级别高的测试任务分配测试资源执行所述测试任务。
B14、如B9-B13中任一项所述的方法,还包括:
所述控制服务器设置所述测试任务配置信息的结束时间和结束方式,所述结束方式包括强制结束和执行完毕后结束;
所述控制服务器对所述执行模块执行所述测试任务进行监控,当达到所述测试任务的结束时间时,根据所述结束方式指示所述执行模块强制结束执行测试任务或继续执行所述测试任务,等待所述测试任务执行完毕。
B15、如权利要求B9-B14中任一项所述的方法,还包括:
所述控制服务器设置所述测试任务配置信息的重启策略,所述重启策略包括当所述测试任务执行失败时,继续执行下一测试任务或重新执行该测试任务;
当所述测试任务执行失败时,根据所述重启策略指示所述执行模块继续执行所述DAG图上的下一测试任务或重新执行该测试任务。
B16、如权利要求B9-B15中任一项所述的方法,还包括:
所述控制服务器对所述测试任务的执行情况进行显示,生成并存储所述测试任务的测试日志。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组间可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组间组合成一个模块或单元或组间,以及此外可以把它们分成多个子模块或子单元或子组间。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机***的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的设备停机状态的判断方法。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (10)
1.一种压力测试***,包括控制服务器和测试服务器,所述控制服务器与所述测试服务器通信连接;
所述控制服务器适于创建测试任务并设置配置信息,将所述测试任务及配置信息发送至所述测试服务器;
所述测试服务器包括解析模块和执行模块,所述解析模块适于解析所述配置信息获取所述测试任务的依赖关系,根据所述依赖关系绘制所述测试任务的任务关系图;
所述执行模块适于根据所述任务关系图执行所述测试任务进行压力测试。
2.如权利要求1所述的***,其中,所述任务关系图采用有向无环DAG图,所述测试服务器中的解析模块进一步适于:
将所述测试任务作为DAG图的节点;
根据所述测试任务的依赖关系确定所述测试任务执行条件所依赖的测试任务,连接具有依赖关系的测试任务作为所述DAG图的边。
3.如权利要求2所述的***,其中,所述配置信息还包括所述测试任务的执行时间和执行频率;
所述执行模块进一步适于:
达到所述测试任务的执行时间时,根据所述DAG图判断所述测试任务的所依赖的测试任务是否执行完毕;
若所依赖的测试任务执行完毕,则分配测试资源,按照所述测试任务的执行频率执行所述测试任务。
4.如权利要求1或2所述的***,其中,所述控制服务器还适于设置所述测试任务配置信息中的任务类型;
所述测试服务器中的解析模块还适于根据所述测试任务的任务类型,调用不同的操作类型执行所述测试任务。
5.如权利要求1-4中任一项所述的***,其中,所述控制服务器还适于设置所述测试任务配置信息中的任务级别;
当所述DAG图中后一测试任务依赖有多个所述测试任务需要执行时,所述测试服务器中的解析模块还适于根据多个所述测试任务的任务级别,确定多个所述测试任务的执行顺序;
所述执行模块还适于根据所确定的执行顺序,优先向任务级别高的测试任务分配测试资源执行所述测试任务。
6.如权利要求1-5中任一项所述的***,其中,所述控制服务器还适于设置所述测试任务配置信息的结束时间和结束方式,所述结束方式包括强制结束和执行完毕后结束;
所述控制服务器还适于对所述执行模块执行所述测试任务进行监控,当达到所述测试任务的结束时间时,根据所述结束方式指示所述执行模块强制结束执行测试任务或继续执行所述测试任务,等待所述测试任务执行完毕。
7.如权利要求1-6中任一项所述的***,其中,所述控制服务器还适于设置所述测试任务配置信息的重启策略,所述重启策略包括当所述测试任务执行失败时,继续执行所述DAG图上的下一测试任务或重新执行该测试任务;
当所述测试任务执行失败时,根据所述重启策略指示所述执行模块继续执行下一测试任务或重新执行该测试任务。
8.一种压力测试方法,适于在如权利要求1-7中任一项所述的压力测试***中运行,所述方法包括:
控制服务器创建测试任务并设置配置信息,将所述测试任务及配置信息发送至测试服务器;
所述测试服务器中的解析模块解析所述配置信息获取所述测试任务的依赖关系,根据所述依赖关系绘制所述测试任务的任务关系图;
所述测试服务器中的执行模块根据所述任务关系图执行所述测试任务进行压力测试。
9.一种计算设备,包括:
一个或多个处理器;
存储器;以及
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求8所述的方法的指令。
10.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行根据权利要求8所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010668605.3A CN111913858A (zh) | 2020-07-13 | 2020-07-13 | 一种压力测试***和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010668605.3A CN111913858A (zh) | 2020-07-13 | 2020-07-13 | 一种压力测试***和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111913858A true CN111913858A (zh) | 2020-11-10 |
Family
ID=73227033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010668605.3A Pending CN111913858A (zh) | 2020-07-13 | 2020-07-13 | 一种压力测试***和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111913858A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220586A (zh) * | 2021-05-31 | 2021-08-06 | 五八到家有限公司 | 一种自动化的接口压力测试执行方法、装置和*** |
CN113282606A (zh) * | 2021-05-14 | 2021-08-20 | 杭州网易云音乐科技有限公司 | 数据处理方法、装置、存储介质和计算设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246439A (zh) * | 2008-03-18 | 2008-08-20 | 中兴通讯股份有限公司 | 一种基于任务调度的自动化测试方法及*** |
CN101645036A (zh) * | 2009-09-11 | 2010-02-10 | 兰雨晴 | 基于测试执行机能力度的测试任务自动分配方法 |
CN106708719A (zh) * | 2015-08-04 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 业务功能的测试方法和装置 |
CN110609784A (zh) * | 2018-06-15 | 2019-12-24 | 马上消费金融股份有限公司 | 任务调度方法及***、存储介质及电子设备 |
-
2020
- 2020-07-13 CN CN202010668605.3A patent/CN111913858A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246439A (zh) * | 2008-03-18 | 2008-08-20 | 中兴通讯股份有限公司 | 一种基于任务调度的自动化测试方法及*** |
CN101645036A (zh) * | 2009-09-11 | 2010-02-10 | 兰雨晴 | 基于测试执行机能力度的测试任务自动分配方法 |
CN106708719A (zh) * | 2015-08-04 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 业务功能的测试方法和装置 |
CN110609784A (zh) * | 2018-06-15 | 2019-12-24 | 马上消费金融股份有限公司 | 任务调度方法及***、存储介质及电子设备 |
Non-Patent Citations (1)
Title |
---|
王荣丽: "基于云平台的测试任务调度策略的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 08, 15 August 2017 (2017-08-15), pages 138 - 126 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282606A (zh) * | 2021-05-14 | 2021-08-20 | 杭州网易云音乐科技有限公司 | 数据处理方法、装置、存储介质和计算设备 |
CN113220586A (zh) * | 2021-05-31 | 2021-08-06 | 五八到家有限公司 | 一种自动化的接口压力测试执行方法、装置和*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8756460B2 (en) | Test selection based on an N-wise combinations coverage | |
US6988139B1 (en) | Distributed computing of a job corresponding to a plurality of predefined tasks | |
US8024615B2 (en) | Steady state computer testing | |
JP5988444B2 (ja) | 最適化したバイナリー・モジュールをテストする方法、並びに、当該最適化したバイナリー・モジュールをテストするためのコンピュータ及びそのコンピュータ・プログラム | |
US8572437B2 (en) | Multi-platform test automation enhancement | |
US20210049093A1 (en) | Automatically reconfiguring a performance test environment | |
US20110145643A1 (en) | Reproducible test framework for randomized stress test | |
CN108804215B (zh) | 一种任务处理方法、装置以及电子设备 | |
US20170132026A1 (en) | Apparatus and method for optimizing startup of embedded system | |
US9396095B2 (en) | Software verification | |
US9892019B2 (en) | Use case driven stepping component automation framework | |
US20150100831A1 (en) | Method and system for selecting and executing test scripts | |
CN111913858A (zh) | 一种压力测试***和方法 | |
US20130067439A1 (en) | Injecting faults into program for testing | |
CN109144701A (zh) | 一种任务流管理方法、装置、设备及*** | |
US8826238B2 (en) | Per group verification | |
CN109634989B (zh) | 一种hive任务执行引擎选择方法和*** | |
CN113805925A (zh) | 分布式集群管理软件的在线升级方法、装置、设备及介质 | |
CN113467908A (zh) | 任务执行方法、装置、计算机可读存储介质及终端设备 | |
CN113254350A (zh) | 一种Flink作业测试方法、装置、设备及存储介质 | |
CN113590494B (zh) | 一种云原生环境脆弱性的自动化测试方法 | |
CN111814415B (zh) | 用于芯片验证的高效回归测试方法 | |
CN114327673A (zh) | 一种任务启动方法、装置、电子设备及存储介质 | |
CN113849484A (zh) | 一种大数据组件升级方法、装置、电子设备及存储介质 | |
US11061808B2 (en) | Troubleshooting test failures that occurred during a testing phase of a continuous integration pipeline |
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 |