CN108519943A - 测试控制和测试执行装置、方法及计算机存储介质 - Google Patents
测试控制和测试执行装置、方法及计算机存储介质 Download PDFInfo
- Publication number
- CN108519943A CN108519943A CN201810182952.8A CN201810182952A CN108519943A CN 108519943 A CN108519943 A CN 108519943A CN 201810182952 A CN201810182952 A CN 201810182952A CN 108519943 A CN108519943 A CN 108519943A
- Authority
- CN
- China
- Prior art keywords
- test
- result data
- response time
- script
- distributed
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- 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/3664—Environments for testing or debugging software
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种分布式测试系统的测试控制装置,包括存储器和处理器,存储器上存储有可在处理器上运行的测试控制程序,该程序被处理器执行时实现如下步骤:同步地向连接的多台测试执行装置发送测试开启指令,以供多台测试执行装置根据测试开启指令并发地执行测试脚本,对测试对象进行测试;在多台测试执行装置执行完成测试脚本后,从数据库服务器中读取测试对象的测试响应时间和测试结果数据;根据获取到的测试响应时间和测试结果数据获取测试对象在预设的测试指标项上的指标结果并展示。本发明还提出一种分布式测试系统的测试控制方法以及一种计算机可读存储介质。本发明解决了采用现有的测试方案中做分布式性能测试结果不准确的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种测试控制和测试执行装置、方法及计算机存储介质。
背景技术
在分布式测试系统进行性能测试的过程中,当需要在大并发下进行测试时,一台测试执行装置就没法支持更大并发的测试了,这时需要采用多台测试执行装置分布式来支持大并发的测试。但在目前Jmeter(一种基于Java的压力测试工具)提供的分布式测试系统中,控制机与测试执行装置之间一般是通过TCP(Transmission Control Protocol,传输控制协议)协议实现通信以及数据传输,进而实现对测试执行装置的控制并通过这种渠道接收测试执行装置直接返回的执行结果,由于在分布式测试中同步性的高低对于测试结果的影响较大,这种通信以及测试方式对于测试执行装置的同步性控制比较差,而且由于并发的请求量过大导致传输过程数据包丢失等原因,导致多台测试机并发执行时,比采用单台测试执行装置测试的结果值偏低,导致直接影响了测试结果,从而影响对系统性能的判断。
发明内容
本发明提供一种测试控制和测试执行装置、方法及计算机存储介质,其主要目的在于解决采用现有的测试方案中做分布式性能测试结果不准确的问题。
为实现上述目的,本发明提供一种分布式测试系统的测试控制装置,该装置包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的测试控制程序,所述测试控制程序被所述处理器执行时实现如下步骤:
同步地向连接的多台测试执行装置发送测试开启指令,以供所述多台测试执行装置根据所述测试开启指令并发地执行测试脚本,对测试对象进行测试,其中,所述多台测试执行装置在接收到测试对象发送的测试结果数据时,记录测试响应时间,并将所述测试响应时间和测试结果数据回写到数据库服务器中;
在所述多台测试执行装置执行完成测试脚本后,从所述数据库服务器中读取所述测试对象的测试响应时间和测试结果数据;
根据获取到的测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果并展示。
为实现上述目的,本发明提供一种分布式测试系统的测试执行装置,该装置包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的测试执行程序,所述测试执行程序被所述处理器执行时实现如下步骤:
在接收到测试控制装置发送的测试开启指令时,执行测试脚本以对测试对象进行测试;
在接收到测试对象返回的测试结果数据时,记录测试响应时间,并将所述测试响应时间和测试结果数据回写到数据库服务器,以供所述测试控制装置从所述数据库服务器中读取测试响应时间和测试结果数据,并根据测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果。
此外,为实现上述目的,本发明还提供一种分布式测试系统的测试控制方法,该方法包括:
同步地向连接的多台测试执行装置发送测试开启指令,以供所述多台测试执行装置根据所述测试开启指令并发地执行测试脚本,对测试对象进行测试,其中,所述多台测试执行装置在接收到测试对象发送的测试结果数据时,记录测试响应时间,并将所述测试响应时间和测试结果数据回写到数据库服务器中;
在所述多台测试执行装置执行完成测试脚本后,从所述数据库服务器中读取所述测试对象的测试响应时间和测试结果数据;
根据获取到的测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果并展示。
此外,为实现上述目的,本发明还提供一种分布式测试系统的测试执行方法,该方法包括:
在接收到测试控制装置发送的测试开启指令时,执行测试脚本以对测试对象进行测试;
在接收到测试对象返回的测试结果数据时,记录测试响应时间,并将所述测试响应时间和测试结果数据回写到数据库服务器,以供所述测试控制装置从所述数据库服务器中读取测试响应时间和测试结果数据,并根据测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有测试控制程序,所述测试控制程序可被一个或者多个处理器执行,以实现如上所述的分布式测试系统的测试控制方法的步骤。
本发明提出的测试控制和测试执行装置、方法及计算机存储介质,由测试控制装置同步地向连接的多台测试执行装置发送测试开启指令,以供多台测试执行装置根据该测试开启指令并发地执行测试脚本,以对测试对象进行测试,测试执行装置在接收到测试对象发送的测试结果数据时,记录测试响应时间,将测试响应时间和测试结果数据回写到数据库服务器中,在多台测试执行装置执行完成测试脚本后,从数据库服务器中读取测试响应时间和测试结果数据,并根据获取的数据获取测试对象在预设的测试指标项上的指标结果并展示。本发明由测试控制装置控制多台测试执行装置同步地执行测试脚本,保证了测试脚本执行的同步性,并且测试执行装置在接收到运行结果数据后回写到数据库服务器,由控制装置在测试结束后从数据库中读取后进行统计分析,避免出现传输过程中数据包丢失的现象,提高了性能测试的准确性,解决了采用现有的测试方案中做分布式性能测试结果不准确的问题。
附图说明
图1为本发明分布式测试系统的测试控制装置较佳实施例的示意图;
图2为本发明分布式测试系统的测试控制装置一实施例中测试控制程序的程序模块示意图;
图3为本发明分布式测试系统的测试执行装置较佳实施例的示意图;
图4为本发明分布式测试系统的测试控制方法较佳实施例的流程图;
图5为本发明分布式测试系统的测试执行方法较佳实施例的流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种分布式测试系统的测试控制装置。参照图1所示,为本发明分布式测试系统的测试控制装置较佳实施例的示意图。
在本实施例中,分布式测试系统的测试控制装置可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、便携计算机等具有显示功能的可移动式终端设备。
该分布式测试系统的测试控制装置至少包括存储器11、处理器12,通信总线13,以及网络接口14。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是分布式测试系统的测试控制装置的内部存储单元,例如该分布式测试系统的测试控制装置的硬盘。存储器11在另一些实施例中也可以是分布式测试系统的测试控制装置的外部存储设备,例如分布式测试系统的测试控制装置上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器11还可以既包括分布式测试系统的测试控制装置的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于分布式测试系统的测试控制装置的应用软件及各类数据,例如测试控制程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行测试控制程序等。
通信总线13用于实现这些组件之间的连接通信。
网络接口14可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该装置与其他电子设备之间建立通信连接。
图1仅示出了具有组件11-14以及测试控制程序的分布式测试系统的测试控制装置,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
可选地,该装置还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在分布式测试系统的测试控制装置中处理的信息以及用于显示可视化的用户界面。
在图1所示的装置实施例中,存储器11中存储有测试控制程序;处理器12执行存储器11中存储的测试控制程序时实现如下步骤:
同步地向连接的多台测试执行装置发送测试开启指令,以供所述多台测试执行装置根据所述测试开启指令并发地执行测试脚本,对测试对象进行测试,其中,所述多台测试执行装置在接收到测试对象发送的测试结果数据时,记录测试响应时间,并将所述测试响应时间和测试结果数据回写到数据库服务器中。
需要说明的是,本实施例中提出的分布式测试系统的测试控制装置在用于测试时,与多台测试执行装置连接,通过向测试执行装置发送测试指令控制测试执行装置的运行,例如开启、停止、文件传输等指令,其中,本实施例中的测试指令均通过对应的shell脚本触发。测试执行装置上预先存储有用于执行测试任务信息的测试脚本,当运行这些测试脚本时,测试执行装置会向测试对象发送处理请求,并接收测试对象对处理请求的处理结果,即测试结果数据。其中,测试对象可以是系统、接口或者应用程序等。其中,处理请求的具体内容需要根据测试对象的功能来确定。
在开始测试时,测试控制装置同步地向连接的多台测试执行装置发送测试开启指令,该指令通过对应的shell脚本触发,测试执行装置在接收到测试控制装置发送的测试开启指令时,执行测试脚本以对测试对象进行测试,在接收到测试对象返回的测试结果数据时,记录测试响应时间,并将测试响应时间和测试结果数据回写到数据库服务器,以供测试控制装置从数据库服务器中读取测试响应时间和测试结果数据,并根据测试响应时间和测试结果数据获取测试对象在预设的测试指标项上的指标结果。
一般在性能测试时,需要同时向测试对象发送大量的处理请求以对测试对象的性能进行测试,例如,设置二十台测试执行装置与测试控制装置连接,每台测试执行装置可以同步地发送三百条处理请求,则分布式测试系统则能够同时实现同时发送六千条处理请求,该数字只为举例说明,在实际测试中,可以根据需要设置具体的测试执行装置的数量以及每台测试执行装置可同时发送的请求的数量,其中,每台执行机上都部署有包含有多个线程的线程组,测试时能够根据脚本同时启动线程组中的所有线程。
在所述多台测试执行装置执行完成测试脚本后,从所述数据库服务器中读取所述测试对象的测试响应时间和测试结果数据。
根据获取到的测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果并展示。
例如,测试对象是目标业务系统提供的注册接口,该注册接口提供注册功能,多台测试执行装置运行测试脚本后,各台执行装置同时多线程地触发向该注册接口发送注册请求,目标业务系统通过该注册接口对接收到的注册请求进行处理并返回对请求处理的结果,执行装置记录注册接口对各个请求的响应时间,各台执行装置将缓存中的运行结果数据回写到数据库服务器中。
关于用于存储运行结果数据的数据库,该数据库部署在独立于上述控制装置和执行装置的服务器上,该数据库可以是时间序列服务器influxDB。
作为一种实施方式,所述根据获取到的测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果并展示的步骤包括:
根据预设的测试指标项对应的统计方式对获取到的测试响应时间和测试结果数据进行统计;根据统计结果获取所述测试指标项对应的指标结果,并按照预设的可视化方式展示所述测试指标项的指标结果。其中,预设的测试指标项可以包括但不限于以下几项:如平均响应时间、90%响应时间、每秒钟请求数、响应失败率、吞吐量。其中,如平均响应时间、90%响应时间可以根据从数据库中获取的响应时间以及总体请求量来计算,响应失败率可以根据测试结果数据来计算。
此外,由于在进行测试时,可能会出现需要对一个测试对象的多个功能进行测试,此时,需要在测试执行程序中存储多个不同的测试脚本,分别用于向测试对象发起对应的处理请求。故,对于测试执行装置来说,将在接收到测试控制装置发送的测试开启指令时,执行测试脚本以对测试对象进行测试的步骤包括:
在接收到测试控制装置发送的测试开启指令时,根据所述测试开启指令确定待执行的测试任务信息,根据预设的测试任务信息与测试脚本之间的映射关系查找与确定的测试任务信息对应的测试脚本;执行查找到的测试脚本,以对测试对象进行测试。
也就是说,在测试执行装置上存储有多个测试脚本,并且建立测试脚本与测试任务信息之间的映射关系,测试控制装置发送的测试开启指令中包含有与测试任务信息,测试执行装置在接收到测试开启指令时,需要根据上述映射关系查找与测试任务信息对应的测试脚本并执行。
在现有技术中,分布式测试的控制装置与执行装置一般通过TCP协议实现数据的传输,但是当并发量大时,多台执行装置同时向控制装置发送大量的测试结果数据,导致出现传输过程中数据包丢失,进而造成测试结果误差大。本实施例提出的测试控制装置不需要通过TCP协议传输测试结果数据,测试执行装置在得到测试对象返回的处理结果时,从缓存中将这些数据回写到数据库服务器中,该服务器独立于测试控制装置和测试执行装置,单独提供数据存储功能,因此能够避免出现数据包丢失的情况,提高测试结果的准确度。
本实施例提出的测试控制装置,同步地向连接的多台测试执行装置发送测试开启指令,以供多台测试执行装置根据该测试开启指令并发地执行测试脚本,以对测试对象进行测试,测试执行装置在接收到测试对象发送的测试结果数据时,记录测试响应时间,将测试响应时间和测试结果数据回写到数据库服务器中,在多台测试执行装置执行完成测试脚本后,从数据库服务器中读取测试响应时间和测试结果数据,并根据获取的数据获取测试对象在预设的测试指标项上的指标结果并展示。本发明由测试控制装置控制多台测试执行装置同步地执行测试脚本,保证了测试脚本执行的同步性,并且测试执行装置在接收到运行结果数据后回写到数据库服务器,由控制装置在测试结束后从数据库中读取后进行统计分析,避免出现传输过程中数据包丢失的现象,提高了性能测试的准确性,解决了采用现有的测试方案中做分布式性能测试结果不准确的问题。
可选地,在其他的实施例中,测试控制程序还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述测试控制程序在分布式测试系统的测试控制装置中的执行过程。
例如,参照图2所示,为本发明分布式测试系统的测试控制装置一实施例中的测试控制程序的程序模块示意图,该实施例中,测试控制程序可以被分割为指令发送模块10、数据读取模块20和结果分析模块30,示例性地:
指令发送模块10用于:同步地向连接的多台测试执行装置发送测试开启指令,以供所述多台测试执行装置根据所述测试开启指令并发地执行测试脚本,对测试对象进行测试,其中,所述多台测试执行装置在接收到测试对象发送的测试结果数据时,记录测试响应时间,并将所述测试响应时间和测试结果数据回写到数据库服务器中;
数据读取模块20用于:在所述多台测试执行装置执行完成测试脚本后,从所述数据库服务器中读取所述测试对象的测试响应时间和测试结果数据;
结果分析模块30用于:根据获取到的测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果并展示。
上述指令发送模块10、数据读取模块20和结果分析模块30等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
此外,本发明还提出一种分布式测试系统的测试执行装置,参照图3所示,为本发明分布式测试系统的测试执行装置较佳实施例的示意图。
在本实施例中,分布式测试系统的测试执行装置可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、便携计算机等具有显示功能的可移动式终端设备。
该分布式测试系统的测试执行装置至少包括存储器21、处理器22,通信总线23,以及网络接口24。
其中,存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器21在一些实施例中可以是分布式测试系统的测试执行装置的内部存储单元,例如该分布式测试系统的测试执行装置的硬盘。存储器21在另一些实施例中也可以是分布式测试系统的测试执行装置的外部存储设备,例如分布式测试系统的测试执行装置上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器21还可以既包括分布式测试系统的测试执行装置的内部存储单元也包括外部存储设备。存储器21不仅可以用于存储安装于分布式测试系统的测试执行装置的应用软件及各类数据,例如测试控制程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器22在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器21中存储的程序代码或处理数据,例如执行测试控制程序等。
通信总线23用于实现这些组件之间的连接通信。
网络接口24可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该装置与其他电子设备之间建立通信连接。
图3仅示出了具有组件21-24以及测试控制程序的分布式测试系统的测试执行装置,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
在图3所示的装置实施例中,存储器21中存储有测试执行程序;处理器22执行存储器21中存储的测试执行程序时实现如下步骤:
在接收到测试控制装置发送的测试开启指令时,执行测试脚本以对测试对象进行测试;
在接收到测试对象返回的测试结果数据时,记录测试响应时间,并将所述测试响应时间和测试结果数据回写到数据库服务器,以供所述测试控制装置从所述数据库服务器中读取测试响应时间和测试结果数据,并根据测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果。
可选地,所述在接收到测试控制装置发送的测试开启指令时,执行测试脚本以对测试对象进行测试的步骤包括:
在接收到测试控制装置发送的测试开启指令时,根据所述测试开启指令确定待执行的测试任务信息,根据预设的测试任务信息与测试脚本之间的映射关系查找与确定的测试任务信息对应的测试脚本;
执行查找到的测试脚本,以对测试对象进行测试。
本发明分布式测试系统的测试执行装置的具体实施方式请参见上述分布式测试系统的测试控制装置中的描述,在此不再累述。
此外,本发明还提供一种分布式测试系统的测试控制方法。参照图4所示,为本发明分布式测试系统的测试控制方法较佳实施例的流程图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
在本实施例中,分布式测试系统的测试控制方法包括:
步骤S10,同步地向连接的多台测试执行装置发送测试开启指令,以供所述多台测试执行装置根据所述测试开启指令并发地执行测试脚本,对测试对象进行测试,其中,所述多台测试执行装置在接收到测试对象发送的测试结果数据时,记录测试响应时间,并将所述测试响应时间和测试结果数据回写到数据库服务器中。
以下以测试控制装置作为执行主体对本实施例的方法进行说明。需要说明的是,该测试控制装置在用于测试时,与多台测试执行装置连接,通过向测试执行装置发送测试指令控制测试执行装置的运行,例如开启、停止、文件传输等指令,其中,本实施例中的测试指令均通过对应的shell脚本触发。测试执行装置上预先存储有用于执行测试任务信息的测试脚本,当运行这些测试脚本时,测试执行装置会向测试对象发送处理请求,并接收测试对象对处理请求的处理结果,即测试结果数据。其中,测试对象可以是系统、接口或者应用程序等。其中,处理请求的具体内容需要根据测试对象的功能来确定。
在开始测试时,测试控制装置同步地向连接的多台测试执行装置发送测试开启指令,该指令通过对应的shell脚本触发,测试执行装置在接收到测试控制装置发送的测试开启指令时,执行测试脚本以对测试对象进行测试,在接收到测试对象返回的测试结果数据时,记录测试响应时间,并将测试响应时间和测试结果数据回写到数据库服务器,以供测试控制装置从数据库服务器中读取测试响应时间和测试结果数据,并根据测试响应时间和测试结果数据获取测试对象在预设的测试指标项上的指标结果。
一般在性能测试时,需要同时向测试对象发送大量的处理请求以对测试对象的性能进行测试,例如,设置二十台测试执行装置与测试控制装置连接,每台测试执行装置可以同步地发送三百条处理请求,则分布式测试系统则能够同时实现同时发送六千条处理请求,该数字只为举例说明,在实际测试中,可以根据需要设置具体的测试执行装置的数量以及每台测试执行装置可同时发送的请求的数量,其中,每台执行机上都部署有包含有多个线程的线程组,测试时能够根据脚本同时启动线程组中的所有线程。
步骤S20,在所述多台测试执行装置执行完成测试脚本后,从所述数据库服务器中读取所述测试对象的测试响应时间和测试结果数据。
步骤S30,根据获取到的测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果并展示。
例如,测试对象是目标业务系统提供的注册接口,该注册接口提供注册功能,多台测试执行装置运行测试脚本后,各台执行装置同时多线程地触发向该注册接口发送注册请求,目标业务系统通过该注册接口对接收到的注册请求进行处理并返回对请求处理的结果,执行装置记录注册接口对各个请求的响应时间,各台执行装置将缓存中的运行结果数据回写到数据库服务器中。
关于用于存储运行结果数据的数据库,该数据库部署在独立于上述控制装置和执行装置的服务器上,该数据库可以是时间序列服务器influxDB。
作为一种实施方式,所述步骤S30包括:
根据预设的测试指标项对应的统计方式对获取到的测试响应时间和测试结果数据进行统计;根据统计结果获取所述测试指标项对应的指标结果,并按照预设的可视化方式展示所述测试指标项的指标结果。其中,预设的测试指标项可以包括但不限于以下几项:如平均响应时间、90%响应时间、每秒钟请求数、响应失败率、吞吐量。其中,如平均响应时间、90%响应时间可以根据从数据库中获取的响应时间以及总体请求量来计算,响应失败率可以根据测试结果数据来计算。
此外,由于在进行测试时,可能会出现需要对一个测试对象的多个功能进行测试,此时,需要在测试执行程序中存储多个不同的测试脚本,分别用于向测试对象发起对应的处理请求。故,对于测试执行装置来说,将在接收到测试控制装置发送的测试开启指令时,执行测试脚本以对测试对象进行测试的步骤包括:
在接收到测试控制装置发送的测试开启指令时,根据所述测试开启指令确定待执行的测试任务信息,根据预设的测试任务信息与测试脚本之间的映射关系查找与确定的测试任务信息对应的测试脚本;执行查找到的测试脚本,以对测试对象进行测试。
也就是说,在测试执行装置上存储有多个测试脚本,并且建立测试脚本与测试任务信息之间的映射关系,测试控制装置发送的测试开启指令中包含有与测试任务信息,测试执行装置在接收到测试开启指令时,需要根据上述映射关系查找与测试任务信息对应的测试脚本并执行。
在现有技术中,分布式测试的控制装置与执行装置一般通过TCP协议实现数据的传输,但是当并发量大时,多台执行装置同时向控制装置发送大量的测试结果数据,导致出现传输过程中数据包丢失,进而造成测试结果误差大。本实施例提出的测试控制装置不需要通过TCP协议传输测试结果数据,测试执行装置在得到测试对象返回的处理结果时,从缓存中将这些数据回写到数据库服务器中,该服务器独立于测试控制装置和测试执行装置,单独提供数据存储功能,因此能够避免出现数据包丢失的情况,提高测试结果的准确度。
本实施例提出的测试控制方法,同步地向连接的多台测试执行装置发送测试开启指令,以供多台测试执行装置根据该测试开启指令并发地执行测试脚本,以对测试对象进行测试,测试执行装置在接收到测试对象发送的测试结果数据时,记录测试响应时间,将测试响应时间和测试结果数据回写到数据库服务器中,在多台测试执行装置执行完成测试脚本后,从数据库服务器中读取测试响应时间和测试结果数据,并根据获取的数据获取测试对象在预设的测试指标项上的指标结果并展示。本发明由测试控制装置控制多台测试执行装置同步地执行测试脚本,保证了测试脚本执行的同步性,并且测试执行装置在接收到运行结果数据后回写到数据库服务器,由控制装置在测试结束后从数据库中读取后进行统计分析,避免出现传输过程中数据包丢失的现象,提高了性能测试的准确性,解决了采用现有的测试方案中做分布式性能测试结果不准确的问题。
此外,本发明还提供一种分布式测试系统的测试执行方法。参照图5所示,为本发明分布式测试系统的测试执行方法较佳实施例的流程图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
在本实施例中,分布式测试系统的测试执行方法包括:
步骤S40,在接收到测试控制装置发送的测试开启指令时,执行测试脚本以对测试对象进行测试;
步骤S50,在接收到测试对象返回的测试结果数据时,记录测试响应时间,并将所述测试响应时间和测试结果数据回写到数据库服务器,以供所述测试控制装置从所述数据库服务器中读取测试响应时间和测试结果数据,并根据测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果。
可选地,步骤S40包括:在接收到测试控制装置发送的测试开启指令时,根据所述测试开启指令确定待执行的测试任务信息,根据预设的测试任务信息与测试脚本之间的映射关系查找与确定的测试任务信息对应的测试脚本;执行查找到的测试脚本,以对测试对象进行测试。
本发明分布式测试系统的测试执行方法的具体实施方式请参见上述分布式测试系统的测试控制方法中的描述,在此不再累述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有测试控制程序,所述测试控制程序可被一个或多个处理器执行,以实现如下操作:
同步地向连接的多台测试执行装置发送测试开启指令,以供所述多台测试执行装置根据所述测试开启指令并发地执行测试脚本,对测试对象进行测试,其中,所述多台测试执行装置在接收到测试对象发送的测试结果数据时,记录测试响应时间,并将所述测试响应时间和测试结果数据回写到数据库服务器中;
在所述多台测试执行装置执行完成测试脚本后,从所述数据库服务器中读取所述测试对象的测试响应时间和测试结果数据;
根据获取到的测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果并展示。
或者,该计算机存储介质上存储有测试执行程序,所述测试执行程序可被一个或多个处理器执行,以实现如下操作:
在接收到测试控制装置发送的测试开启指令时,执行测试脚本以对测试对象进行测试;
在接收到测试对象返回的测试结果数据时,记录测试响应时间,并将所述测试响应时间和测试结果数据回写到数据库服务器,以供所述测试控制装置从所述数据库服务器中读取测试响应时间和测试结果数据,并根据测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果。
本发明计算机可读存储介质的具体实施方式与上述分布式测试系统的测试控制装置和方法各实施例基本相同,在此不作累述。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种分布式测试系统的测试控制装置,其特征在于,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的测试控制程序,所述测试控制程序被所述处理器执行时实现如下步骤:
同步地向连接的多台测试执行装置发送测试开启指令,以供所述多台测试执行装置根据所述测试开启指令并发地执行测试脚本,对测试对象进行测试,其中,所述多台测试执行装置在接收到测试对象发送的测试结果数据时,记录测试响应时间,并将所述测试响应时间和测试结果数据回写到数据库服务器中;
在所述多台测试执行装置执行完成测试脚本后,从所述数据库服务器中读取所述测试对象的测试响应时间和测试结果数据;
根据获取到的测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果并展示。
2.如权利要求1所述的分布式测试系统的测试控制装置,其特征在于,所述根据获取到的测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果并展示的步骤包括:
根据预设的测试指标项对应的统计方式对获取到的测试响应时间和测试结果数据进行统计;
根据统计结果获取所述测试指标项对应的指标结果,并按照预设的可视化方式展示所述测试指标项的指标结果。
3.如权利要求1或2所述的分布式测试系统的测试控制装置,其特征在于,所述数据库服务器上采用的数据库为时间序列服务器influxDB,所述预设的测试指标项包括平均响应时间、90%响应时间、每秒钟请求数、响应失败率、吞吐量。
4.一种分布式测试系统的测试执行装置,其特征在于,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的测试执行程序,所述测试执行程序被所述处理器执行时实现如下步骤:
在接收到测试控制装置发送的测试开启指令时,执行测试脚本以对测试对象进行测试;
在接收到测试对象返回的测试结果数据时,记录测试响应时间,并将所述测试响应时间和测试结果数据回写到数据库服务器,以供所述测试控制装置从所述数据库服务器中读取测试响应时间和测试结果数据,并根据测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果。
5.如权利要求4所述的分布式测试系统的测试执行装置,其特征在于,所述在接收到测试控制装置发送的测试开启指令时,执行测试脚本以对测试对象进行测试的步骤包括:
在接收到测试控制装置发送的测试开启指令时,根据所述测试开启指令确定待执行的测试任务信息,根据预设的测试任务信息与测试脚本之间的映射关系查找与确定的测试任务信息对应的测试脚本;
执行查找到的测试脚本,以对测试对象进行测试。
6.一种分布式测试系统的测试控制方法,其特征在于,所述方法包括:
同步地向连接的多台测试执行装置发送测试开启指令,以供所述多台测试执行装置根据所述测试开启指令并发地执行测试脚本,对测试对象进行测试,其中,所述多台测试执行装置在接收到测试对象发送的测试结果数据时,记录测试响应时间,并将所述测试响应时间和测试结果数据回写到数据库服务器中;
在所述多台测试执行装置执行完成测试脚本后,从所述数据库服务器中读取所述测试对象的测试响应时间和测试结果数据;
根据获取到的测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果并展示。
7.如权利要求6所述的分布式测试系统的测试控制方法,其特征在于,所述根据获取到的测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果并展示的步骤包括:
根据预设的测试指标项对应的统计方式对获取到的测试响应时间和测试结果数据进行统计;
根据统计结果获取所述测试指标项对应的指标结果,并按照预设的可视化方式展示所述测试指标项的指标结果。
8.一种分布式测试系统的测试执行方法,其特征在于,所述方法包括:
在接收到测试控制装置发送的测试开启指令时,执行测试脚本以对测试对象进行测试;
在接收到测试对象返回的测试结果数据时,记录测试响应时间,并将所述测试响应时间和测试结果数据回写到数据库服务器,以供所述测试控制装置从所述数据库服务器中读取测试响应时间和测试结果数据,并根据测试响应时间和测试结果数据获取所述测试对象在预设的测试指标项上的指标结果。
9.如权利要求8所述的分布式测试系统的测试控制方法,其特征在于,所述在接收到测试控制装置发送的测试开启指令时,执行测试脚本以对测试对象进行测试的步骤包括:
在接收到测试控制装置发送的测试开启指令时,根据所述测试开启指令确定待执行的测试任务信息,根据预设的测试任务信息与测试脚本之间的映射关系查找与确定的测试任务信息对应的测试脚本;
执行查找到的测试脚本,以对测试对象进行测试。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有测试控制程序,所述测试控制程序可被一个或者多个处理器执行,以实现如权利要求6或7所述的分布式测试系统的测试控制方法的步骤;
或者,所述计算机可读存储介质上存储有测试执行程序,所述测试控制程序可被一个或者多个处理器执行,以实现如权利要求8或9所述的分布式测试系统的测试控制方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810182952.8A CN108519943A (zh) | 2018-03-06 | 2018-03-06 | 测试控制和测试执行装置、方法及计算机存储介质 |
PCT/CN2018/089181 WO2019169757A1 (zh) | 2018-03-06 | 2018-05-31 | 测试控制和测试执行装置、方法及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810182952.8A CN108519943A (zh) | 2018-03-06 | 2018-03-06 | 测试控制和测试执行装置、方法及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108519943A true CN108519943A (zh) | 2018-09-11 |
Family
ID=63433486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810182952.8A Pending CN108519943A (zh) | 2018-03-06 | 2018-03-06 | 测试控制和测试执行装置、方法及计算机存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108519943A (zh) |
WO (1) | WO2019169757A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108924009A (zh) * | 2018-07-12 | 2018-11-30 | 深圳市极致汇仪科技有限公司 | 一种高吞吐量的测试方法及测试系统 |
CN109669867A (zh) * | 2018-12-11 | 2019-04-23 | 平安科技(深圳)有限公司 | 测试装置、自动化测试方法和计算机可读存储介质 |
CN109739741A (zh) * | 2018-11-26 | 2019-05-10 | 北京网众共创科技有限公司 | 系统测试方法和装置、存储介质及电子装置 |
CN109753438A (zh) * | 2019-01-14 | 2019-05-14 | 上海挚极信息科技有限公司 | 基于jmeter的性能测试平台及方法 |
CN111277464A (zh) * | 2020-01-20 | 2020-06-12 | 平安科技(深圳)有限公司 | 物联网设备连接测试方法、装置及计算机可读存储介质 |
CN111858276A (zh) * | 2020-07-06 | 2020-10-30 | 珠海西山居移动游戏科技有限公司 | 一种获取服务器压测数据的方法及系统 |
CN113014452A (zh) * | 2021-03-01 | 2021-06-22 | 鹏城实验室 | 网络流量测试方法、装置、测试端以及存储介质 |
CN113297028A (zh) * | 2021-03-18 | 2021-08-24 | 中国平安人寿保险股份有限公司 | 一种脚本执行方法、装置、计算机设备及存储介质 |
CN115277481A (zh) * | 2022-09-22 | 2022-11-01 | 东方合智数据科技(广东)有限责任公司 | 性能指标监控方法、装置、设备及存储介质 |
CN115604144A (zh) * | 2022-09-27 | 2023-01-13 | 北京百度网讯科技有限公司(Cn) | 测试方法及装置、电子设备和存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI759874B (zh) * | 2020-09-22 | 2022-04-01 | 明泰科技股份有限公司 | 分散式的軟體驗證系統 |
CN112153410B (zh) * | 2020-09-30 | 2022-02-22 | 郑州信大捷安信息技术股份有限公司 | 一种流媒体服务高并发测试方法和系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5371883A (en) * | 1993-03-26 | 1994-12-06 | International Business Machines Corporation | Method of testing programs in a distributed environment |
CN102035697A (zh) * | 2010-12-31 | 2011-04-27 | 中国电子科技集团公司第十五研究所 | 一种文件系统的并发连接数性能测试系统和方法 |
CN102035896A (zh) * | 2010-12-31 | 2011-04-27 | 北京航空航天大学 | 一种适用于软件系统的基于ttcn-3的分布式测试框架 |
CN102841846A (zh) * | 2012-08-27 | 2012-12-26 | 北京邮电大学 | 一种基于Hadoop的软件测试方法、装置和系统 |
CN103970650A (zh) * | 2014-04-09 | 2014-08-06 | 广州杰赛科技股份有限公司 | 分布式测试方法和装置 |
CN106201852A (zh) * | 2015-04-29 | 2016-12-07 | 展讯通信(上海)有限公司 | 一种分布式测试方法及测试系统 |
CN106649088A (zh) * | 2016-10-09 | 2017-05-10 | 网易(杭州)网络有限公司 | 一种分布式压力测试方法和系统 |
CN107544895A (zh) * | 2016-06-28 | 2018-01-05 | 中兴通讯股份有限公司 | Hadoop大数据平台测试系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141962B (zh) * | 2011-04-07 | 2013-06-19 | 北京航空航天大学 | 一种安全性分布式测试框架系统及其测试方法 |
CN107341098B (zh) * | 2017-07-13 | 2020-06-19 | 携程旅游信息技术(上海)有限公司 | 软件性能测试方法、平台、设备及存储介质 |
-
2018
- 2018-03-06 CN CN201810182952.8A patent/CN108519943A/zh active Pending
- 2018-05-31 WO PCT/CN2018/089181 patent/WO2019169757A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5371883A (en) * | 1993-03-26 | 1994-12-06 | International Business Machines Corporation | Method of testing programs in a distributed environment |
CN102035697A (zh) * | 2010-12-31 | 2011-04-27 | 中国电子科技集团公司第十五研究所 | 一种文件系统的并发连接数性能测试系统和方法 |
CN102035896A (zh) * | 2010-12-31 | 2011-04-27 | 北京航空航天大学 | 一种适用于软件系统的基于ttcn-3的分布式测试框架 |
CN102841846A (zh) * | 2012-08-27 | 2012-12-26 | 北京邮电大学 | 一种基于Hadoop的软件测试方法、装置和系统 |
CN103970650A (zh) * | 2014-04-09 | 2014-08-06 | 广州杰赛科技股份有限公司 | 分布式测试方法和装置 |
CN106201852A (zh) * | 2015-04-29 | 2016-12-07 | 展讯通信(上海)有限公司 | 一种分布式测试方法及测试系统 |
CN107544895A (zh) * | 2016-06-28 | 2018-01-05 | 中兴通讯股份有限公司 | Hadoop大数据平台测试系统及方法 |
CN106649088A (zh) * | 2016-10-09 | 2017-05-10 | 网易(杭州)网络有限公司 | 一种分布式压力测试方法和系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108924009B (zh) * | 2018-07-12 | 2020-08-25 | 深圳市极致汇仪科技有限公司 | 一种高吞吐量的测试方法及测试系统 |
CN108924009A (zh) * | 2018-07-12 | 2018-11-30 | 深圳市极致汇仪科技有限公司 | 一种高吞吐量的测试方法及测试系统 |
CN109739741A (zh) * | 2018-11-26 | 2019-05-10 | 北京网众共创科技有限公司 | 系统测试方法和装置、存储介质及电子装置 |
CN109669867B (zh) * | 2018-12-11 | 2024-03-12 | 平安科技(深圳)有限公司 | 测试装置、自动化测试方法和计算机可读存储介质 |
CN109669867A (zh) * | 2018-12-11 | 2019-04-23 | 平安科技(深圳)有限公司 | 测试装置、自动化测试方法和计算机可读存储介质 |
CN109753438A (zh) * | 2019-01-14 | 2019-05-14 | 上海挚极信息科技有限公司 | 基于jmeter的性能测试平台及方法 |
CN111277464A (zh) * | 2020-01-20 | 2020-06-12 | 平安科技(深圳)有限公司 | 物联网设备连接测试方法、装置及计算机可读存储介质 |
CN111858276A (zh) * | 2020-07-06 | 2020-10-30 | 珠海西山居移动游戏科技有限公司 | 一种获取服务器压测数据的方法及系统 |
CN113014452A (zh) * | 2021-03-01 | 2021-06-22 | 鹏城实验室 | 网络流量测试方法、装置、测试端以及存储介质 |
CN113297028A (zh) * | 2021-03-18 | 2021-08-24 | 中国平安人寿保险股份有限公司 | 一种脚本执行方法、装置、计算机设备及存储介质 |
CN115277481A (zh) * | 2022-09-22 | 2022-11-01 | 东方合智数据科技(广东)有限责任公司 | 性能指标监控方法、装置、设备及存储介质 |
CN115604144A (zh) * | 2022-09-27 | 2023-01-13 | 北京百度网讯科技有限公司(Cn) | 测试方法及装置、电子设备和存储介质 |
CN115604144B (zh) * | 2022-09-27 | 2024-07-12 | 北京百度网讯科技有限公司 | 测试方法及装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2019169757A1 (zh) | 2019-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108519943A (zh) | 测试控制和测试执行装置、方法及计算机存储介质 | |
CN109302522A (zh) | 测试方法、装置以及计算机系统和介质 | |
CN108595329B (zh) | 一种应用测试方法、装置及计算机存储介质 | |
US6993747B1 (en) | Method and system for web based software object testing | |
US7000224B1 (en) | Test code generator, engine and analyzer for testing middleware applications | |
CA2383919A1 (en) | Method and system for web based software object testing | |
CN109783351A (zh) | 界面测试方法、装置及计算机可读存储介质 | |
CN110147320A (zh) | 接口测试方法、装置及电子设备 | |
CN108664372A (zh) | 测试过程的监控装置、方法及计算机可读存储介质 | |
CN108717391A (zh) | 测试过程的监控装置、方法及计算机可读存储介质 | |
CN106775968A (zh) | 一种服务器测试方法、装置及系统 | |
US10942837B2 (en) | Analyzing time-series data in an automated application testing system | |
CN108959067A (zh) | 搜索引擎的测试方法、装置及计算机可读存储介质 | |
CN109783365A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN114564374A (zh) | 算子性能评估方法、装置、电子设备及存储介质 | |
CN109726134A (zh) | 接口测试方法和系统 | |
CN111782317A (zh) | 页面的测试方法和装置、存储介质和电子装置 | |
CN109543073A (zh) | 企业供销关系图谱生成方法、装置和计算机设备 | |
CN109426611A (zh) | 一种软件测试方法和装置 | |
CN110297767A (zh) | 测试用例自动执行方法、装置、设备及存储介质 | |
CN110287094A (zh) | Ui自动化测试方法、装置及计算机可读存储介质 | |
CN107065663A (zh) | 一种机组故障调试方法及其移动终端、机组故障调试系统 | |
US8661305B2 (en) | Method and system for test vector generation | |
CN113672222A (zh) | 一种应用程序接口管理装置及其构建方法 | |
CN114218072A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180911 |