本发明专利技术公开了一种测试方法及测试系统,测试方法包括:控制单元向测试代理单元发送用于进行压力测试的指令序列,指令序列包括多条数据操作指令;测试代理单元将接收到的数据操作指令转换为所述分布式系统的接口请求,将转换得到的接口请求发送到所述分布式系统执行,并接收所述分布式系统的响应结果,将响应结果发送到所述控制单元;验证单元根据控制单元记录的数据操作指令和响应结果,验证响应结果是否符合预期。
【技术实现步骤摘要】
一种测试方法及测试系统
本专利技术涉及软件测试领域,特别涉及一种用于对分布式系统进行测试的测试方法及测试系统。
技术介绍
随着互联网的蓬勃发展,传统关系数据库存储系统无法满足海量数据场景,各大互联网公司,从自己的业务需求出发,开发出了各种分布式系统。分布式系统通常由成百上千台机器组成,每天可能都会有一台甚至多台机器的硬盘、网络等发生故障,同时进程本身也可能会由于异常导致崩溃(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示出了分布式系统测试服务平台提供的机器资源池,资源池由多台物理机组成,每台物理机上启动虚拟机,然后把分布式系统部署在虚拟本文档来自技高网...
【技术保护点】
1.一种测试系统,适于对分布式系统进行压力测试,包括控制单元、验证单元和多个测试代理单元,其中:/n所述控制单元适于向所述测试代理单元发送用于进行压力测试的指令序列,所述指令序列包括多条数据操作指令;/n所述测试代理单元适于将接收到的数据操作指令转换为所述分布式系统的接口请求,将转换得到的接口请求发送到所述分布式系统执行,并接收所述分布式系统的响应结果,将所述响应结果发送到所述控制单元;/n所述验证单元适于根据所述控制单元记录的数据操作指令和响应结果,验证所述响应结果是否符合预期。/n
【技术特征摘要】
1.一种测试系统,适于对分布式系统进行压力测试,包括控制单元、验证单元和多个测试代理单元,其中:
所述控制单元适于向所述测试代理单元发送用于进行压力测试的指令序列,所述指令序列包括多条数据操作指令;
所述测试代理单元适于将接收到的数据操作指令转换为所述分布式系统的接口请求,将转换得到的接口请求发送到所述分布式系统执行,并接收所述分布式系统的响应结果,将所述响应结果发送到所述控制单元;
所述验证单元适于根据所述控制单元记录的数据操作指令和响应结果,验证所述响应结果是否符合预期。
2.如权利要求1所述的测试系统,其中,所述分布式系统运行在多个节点上,每个节点设置有适于对该节点进行错误注入的错误注入单元;
所述控制单元还适于向所述错误注入单元发送错误注入指令,以触发所述错误注入单元进行所述错误注入。
3.如权利要求1或2所述的测试系统,其中,所述测试代理单元中存储有数据操作指令与所述分布式系统的接口请求的对应关系,并根据所述对应关系将接收到的数据操作指令转换为所述分布式系统的接口请求。
4.如权利要求3所述的测试系统,其中,所述对应关系为数据操作指令与二进制可执行文件的对应关系,且实现所述二进制可执行文件的编程语言与所述分布式系统的接口采用的编程语言相同;
所述测试代理单元还适于通过执行所述二进制可执行文件,得到与数据操作指令对应的所述分布式系统的接口请求。
5.如权利要求3所述的测试系统,其中,所述测试代理单元部署为http服务器,且实现所述http服务器的编程语言与所述分布式系统的接口采用的编程语言相同;
所述控制单元还适于通过http协议发送所述指令序列,所述测试代理单元还适于通过http服务器调用所述分布式系统的接口,实现对所述分布式系统的访问。
6.如权利要求1所述的系统,其中,所述分布式系统运行在多个节点的虚拟机上,或者,运行在多个节点的docker容器中...
【专利技术属性】
技术研发人员:段培乐,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛;KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。