CN112217886A - 分布式系统的测试方法及系统、消息生产及消费模块 - Google Patents

分布式系统的测试方法及系统、消息生产及消费模块 Download PDF

Info

Publication number
CN112217886A
CN112217886A CN202011034875.5A CN202011034875A CN112217886A CN 112217886 A CN112217886 A CN 112217886A CN 202011034875 A CN202011034875 A CN 202011034875A CN 112217886 A CN112217886 A CN 112217886A
Authority
CN
China
Prior art keywords
message
module
middleware
data
consumption
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
CN202011034875.5A
Other languages
English (en)
Other versions
CN112217886B (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.)
CCB Finetech Co Ltd
Original Assignee
CCB Finetech Co 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 CCB Finetech Co Ltd filed Critical CCB Finetech Co Ltd
Priority to CN202011034875.5A priority Critical patent/CN112217886B/zh
Publication of CN112217886A publication Critical patent/CN112217886A/zh
Application granted granted Critical
Publication of CN112217886B publication Critical patent/CN112217886B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本说明书实施例公开了一种分布式系统的测试方法及系统、消息生产及消费模块,该测试系统包括消息生产模块、消息消费模块及监控模块;所述消息生产模块、消息消费模块在预设测试工具的扩展插件接口规则下、基于分布式异步消息系统的消息中间件的接口参数构建得到。消息生产模块用于调用所述消息中间件的生产接口参数数据向所述消息中间件发送配置的消息数据;消息消费模块用于调用所述消息中间件的消费接口参数数据从所述消息中间件调取消息数据,以进行消息消费;监控模块用于获取消息中间件的消息处理指标数据,以基于获取的消息处理指标数据分析所述消息中间件的消息处理性能,从而可以提高分布式异步消息系统测试的准确性以及有效性。

Description

分布式系统的测试方法及系统、消息生产及消费模块
技术领域
本说明书涉及计算机数据处理技术领域,特别地,涉及一种分布式系统的测试方法及系统、消息生产及消费模块。
背景技术
近年来,随着业务的蓬勃发展,信息技术栈的不断更新,越来越多的企业开始从集中式软件系统向分布式系统进行战略转型。消息中间件作为分布式系统中重要的技术组件被很多企业引入使用,用以解决应用耦合和异步消息等问题。分布式异步消息系统在正式发布前,不仅要验证系统功能正确性和安全性,也要评估消息的处理能力。
目前多通过消息中间件自带的性能测试脚本进行消息中间件的处理能力测试,但消息中间件自带的性能测试脚本更着重消息中间件本身的性能测试需求,即仅仅从消息中间件的角度进行处理能力测试,很难适应实际的业务处理复杂环境。因此,目前亟需一种更加准确高效的分布式异步消息系统测试方法。
发明内容
本说明书实施例的目的在于提供一种分布式系统的测试方法及系统、消息生产及消费模块,可以提高分布式异步消息系统测试的准确性以及有效性。
本说明书提供一种分布式系统的测试方法及系统、消息生产及消费模块是包括如下方式实现的:
一种分布式系统的测试方法,应用于测试系统;其中,所述测试系统包括消息生产模块、消息消费模块以及监控模块;所述消息生产模块、消息消费模块在预设测试工具的扩展插件接口规则下、基于分布式异步消息系统的消息中间件的接口参数构建得到;所述预设测试工具是指对分布式异步消息系统的业务系统进行压力测试的工具;所述消息生产模块调用所述消息中间件的生产接口参数数据向所述消息中间件发送配置的消息数据;所述消息消费模块调用所述消息中间件的消费接口参数数据从所述消息中间件调取消息数据,以进行消息消费;所述监控模块获取消息中间件的消息处理指标数据,以基于获取的消息处理指标数据分析所述消息中间件的消息处理性能。
本说明书提供的所述方法的另一些实施例中,所述预设测试工具为JMeter测试工具。
本说明书提供的所述方法的另一些实施例中,所述调用所述消息中间件的生产接口参数数据向所述消息中间件发送配置的消息数据,包括:对于任意线程,调用消息中间件的生产者属性参数,以创建消息生产实例;基于相应线程的循环次数执行下述步骤:获取服务器地址和端口号、消息类型以及配置的消息数据;开始计时,并基于所述消息生产实例以及服务器地址和端口号、消息类型向所述消息中间件发送配置的消息数据;接收消息发送是否成功的反馈结果,并结束计时;结束相应线程的消息生产,以及进行资源释放。
本说明书提供的所述方法的另一些实施例中,所述调用所述消息中间件的消费接口参数数据从所述消息中间件调取消息数据,以进行消息消费,包括:对于任意线程,调用消息中间件的消费者属性参数,以创建消息消费实例;基于相应线程的循环次数执行下述步骤:获取服务器地址和端口号、消息类型、消费者组名称以及一次请求消费消息的时长;开始计时,并基于所述消息消费实例以及消息类型从消息中间件读取消息数据;并同步提交消息偏移量;接收消息消费是否成功的反馈结果,并结束计时;结束相应线程的消息消费,以及进行资源释放。
本说明书提供的所述方法的另一些实施例中,所述消息生产模块采用下述方式配置消息数据:获取待配置的消息数据的消息类型所对应的消息模板文件;根据预设参数化规则配置消息模板文件中各参数的参数值,得到配置的消息数据。
本说明书提供的所述方法的另一些实施例中,所述消息中间件为kafka;所述监控模块从Kafka JMX的RMI接口获取消息处理指标数据,并将消息处理指标数据与消息处理指标数据的采集时间关联后存储至数据库。
本说明书提供的所述方法的另一些实施例中,所述测试系统还包括监控信息展示模块;相应的,所述监控信息展示模块基于展示配置信息从所述数据库中调取消息处理指标数据,并进行展示配置处理;以及将处理结果进行展示。
本说明书提供的所述方法的另一些实施例中,所述测试系统还包括预设测试工具;相应的,所述测试系统根据配置的交易占比、TPS值,利用预设测试工具、消息生产模块以及消息消费模块对分布式异步消息系统进行处理性能测试。
另一方面,本说明书实施例还提供一种分布式系统的测试系统,所述系统包括消息生产模块、消息消费模块以及监控模块;其中,所述消息生产模块、消息消费模块在预设测试工具的扩展插件接口规则下、基于分布式异步消息系统的消息中间件的接口参数构建得到;所述预设测试工具是指对分布式异步消息系统的业务系统进行压力测试的工具;所述消息生产模块用于调用所述消息中间件的生产接口参数数据向所述消息中间件发送配置的消息数据;所述消息消费模块用于调用所述消息中间件的消费接口参数数据从所述消息中间件调取消息数据,以进行消息消费;所述监控模块用于获取消息中间件的消息处理指标数据,以基于获取的消息处理指标数据分析所述消息中间件的消息处理性能。
本说明书提供的所述系统的另一些实施例中,所述消息中间件为kafka;所述监控模块还用于从Kafka JMX的RMI接口获取消息处理指标数据,并将消息处理指标数据与消息处理指标数据的采集时间关联后存储至数据库。
本说明书提供的所述系统的另一些实施例中,所述测试系统还包括监控信息展示模块;相应的,所述监控信息展示模块用于基于展示配置信息从所述数据库中调取消息处理指标数据,并进行展示配置处理;以及将处理结果进行展示。
本说明书提供的所述系统的另一些实施例中,所述测试系统还包括预设测试工具;相应的,所述测试系统还用于根据配置的交易占比、TPS值,利用预设测试工具、消息生产模块以及消息消费模块对分布式异步消息系统进行处理性能测试。
另一方面,本说明书实施例还提供一种消息生产模块,所述消息生产模块在预设测试工具的扩展插件接口规则下、基于分布式异步消息系统的消息中间件的生产接口参数构建得到;所述预设测试工具是指对分布式异步消息系统的业务系统进行压力测试的工具;其中,所述消息生产模块用于调用所述消息中间件的生产接口参数数据向所述消息中间件发送配置的消息数据。
本说明书提供的所述消息生产模块的另一些实施例中,所述消息生产模块用于对于任意线程,调用消息中间件的生产者属性参数,以创建消息生产实例;基于相应线程的循环次数执行下述步骤:获取服务器地址和端口号、消息类型以及配置的消息数据;开始计时,并基于所述消息生产实例以及服务器地址和端口号、消息类型向所述消息中间件发送配置的消息数据;接收消息发送是否成功的反馈结果,并结束计时;结束相应线程的消息生产,以及进行资源释放。
另一方面,本说明书实施例还提供一种消息消费模块,所述消息消费模块在预设测试工具的扩展插件接口规则下、基于分布式异步消息系统的消息中间件的消费接口参数构建得到;所述预设测试工具是指对分布式异步消息系统的业务系统进行压力测试的工具;其中,所述消息消费模块用于调用所述消息中间件的消费接口参数数据从所述消息中间件调取消息数据,以进行消息消费。
本说明书提供的所述消息消费模块的另一些实施例中,所述消息消费模块还用于对于任意线程,调用消息中间件的消费者属性参数,以创建消息消费实例;基于相应线程的循环次数执行下述步骤:获取服务器地址和端口号、消息类型、消费者组名称以及一次请求消费消息的时长;开始计时,并基于所述消息消费实例以及消息类型从消息中间件读取消息数据;并同步提交消息偏移量;接收消息消费是否成功的反馈结果,并结束计时;结束相应线程的消息消费,以及进行资源释放。
本说明书一个或多个实施例提供的分布式系统的测试方法及系统、消息生产及消费模块,通过对业务系统的压力测试工具进行扩展,构建模拟向消息中间件发送消息的消息生产者、以及从消息中间件调取消息以进行消息消费的消息消费者。然后,可以利用扩展后的测试工具向消息中间件生产消息数据,以及从消息中间件调取消息数据进行消费,简单方便的实现对消息中间件的处理性能的测试。同时,通过上述方式,只是单纯的模拟生产者以及消费者处理架构,并不需要搭建全部的生产者和消费者的测试环境,进一步节约了测试资源的投入,降低分布式异步消息处理系统的整体测试成本。此外,利用上述方式,还可以将业务系统的测试与消息中间件的测试进行有效关联,将生产消息、消费消息与普通交易一同编排进测试场景,使得分布式异步消息处理各环节的关联性更强,进而提高测试的灵活性、全面性以及有效性,以便于对系统整体以及各环节进行准确有效的了解以及掌控,保证上线系统运行更加稳定。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本说明书提供的一些实施例中的分布式异步消息系统架构示意图;
图2为本说明书提供的一些实施例中的消息生产所对应的测试请求配置示意图;
图3为本说明书提供的一些实施例中的消息消费所对应的测试请求配置示意图;
图4为本说明书提供的一些实施例中的消息数据定制与实例化处理流程示意图;
图5为本说明书提供的一些实施例中的消息数据的配置示例示意图;
图6为本说明书提供的一些实施例中的消息生产模块处理流程示意图;
图7为本说明书提供的一些实施例中的消息消费模块处理流程示意图;
图8为本说明书提供的一些实施例中的系统处理性能指标分析流程示意图;
图9为本说明书提供的一些实施例中的系统处理性能指标分析结果示意图;
图10为本说明书提供的一些实施例中的分布式异步消息系统的压测整体架构示意图;
图11为本说明书提供的一种分布式异步消息系统测试方法实施例的流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是说明书一部分实施例,而不是全部的实施例。基于说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例方案保护的范围。
在分布式异步消息系统中,使用较多的消息中间件有ActiveMQ,RabbitMQ、Kafka等。以Kafka为例,分布式消息中间件的关键参数如下:
Broker:分布式消息集群包含一个或多个服务器,这种服务器被称为broker。
Topic:每条发布到集群的消息都有一个消息类型,这个消息类型被称为Topic主题。
Producer:消息生产者,负责发布消息到broker。
Consumer:消息消费者,从broker读取消息。
Consumer Group:每个Consumer属于一个特定的Consumer Group
Zookeeper:管理Producer,Broker,Consumer的动态加入与离开。
图1表示一个典型的基于Kafka的分布式异步消息系统的示意图。如图1所示,分布式异步消息系统可以包含多个Producer、多个broker、多个Consumer Group,以及一个Zookeeper集群。Producer将生产消息到broker,Consumer从broker订阅并消费消息。
Kafka在其安装目录的bin目录下自带了性能测试脚本用来消息生产和消息消费:kafka-producer-perf-test.sh和kafka-consumer-perf-test.sh。
(1)kafka-producer-perf-test.sh使用命令:
kafka@W122PC02VM17:~>$KAFKA_HOME/bin/kafka-producer-perf-test.sh
--producer-props bootstrap.servers=$KAFKA_BROKERS client.id=perftest--topic test--num-records 10000--throughput 2000--record-size 20
9998records sent,1998.4records/sec(0.04MB/sec),1.5ms avg latency,365.0ms max latency.
10000records sent,1988.862371records/sec(0.04MB/sec),1.51ms avglatency,365.00ms max latency,1ms 50th,6ms 95th,17ms 99th,28ms 99.9th
向kafka broker中的主题test发送10000个消息,每个消息大小为20字节,每秒最多发送消息数量2000个。执行结果显示:总共发送10000个消息,消息发送的效率为1998.4个/秒(数据量为0.04MB/秒),每次消息平均写入延时为1.51毫秒,最大的延迟为365毫秒,1毫秒内占50%。
(2)kafka-consumer-perf-test.sh使用命令:
kafka@W122PC02VM17:~>$KAFKA_HOME/bin/kafka-consumer-perf-test.sh
--broker-list$KAFKA_BROKERS--topic test--messages 10000--fetch-size1024start.time,end.time,data.consumed.in.MB,MB.sec,data.consumed.in.nMsg,nMsg.sec,rebalance.time.ms,fetch.time.ms,fetch.MB.sec,fetch.nMsg.sec2020-06-28 15:43:31:082,2020-06-28 15:43:32:719,0.1899,0.1160,10011,6115.4551,31,1606,0.1182,6233.4994
从kafka broker中的主题test消费10000个消息,每次fetch的数据大小为1024字节。执行结果显示:总共消费了0.1899M的数据共计10011条消息,每秒消费0.1160M的数据,每秒消费消息6115.4551个。
由上述分析实例可见,基于Kafka自带的性能测试脚本,测试效率较低。同时,上述测试过程仅仅从消息中间件的角度进行处理能力测试,很难适应实际的业务处理复杂环境。
基于此,本说明书的一个应用场景示例中提供一种分布式系统的测试方法,所述测试方法可以应用于测试系统。测试系统可以包括消息生产模块、消息消费模块以及监控模块。所述消息生产模块、消息消费模块可以是在预设测试工具的扩展插件接口规则下、基于消息中间件的接口参数构建得到。所述预设测试工具可以为对业务处理系统的业务系统进行并发压力测试的测试工具。所述预设测试工具如可以为JMeter、LoadRunner、WebLOAD等。
通过对预设测试工具进行扩展,构建模拟向消息中间件发送消息的消息生产者、以及从消息中间件调取消息以进行消息消费的消息消费者,从而将预设测试工具与消息中间件进行有效关联,利用优化设计的测试工具进一步实现对消息中间件处理性能的测试,有效的将生产消息、消费消息与普通交易一同编排进测试场景,使得分布式异步消息处理各环节的关联性更强,进而提高测试的灵活性、全面性以及有效性,以便于对系统整体以及各环节进行准确有效的了解以及掌控,保证上线系统运行更加稳定。同时,通过上述方式,只是单纯的模拟生产者以及消费者处理架构,并不需要搭建全部的生产者和消费者的测试环境,进一步节约了测试资源的投入,进一步降低了分布式异步消息处理系统整体的测试成本。
一些实施例中,所述预设测试工具可以选择JMeter。可以利用JMeter的扩展插件接口,并基于消息中间件的接口参数,开发基于预设协议的测试插件,得到消息生产模块以及消息消费模块,以对JMeter进行扩展。然后,扩展后的JMeter可以基于预设协议与消息中间件进行数据传递,实现对消息中间件的测试。当然,实际应用场景中,也可以根据需要选择其他可以实现扩展功能的系统压力测试工具。
一个场景示例中,假设消息中间件为Kafka。Kafka的API可以包括消费者API、生产者API、流处理API、连接API和管理API。其中,API(Application Programming Interface,应用程序接口)是指是一些预先定义的函数,或指软件系统不同组成部分衔接的约定,用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。可以在JMeter扩展插件接口规则下,调用Kafka API提供的接口参数开发基于预设协议的测试插件,得到消息生产模块以及消息消费模块。然后,可以开发编译好的测试插件打包生产JAR包,拷贝到JMeter的安装目录lib\ext下,同时需要将其它依赖JAR包如kafka-clients-2.3.0.jar拷贝到JMeter的lib目录下。在启动JMeter后,可以添加上述测试插件,以基于预设协议向消息中间件模拟与消息中间件进行数据传递,实现对消息中间件的性能测试。
一些实施方式中,消息生产模块以及消息消费模块可以采用JMeter的JavaSamplerClient接口(Java请求采样器),进行请求参数的配置,以及测试请求的发送。在启动JMeter后,可以通过添加Java请求采样器,并在其界面上选择消息生产模块或消息消费模块。如图2及图3所示,图2表示消息生产模块的请求采样器配置界面示意图,图3表示消息消费模块的请求采样器配置界面示意图。参考图2或图3所示,可以在Java请求界面,输入当前请求的名称,该名称可以自定义。然后,还可以输入对应的插件类名称,以调用相应的测试插件,即消息生产模块(JmeterProduce)或消息消费模块(JmeterConsumer),与消息中间件进行数据传递。
一些实施例中,还可以在请求界面配置请求参数。对于消息生产所对应的请求,所述请求参数如可以包括brokers的服务器地址和端口号、信息类型(topic)的名称、msg(配置的消息数据)。对于消息消费所对应的请求,所述请求参数如可以包括brokers的服务器地址和端口号、信息类型(topic)的名称、消费者组(group)的名称、interval(一次请求消费消息的时长)。参考图2以及图3所示,图2以及图3中给出了同请求一起发送的参数名称以及相应值的示例。通过提供可配置的方式,用户可以根据需要自行配置消息发送以及消息调取所对应的服务器、信息类型、群组等,使得消息的生产以及消费更符合用户测试的实际需要,提高测试的灵活性。同时,还可以利用配置不同的参数值,简单高效的实现对多个生产者或多个消费者所对应的不同属性数据模拟,无需测试人员在专门编制shell脚本,提高测试的简便性以及效率。
配置的消息数据可以根据需要进行自行定制。一些实施例中,可以采用下述方式进行消息数据的具体内容定制:获取待配置的消息数据的消息类型所对应的消息模板文件;根据预设参数化规则配置消息模板文件中各参数的参数值,得到配置的消息数据。所述参数设计规则如可以为通过函数生产、利用各类配置元件进行数据的生产以及获取、或者从数据库直接获取记录等方式。如可以利用JMeter的配置元件、函数、JDBC请求等组件,实现不同类型的消息数据的定制。
如图4所示,图4表示一种消息数据的内容定制与实例化的处理流程示意图。可以先判断待生产的消息数据的消息类型,然后,可以根据消息类型读取相应的模板文件。之后,可以参数化消息模板中各参数的值。具体的,可以根据预设参数化规则配置各参数的参数值,如通过函数生产、从cvs或随机或计数器等各种类型的配置元件进行参数值的生产、或者从数据库获取参数所对应的记录值等。然后,可以利用获取或者生产的参数值替换模板中参数的初始值,以实现消息数据的具体内容定制以及实例化,直至测试场景结束。如图5所示,图5给出了一个定制的消息数据示例。
完成上述操作后,测试系统可以发起请求,执行测试。一些实施例中,所述消息消费模块可以用于对每个线程执行下述步骤。对于任意线程,调用消息中间件的生产者属性参数,以创建消息生产实例。基于相应线程的循环次数执行下述步骤:获取服务器地址和端口号、消息类型以及配置的消息数据;开始计时,并基于所述消息生产实例以及服务器地址和端口号、消息类型向所述消息中间件发送配置的消息数据;接收消息发送是否成功的反馈结果,并结束计时。结束相应线程的消息生产,以及进行资源释放。
所述消息消费模块用于对每个线程执行下述步骤。对于任意线程,调用消息中间件的消费者属性参数,以创建消息消费实例。基于相应线程的循环次数执行下述步骤:获取服务器地址和端口号、消息类型、消费者组名称以及一次请求消费消息的时长;开始计时,并基于所述消息消费实例以及消息类型从消息中间件读取消息数据;并同步提交消息偏移量;接收消息消费是否成功的反馈结果,并结束计时。结束相应线程的消息消费,以及进行资源释放。
如图6所示,一个场景示例中,消息生产模块可以通过下述方式进行消息的生产以及发送:
1.JavaSamplerClient(Java请求采样器)的getDefaultParmeters(获取参数预设值)里可以设置有三个输入参数brokers、topic、msg的默认值。
2.JavaSamplerClient.setupTest(测试初始化)进行初始化工作,调用Kafka API设置KafkaProducer的一些属性值如是否幂等、重试等生产者属性参数,并创建一个生产者实例。每个线程只会在测试方法运行前执行一次该步骤。
3.JMeterProducer里设置三个输入参数brokers、topic、msg的默认值。在JavaSamplerClient.runTest(测试运行)里,首先需要先获取用户在JMeter的Java请求采样器界面设置的参数数据:brokders服务器地址和端口,需要发送消息的topic,定制化的消息内容msg。然后调用SampleResult(采样器结果).sampleStart(采样器开始)开始JMeter采样器的计时,调用KafkaProducer.send进行消息发送。如果发送成功设置SampleResult的成功返回报文,并将其置为成功状态。否则设置失败返回报文,并将其置为失败状态。最后调用SampleResult.sampleEnd(采样器结束)结束JMeter采样器的计时。此步骤为消息发送测试执行的循环体,可以根据线程数和循环次数的不同执行多次。
4.JavaSamplerClient.teardownTest(测试资源释放)为Java请求采样器的结束方法,每个线程仅执行一次,在测试运行结束后执行,实现资源释放等工作,如KafkaProducer的关闭。
如图7所示,一个场景示例中,消息消费模块可以通过下述方式进行消息的调取以及消费:
1.JavaSamplerClient的getDefaultParmeters里设置有四个输入参数brokers、topic、group、interval的默认值。
2.JavaSamplerClient.setupTest进行初始化工作,调用Kafka API设置KafkaConsumer的一些属性值如bootstrap.servers、组名、是否自动提交等消费者属性参数,并创建一个消费者实例。每个线程只会在测试方法运行前执行一次该步骤。
3.在JavaSamplerClient.runTest里,首先获取用户在JMeter的Java请求采样器界面设置的参数:服务器地址和端口,消费组名、需要消费消息的topic,每次采样器请求消费消息的时间。然后调用SampleResult.sampleStart开始JMeter采样器的计时,调用KafkaConsumer.subscribe进行指定主题的消息订阅,调用KafkaConsumer.poll进行消息读取,并将读取到的消息保存至文件中,调用KafkaConsumer.commitSync同步提交消息偏移量offset。如果消费成功设置SampleResult的成功返回报文,并将其置为成功状态。否则设置失败返回报文,并将其置为失败状态。最后调用SampleResult.sampleEnd结束JMeter采样器的计时。此步骤为消费消息的测试执行的循环体,可根据线程数和循环次数的不同执行多次。
4.JavaSamplerClient.teardownTest为Java请求采样器的结束方法,每个线程仅执行一次,在测试方法运行结束后执行,实现资源释放等工作,如KafkaConsumer的关闭。
消息中间件可能本身提供一些脚本,以用于监控消息中间件执行消息处理的情况。相应的,可以利用消息中间件的脚本进行消息处理情况的监控。例如,Kafka本身即提供一些脚本,进行消息处理性能参数的统计,可以通过其统计的性能参数数据进行kafka消息处理性能的分析。但kafka的性能参数数据通常是通过命令行文本方式输出,不便于直观分析。
一些实施例中,所述监控模块可以从Kafka JMX的RMI接口获取消息处理指标数据,并将消息处理指标数据与消息处理指标数据的采集时间关联后存储至数据库。例如,如图8所示,可以开启Kafka JMX(Java Management Extensions,即Java管理扩展)端口9999。其中,JMX为一个为应用程序、设备、系统等植入管理功能的框架。监控模块可以通过JMX的RMI(Remote Method Invocation,远程方法调用)接口读取Kafka的各类指标数据。如生产者指标、消费者指标、borker相关指标等等。其中,RMI是允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象的方法。所述监控模块可以将指标数据及对应的采集时间关联后存储至数据库中。
另一些实施例中,所述测试系统还可以包括监控信息展示模块。相应的,所述监控信息展示模块可以基于展示配置信息从所述数据库中调取消息处理指标数据,并进行展示配置处理;以及将处理结果进行展示。所述展示配置信息如可以包括展示所涉及的指标数据类型、相应指标数据类型所涉及的数据的采集时间点或者采集时间区间、相应指标数类型所涉及的数据的展示方式等。所述展示方式如可以为按时间直接展示、求和、求平均等等趋势分析。所述监控信息展示模块可以根据展示配置信息从数据库中读取对应的消息处理指标数据,显示成图形界面,如趋势图等。通过图像化展示的方式,用户不仅可以更加直观的查看实时数据,还可以进行历史数据的回溯以及对比分析。
图9示出了部分消息处理指标数据的图示化展示示意图。如图9所示,图9中的(a)图为Byte In Per Sec(每秒生产的消息数据(字节))的分布示意图;图9中的(b)图为ByteOut Per Sec(每秒消费的消息数据(字节))的分布示意图;图9中的(c)图为Messages InPer Sec(ALL)(每秒生产的消息总数)的分布示意图;图9中的(d)图为Message in persecond(按主题每秒生产的消息数)的分布示意图;图9中的(e)图为Message consume perminute(按消费者组(主题)每分消费的消息数)的分布示意图;图9中的(f)图为Lag byConsumer Group(按消费者组(主题)消息Lag情况)的分布示意图。
一个完整的分布式异步消息系统通常不仅包括消息处理,还包括其它普通的联机交易,因此一个典型的测试场景也应包括以上部分。图10示出了一种基于上述实施例提供的测试系统的分布式异步消息系统的压测方法整体结构示意图。如图10所示,利用上述实施例提供的测试系统,可以根据特定的测试需求,将生产消息的测试用例、消费消息的测试用例、联机交易对应的测试用例,一同编排进测试场景中,并可以按真实生产或业务预估交易占比和TPS(吞吐量,是指单位时间内系统处理的请求数量,用于体现系统处理请求的能力)设置相应的并发压力参数,实现对分布式异步消息系统的整体测试。使得分布式异步消息处理各环节的关联性更强,进而提高测试的灵活性、全面性以及有效性,以便于对系统整体以及各环节进行准确有效的了解以及掌控,保证上线系统运行更加稳定。
相应的,一些实施例中,所述测试系统还包括预设测试工具。相应的,所述测试系统根据配置的交易占比、TPS值,利用预设测试工具、消息生产模块以及消息消费模块对分布式异步消息系统进行处理性能测试,从而可以实现分布式系统整体性能的灵活测试,提高测试的准确性以及灵活性。
上述实施例提供的方案,将生产消息、消费消息与联机业务交易一同编排进测试场景,使得对不同的消息类型的实例化更为灵活,同时,还可以控制用户并发数和执行时序时长、以及完整测试场景的交易和消息的占比等,使得分布式系统测试更加全面、准确以及灵活。同时,基于预设测试工具进行扩展,来构建消息生产以及消息消费模拟架构,更加简单高效,无需搭建全部的生产者和消费者的测试环境,进一步节约了测试资源的投入。进一步的,还可以将消息中间件的消息处理指标提取出来,与其他监控数据进行融合以及图示化分析,可以进一步提高交互性以及直观性,进而提高测试效率。
基于上述实施例提供的方案,具体的一个实施例如图11所示,所述方法可以应用于所述测试系统。所述测试系统可以包括消息生产模块、消息消费模块以及监控模块。其中,所述消息生产模块、消息消费模块在预设测试工具的扩展插件接口规则下、基于分布式异步消息系统的消息中间件的接口参数构建得到。所述预设测试工具可以是指对分布式异步消息系统的业务系统进行压力测试的工具。其中,所述消息生产模块、消息消费模块的具体配置方式可以参考上述实施例实施,这里不做赘述。相应的,所述方法可以包括如下步骤:
S20:消息生产模块调用所述消息中间件的生产接口参数数据向所述消息中间件发送配置的消息数据。
所述生成接口参数数据可以包括消息中间件的生产者API、流处理API、连接API和管理API中关于消息生产以及生产的消息传递的接口参数。如上述实施例所述,所述消息生产模块可以在初始化工作中调用Kafka API设置KafkaProducer的一些属性值如是否幂等、重试等生产者属性参数,创建一个生产者实例;然后,还可以调用用户配置的brokders服务器地址和端口、需要发送消息的topic接口参数值,向所述消息中间件发送配置的消息数据。
S22:消息消费模块调用所述消息中间件的消费接口参数数据从所述消息中间件调取消息数据,以进行消息消费。
所述消费接口参数数据可以包括消息中间件的消费者API、流处理API、连接API和管理API中关于消息订阅、消息调取以及消息消费的接口参数。如上述实施例所述,所述消息消费模块可以在初始化工作中调用Kafka API设置KafkaProducer的一些属性值如bootstrap.servers、组名、是否自动提交等消费者属性参数,创建一个生消费者实例;然后,还可以调用用户配置的服务器地址和端口,消费组名、需要消费消息的topic,每次采样器请求消费消息的时间等接口参数值,从所述消息中间件调取消息数据,以进行消息消费。
S24:监控模块获取消息中间件的消息处理指标数据,以基于获取的消息处理指标数据分析所述消息中间件的消息处理性能。
所述监控模块如可以为kafka自带的消息监控脚本。优选的,所述监控模块还可以为预设测试工具的监控数据收集模块。或者,所述监控模块还可以为单独配置的监控数据收集模块。在执行测试的过程中,所述监控模块可以获取消息中间件在进行消息处理过程中的消息处理指标数据,以基于获取的消息处理指标数据分析所述消息中间件的消息处理性能。
所述消息处理指标数据如可以包括每秒生产的消息数据、每秒消费的消息数据、每秒生产的消息总数、按主题每秒生产的消息数、按消费者组(主题)每分消费的消息数、按消费者组(主题)消息Lag情况等。
例如,所述监控模块可以从Kafka JMX的RMI接口获取消息处理指标数据,并将消息处理指标数据与消息处理指标数据的采集时间关联后存储至数据库,以进一步从数据库中获取的消息处理指标数据,基于获取的消息处理指标数据分析所述消息中间件的消息处理性能。
另一些实施例中,所述测试系统还可以包括监控信息展示模块。相应的,所述监控信息展示模块可以基于展示配置信息从所述数据库中调取消息处理指标数据,并进行展示配置处理;以及将处理结果进行展示。
上述实施例提供的方案,可以通过预先配置的消息生产模块调用消息中间件的接口参数,以创建生产者实例;并基于所述生产者实例以及消息发送参数向所述消息中间件发送配置的消息内容。可以通过预先配置的消息消费模块调用消息中间件的消费接口参数,以创建消息消费实例;并基于所述消息消费实例以及消息消费参数从所述消息中间件提取消息内容,以进行消息消费。同时,可以利用消息中间件自带的性能监控模块监控消息中间件处理消息时的性能参数,或者,也可以将消息中间件的性能参数导出,以进行分析,从而简单有效的完成分布式异步消息系统的消息中间件的消息处理能力测试。同时,基于预设测试工具进行扩展,来构建消息生产以及消息消费模拟架构,更加简单高效,无需搭建全部的生产者和消费者的测试环境,进一步节约了测试资源的投入。
另一些实施方式中,所述测试系统还可以将生产消息、消费消息与联机业务交易一同编排进测试场景,使得对不同的消息类型的实例化更为灵活,同时,还可以控制用户并发数和执行时序时长、以及完整测试场景的交易和消息的占比等,使得分布式系统测试更加全面、准确以及灵活。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。具体的可以参照前述相关处理相关实施例的描述,在此不做一一赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书一个或多个实施例提供的分布式系统的测试方法,通过对业务系统的压力测试工具进行扩展,构建模拟向消息中间件发送消息的消息生产者、以及从消息中间件调取消息以进行消息消费的消息消费者。然后,可以利用扩展后的测试工具向消息中间件生产消息数据,以及从消息中间件调取消息数据进行消费,简单方便的实现对消息中间件的处理性能的测试。同时,通过上述方式,只是单纯的模拟生产者以及消费者处理架构,并不需要搭建全部的生产者和消费者的测试环境,进一步节约了测试资源的投入,降低分布式异步消息处理系统的整体测试成本。此外,利用上述方式,还可以将业务系统的测试与消息中间件的测试进行有效关联,将生产消息、消费消息与普通交易一同编排进测试场景,使得分布式异步消息处理各环节的关联性更强,进而提高测试的灵活性、全面性以及有效性,以便于对系统整体以及各环节进行准确有效的了解以及掌控,保证上线系统运行更加稳定。
基于上述所述的分布式系统的测试方法,本说明书一个或多个实施例还提供一种分布式系统的测试系统。所述的系统可以包括使用了本说明书实施例所述方法的系统、软件(应用)、模块、组件、服务器等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的系统如下面的实施例所述。由于系统解决问题的实现方案与方法相似,因此本说明书实施例具体的系统的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
一些实施例中,所述系统可以包括消息生产模块、消息消费模块以及监控模块。其中,所述消息生产模块、消息消费模块在预设测试工具的扩展插件接口规则下、基于分布式异步消息系统的消息中间件的接口参数构建得到。所述预设测试工具是指对分布式异步消息系统的业务系统进行压力测试的工具。其中,
所述消息生产模块可以用于调用所述消息中间件的生产接口参数数据向所述消息中间件发送配置的消息数据。
所述消息消费模块可以用于调用所述消息中间件的消费接口参数数据从所述消息中间件调取消息数据,以进行消息消费。
所述监控模块可以用于获取消息中间件的消息处理指标数据,以基于获取的消息处理指标数据分析所述消息中间件的消息处理性能。
另一些实施例中,所述消息中间件可以为kafka。相应的,所述监控模块还可以用于从Kafka JMX的RMI接口获取消息处理指标数据,并将消息处理指标数据与消息处理指标数据的采集时间关联后存储至数据库。
另一些实施例中,所述测试系统还可以包括监控信息展示模块。相应的,所述监控信息展示模块可以用于基于展示配置信息从所述数据库中调取消息处理指标数据,并进行展示配置处理;以及将处理结果进行展示。
另一些实施例中,所述测试系统还可以包括预设测试工具。相应的,所述测试系统还可以用于根据配置的交易占比、TPS值,利用预设测试工具、消息生产模块以及消息消费模块对分布式异步消息系统进行处理性能测试。
所述系统还也可以应用在多种计算机数据处理系统中。所述的系统可以为单独的服务器,也可以包括使用了本说明书的一个或多个所述方法或一个或多个实施例装置的服务器集群、系统(包括分布式系统)、软件(应用)、实际操作装置、逻辑门电路装置、量子计算机等并结合必要的实施硬件的终端装置。一些实施例中,所述系统可以包括至少一个处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括上述任意一个或者多个实施例所述方法的步骤。
所述存储器可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
需要说明的,上述所述的系统根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
基于上述所述的分布式系统的测试方法,另一些实施例中,本说明书还提供一种消息生产模块,所述消息生产模块可以在预设测试工具的扩展插件接口规则下、基于分布式异步消息系统的消息中间件的生产接口参数构建得到。所述预设测试工具是指利用并发数据对分布式异步消息系统的业务系统进行压力测试的工具。其中,所述消息生产模块可以用于调用所述消息中间件的生产接口参数数据向所述消息中间件发送配置的消息数据。
基于上述所述的分布式系统的测试方法,另一些实施例中,本说明书还提供一种消息消费模块,所述消息消费模块可以在预设测试工具的扩展插件接口规则下、基于分布式异步消息系统的消息中间件的消费接口参数构建得到。所述预设测试工具是指利用并发数据对分布式异步消息系统的业务系统进行压力测试的工具。其中,所述消息消费模块可以用于调用所述消息中间件的消费接口参数数据从所述消息中间件调取消息数据,以进行消息消费。
需要说明的,上述所述的消息生产模块或者消息消费模块根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书实施例并不局限于必须是符合标准数据模型/模板或本说明书实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书的可选实施方案范围之内。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述并不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (16)

1.一种分布式系统的测试方法,其特征在于,应用于测试系统;其中,所述测试系统包括消息生产模块、消息消费模块以及监控模块;所述消息生产模块、消息消费模块在预设测试工具的扩展插件接口规则下、基于分布式异步消息系统的消息中间件的接口参数构建得到;所述预设测试工具是指对分布式异步消息系统的业务系统进行压力测试的工具;
所述消息生产模块调用所述消息中间件的生产接口参数数据向所述消息中间件发送配置的消息数据;
所述消息消费模块调用所述消息中间件的消费接口参数数据从所述消息中间件调取消息数据,以进行消息消费;
所述监控模块获取消息中间件的消息处理指标数据,以基于获取的消息处理指标数据分析所述消息中间件的消息处理性能。
2.根据权利要求1所述的方法,其特征在于,所述预设测试工具为JMeter测试工具。
3.根据权利要求1所述的方法,其特征在于,所述调用所述消息中间件的生产接口参数数据向所述消息中间件发送配置的消息数据,包括:
对于任意线程,调用消息中间件的生产者属性参数,以创建消息生产实例;
基于相应线程的循环次数执行下述步骤:获取服务器地址和端口号、消息类型以及配置的消息数据;开始计时,并基于所述消息生产实例以及服务器地址和端口号、消息类型向所述消息中间件发送配置的消息数据;接收消息发送是否成功的反馈结果,并结束计时;
结束相应线程的消息生产,以及进行资源释放。
4.根据权利要求1所述的方法,其特征在于,所述调用所述消息中间件的消费接口参数数据从所述消息中间件调取消息数据,以进行消息消费,包括:
对于任意线程,调用消息中间件的消费者属性参数,以创建消息消费实例;
基于相应线程的循环次数执行下述步骤:获取服务器地址和端口号、消息类型、消费者组名称以及一次请求消费消息的时长;开始计时,并基于所述消息消费实例以及消息类型从消息中间件读取消息数据;并同步提交消息偏移量;接收消息消费是否成功的反馈结果,并结束计时;
结束相应线程的消息消费,以及进行资源释放。
5.根据权利要求1所述的方法,其特征在于,所述消息生产模块采用下述方式配置消息数据:
获取待配置的消息数据的消息类型所对应的消息模板文件;
根据预设参数化规则配置消息模板文件中各参数的参数值,得到配置的消息数据。
6.根据权利要求1所述的方法,其特征在于,所述消息中间件为kafka;所述监控模块从Kafka JMX的RMI接口获取消息处理指标数据,并将消息处理指标数据与消息处理指标数据的采集时间关联后存储至数据库。
7.根据权利要求6所述的方法,其特征在于,所述测试系统还包括监控信息展示模块;相应的,所述监控信息展示模块基于展示配置信息从所述数据库中调取消息处理指标数据,并进行展示配置处理;以及将处理结果进行展示。
8.根据权利要求1所述的方法,其特征在于,所述测试系统还包括预设测试工具;相应的,所述测试系统根据配置的交易占比、TPS值,利用预设测试工具、消息生产模块以及消息消费模块对分布式异步消息系统进行处理性能测试。
9.一种分布式系统的测试系统,其特征在于,所述系统包括消息生产模块、消息消费模块以及监控模块;其中,所述消息生产模块、消息消费模块在预设测试工具的扩展插件接口规则下、基于分布式异步消息系统的消息中间件的接口参数构建得到;所述预设测试工具是指对分布式异步消息系统的业务系统进行压力测试的工具;
所述消息生产模块用于调用所述消息中间件的生产接口参数数据向所述消息中间件发送配置的消息数据;
所述消息消费模块用于调用所述消息中间件的消费接口参数数据从所述消息中间件调取消息数据,以进行消息消费;
所述监控模块用于获取消息中间件的消息处理指标数据,以基于获取的消息处理指标数据分析所述消息中间件的消息处理性能。
10.根据权利要求9所述的系统,其特征在于,所述消息中间件为kafka;所述监控模块还用于从Kafka JMX的RMI接口获取消息处理指标数据,并将消息处理指标数据与消息处理指标数据的采集时间关联后存储至数据库。
11.根据权利要求10所述的系统,其特征在于,所述测试系统还包括监控信息展示模块;相应的,所述监控信息展示模块用于基于展示配置信息从所述数据库中调取消息处理指标数据,并进行展示配置处理;以及将处理结果进行展示。
12.根据权利要求9所述的系统,其特征在于,所述测试系统还包括预设测试工具;相应的,所述测试系统还用于根据配置的交易占比、TPS值,利用预设测试工具、消息生产模块以及消息消费模块对分布式异步消息系统进行处理性能测试。
13.一种消息生产模块,其特征在于,所述消息生产模块在预设测试工具的扩展插件接口规则下、基于分布式异步消息系统的消息中间件的生产接口参数构建得到;所述预设测试工具是指对分布式异步消息系统的业务系统进行压力测试的工具;其中,所述消息生产模块用于调用所述消息中间件的生产接口参数数据向所述消息中间件发送配置的消息数据。
14.根据权利要求13所述的消息生产模块,其特征在于,所述消息生产模块用于对于任意线程,调用消息中间件的生产者属性参数,以创建消息生产实例;基于相应线程的循环次数执行下述步骤:获取服务器地址和端口号、消息类型以及配置的消息数据;开始计时,并基于所述消息生产实例以及服务器地址和端口号、消息类型向所述消息中间件发送配置的消息数据;接收消息发送是否成功的反馈结果,并结束计时;结束相应线程的消息生产,以及进行资源释放。
15.一种消息消费模块,其特征在于,所述消息消费模块在预设测试工具的扩展插件接口规则下、基于分布式异步消息系统的消息中间件的消费接口参数构建得到;所述预设测试工具是指对分布式异步消息系统的业务系统进行压力测试的工具;其中,所述消息消费模块用于调用所述消息中间件的消费接口参数数据从所述消息中间件调取消息数据,以进行消息消费。
16.根据权利要求15所述的消息消费模块,其特征在于,所述消息消费模块还用于对于任意线程,调用消息中间件的消费者属性参数,以创建消息消费实例;基于相应线程的循环次数执行下述步骤:获取服务器地址和端口号、消息类型、消费者组名称以及一次请求消费消息的时长;开始计时,并基于所述消息消费实例以及消息类型从消息中间件读取消息数据;并同步提交消息偏移量;接收消息消费是否成功的反馈结果,并结束计时;结束相应线程的消息消费,以及进行资源释放。
CN202011034875.5A 2020-09-27 2020-09-27 分布式系统的测试方法及系统、消息生产及消费模块 Active CN112217886B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011034875.5A CN112217886B (zh) 2020-09-27 2020-09-27 分布式系统的测试方法及系统、消息生产及消费模块

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011034875.5A CN112217886B (zh) 2020-09-27 2020-09-27 分布式系统的测试方法及系统、消息生产及消费模块

Publications (2)

Publication Number Publication Date
CN112217886A true CN112217886A (zh) 2021-01-12
CN112217886B CN112217886B (zh) 2023-04-28

Family

ID=74051167

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011034875.5A Active CN112217886B (zh) 2020-09-27 2020-09-27 分布式系统的测试方法及系统、消息生产及消费模块

Country Status (1)

Country Link
CN (1) CN112217886B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113612679A (zh) * 2021-07-29 2021-11-05 百度在线网络技术(北京)有限公司 一种消息验证方法、装置、电子设备及存储介质
CN114385728A (zh) * 2021-12-15 2022-04-22 江苏瑞中数据股份有限公司 一种基于数据转换整合的实时数据处理方法
CN115118708A (zh) * 2022-08-25 2022-09-27 飞狐信息技术(天津)有限公司 一种消息中间件的http协议代理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10554604B1 (en) * 2017-01-04 2020-02-04 Sprint Communications Company L.P. Low-load message queue scaling using ephemeral logical message topics
CN110888816A (zh) * 2019-12-11 2020-03-17 广州品唯软件有限公司 程序测试方法、程序测试装置及存储介质
CN111488271A (zh) * 2020-03-10 2020-08-04 中移(杭州)信息技术有限公司 消息中间件的调优方法、系统、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10554604B1 (en) * 2017-01-04 2020-02-04 Sprint Communications Company L.P. Low-load message queue scaling using ephemeral logical message topics
CN110888816A (zh) * 2019-12-11 2020-03-17 广州品唯软件有限公司 程序测试方法、程序测试装置及存储介质
CN111488271A (zh) * 2020-03-10 2020-08-04 中移(杭州)信息技术有限公司 消息中间件的调优方法、系统、电子设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113612679A (zh) * 2021-07-29 2021-11-05 百度在线网络技术(北京)有限公司 一种消息验证方法、装置、电子设备及存储介质
CN113612679B (zh) * 2021-07-29 2023-02-24 百度在线网络技术(北京)有限公司 一种消息验证方法、装置、电子设备及存储介质
CN114385728A (zh) * 2021-12-15 2022-04-22 江苏瑞中数据股份有限公司 一种基于数据转换整合的实时数据处理方法
CN115118708A (zh) * 2022-08-25 2022-09-27 飞狐信息技术(天津)有限公司 一种消息中间件的http协议代理方法及装置

Also Published As

Publication number Publication date
CN112217886B (zh) 2023-04-28

Similar Documents

Publication Publication Date Title
CN112217886B (zh) 分布式系统的测试方法及系统、消息生产及消费模块
CN111078315B (zh) 微服务编排、执行方法及系统、架构、设备、存储介质
CN109302522A (zh) 测试方法、装置以及计算机系统和介质
CN109815252A (zh) 测试数据生成方法、装置、计算机设备及可读存储介质
JP2019516167A (ja) リアルタイムデータフロープログラミング言語のためのツールおよび方法
CN110362490B (zh) 融合iOS与Android移动应用的自动化测试方法及系统
CN110888818A (zh) 测试用例配置系统与方法,自动化测试系统与方法
CN102402481A (zh) 异步程序代码的模糊测试
CN113900958A (zh) 测试用例脚本的生成方法、系统、介质及电子设备
CN110750458A (zh) 大数据平台测试方法、装置、可读存储介质及电子设备
Lazuardy et al. Modern front end web architectures with react. js and next. js
CN111752844A (zh) 一种接口测试方法、装置、计算设备及存储介质
CN113986746A (zh) 性能测试方法及其装置、计算机可读存储介质
CN113434131A (zh) 编写程序方法、装置、计算机设备和存储介质
CN109739704A (zh) 一种接口测试方法、服务端及计算机可读存储介质
CN114610597A (zh) 一种压力测试方法、装置、设备及存储介质
CN115509913A (zh) 软件自动化测试方法、装置、机器可读介质及设备
CN113127099B (zh) 服务器配置方法、装置、设备及存储介质
CN113254187A (zh) 测试数据的生成方法、装置、电子设备和存储介质
CN113672222A (zh) 一种应用程序接口管理装置及其构建方法
CN117234480B (zh) 基于本体的多编程语言组件规范和工作流系统及使用方法
Hine et al. Enterprise software service emulation: constructing large-scale testbeds
Yu et al. A petri-net-based virtual deployment testing environment for enterprise software systems
CN117009236B (zh) 点胶机硬件配置方法、装置、设备及存储介质
Dahlin An Evaluation of Spring WebFlux: With focus on built in SQL features

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