CN111400162A - 一种测试方法及测试系统 - Google Patents

一种测试方法及测试系统 Download PDF

Info

Publication number
CN111400162A
CN111400162A CN201910002271.3A CN201910002271A CN111400162A CN 111400162 A CN111400162 A CN 111400162A CN 201910002271 A CN201910002271 A CN 201910002271A CN 111400162 A CN111400162 A CN 111400162A
Authority
CN
China
Prior art keywords
distributed system
test
unit
data operation
control unit
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.)
Granted
Application number
CN201910002271.3A
Other languages
English (en)
Other versions
CN111400162B (zh
Inventor
段培乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910002271.3A priority Critical patent/CN111400162B/zh
Publication of CN111400162A publication Critical patent/CN111400162A/zh
Application granted granted Critical
Publication of CN111400162B publication Critical patent/CN111400162B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种测试方法及测试系统,测试方法包括:控制单元向测试代理单元发送用于进行压力测试的指令序列,指令序列包括多条数据操作指令;测试代理单元将接收到的数据操作指令转换为所述分布式系统的接口请求,将转换得到的接口请求发送到所述分布式系统执行,并接收所述分布式系统的响应结果,将响应结果发送到所述控制单元;验证单元根据控制单元记录的数据操作指令和响应结果,验证响应结果是否符合预期。

Description

一种测试方法及测试系统
技术领域
本发明涉及软件测试领域,特别涉及一种用于对分布式系统进行测试的测试方法及测试系统。
背景技术
随着互联网的蓬勃发展,传统关系数据库存储系统无法满足海量数据场景,各大互联网公司,从自己的业务需求出发,开发出了各种分布式系统。分布式系统通常由成百上千台机器组成,每天可能都会有一台甚至多台机器的硬盘、网络等发生故障,同时进程本身也可能会由于异常导致崩溃(crash),因此,需要对分布式系统进行压力测试。
当前对分布式系统进行测试的现状是,各个团队维护自己的测试代码、测试集群和测试用例(case),存在测试代码、测试集群、测试用例无法共享的问题,导致消耗大量的人力和机器资源。
另外,各种分布式系统提供的接口,在编程语言上可能存在差异,比如有的提供的是java语言接口,有的是c++语言接口,有的是python语言接口。针对不同编程语言实现的接口,通常要使用与之相同的编程语言开发测试代码,开发成本较高。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的测试方法及测试系统。
根据本发明的一个方面,提供了一种测试系统,适于对分布式系统进行压力测试,包括控制单元、验证单元和多个测试代理单元,其中:
所述控制单元适于向所述测试代理单元发送用于进行压力测试的指令序列,所述指令序列包括多条数据操作指令;
所述测试代理单元适于将接收到的数据操作指令转换为所述分布式系统的接口请求,将转换得到的接口请求发送到所述分布式系统执行,并接收所述分布式系统的响应结果,将所述响应结果发送到所述控制单元;
所述验证单元适于根据所述控制单元记录的数据操作指令和响应结果,验证所述响应结果是否符合预期。
可选地,在根据本发明的测试系统中,所述分布式系统运行在多个节点上,每个节点设置有适于对该节点进行错误注入的错误注入单元;所述控制单元还适于向所述错误注入单元发送错误注入指令,以触发所述错误注入单元进行所述错误注入。
可选地,在根据本发明的测试系统中,所述测试代理单元中存储有数据操作指令与所述分布式系统的接口请求的对应关系,并根据所述对应关系将接收到的数据操作指令转换为所述分布式系统的接口请求。
可选地,在根据本发明的测试系统中,所述对应关系为数据操作指令与二进制可执行文件的对应关系,且实现所述二进制可执行文件的编程语言与所述分布式系统的接口采用的编程语言相同;所述测试代理单元还适于通过执行所述二进制可执行文件,得到与数据操作指令对应的所述分布式系统的接口请求。
可选地,在根据本发明的测试系统中,所述测试代理单元部署为http服务器,且实现所述http服务器的编程语言与所述分布式系统的接口采用的编程语言相同;所述控制单元还适于通过http协议发送所述指令序列,所述测试代理单元还适于通过http服务器调用所述分布式系统的接口,实现对所述分布式系统的访问。
可选地,在根据本发明的测试系统中,所述分布式系统运行在多个节点的虚拟机上,或者,运行在多个节点的docker容器中。
可选地,在根据本发明的测试系统中,所述错误注入的类型包括以下至少之一:硬盘错误、网络错误、输入/输出错误。
根据本发明另一方面,还提供一种测试方法,适于对分布式系统进行压力测试,所述测试方法包括:
控制单元向测试代理单元发送用于进行压力测试的指令序列,所述指令序列包括多条数据操作指令;
测试代理单元将接收到的数据操作指令转换为所述分布式系统的接口请求,将转换得到的接口请求发送到所述分布式系统执行,并接收所述分布式系统的响应结果,将所述响应结果发送到所述控制单元;
验证单元根据所述控制单元记录的数据操作指令和响应结果,验证所述响应结果是否符合预期。
可选地,在根据本发明的测试方法中,所述分布式系统运行在多个节点上,每个节点设置有适于对该节点进行错误注入的错误注入单元;所述测试方法还包括:控制单元向所述错误注入单元发送错误注入指令,以触发所述错误注入单元进行所述错误注入。
可选地,在根据本发明的测试方法中,所述测试代理单元中存储有数据操作指令与所述分布式系统的接口请求的对应关系,并根据所述对应关系将接收到的数据操作指令转换为所述分布式系统的接口请求。
可选地,在根据本发明的测试方法中,所述对应关系为数据操作指令与二进制可执行文件的对应关系,且实现所述二进制可执行文件的编程语言与所述分布式系统的接口采用的编程语言相同,所述测试方法还包括:所述测试代理单元通过执行所述二进制可执行文件,得到与数据操作指令对应的所述分布式系统的接口请求。
可选地,在根据本发明的测试方法中,所述测试代理单元部署为http服务器,且实现所述http服务器的编程语言与所述分布式系统的接口采用的编程语言相同,所述测试方法还包括:所述控制单元通过http协议发送所述指令序列,所述测试代理单元通过http服务器调用所述分布式系统的接口,实现对所述分布式系统的访问。
本发明实施例提供的分布式系统的测试方案,把分布式系统测试这一复杂问题进行了抽象化、统一化,以服务的方式进行分布式系统的测试,实现了测试用例、测试代码和测试机器的共享,能够降低人力和机器资源的消耗。进一步,还解决了跨编程语言支持的问题,可以对各种不同编程语言实现的分布式系统接口进行测试。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的测试系统100的结构图;
图2示出了根据本发明一个实施例的测试方法200的流程图;
图3示出了根据本发明实施例的分布式系统测试服务平台的机器资源池的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的测试系统(本文中又称为分布式测试服务平台)100的结构图。测试系统100适于对分布式系统150进行压力测试。分布式系统150运行在多个节点上,例如运行在节点1、节点2、…、节点n上。在一种实现方式中,节点为物理节点(物理机),在另一种实现方式中,节点为在物理机上启动的虚拟机(VM)。
以待测试的分布式系统部署在虚拟机上为例,图3示出了分布式系统测试服务平台提供的机器资源池,资源池由多台物理机组成,每台物理机上启动虚拟机,然后把分布式系统部署在虚拟机里面。通过虚拟机,可以进行资源的隔离和共享,对于异常场景测试来说,通常并不需要单独的物理机,可以通过虚拟化实现资源利用的最大化,节约成本。而且,在该分布式测试服务平台上,还可以部署多套待测试的分布式系统。
另外,由于docker容器更加轻量,根据具体的应用场景,在机器资源池实现中,还可以使用docker容器取代虚拟机,这样,待测试的分布式系统运行在多个节点的docker容器中。
参照图1,测试系统100包括控制单元110、验证单元(Checker)130和多个测试代理单元(本文中又称为压力测试proxy)120(图中仅示出了一个)。类似地,控制单元110、验证单元130和测试代理单元120可以部署在物理机或虚拟机上。
由于分布式系统150通常由成百上千台机器(节点)组成,每天可能都会有一台甚至多台机器的硬盘、网络、输入输出(IO)等发生故障,同时进程本身也有可能由于异常引起崩溃,分布式系统需要能够处理这些故障。在实际测试开发中,通常需要模拟各种错误场景,进行错误注入,人为的产生网络/硬盘/输入输出(IO)等方面的故障,来验证系统能否正确处理。因此,测试系统100还可以包括错误注入单元(本文中又称为错误注入agent)140。
错误注入单元140安装在每个虚拟机节点上,负责向分布式系统所在的各节点注入各种异常错误,比如磁盘失效/节点网络不通/文件丢失/进程crash/时钟倾斜等。在本发明实施例中,错误注入单元140是共享的,这样通过对这个错误注入单元140进行改进,比如增加新的错误注入类型,则所有的待测分布式系统都可以利用上。这样就避免了大家各自维护一套错误注入系统的问题,实现错误注入在不同分布式系统间的共享。
为了使得错误注入单元140能够支持不同的分布式系统,错误注入单元140还能够支持进行一些配置,比如每个待测试的分布式系统可以配置自己的系统需要杀掉(kill)的进程名字,以模拟进程崩溃(crash)的场景。
在进行压力测试时,控制单元110能够向错误注入单元140发送错误注入指令,以触发错误注入单元140进行上述的错误注入。对分布式系统150所在的各节点进行错误注入后,控制单元110根据测试用例,构造用于进行压力测试的各种数据操作指令,将多条数据操作指令组合为指令序列发送到测试代理单元120。
由于应用场景和需求的不同,分布式系统有很多类型,比如分布式文件系统、对象存储系统、消息队列系统、日志收集系统、分布式数据库系统、键值(KV)对存储系统等。这些分布式系统本身提供了各式各样的数据操作接口,即不同的分布式系统具有不同的接口规范。按照现有技术,针对不同的分布式系统的接口,控制单元110需要构造与之匹配的数据操作指令,开发成本较高。为解决上述问题,在本发明实施例中,控制单元100对所有类型的分布式操作系统,构造的都是相同规范的数据操作指令,然后,由测试代理单元120将接收到的数据操作指令转换为分布式系统对应的接口请求。
测试代理单元120负责向待测试的分布式系统150产生压力,根据具体的应用场景,测试系统100可以包括多个测试代理单元120,每个测试代理单元120可以按照预定速率向分布式系统150发送接口请求。在本发明实施例中,测试代理单元120可以预先存储数据操作指令与分布式系统的接口请求的对应关系,并根据存储的对应关系将接收到的数据操作指令转换为分布式系统的接口请求。
为了屏蔽底层分布式系统接口的差异化,分布式测试服务平台可以将控制单元110构造数据操作指令的规范(本文中又称为抽象模型接口),提供给待测试的分布式系统150的开发或维护人员,由其根据该规范建立数据操作指令与接口请求的对应关系,并发送给测试平台,由测试平台中的测试代理单元150进行存储。应当理解的是,分布式系统150的开发或维护人员根据上述规范,能够获知基于该规范的数据操作指令所要执行的具体操作,然后就能够将该具体操作对应到分布式系统的相应接口请求,从而建立数据操作指令与接口请求的对应关系。
以一个简单的寄存器模型为例,抽象模型接口对应的伪代码如下:
class Register{
public://return code://0means succeed//1means failed//2or othersmeans timeout and unknow
//the register's init value must be set virtual int Init(int64_t id)=0;
//the register's value must be print in stdout virtual int Get(int64_t id)=0;
virtual int Set(int64_t id,int64_t value)=0;
virtual int Cas(int64_t id,int64_t oldValue,int64_t newValue)=0;};
待测试的分布式系统在自己提供的接口基础上,可以封装出一个寄存器抽象模型接口的实现,支持对一个给定的存储单元进行修改和读取操作。以分布式文件系统系统为例,可以创建一个文件,然后用文件内容存储要Set和Get的value值。对于对象存储系统(OSS)来说,则可以把一个对象作为一个寄存器,然后对象的内容用于存储value值。
然后,对于分布式测试服务平台来说,控制单元110向测试代理单元120发送的指令序列如下:
Set(1,10)#把寄存器1的值设置为10;
Get(1)#读取寄存器1的值;
Set(2,100)#把寄存器2的值设为100;
Get(2)#读取寄存器2的值……
测试代理单元120就负责把这些抽象模型的接口命令,转换为底层分布式系统的具体接口调用。由于测试用例本身是针对抽象模型构造的,这样就实现了测试用例的统一。
如前所述,各种分布式系统提供的接口,在编程语言上可能存在差异,比如有的提供的是java语言接口,有的是c++语言接口,有的是python语言接口。为此,本发明实施例的测试系统100还可以提供跨编程语言的支持,通过让测试代理单元120在访问分布式系统150时,直接调用可执行的二进制文件,以支持各种不同的编程语言。
具体地,在测试代理单元120中存储的上述对应关系可以是数据操作指令与二进制可执行文件的对应关系,且实现该二进制可执行文件的编程语言与分布式系统150的接口采用的编程语言相同。这样,测试代理单元120针对具体的数据操作指令,可以根据该对应关系获取对应的二进制可执行文件,通过执行该二进制可执行文件,得到与数据操作指令对应的分布式系统的接口请求。也就是说,二进制可执行文件的执行结果是,输出与数据操作指令对应的分布式系统的接口请求。同样,二进制可执行文件可以由分布式系统150的开发或维护人员编制,并上传到分布式测试服务平台,并由测试代理单元120进行存储。
例如,对应于上面的寄存器抽象模型,可以定义如下二进制文件命令行规范:./jepsen_test-jepsen_op set-obj_id 1-obj_value 10,其中,jepsen_op表示set操作,obj_id 1表示寄存器1,obj_value 10表示将寄存器1的值设置为10。最终所有待测试的分布式系统,实际需要提供的就是这样一个二进制可执行文件,通过二进制可执行文件可以访问底层的分布式系统。如果待测的分布式系统是基于C++语言的,就采用C++语言实现这个二进制可执行文件,如果分布式系统是基于Java语言的,就用java语言实现这个二进制可执行文件。通过这样简单的方式就实现了跨编程语言的支持。
在另外一种实现方式中,为提供跨编程语言支持,还可以采用http协议的方式。将测试代理单元120部署为http服务器,且实现http服务器的编程语言与分布式系统的接口采用的编程语言相同。控制单元110通过http协议发送指令序列到测试代理单元120中的http服务器,测试代理单元120通过http服务器调用分布式系统的接口,实现对所述分布式系统的访问。
具体如下:假设待测试的分布式系统提供的接口是基于Java语言的,就可以启动一个用Java语言实现的http server作为压力测试proxy,然后在这个http server内部调用分布式系统150的Java接口,来访问该分布式系统150。控制单元110与该proxy也通过http协议发送要产生的访问对应的数据操作指令。
与调用二进制可执行文件的实现方式相比,实现要复杂一些,需要为每一种语言提供一个http server proxy实现,但是基于http协议,访问的延迟要比直接运行二进制可执行文件要低一些。
分布式系统150接收到测试代理单元120发送的接口请求后,执行该接口请求,并将响应结果发送到测试代理单元120。测试代理单元120将分布式系统的响应结果发送给控制单元110,由控制单元110记录数据操作指令和响应结果。
然后,验证单元130就可以根据控制单元110记录的数据操作指令和响应结果,验证所述响应结果是否符合预期。通过不断的请求分布式系统150响应的同时,注入错误,最后再检查分布式系统150在注入错误的情况下能否给出正确的响应,来验证分布式系统150在异常情况下的处理是否正常,从而完成压力测试。
图2示出了根据本发明一个实施例的测试方法200的流程图。方法200适于对分布式系统进行压力测试,待测试的分布式系统运行在多个节点上,每个节点设置有适于对该节点进行错误注入的错误注入单元。
参照图2,在步骤S210中,控制单元向错误注入单元发送错误注入指令,以触发所述错误注入单元进行所述错误注入。
在步骤S220中,控制单元向测试代理单元发送用于进行压力测试的指令序列,所述指令序列包括多条数据操作指令。
在步骤S230中,测试代理单元将接收到的数据操作指令转换为分布式系统的接口请求,将转换得到的接口请求发送到所述分布式系统执行。
在步骤S240中,测试代理单元接收分布式系统的响应结果,将所述响应结果发送到控制单元,由控制单元记录数据操作指令和对应的响应结果。
在步骤S250中,验证单元根据控制单元记录的数据操作指令和响应结果,验证所述响应结果是否符合预期。
步骤S210~S250执行的具体处理可参照上述测试系统100中的相关描述,这里不详细展开。
综上所述,本发明实施例提供的分布式系统的测试方案,把分布式系统测试这一复杂问题进行了抽象化、统一化,以服务的方式进行分布式系统的测试。通过提供统一的错误注入代理(agent),实现错误注入的共享,一份错误注入支持多个分布式系统的测试,实现人力资源的节省。通过机器资源池及虚拟化,实现机器资源的节省。基于抽象模型和压力测试代理(Proxy)机制,屏蔽待测试的分布式系统的接口及编程语言上的差异,使得基于这一服务平台可以测试任意的分布式系统。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

Claims (12)

1.一种测试系统,适于对分布式系统进行压力测试,包括控制单元、验证单元和多个测试代理单元,其中:
所述控制单元适于向所述测试代理单元发送用于进行压力测试的指令序列,所述指令序列包括多条数据操作指令;
所述测试代理单元适于将接收到的数据操作指令转换为所述分布式系统的接口请求,将转换得到的接口请求发送到所述分布式系统执行,并接收所述分布式系统的响应结果,将所述响应结果发送到所述控制单元;
所述验证单元适于根据所述控制单元记录的数据操作指令和响应结果,验证所述响应结果是否符合预期。
2.如权利要求1所述的测试系统,其中,所述分布式系统运行在多个节点上,每个节点设置有适于对该节点进行错误注入的错误注入单元;
所述控制单元还适于向所述错误注入单元发送错误注入指令,以触发所述错误注入单元进行所述错误注入。
3.如权利要求1或2所述的测试系统,其中,所述测试代理单元中存储有数据操作指令与所述分布式系统的接口请求的对应关系,并根据所述对应关系将接收到的数据操作指令转换为所述分布式系统的接口请求。
4.如权利要求3所述的测试系统,其中,所述对应关系为数据操作指令与二进制可执行文件的对应关系,且实现所述二进制可执行文件的编程语言与所述分布式系统的接口采用的编程语言相同;
所述测试代理单元还适于通过执行所述二进制可执行文件,得到与数据操作指令对应的所述分布式系统的接口请求。
5.如权利要求3所述的测试系统,其中,所述测试代理单元部署为http服务器,且实现所述http服务器的编程语言与所述分布式系统的接口采用的编程语言相同;
所述控制单元还适于通过http协议发送所述指令序列,所述测试代理单元还适于通过http服务器调用所述分布式系统的接口,实现对所述分布式系统的访问。
6.如权利要求1所述的系统,其中,所述分布式系统运行在多个节点的虚拟机上,或者,运行在多个节点的docker容器中。
7.如权利要求2所述的系统,其中,所述错误注入的类型包括以下至少之一:硬盘错误、网络错误、输入/输出错误。
8.一种测试方法,适于对分布式系统进行压力测试,所述测试方法包括:
控制单元向测试代理单元发送用于进行压力测试的指令序列,所述指令序列包括多条数据操作指令;
测试代理单元将接收到的数据操作指令转换为所述分布式系统的接口请求,将转换得到的接口请求发送到所述分布式系统执行,并接收所述分布式系统的响应结果,将所述响应结果发送到所述控制单元;
验证单元根据所述控制单元记录的数据操作指令和响应结果,验证所述响应结果是否符合预期。
9.如权利要求8所述的测试方法,其中,所述分布式系统运行在多个节点上,每个节点设置有适于对该节点进行错误注入的错误注入单元;
所述测试方法还包括:控制单元向所述错误注入单元发送错误注入指令,以触发所述错误注入单元进行所述错误注入。
10.如权利要求8或9所述的测试方法,其中,所述测试代理单元中存储有数据操作指令与所述分布式系统的接口请求的对应关系,并根据所述对应关系将接收到的数据操作指令转换为所述分布式系统的接口请求。
11.如权利要求10所述的测试方法,其中,所述对应关系为数据操作指令与二进制可执行文件的对应关系,且实现所述二进制可执行文件的编程语言与所述分布式系统的接口采用的编程语言相同,所述测试方法还包括:
所述测试代理单元通过执行所述二进制可执行文件,得到与数据操作指令对应的所述分布式系统的接口请求。
12.如权利要求8所述的测试方法,其中,所述测试代理单元部署为http服务器,且实现所述http服务器的编程语言与所述分布式系统的接口采用的编程语言相同,所述测试方法还包括:
所述控制单元通过http协议发送所述指令序列,所述测试代理单元通过http服务器调用所述分布式系统的接口,实现对所述分布式系统的访问。
CN201910002271.3A 2019-01-02 2019-01-02 一种测试方法及测试系统 Active CN111400162B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910002271.3A CN111400162B (zh) 2019-01-02 2019-01-02 一种测试方法及测试系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910002271.3A CN111400162B (zh) 2019-01-02 2019-01-02 一种测试方法及测试系统

Publications (2)

Publication Number Publication Date
CN111400162A true CN111400162A (zh) 2020-07-10
CN111400162B CN111400162B (zh) 2023-04-25

Family

ID=71433903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910002271.3A Active CN111400162B (zh) 2019-01-02 2019-01-02 一种测试方法及测试系统

Country Status (1)

Country Link
CN (1) CN111400162B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112817699A (zh) * 2021-02-23 2021-05-18 汇链通供应链科技(上海)有限公司 一种批量部署的自动化性能测试方法及终端装置
CN115598455A (zh) * 2022-11-15 2023-01-13 西安弘捷电子技术有限公司(Cn) 一种电子信息装备自动测试系统及测试方法
CN116564398A (zh) * 2023-05-26 2023-08-08 北京得瑞领新科技有限公司 nor闪存的检测方法、装置及嵌入式设备

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983209A (zh) * 2005-12-14 2007-06-20 中兴通讯股份有限公司 一种软件单元测试自动化系统及其方法
CN101193007A (zh) * 2006-11-28 2008-06-04 国际商业机器公司 统一资源定位符命令测试方法、场景测试方法和相应设备
CN103178996A (zh) * 2013-03-15 2013-06-26 烽火通信科技股份有限公司 分布式包交换芯片模型验证系统及验证方法
CN103428046A (zh) * 2012-05-25 2013-12-04 腾讯科技(深圳)有限公司 一种测试接口协议的方法及终端
CN103718155A (zh) * 2011-08-11 2014-04-09 微软公司 运行时系统
CN103731461A (zh) * 2012-10-16 2014-04-16 百度在线网络技术(北京)有限公司 一种基于代理的分布式系统状态控制方法和系统
CN104077218A (zh) * 2013-03-29 2014-10-01 百度在线网络技术(北京)有限公司 MapReduce分布式系统的测试方法及设备
CN104077212A (zh) * 2013-03-26 2014-10-01 阿里巴巴集团控股有限公司 压力测试系统及方法
CN106095673A (zh) * 2016-06-07 2016-11-09 深圳市泰久信息系统股份有限公司 基于web接口的自动化测试方法及系统
CN106201808A (zh) * 2015-05-04 2016-12-07 北京畅游天下网络技术有限公司 一种服务器端的自动化接口测试方法及系统
CN106326115A (zh) * 2016-08-17 2017-01-11 北京奇虎科技有限公司 一种测试api的方法、装置和系统
CN106415496A (zh) * 2014-05-30 2017-02-15 苹果公司 统一中间表示
US20170091075A1 (en) * 2015-09-30 2017-03-30 Red Hat Inc. Distributed system test automation framework
US20170123951A1 (en) * 2015-10-30 2017-05-04 International Business Machines Corporation Automated test generation for multi-interface enterprise virtualization management environment
US20170242784A1 (en) * 2016-02-19 2017-08-24 International Business Machines Corporation Failure recovery testing framework for microservice-based applications
CN107622013A (zh) * 2017-09-21 2018-01-23 北京东土科技股份有限公司 一种分布式系统测试方法及装置
CN108512710A (zh) * 2017-02-24 2018-09-07 腾讯科技(深圳)有限公司 基于测试工具的测试方法和测试工具

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983209A (zh) * 2005-12-14 2007-06-20 中兴通讯股份有限公司 一种软件单元测试自动化系统及其方法
CN101193007A (zh) * 2006-11-28 2008-06-04 国际商业机器公司 统一资源定位符命令测试方法、场景测试方法和相应设备
CN103718155A (zh) * 2011-08-11 2014-04-09 微软公司 运行时系统
CN103428046A (zh) * 2012-05-25 2013-12-04 腾讯科技(深圳)有限公司 一种测试接口协议的方法及终端
CN103731461A (zh) * 2012-10-16 2014-04-16 百度在线网络技术(北京)有限公司 一种基于代理的分布式系统状态控制方法和系统
CN103178996A (zh) * 2013-03-15 2013-06-26 烽火通信科技股份有限公司 分布式包交换芯片模型验证系统及验证方法
CN104077212A (zh) * 2013-03-26 2014-10-01 阿里巴巴集团控股有限公司 压力测试系统及方法
CN104077218A (zh) * 2013-03-29 2014-10-01 百度在线网络技术(北京)有限公司 MapReduce分布式系统的测试方法及设备
CN106415496A (zh) * 2014-05-30 2017-02-15 苹果公司 统一中间表示
CN106201808A (zh) * 2015-05-04 2016-12-07 北京畅游天下网络技术有限公司 一种服务器端的自动化接口测试方法及系统
US20170091075A1 (en) * 2015-09-30 2017-03-30 Red Hat Inc. Distributed system test automation framework
US20170123951A1 (en) * 2015-10-30 2017-05-04 International Business Machines Corporation Automated test generation for multi-interface enterprise virtualization management environment
US20170242784A1 (en) * 2016-02-19 2017-08-24 International Business Machines Corporation Failure recovery testing framework for microservice-based applications
CN106095673A (zh) * 2016-06-07 2016-11-09 深圳市泰久信息系统股份有限公司 基于web接口的自动化测试方法及系统
CN106326115A (zh) * 2016-08-17 2017-01-11 北京奇虎科技有限公司 一种测试api的方法、装置和系统
CN108512710A (zh) * 2017-02-24 2018-09-07 腾讯科技(深圳)有限公司 基于测试工具的测试方法和测试工具
CN107622013A (zh) * 2017-09-21 2018-01-23 北京东土科技股份有限公司 一种分布式系统测试方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
朱敏;李建军;王莉华;吴振宇;: "分布式系统综合集成测试技术" *
李艳丽;王晓军;: "分布式系统测试方法的研究和应用" *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112817699A (zh) * 2021-02-23 2021-05-18 汇链通供应链科技(上海)有限公司 一种批量部署的自动化性能测试方法及终端装置
CN115598455A (zh) * 2022-11-15 2023-01-13 西安弘捷电子技术有限公司(Cn) 一种电子信息装备自动测试系统及测试方法
CN115598455B (zh) * 2022-11-15 2023-04-07 西安弘捷电子技术有限公司 一种电子信息装备自动测试系统及测试方法
CN116564398A (zh) * 2023-05-26 2023-08-08 北京得瑞领新科技有限公司 nor闪存的检测方法、装置及嵌入式设备
CN116564398B (zh) * 2023-05-26 2023-12-22 北京得瑞领新科技有限公司 nor闪存的检测方法、装置及嵌入式设备

Also Published As

Publication number Publication date
CN111400162B (zh) 2023-04-25

Similar Documents

Publication Publication Date Title
US10664379B2 (en) Automated software verification service
US8904353B1 (en) Highly reusable test frameworks and tests for web services
US7401259B2 (en) System and method for scenario generation in a distributed system
US20110145643A1 (en) Reproducible test framework for randomized stress test
CN111400162B (zh) 一种测试方法及测试系统
CN107241315B (zh) 银行网关接口的接入方法、装置及计算机可读存储介质
US20070055911A1 (en) A Method and System for Automatically Generating a Test-Case
CN110633200A (zh) 用于测试智能合约的方法和设备
US9329985B1 (en) Using emulation to disassociate verification from stimulus in functional test
US7536599B2 (en) Methods and systems for validating a system environment
US20110078798A1 (en) Remote procedure call (rpc) services fuzz attacking tool
CN110196809B (zh) 接口测试方法及装置
CN112241360A (zh) 一种测试用例生成方法、装置、设备及存储介质
US10795793B1 (en) Method and system for simulating system failures using domain-specific language constructs
Sanches et al. J-swfit: A java software fault injection tool
US20240045793A1 (en) Method and system for scalable performance testing in cloud computing environments
CN110990289B (zh) 一种自动提交bug的方法、装置、电子设备及存储介质
US9253069B2 (en) Method and system for testing configuration of environments
CN115203054A (zh) 一种虚拟化芯片测试系统
US7685472B1 (en) Method and apparatus for testing object-oriented-programming methods
CN114579467A (zh) 一种基于发布订阅机制的冒烟测试系统及方法
CN117034821B (zh) 用于芯片设计前端仿真验证的回归验证方法及介质
CN114430385A (zh) 一种网络设备的检测方法、装置及电子设备
US9069619B2 (en) Self-testable HA framework library infrastructure
CN112667491A (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
GR01 Patent grant
GR01 Patent grant