CN107341081A - 测试***及方法 - Google Patents
测试***及方法 Download PDFInfo
- Publication number
- CN107341081A CN107341081A CN201710550024.8A CN201710550024A CN107341081A CN 107341081 A CN107341081 A CN 107341081A CN 201710550024 A CN201710550024 A CN 201710550024A CN 107341081 A CN107341081 A CN 107341081A
- Authority
- CN
- China
- Prior art keywords
- test
- test device
- data
- control device
- measurand
- 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
Classifications
-
- 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/2268—Logging of test results
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)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本发明公开了一种测试***及方法,其中,该***包括:控制装置以及多个与控制装置分别相连的测试装置;控制装置用于向各个测试装置发送测试任务,各个测试装置用于根据接收到的测试任务对被测对象进行测试;每个测试装置进一步用于:对与该测试装置相关的测试数据进行统计,得到与该测试装置相对应的局部统计结果,将局部统计结果提供给控制装置;控制装置进一步用于:对各个测试装置提供的局部统计结果进行汇总,根据汇总结果确定被测对象的测试结果数据。本发明不仅提升了控制装置的处理效率,还降低了其***资源占用量,使各个测试装置所能享用的***资源量不受影响,进而可以针对被测对象施加的更大的压力,准确地测试被测对象的性能极限。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种测试***及方法。
背景技术
目前,测试***得到了越来越广泛的应用。例如,在游戏正式上线之前,需要通过测试***对游戏服务器的性能进行测试,以确保游戏正式上线后,该游戏服务器能够为用户提供稳定的服务。
传统的测试***通常包括控制装置以及测试装置两部分,其中,控制装置用于向测试装置发送测试任务,以控制测试装置的测试过程,测试装置用于根据接收到的测试任务对被测对象进行测试,并将获得的测试数据提供给控制装置处理。另外,为了提高测试过程的并发性,通常会布署多台测试装置并行进行测试。各台测试装置分别将与其对应的测试数据提供给控制装置处理。
但是,发明人在实现本发明的过程中发现,现有技术中的上述方式至少存在下述缺陷:由于每台测试装置产生的测试数据都要提供给控制装置,由控制装置针对测试数据进行统计分析,以确定测试结果,因此,控制装置进行统计分析时势必要处理海量的测试数据,而海量数据的处理过程通常耗时较长、因而处理效率低下。另外,控制装置在处理海量数据的过程中将占用较多的***资源,由于整个测试***内部的资源总量是有限的,因而势必会导致各台测试装置所能享用的***资源量降低,进而影响各台测试装置的测试性能。例如,在压力测试场景中,各台测试装置所能享用的***资源量降低后,势必会降低整个测试***针对被测对象施加的最大压力,从而无法准确测试被测对象的性能极限。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的测试***及方法。
根据本发明的一个方面,提供了一种测试***,包括:控制装置以及多个与控制装置分别相连的测试装置;其中,控制装置用于向各个测试装置发送测试任务,各个测试装置用于根据接收到的测试任务对被测对象进行测试;其中,每个测试装置进一步用于:对与该测试装置相关的测试数据进行统计,得到与该测试装置相对应的局部统计结果,将局部统计结果提供给控制装置;控制装置进一步用于:对各个测试装置提供的局部统计结果进行汇总,根据汇总结果确定被测对象的测试结果数据。
根据本发明的另一方面,提供了一种测试方法,该方法包括:各个测试装置根据接收到的来自控制装置的测试任务对被测对象进行测试;每个测试装置对与该测试装置相关的测试数据进行统计,得到与该测试装置相对应的局部统计结果;每个测试装置将与该测试装置相对应的局部统计结果提供给控制装置,以供控制装置对各个测试装置提供的局部统计结果进行汇总后得到被测对象的测试结果数据。
根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述测试方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述测试方法对应的操作。
在本发明提供的测试***及方法中,每个测试装置进一步用于对与该测试装置相关的测试数据进行统计,得到与该测试装置相对应的局部统计结果,将局部统计结果提供给控制装置。由此可见,各个测试装置不仅负责执行测试,还负责针对与该测试装置相关的测试数据进行统计,并将统计后得到的局部统计结果提供给控制装置。由于全部的测试数据被拆分为与各个测试装置相对应的多个部分,且各部分测试数据经过对应的测试装置的统计后,降低了数据量、简化了后续的统计工作量,因此,控制装置只需对各个测试装置提供的局部统计结果进行汇总即可得到被测对象的测试结果数据,无需处理海量的测试数据。该方式不仅提升了控制装置的处理效率,还降低了控制装置的***资源占用量,因而各个测试装置所能享用的***资源量不受影响,进而可以针对被测对象施加的更大的压力,从而准确地测试被测对象的性能极限。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例提供的一种测试***的结构框图;
图2示出了根据本发明另一个实施例提供的一种测试***的结构图;
图3示出了根据本发明一个实施例提供的一种测试方法的流程图;
图4示出了根据本发明一个实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例提供的一种测试***的结构图。如图1所示,该***包括:控制装置11以及多个与控制装置11分别相连的测试装置12。其中,控制装置11用于向各个测试装置12发送测试任务,各个测试装置12用于根据接收到的测试任务对被测对象进行测试。其中,每个测试装置12进一步用于:对与该测试装置相关的测试数据进行统计,得到与该测试装置相对应的局部统计结果,将局部统计结果提供给控制装置11;并且,控制装置11进一步用于:对各个测试装置12提供的局部统计结果进行汇总,根据汇总结果确定被测对象的测试结果数据。
其中,该测试***可广泛应用于对各类被测对象进行测试,例如,既可以针对被测服务器进行测试,也可以针对被测终端进行测试。测试装置的具体数量可根据测试需求灵活调整。
另外,测试任务可以包括各种类型的测试任务,本发明对此不做限定。例如,可以是用于对被测服务器的***资源(包括内存、CPU、网络带宽等)进行测试的测试任务,也可以是用于对被测服务器所能服务的最大用户数量进行测试的测试任务等。相应地,与每个测试装置相关的测试数据的具体内容是由该测试装置执行的测试任务决定的,例如,当测试任务为用于对被测服务器的***资源进行测试的测试任务时,与每个测试装置相关的测试数据为该测试装置执行测试任务后测得的被测服务器的***资源值。另外,与每个测试装置相对应的局部统计结果是指:针对该测试装置执行测试任务后得到的测试数据进行统计的结果。例如,若测试装置的数量为三个,则每个测试装置分别得到一份局部统计结果,控制装置针对三份局部统计结果进行汇总后得到被测对象的测试结果数据。
由此可见,在本发明提供的测试***中,由于全部的测试数据被拆分为与各个测试装置相对应的多个部分,且各部分测试数据经过对应的测试装置的统计后,降低了数据量、简化了后续的统计工作量,因此,控制装置只需对各个测试装置提供的局部统计结果进行汇总即可得到被测对象的测试结果数据,无需处理海量的测试数据。该方式不仅提升了控制装置的处理效率,还降低了控制装置的***资源占用量,因而各个测试装置所能享用的***资源量不受影响,进而可以针对被测对象施加的更大的压力,从而准确地测试被测对象的性能极限。
图2示出了根据本发明另一个实施例提供的一种测试***的结构图。本实施例用于针对被测服务器进行压力测试,以确定被测服务器的性能数据。如图2所示,该***包括:控制装置21以及三个与控制装置21分别相连的测试装置22。其中,控制装置21进一步包括:控制服务器211、第一数据库212、以及第二数据库213。相应地,各个测试装置22分别与控制服务器211、第一数据库212、以及第二数据库213相连。并且,各个测试装置22进一步与被测服务器20相连。
其中,控制装置21主要用于向各个测试装置发送测试任务,并对各个测试装置提供的局部统计结果进行汇总,根据汇总结果确定被测服务器的测试结果数据。下面详细介绍控制装置21中包含的控制服务器211、第一数据库212、以及第二数据库213的具体功能:
控制服务器211(也叫server)作为中控节点,负责控制整个测试***的运行。通常情况下,用户终端预先通过Web端向控制服务器录入测试用例,控制服务器将用户终端录入的测试用例保存到第一数据库212中,以供后续的测试过程使用。
首先,当控制服务器211接收到来自用户终端的测试任务时,确定该测试任务的任务分配信息,具体包括负责运行该任务的测试装置、和/或任务并发数等。其中,确定测试任务的任务分配信息的方式包括多种,例如,在一种实现方式中,可以由用户终端将测试任务中包含的任务分配信息直接发送给控制服务器,由控制服务器解析得到该测试任务的任务分配信息后,将该测试任务的任务分配信息进一步存储到第一数据库中,以供后续查询;在另一种实现方式中,可以预先将测试任务中包含的任务分配信息录入到第一数据库中,由控制服务器从第一数据库中查询该测试任务的任务分配信息。
然后,控制服务器根据该测试任务的任务分配信息,为该测试任务分配对应的测试装置,并向相应的测试装置发送该测试任务。例如,若测试任务的任务分配信息中指定了负责运行该任务的测试装置,则直接将该测试任务发送给对应的测试装置;若测试任务的任务分配信息中未指定负责运行该任务的测试装置,则控制服务器查询各个测试装置22的状态信息,根据各个测试装置22的状态信息确定各个测试装置22的当前承载能力,并将该测试任务发送给相对较为空闲的测试装置,以实现负载均衡。另外,若测试任务的任务分配信息中还指定了该任务的任务并发数,则需要根据任务并发数的大小确定执行该测试任务的测试装置的数量。例如,若任务并发数较小,可以将该任务发送给一台测试装置执行;反之,可以将该任务发送给多台测试装置并行执行。
另外,在本实施例中,控制服务器需要同时控制多台测试装置,因此,为了提高控制服务器的运行效率,当控制服务器向各台测试装置发送测试任务时,通过向各个测试装置发送测试任务对应的任务标识的方式实现,相应地,各个测试装置具体用于:根据接收到的测试任务对应的任务标识,从第一数据库212存储的业务数据中获取与该任务标识相对应的任务信息,根据获取到的任务信息对被测对象进行测试。其中,任务标识用于唯一地标识一个测试任务,例如可以是任务ID。任务信息包括运行该测试任务时所需的全部数据信息。例如,任务信息可以包括以下中的至少一个:任务发起者、负责运行该任务的测试装置、任务并发数、任务开始时间、任务结束时间、以及任务结束条件等。任务信息既可以由用户终端预先录入,也可以在设计测试用例时直接生成。由此可见,任务的任务分配信息与任务信息的具体内涵不同,任务的任务分配信息通常仅限于用于分配测试装置的信息,信息数据量通常较少。而任务信息则包括运行测试任务时所需的全部信息,信息数据量通常较大。正是由于任务信息的数据量较大,因此,为了避免由控制服务器分别向各个测试装置发送任务信息所带来的时间延迟和资源占用,因此,本方案中的控制服务器只需向测试装置发送数据量较小的任务标识即可,然后由各个测试装置直接访问第一数据库,以获取与任务标识对应的任务信息,由于各个测试装置可以并行地访问第一数据库,因而提高了处理效率。
另外,在某些测试场景中,除了任务信息外,还需要任务动作来控制测试任务的运行过程。此时,控制服务器进一步用于:向各个测试装置发送测试任务对应的任务动作,则各个测试装置具体用于:结合任务动作对被测对象进行测试;其中,任务动作包括以下中的至少一个:运行、停止、以及暂停。换言之,第一数据库中存储的各个测试任务的任务信息主要是指静态的数据信息,而任务动作则定义了任务运行过程中的动态信息,例如,何时开始运行、何时停止、何时暂停以及暂停次数等。
由此可见,在本实施例中,通过第一数据库212存储与测试任务相关的各种业务数据,其中包含运行测试任务时所需的任务信息。另外,为了提升业务数据的访问效率,第一数据库优选采用Redis数据库实现,该数据库通过内存访问,能够大幅加快访问速度,从而为测试任务的快速执行提供了有利保障。并且,由于本实施例中的各个测试装置能够直接根据任务标识访问第一数据库并获取对应的任务信息,因此,与传统方式中,由控制服务器从第一数据库中获取各个测试任务的任务信息并逐一将各个任务信息发送给各个测试装置的方式相比,省去了大量的中间环节,既提升了处理效率,又降低了控制服务器的资源消耗和性能压力,从而为各个测试装置的测试过程节省出了足够的***资源。
各个测试装置22用于根据接收到的测试任务对被测对象进行测试,并进一步对与该测试装置相关的测试数据进行统计,得到与该测试装置相对应的局部统计结果,将该局部统计结果提供给第二数据库213。
具体地,各个测试装置能够并行实现多个测试任务的测试过程。可选的,为了进一步提升并发效果,每个测试装置具体用于:通过多个并行执行的协程对被测对象进行测试,其中,每个协程用于模拟至少一个用户终端。具体实现时,本发明中的每个测试装置可以同时开启多个协程,分别模拟不同的用户终端和/或执行不同类型的测试任务。由于协程较于线程而言,资源消耗更少,因而能够将有限的***资源更好地用于压力测试中,以便对被测服务器施加最大压力,从而更准确地测试出被测服务器的极限性能。
另外,为了进一步降低控制服务器的处理压力,以防止控制服务器消耗过多的***资源,在本实施例中,每个测试装置具体用于:将与该测试装置相关的测试数据缓存在预设的缓存区域中,从缓存区域中获取与该测试装置相关的测试数据,并对获取到的测试数据进行统计。优选地,该缓存区域可以为内存区域。通过每个测试装置分别负责统计与自身相关的测试数据的方式,能够大幅降低控制服务器的处理压力。
并且,为了防止内存中缓存的测试数据量呈现线性增长的趋势,每个测试装置具体用于:每隔预设的时间周期从缓存区域中获取本时间周期内产生的与该测试装置相关的测试数据,对获取到的测试数据进行统计。例如,时间周期可以以小时为单位,每个测试装置每隔一小时对本小时内产生的相关测试数据进行统计,因此,内存中仅存储最近的一小时之内产生的测试数据,因此,在各个时间段内,内存中存储的数据总量近似不变,不会在某一瞬间对***资源造成过大的消耗,进而为各个测试装置向被测服务器施加最大压力提供了资源保障。
另外,在各个测试装置进行初步统计后得到的局部统计结果中,包含了与该测试装置相关的测试数据的统计内容,例如,若测试数据中包含被测服务器在大量时间点的内存占用情况,则局部统计结果中包含上述时间点对应的内存平均占用情况等统计信息,因此,通过局部统计的方式,还降低了原始的测试数据的数据大小,节约了第二数据库中的存储空间,加快了后续的访问速度。
由此可见,在本实施例中,第二数据库213主要用于存储各个测试装置提供的局部统计结果,以及控制服务器211根据汇总结果确定的被测服务器的测试结果数据。另外,为了降低内存消耗,提升存储容量,第二数据库213优选采用MongoDB数据库实现。相应地,控制服务器211从第二数据库213中获取各个测试装置提供的局部统计结果并进行汇总。由于局部统计结果的数据量相较于原始测试数据大幅缩小,且局部统计结果为多个分别对应于不同的测试装置的数据子表,因而避免了控制服务器同时操作一张包含全部测试装置对应的原始测试数据的数据总表时所带来的巨大资源开销。通过降低控制服务器的处理压力,能够大幅提升本***测试的压测效果。
另外,在本实施例中,根据各种数据的数据格式和存储特点,分别制定了多种存储方式,相较于传统的采用单一数据库存储的方式而言,能够适应实际业务的需求。例如,针对于原始的测试数据,如果用Redis数据库存储压测结果数据,会消耗Redis数据库很多内存资源,其代价较高,并且Redis数据库存储的数据类型简单,因此不便于进行统计;如果用MongoDB数据库存储压测结果数据,则在存储和实时统计测试数据时需要频繁操作数据库,这不仅会降低对被测服务器施加的压力,而且对于实时监控的统计数据,当其并发数较高时会出现响应时延,影响平台的正常运行。因此,通过将原始的测试数据缓存在内存中并定期统计,以加快访问速度,防止数据的大量堆积;针对于业务数据,根据其数据特点将其存储在Redis数据库中,从而加快了访问速度;针对于局部统计结果等结果数据,根据其数据特点将其存储在MongoDB数据库中,从而便于实现大数据量的长期存储。
综上可知,本发明中的测试***至少具备如下优势:
在本发明中,一方面,通过在每个测试装置中定时获取和统计其缓存区域中的测试数据,使各个缓存区域中的数据量近似固定不变,防止其呈线性增长,避免对***资源造成过大的消耗,为各个测试装置向被测服务器施加最大压力提供了资源保障;另一方面,上述处理方式还能够使测试服务器在存储和实时统计测试数据时不再频繁操作数据库,因此也不会与测试过程中的各个协程抢占***资源,从而减轻了***资源负载,提高了测试过程中各个协程的处理效率,从而进一步保证对被测服务器上施加的压力不会下降;并且,相较于传统处理方式中通过控制装置来统计全部的测试结果数据的统计方式,本发明能够在每个测试装置中对与该测试装置对应的测试数据进行统计,而控制装置用于对每个测试装置所得的局部统计结果进行实时监控、响应以及汇总,从而大大降低控制装置的处理压力,大幅提升了测试***的压测效果。
图3示出了根据本发明一个实施例提供的一种测试方法的流程图。如图3所示,该测试方法包括以下步骤:
步骤S310:各个测试装置根据接收到的来自控制装置的测试任务对被测对象进行测试。
其中,各个测试装置通过多个并行执行的协程对被测对象进行测试,其中,每个协程用于模拟至少一个用户终端。具体实现时,每个测试装置可以同时开启多个协程,分别模拟不同的用户终端和/或执行不同类型的测试任务。由于协程较于线程而言,资源消耗更少,因而能够将有限的***资源更好地用于压力测试中,以便对被测服务器施加最大压力,从而更准确地测试出被测服务器的极限性能。
控制装置需要同时控制多台测试装置,因此,为了提高控制装置的运行效率,当控制装置向各台测试装置发送测试任务时,通过向各个测试装置发送测试任务对应的任务标识的方式实现,相应地,各个测试装置根据接收到的测试任务对应的任务标识,从控制装置存储的业务数据中获取与该任务标识相对应的任务信息,根据获取到的任务信息对被测对象进行测试。其中,任务标识用于唯一地标识一个测试任务,例如可以是任务ID。任务信息包括运行该测试任务时所需的全部数据信息。例如,任务信息可以包括以下中的至少一个:任务发起者、负责运行该任务的测试装置、任务并发数、任务开始时间、任务结束时间、以及任务结束条件等。任务信息既可以由用户终端预先录入,也可以在设计测试用例时直接生成。由此可见,任务的任务分配信息与任务信息的具体内涵不同,任务的任务分配信息通常仅限于用于分配测试装置的信息,信息数据量通常较少。而任务信息则包括运行测试任务时所需的全部信息,信息数据量通常较大。正是由于任务信息的数据量较大,因此,为了避免由控制服务器分别向各个测试装置发送任务信息所带来的时间延迟和资源占用,因此,本方案中的控制装置只需向测试装置发送数据量较小的任务标识即可,然后由各个测试装置直接访问第一数据库,以获取与任务标识对应的任务信息,由于各个测试装置可以并行地访问第一数据库,因而提高了处理效率。
另外,在某些测试场景中,除了任务信息外,还需要任务动作来控制测试任务的运行过程。此时,控制装置还可以向各个测试装置发送测试任务对应的任务动作,则各个测试装置还可以通过结合任务动作对被测对象进行测试;其中,任务动作包括以下中的至少一个:运行、停止、以及暂停。换言之,控制装置中存储的各个测试任务的任务信息主要是指静态的数据信息,而任务动作则定义了任务运行过程中的动态信息,例如,何时开始运行、何时停止、何时暂停以及暂停次数等。
步骤S320:每个测试装置对与该测试装置相关的测试数据进行统计,得到与该测试装置相对应的局部统计结果。
具体地,为了进一步降低控制服务器的处理压力,以防止控制服务器消耗过多的***资源,每个测试装置将与该测试装置相关的测试数据缓存在预设的缓存区域中,从缓存区域中获取与该测试装置相关的测试数据,并对获取到的测试数据进行统计。优选地,该缓存区域可以为内存区域。通过每个测试装置分别负责统计与自身相关的测试数据的方式,能够大幅降低控制服务器的处理压力。
并且,为了防止内存中缓存的测试数据量呈现线性增长的趋势,在对测试数据进行统计时,可以每隔预设的时间周期从缓存区域中获取本时间周期内产生的与该测试装置相关的测试数据,对获取到的测试数据进行统计。例如,时间周期可以以小时为单位,每个测试装置每隔一对本小时内产生的相关测试数据进行统计,因此,内存中仅存储最近的一小时之内产生的测试数据,因此,在各个时间段内,内存中存储的数据总量近似不变,不会在某一瞬间对***资源造成过大的消耗,进而为各个测试装置向被测服务器施加最大压力提供了资源保障。
另外,在各个测试装置进行初步统计后得到的局部统计结果中,包含了与该测试装置相关的测试数据的统计内容,例如,若测试数据中包含被测服务器在大量时间点的内存占用情况,则局部统计结果中包含上述时间点对应的内存平均占用情况等统计信息,因此,通过局部统计的方式,还降低了原始的测试数据的数据大小,节约了控制装置的存储空间,加快了后续的访问速度。
步骤S330:每个测试装置将与该测试装置相对应的局部统计结果提供给控制装置,以供控制装置对各个测试装置提供的局部统计结果进行汇总后得到被测对象的测试结果数据。
具体地,在本步骤中,控制装置通过对每个测试装置提供的局部统计结果进行汇总处理来得到被测对象的最终的测试结果数据。由于局部统计结果的数据量相较于原始测试数据大幅缩小,且局部统计结果为多个分别对应于不同的测试装置的数据子表,因而避免了控制服务器同时操作一张包含全部测试装置对应的原始测试数据的数据总表时所带来的巨大资源开销。通过降低控制服务器的处理压力,能够大幅提升本***测试的压测效果。
另外,在本实施例中,根据各种数据的数据格式和存储特点,分别制定了多种存储方式,相较于传统的采用单一数据库存储的方式而言,能够适应实际业务的需求。例如,针对于原始的测试数据,将其缓存在内存中并定期统计,以加快访问速度,防止数据的大量堆积;针对于业务数据,根据其数据特点将其存储在Redis数据库中,从而加快了访问速度;针对于局部统计结果等结果数据,根据其数据特点将其存储在MongoDB数据库中,从而便于实现大数据量的长期存储。
最后,本实施例的控制模块与测试模块的具体结构和工作原理可参照实施例一与实施例二中针对控制模块与测试模块的相应描述,此处不再赘述。另外,该测试方法可以基于上述任一实施例提供的测试***实现,因此,测试方法的具体实现细节可参考测试***中相应部分的描述,此处不再赘述。
由此可见,在本发明提供的测试方式中,通过定时获取和统计每个测试装置缓存区域中的测试数据来保证各个缓存区域中数据量近似固定不变,防止其呈线性增长,避免了上述数据量在某一瞬间对***资源造成过大的消耗,为各个测试装置向被测服务器施加最大压力提供了资源保障。并且,通过定时获取和统计每个测试装置的缓存区域中的测试数据还能够使测试服务器在存储和实时统计测试数据时不再频繁操作数据库,从而能够有效避免***资源被抢占,影响测试过程中各个协成的处理效率的问题,从而保证对被测服务器上施加的压力不会下降,大幅提升了***测试的压测效果;同时,相较于传统处理方式中通过控制装置来统计全部的测试结果数据,本发明能够在每个测试装置中对与该测试装置对应的测试数据进行统计,而控制装置用于对每个测试装置所得的局部统计结果进行实时监控、响应以及汇总,从而大大降低控制装置的处理压力,大幅提升了测试***的压测效果。
图4示出了根据本发明一个实施例提供的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图4所示,该电子设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。
其中:处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。处理器402,用于执行程序410,具体可以执行上述测试方法实施例中的相关步骤。
具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
处理器402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序410具体可以用于使得处理器402执行以下操作:
各个测试装置根据接收到的来自控制装置的测试任务对被测对象进行测试;每个测试装置对与该测试装置相关的测试数据进行统计,得到与该测试装置相对应的局部统计结果;每个测试装置将与该测试装置相对应的局部统计结果提供给所述控制装置,以供所述控制装置对各个测试装置提供的局部统计结果进行汇总后得到所述被测对象的测试结果数据。
本发明还提供了一种计算机存储介质。根据本发明一个实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意实施例中的测试方法。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的日志解析装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:A1.一种测试***,包括:控制装置以及多个与所述控制装置分别相连的测试装置;其中,所述控制装置用于向各个测试装置发送测试任务,各个测试装置用于根据接收到的测试任务对被测对象进行测试;
其中,每个测试装置进一步用于:对与该测试装置相关的测试数据进行统计,得到与该测试装置相对应的局部统计结果,将所述局部统计结果提供给所述控制装置;
所述控制装置进一步用于:对各个测试装置提供的局部统计结果进行汇总,根据汇总结果确定所述被测对象的测试结果数据。
A2.如A1所述的***,其中,每个测试装置具体用于:将与该测试装置相关的测试数据缓存在预设的缓存区域中,从所述缓存区域中获取与该测试装置相关的测试数据,并对获取到的测试数据进行统计。
A3.如A2所述的***,其中,每个测试装置具体用于:每隔预设的时间周期从所述缓存区域中获取本时间周期内产生的与该测试装置相关的测试数据,对获取到的测试数据进行统计。
A4.如A2或A3所述的***,其中,所述缓存区域为内存。
A5.如A1-A4任一所述的***,其中,每个测试装置具体用于:通过多个并行执行的协程对被测对象进行测试,其中,每个协程用于模拟至少一个用户终端。
A6.如A1-A5任一所述的***,其中,所述控制装置进一步包括:
控制服务器,用于向各个测试装置发送测试任务,并对各个测试装置提供的局部统计结果进行汇总,根据汇总结果确定所述被测对象的测试结果数据;
第一数据库,用于存储与各个测试任务相关的业务数据,以供各个测试装置根据所述业务数据进行测试;
第二数据库,用于存储各个测试装置提供的局部统计结果,以及所述控制服务器根据汇总结果确定的所述被测对象的测试结果数据。
A7.如A6所述的***,其中,所述控制服务器具体用于:向各个测试装置发送测试任务对应的任务标识;
各个测试装置具体用于:根据接收到的测试任务对应的任务标识,从所述第一数据库存储的业务数据中获取与该任务标识相对应的任务信息,根据获取到的任务信息对被测对象进行测试。
A8.如A7所述的***,其中,所述任务信息包括以下中的至少一个:任务发起者、负责运行该任务的测试装置、任务并发数、任务开始时间、任务结束时间、以及任务结束条件。
A9.如A6-A8任一所述的***,其中,所述控制服务器进一步用于:向各个测试装置发送测试任务对应的任务动作,则各个测试装置具体用于:结合所述任务动作对被测对象进行测试;其中,所述任务动作包括以下中的至少一个:运行、停止、以及暂停。
A10.如A6-A9任一所述的***,其中,每个测试装置具体用于:将所述局部统计结果提供给所述第二数据库,以供所述控制服务器从所述第二数据库中获取各个测试装置提供的局部统计结果并进行汇总。
A11.如A6-A10任一所述的***,其中,所述第一数据库为Redis数据库,所述第二数据库为MongoDB数据库。
A12.如A1-A11任一所述的***,其中,所述被测对象包括被测服务器,所述测试任务包括:压力测试类型的测试任务。
本发明还公开了:B13.一种测试方法,包括:
各个测试装置根据接收到的来自控制装置的测试任务对被测对象进行测试;
每个测试装置对与该测试装置相关的测试数据进行统计,得到与该测试装置相对应的局部统计结果;
每个测试装置将与该测试装置相对应的局部统计结果提供给所述控制装置,以供所述控制装置对各个测试装置提供的局部统计结果进行汇总后得到所述被测对象的测试结果数据。
B14.如B13所述的方法,其中,所述每个测试装置对与该测试装置相关的测试数据进行统计的步骤具体包括:每个测试装置将与该测试装置相关的测试数据缓存在预设的缓存区域中,从所述缓存区域中获取与该测试装置相关的测试数据,并对获取到的测试数据进行统计。
B15.如B14所述的方法,其中,所述从所述缓存区域中获取与该测试装置相关的测试数据,并对获取到的测试数据进行统计的步骤具体包括:每隔预设的时间周期从所述缓存区域中获取本时间周期内产生的与该测试装置相关的测试数据,对获取到的测试数据进行统计。
B16.如B14或B15所述的方法,其中,所述缓存区域为内存。
B17.如B13-B16任一所述的方法,其中,所述各个测试装置根据接收到的来自控制装置的测试任务对被测对象进行测试的步骤具体包括:
各个测试装置通过多个并行执行的协程对被测对象进行测试,其中,每个协程用于模拟至少一个用户终端。
B18.如B13-B17任一所述的方法,其中,所述被测对象包括被测服务器,所述测试任务包括:压力测试类型的测试任务。
本发明还公开了:C19.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如B13-B18中任一项所述的测试方法对应的操作。
本发明还公开了:D20.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如B13-B18中任一项所述的测试方法对应的操作。
Claims (10)
1.一种测试***,包括:控制装置以及多个与所述控制装置分别相连的测试装置;其中,所述控制装置用于向各个测试装置发送测试任务,各个测试装置用于根据接收到的测试任务对被测对象进行测试;
其中,每个测试装置进一步用于:对与该测试装置相关的测试数据进行统计,得到与该测试装置相对应的局部统计结果,将所述局部统计结果提供给所述控制装置;
所述控制装置进一步用于:对各个测试装置提供的局部统计结果进行汇总,根据汇总结果确定所述被测对象的测试结果数据。
2.如权利要求1所述的***,其中,每个测试装置具体用于:将与该测试装置相关的测试数据缓存在预设的缓存区域中,从所述缓存区域中获取与该测试装置相关的测试数据,并对获取到的测试数据进行统计。
3.如权利要求2所述的***,其中,每个测试装置具体用于:每隔预设的时间周期从所述缓存区域中获取本时间周期内产生的与该测试装置相关的测试数据,对获取到的测试数据进行统计。
4.如权利要求2或3所述的***,其中,所述缓存区域为内存。
5.如权利要求1-4任一所述的***,其中,每个测试装置具体用于:通过多个并行执行的协程对被测对象进行测试,其中,每个协程用于模拟至少一个用户终端。
6.如权利要求1-5任一所述的***,其中,所述控制装置进一步包括:
控制服务器,用于向各个测试装置发送测试任务,并对各个测试装置提供的局部统计结果进行汇总,根据汇总结果确定所述被测对象的测试结果数据;
第一数据库,用于存储与各个测试任务相关的业务数据,以供各个测试装置根据所述业务数据进行测试;
第二数据库,用于存储各个测试装置提供的局部统计结果,以及所述控制服务器根据汇总结果确定的所述被测对象的测试结果数据。
7.如权利要求6所述的***,其中,所述控制服务器具体用于:向各个测试装置发送测试任务对应的任务标识;
各个测试装置具体用于:根据接收到的测试任务对应的任务标识,从所述第一数据库存储的业务数据中获取与该任务标识相对应的任务信息,根据获取到的任务信息对被测对象进行测试。
8.一种测试方法,包括:
各个测试装置根据接收到的来自控制装置的测试任务对被测对象进行测试;
每个测试装置对与该测试装置相关的测试数据进行统计,得到与该测试装置相对应的局部统计结果;
每个测试装置将与该测试装置相对应的局部统计结果提供给所述控制装置,以供所述控制装置对各个测试装置提供的局部统计结果进行汇总后得到所述被测对象的测试结果数据。
9.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求8所述的测试方法对应的操作。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求8所述的测试方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710550024.8A CN107341081A (zh) | 2017-07-07 | 2017-07-07 | 测试***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710550024.8A CN107341081A (zh) | 2017-07-07 | 2017-07-07 | 测试***及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107341081A true CN107341081A (zh) | 2017-11-10 |
Family
ID=60218511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710550024.8A Pending CN107341081A (zh) | 2017-07-07 | 2017-07-07 | 测试***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107341081A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107832230A (zh) * | 2017-12-04 | 2018-03-23 | 中国工商银行股份有限公司 | 基于数据调优的测试方法、设备以及*** |
CN108845954A (zh) * | 2018-08-31 | 2018-11-20 | 中国联合网络通信集团有限公司 | 压力测试方法、***及存储介质 |
CN109614330A (zh) * | 2018-12-06 | 2019-04-12 | 广东浪潮大数据研究有限公司 | 存储***业务测试方法、装置、***、存储控制器及介质 |
CN110633194A (zh) * | 2019-09-26 | 2019-12-31 | 中国民用航空总局第二研究所 | 一种硬件资源在特定环境下的性能评估方法 |
CN111371635A (zh) * | 2018-12-26 | 2020-07-03 | 北京奇虎科技有限公司 | 网络节点的监测方法、装置及*** |
CN112118151A (zh) * | 2020-08-28 | 2020-12-22 | 北京奇艺世纪科技有限公司 | 网络测速方法、装置、***、电子设备及存储介质 |
CN114816940A (zh) * | 2022-06-02 | 2022-07-29 | 科东(广州)软件科技有限公司 | 一种实时***抖动测试的监控方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070050676A1 (en) * | 2005-08-24 | 2007-03-01 | Suresoft Technologies Inc. | Software testing device and method, and computer readable recording medium for recording program executing software testing |
CN101933001A (zh) * | 2008-01-31 | 2010-12-29 | 雅虎公司 | 在集群***中执行软件性能测试作业 |
CN105279087A (zh) * | 2015-10-21 | 2016-01-27 | 北京软件产品质量检测检验中心 | 应用在测试软件中的测试方法和测试*** |
CN106055471A (zh) * | 2016-05-20 | 2016-10-26 | 深圳天珑无线科技有限公司 | 一种测试方法及终端 |
CN106850321A (zh) * | 2017-04-05 | 2017-06-13 | 无锡华云数据技术服务有限公司 | 一种集群服务器的模拟测试*** |
-
2017
- 2017-07-07 CN CN201710550024.8A patent/CN107341081A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070050676A1 (en) * | 2005-08-24 | 2007-03-01 | Suresoft Technologies Inc. | Software testing device and method, and computer readable recording medium for recording program executing software testing |
CN101933001A (zh) * | 2008-01-31 | 2010-12-29 | 雅虎公司 | 在集群***中执行软件性能测试作业 |
CN105279087A (zh) * | 2015-10-21 | 2016-01-27 | 北京软件产品质量检测检验中心 | 应用在测试软件中的测试方法和测试*** |
CN106055471A (zh) * | 2016-05-20 | 2016-10-26 | 深圳天珑无线科技有限公司 | 一种测试方法及终端 |
CN106850321A (zh) * | 2017-04-05 | 2017-06-13 | 无锡华云数据技术服务有限公司 | 一种集群服务器的模拟测试*** |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107832230A (zh) * | 2017-12-04 | 2018-03-23 | 中国工商银行股份有限公司 | 基于数据调优的测试方法、设备以及*** |
CN108845954A (zh) * | 2018-08-31 | 2018-11-20 | 中国联合网络通信集团有限公司 | 压力测试方法、***及存储介质 |
CN109614330A (zh) * | 2018-12-06 | 2019-04-12 | 广东浪潮大数据研究有限公司 | 存储***业务测试方法、装置、***、存储控制器及介质 |
CN111371635A (zh) * | 2018-12-26 | 2020-07-03 | 北京奇虎科技有限公司 | 网络节点的监测方法、装置及*** |
CN111371635B (zh) * | 2018-12-26 | 2023-09-01 | 北京奇虎科技有限公司 | 网络节点的监测方法、装置及*** |
CN110633194A (zh) * | 2019-09-26 | 2019-12-31 | 中国民用航空总局第二研究所 | 一种硬件资源在特定环境下的性能评估方法 |
CN110633194B (zh) * | 2019-09-26 | 2023-03-28 | 中国民用航空总局第二研究所 | 一种硬件资源在特定环境下的性能评估方法 |
CN112118151A (zh) * | 2020-08-28 | 2020-12-22 | 北京奇艺世纪科技有限公司 | 网络测速方法、装置、***、电子设备及存储介质 |
CN114816940A (zh) * | 2022-06-02 | 2022-07-29 | 科东(广州)软件科技有限公司 | 一种实时***抖动测试的监控方法及装置 |
CN114816940B (zh) * | 2022-06-02 | 2023-03-28 | 科东(广州)软件科技有限公司 | 一种实时***抖动测试的监控方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107341081A (zh) | 测试***及方法 | |
CN103902646B (zh) | 一种分布式任务管理***与方法 | |
US20160224392A1 (en) | Load balancing using improved component capacity estimation | |
CN108737325A (zh) | 一种多租户数据隔离方法、装置及*** | |
CN109213597A (zh) | 资源分配方法、装置、计算机设备及计算机可读存储介质 | |
CN106959894A (zh) | 资源分配方法和装置 | |
CN103607424B (zh) | 一种服务器连接方法及服务器*** | |
CN107480717A (zh) | 训练作业处理方法及***、计算设备、计算机存储介质 | |
EP2044749B1 (en) | Dispatching request fragments from a response aggregating surrogate | |
CN107220853A (zh) | 抽奖数据处理方法、装置、服务器及计算机存储介质 | |
CN110401720A (zh) | 信息处理方法、装置、***、应用服务器和介质 | |
CN108769083A (zh) | 基于分布式服务器的登录方法、装置及*** | |
CN104702592B (zh) | 流媒体下载方法和装置 | |
CN108205469A (zh) | 一种基于MapReduce的资源分配方法及服务器 | |
CN107643983A (zh) | 一种测试数据处理方法及*** | |
CN108564462A (zh) | 征信数据的获取方法、终端设备及介质 | |
CN112052082B (zh) | 任务属性优化方法、装置、服务器及存储介质 | |
CN112559147A (zh) | 基于gpu占用资源特点的动态匹配算法、***和设备 | |
CN109828790A (zh) | 一种基于申威异构众核处理器的数据处理方法和*** | |
CN109165158A (zh) | 测试用例的调度方法、装置、计算设备及计算机存储介质 | |
CN108933695A (zh) | 用于处理信息的方法和装置 | |
CN110291503A (zh) | 信息处理***和信息处理方法 | |
CN109542600A (zh) | 分布式任务调度***及方法 | |
CN106657399A (zh) | 基于中间件实现的后台服务器选择方法及装置 | |
CN107346265A (zh) | 实现QoS的方法与装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171110 |