CN111400162B - 一种测试方法及测试*** - Google Patents

一种测试方法及测试*** Download PDF

Info

Publication number
CN111400162B
CN111400162B CN201910002271.3A CN201910002271A CN111400162B CN 111400162 B CN111400162 B CN 111400162B CN 201910002271 A CN201910002271 A CN 201910002271A CN 111400162 B CN111400162 B CN 111400162B
Authority
CN
China
Prior art keywords
distributed system
test
unit
data operation
error injection
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.)
Active
Application number
CN201910002271.3A
Other languages
English (en)
Other versions
CN111400162A (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 (10)

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

Families Citing this family (3)

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

Citations (14)

* 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 苹果公司 统一中间表示
CN107622013A (zh) * 2017-09-21 2018-01-23 北京东土科技股份有限公司 一种分布式***测试方法及装置
CN108512710A (zh) * 2017-02-24 2018-09-07 腾讯科技(深圳)有限公司 基于测试工具的测试方法和测试工具

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10162735B2 (en) * 2015-09-30 2018-12-25 Red Hat, Inc. Distributed system test automation framework
US9858177B2 (en) * 2015-10-30 2018-01-02 International Business Machines Corporation Automated test generation for multi-interface enterprise virtualization management environment
US9842045B2 (en) * 2016-02-19 2017-12-12 International Business Machines Corporation Failure recovery testing framework for microservice-based applications

Patent Citations (14)

* 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 北京畅游天下网络技术有限公司 一种服务器端的自动化接口测试方法及***
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
朱敏 ; 李建军 ; 王莉华 ; 吴振宇 ; .分布式***综合集成测试技术.计算机工程.2008,(S1),全文. *
李艳丽 ; 王晓军 ; .分布式***测试方法的研究和应用.计算机技术与发展.2011,(03),全文. *

Also Published As

Publication number Publication date
CN111400162A (zh) 2020-07-10

Similar Documents

Publication Publication Date Title
US20200174915A1 (en) Emulation-based testing of a microservices architecture
CN111400162B (zh) 一种测试方法及测试***
US20070055911A1 (en) A Method and System for Automatically Generating a Test-Case
US7673180B1 (en) Method and apparatus for dispatching a remote debugging agent in a distributed computing environment
US8904353B1 (en) Highly reusable test frameworks and tests for web services
US7401259B2 (en) System and method for scenario generation in a distributed system
US8819831B2 (en) Remote procedure call (RPC) services fuzz attacking tool
US20050081220A1 (en) Systems and methods for dynamically linking application software into a running operating system kernel
US20100058290A1 (en) Systems and methods for application development using middleware platform
US20060026463A1 (en) Methods and systems for validating a system environment
CN112395196B (zh) 数据作业开发测试方法、装置、设备、***及存储介质
US10795793B1 (en) Method and system for simulating system failures using domain-specific language constructs
US11809306B2 (en) Method and system for scalable performance testing in cloud computing environments
US7472052B2 (en) Method, apparatus and computer program product for simulating a storage configuration for a computer system
CN111813671A (zh) 一种ima软件仿真测试***
CN110737631A (zh) 一种基于Flink引擎的数据解析方法及装置
CN113687858A (zh) 配置文件的检查方法、装置、电子设备及存储介质
CN115203054A (zh) 一种虚拟化芯片测试***
CN111581077A (zh) 智能合约测试方法、装置
US7685472B1 (en) Method and apparatus for testing object-oriented-programming methods
CN114579467A (zh) 一种基于发布订阅机制的冒烟测试***及方法
CN117034821B (zh) 用于芯片设计前端仿真验证的回归验证方法及介质
Chen et al. MORE: A model-driven operation service for cloud-based IT systems
CN110716730A (zh) 灰度发布方法、装置、设备及计算机可读存储介质
US10592277B2 (en) System and method for determining the success of a cross-platform application migration

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