本技术属于物联网,具体涉及一种基于高并发吞吐场景下的物联网性能测试方法及装置。
背景技术:
1、随着5g技术的大范围使用,联网的物联设备越来越多,随之带来的问题是,大量的设备接入和设备管理,对于平台服务架构带来很大挑战,如何进行以mqtt为代表的物联网协议性能测试,显得尤为重要。
2、在现有技术中,最常见的针对物联网进行测试的是mqtt并发测试方法,其是基于apache jmeter的mqtt-xmeter插件实现的。该插件的底层原理是每个线程都模拟一个mqtt客户端,向mqtt服务器发送连接请求。由于jmeter的线程模型原理是一个并发就是一个线程,所以想要发起大量的并发吞吐量,压力机就必须创建相同数量的线程,不仅造成资源的严重浪费,还限制了单个压力机能够产生的并发吞吐量。
技术实现思路
1、本发明属于物联网性能测试技术领域。本发明的一个目的是减少了压力机创建线程的数量,以使得压力机可以将内部资源主要用于其他处理过程,提高了压力机的稳定性,避免了压力机消耗过多资源用于创建线程,从而提高压力机并发吞吐量,进而可以精准测试高并发吞吐场景下的物联网性能。
2、本发明的另一个目的在于提供一种基于高并发吞吐场景下的物联网性能测试装置。本发明的还一个目的在于提供一种电子设备,该电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述基于高并发吞吐场景下的物联网性能测试方法的步骤。本发明的还一个目的在于提供一种可读介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述基于高并发吞吐场景下的物联网性能测试方法的步骤。
3、为解决本技术背景技术中的技术问题,本发明提供以下技术方案:
4、第一方面,本发明提供一种基于高并发吞吐场景下的物联网性能测试方法,包括:
5、接收生产者所发送的物联设备的测试数据;
6、对所述测试数据进行封装,以生成消费事件,并将所述消费事件存储在消费者线程池中;
7、接收消费者所发送的消费结果,其中,所述消费结果是所述消费者对所述消费事件进行消费所生成的,且所述消费事件是所述消费者从所述消费者线程池所获取的。
8、在本发明的一实施例中,所述测试数据包括设备id、sn、时间戳、所述物联设备的类型以及content数据体。
9、在本发明的一实施例中,根据所述设备id、sn、时间戳、所述物联设备的类型以及content数据体确定所述测试数据对应的事件类型;
10、在本发明的一实施例中,所述对所述测试数据进行封装,以生成消费事件,包括:
11、根据所述设备id、sn、时间戳、所述物联设备的类型以及content数据体确定所述测试数据对应的事件类型;
12、根据所述事件类型创建disruptor对象;
13、通过所述disruptor对象将所述设备id、sn、时间戳、所述物联设备的类型以及content数据体封装成具有所述事件类型的消费事件。
14、在本发明的一实施例中,通过所述disruptor对象将所述设备id、sn、时间戳、所述物联设备的类型以及content数据体封装成具有所述事件类型的消费事件,包括:
15、根据所述事件类型定义事件类,所述事件类中含有所述测试数据的属性以及处理所述测试数据的方法;
16、通过所述disruptor对象以及所述事件类将所述设备id、sn、时间戳、所述物联设备的类型以及content数据体封装成所述消费事件。
17、在本发明的一实施例中,所述将所述消费事件存储在消费者线程池中,包括:
18、通过mqtt connect建立所述物联设备与mqtt服务器之间的mqtt连接;
19、通过所述mqtt连接将所述消费事件存储在所述消费者线程池中。
20、在本发明的一实施例中,所述消费者线程池类型为环形队列。
21、在本发明的一实施例中,基于高并发吞吐场景下的物联网性能测试方法,还包括:
22、通过所述disruptor对象将所述生产者、所述消费者、所述消费事件、所述消费结果以及所述环形队列进行串联,以使所述消费者从所述环形队列获取所述消费事件;以及使所述消费者发送所述消费结果至所述环形队列。
23、第二方面,本发明提供一种基于高并发吞吐场景下的物联网性能测试装置,该装置包括:
24、测试数据接收模块,用于接收生产者所发送的物联设备的测试数据;
25、消费事件生成模块,用于对所述测试数据进行封装,以生成消费事件,并将所述消费事件存储在消费者线程池中;
26、消费结果接收模块,用于接收消费者所发送的消费结果,其中,所述消费结果是所述消费者对所述消费事件进行消费所生成的,且所述消费事件是所述消费者从所述消费者线程池所获取的。
27、在本发明的一实施例中,所述测试数据包括设备id、sn、时间戳、所述物联设备的类型以及content数据体。
28、在本发明的一实施例中,所述消费事件生成模块包括:
29、事件类型确定单元,用于根据所述设备id、sn、时间戳、所述物联设备的类型以及content数据体确定所述测试数据对应的事件类型;
30、disruptor对象创建单元,用于根据所述事件类型创建disruptor对象;
31、消费事件生成单元,用于通过所述disruptor对象将所述设备id、sn、时间戳、所述物联设备的类型以及content数据体封装成具有所述事件类型的消费事件。
32、在本发明的一实施例中,所述消费事件生成单元包括:
33、事件类定义单元,用于根据所述事件类型定义事件类,所述事件类中含有所述测试数据的属性以及处理所述测试数据的方法;
34、测试数据封装单元,用于通过所述disruptor对象以及所述事件类将所述设备id、sn、时间戳、所述物联设备的类型以及content数据体封装成所述消费事件。
35、在本发明的一实施例中,所述消费事件生成模块还包括:
36、mqtt连接建立单元,用于通过mqtt connect建立所述物联设备与mqtt服务器之间的mqtt连接;
37、消费事件存储单元,用于通过所述mqtt连接将所述消费事件存储在所述消费者线程池中。
38、在本发明的一实施例中,所述消费者线程池类型为环形队列。
39、在本发明的一实施例中,基于高并发吞吐场景下的物联网性能测试装置,还包括:
40、对象串联模块,用于通过所述disruptor对象将所述生产者、所述消费者、所述消费事件、所述消费结果以及所述环形队列进行串联,以使所述消费者从所述环形队列获取所述消费事件;以及使所述消费者发送所述消费结果至所述环形队列。
41、第三方面,本发明提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现一种基于高并发吞吐场景下的物联网性能测试方法的步骤。
42、第四方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现基于高并发吞吐场景下的物联网性能测试方法的步骤。
43、第五方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现基于高并发吞吐场景下的物联网性能测试方法的步骤。
44、从上述描述可知,本发明实施例提供一种基于高并发吞吐场景下的物联网性能测试方法及装置,对应的基于高并发吞吐场景下的物联网性能测试方法包括:首先,接收生产者所发送的物联设备的测试数据;接着,对所述测试数据进行封装,以生成消费事件,并将所述消费事件存储在消费者线程池中;最后接收消费者所发送的消费结果,其中,所述消费结果是所述消费者对所述消费事件进行消费所生成的,且所述消费事件是所述消费者从所述消费者线程池所获取的。
45、对应的基于高并发吞吐场景下的物联网性能测试装置包括:测试数据接收模块,用于接收生产者所发送的物联设备的测试数据;消费事件生成模块,用于对所述测试数据进行封装,以生成消费事件,并将所述消费事件存储在消费者线程池中;消费结果接收模块,用于接收消费者所发送的消费结果,其中,所述消费结果是所述消费者对所述消费事件进行消费所生成的,且所述消费事件是所述消费者从所述消费者线程池所获取的。
46、本发明实施例提供了一种基于高并发吞吐场景下的物联网性能测试方法及装置,减少了物联网性能测试过程中所需要的压力机创建线程的数量,使得压力机可以将内部资源主要用于其他处理过程,提高了压力机的稳定性,避免了压力机消耗过多资源用于创建线程,从而提高压力机并发吞吐量。
1.一种基于高并发吞吐场景下的物联网性能测试方法,其特征在于,包括:
2.根据权利要求1所述的基于高并发吞吐场景下的物联网性能测试方法,其特征在于,
3.根据权利要求2所述的基于高并发吞吐场景下的物联网性能测试方法,其特征在于,所述对所述测试数据进行封装,以生成消费事件,包括:
4.根据权利要求3所述的基于高并发吞吐场景下的物联网性能测试方法,其特征在于,所述通过disruptor将所述设备id、sn、时间戳、所述物联设备的类型以及content数据体封装成具有所述事件类型的消费事件,包括:
5.根据权利要求1至4任一项所述的基于高并发吞吐场景下的物联网性能测试方法,其特征在于,所述将所述消费事件存储在消费者线程池中,包括:
6.根据权利要求1所述的基于高并发吞吐场景下的物联网性能测试方法,其特征在于,所述消费者线程池类型为环形队列。
7.根据权利要求6所述的基于高并发吞吐场景下的物联网性能测试方法,其特征在于,还包括:
8.一种基于高并发吞吐场景下的物联网性能测试装置,其特征在于,包括:
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述的基于高并发吞吐场景下的物联网性能测试方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的基于高并发吞吐场景下的物联网性能测试方法的步骤。
