一种用电信息采集系统的压力测试方法及装置转让专利

申请号 : CN201711008707.7

文献号 : CN107817401B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 沈鑫曹敏赵旭邹京希魏龄王学良逄林吴群蒙占宇何慧娟王通

申请人 : 云南电网有限责任公司电力科学研究院

摘要 :

本申请公开了一种用电信息采集系统的压力测试方法及装置,涉及测试技术领域,为解决压力测试过程中无法模拟大数量终端请求采集系统的问题而发明。该方法主要包括:虚拟预置数量的终端,所述终端包括集中器、专变终端、上网宝和能源管理终端;根据所述终端的类型,配置所述终端的通信协议;根据所述通信协议,触发所述终端;采用多线程处理机制,处理所述终端触发事件;监测所述用电信息采集系统是否正常运行。本申请主要应用于测试用电信息采集系统的过程中。

权利要求 :

1.一种用电信息采集系统的压力测试方法,其特征在于,应用于用电信息采集系统,所述方法包括:根据基于事件触发的epoll高并发模型,虚拟预置数量的终端,所述终端包括集中器、专变终端、上网宝和能源管理终端;

根据所述终端的类型,配置所述终端的通信协议;

根据所述通信协议,触发所述终端;

采用多线程处理机制,处理所述终端触发事件;

监测所述用电信息采集系统是否正常运行。

2.如权利要求1所述的方法,其特征在于,所述根据所述终端的类型,配置所述终端的通信协议之后,所述方法还包括:获取所述通信协议的协议类型;

根据所述协议类型,虚拟所述终端的电能数据。

3.如权利要求2所述的方法,其特征在于,所述根据所述通信协议,触发所述终端,包括:根据所述通信协议,配置所述终端的触发参数,所述触发参数包括所述电能数据;

根据所述触发参数,触发所述终端。

4.如权利要求1所述的方法,其特征在于,所述监测所述用电信息采集系统是否正常运行之后,所述方法还包括:如果所述用电信息采集系统正常运行,则按照预置规则,增加所述预置数量;

如果所述用电信息采集系统未正常运行,则按照所述预置规则,减少所述预置数量;

按照所述增加/减少所述预置数量,虚拟所述终端。

5.一种用电信息采集系统的压力测试装置,其特征在于,应用于用电信息采集系统,所述装置包括:虚拟单元,用于根据基于事件触发的epoll高并发模型,虚拟预置数量的终端,所述终端包括集中器、专变终端、上网宝和能源管理终端;

配置单元,用于根据所述终端的类型,配置所述终端的通信协议;

触发单元,用于根据所述通信协议,触发所述终端;

处理单元,用于采用多线程处理机制,处理所述终端触发事件;

监测单元,用于监测所述用电信息采集系统是否正常运行。

6.如权利要求5所述的装置,其特征在于,所述装置还包括:获取单元,用于所述根据所述终端的类型,配置所述终端的通信协议之后,获取所述通信协议的协议类型;

所述虚拟单元,还用于根据所述协议类型,虚拟所述终端的电能数据。

7.如权利要求6所述的装置,其特征在于,所述触发单元,包括:配置模块,用于根据所述通信协议,配置所述终端的触发参数,所述触发参数包括所述电能数据;

触发模块,用于根据所述触发参数,触发所述终端。

8.如权利要求5所述的装置,其特征在于,所述装置还包括:增加单元,用于所述监测所述用电信息采集系统是否正常运行之后,如果所述用电信息采集系统正常运行,则按照预置规则,增加所述预置数量;

减少单元,用于如果所述用电信息采集系统未正常运行,则按照所述预置规则,减少所述预置数量;

所述虚拟单元,还用于按照所述增加/减少所述预置数量,虚拟所述终端。

说明书 :

一种用电信息采集系统的压力测试方法及装置

技术领域

[0001] 本申请涉及测试技术领域,尤其涉及一种用电信息采集系统的压力测试方法及装置。

背景技术

[0002] 用电信息采集系统,是通过对配电网变压器和终端用户的用电数据的采集和分析,实现用电监控、推行阶梯定价、负荷管理、线损分析,最终达到自动抄表、错峰用电、用电检查、负荷预测和节约用电成本等目的。建立全面的用户用电信心采集系统需要建设系统主站、传输信道、采集设备以及电子式电能表。
[0003] 通过压力测试工具可以对用电信息采集系统进行压力测试。当前有很多压力测试工具,如WebApplication Stress、ApacheBench、Apachejmeter等,都可以模拟单一终端通过向采集系统发送请求的方式对采集系统进行压力测试,但很难全方位的测出采集系统的性能。若需要模拟大数量终端进行并发压力测试,则需要人工手动启动多个终端,繁琐且无法解决多终端同步触发的问题。实际应用中,在同一时刻上采集系统接收处理数万个终端请求与仅接收处理1个请求相比,采集系统接收缓冲区、内存及CPU等资源所承受的压力是不同的。通常,超大数量的终端对采集系统造成的压力更大,采集系统更易达到瓶颈。负载压力测试工具LoadRunner模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,但无法模拟数万个终端请求采集系统。

发明内容

[0004] 本申请提供了一种用电信息采集系统的压力测试方法及装置,以解决压力测试过程中无法模拟大数量终端请求采集系统的问题。
[0005] 一方面,本申请提供了一种用电信息采集系统的压力测试方法,该方法包括:
[0006] 虚拟预置数量的终端,所述终端包括集中器、专变终端、上网宝和能源管理终端;
[0007] 根据所述终端的类型,配置所述终端的通信协议;
[0008] 根据所述通信协议,触发所述终端;
[0009] 采用多线程处理机制,处理所述终端触发事件;
[0010] 监测所述用电信息采集系统是否正常运行。
[0011] 另一方面,本申请还提供了一种用电信息采集系统的压力测试装置,所述装置包括:
[0012] 虚拟单元,用于虚拟预置数量的终端,所述终端包括集中器、专变终端、上网宝和能源管理终端;
[0013] 配置单元,用于根据所述终端的类型,配置所述终端的通信协议;
[0014] 触发单元,用于根据所述通信协议,触发所述终端;
[0015] 处理单元,用于采用多线程处理机制,处理所述终端触发事件;
[0016] 监测单元,用于监测所述用电信息采集系统是否正常运行。
[0017] 本申请提供的一种用电信息采集系统的压力测试方法及装置,通过虚拟预置数量的终端,然后根据终端的类型,配置终端的通信协议,再根据通信协议,触发终端,再采用多线程处理机制,处理终端触发事件,最后监测用电信息采集系统是否正常运行。与现有技术相比,本申请能够虚拟数万级甚至百万级的终端,以对用电信息采集系统进行力测试。在测试过程中,对采集系统而言,虚拟的终端和真实的终端设备,没有差别,无需额外增加工作。通过虚拟终端系统,可提供大数量的虚拟终端和虚拟数据,辅助实现用电信息采集任务、采集策略、数据采集、数据存储和性能的全面测试。

附图说明

[0018] 为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0019] 图1为本申请提供的一种用电信息采集系统的压力测试方法流程图;
[0020] 图2为本申请提供的另一种用电信息采集系统的压力测试方法流程图;
[0021] 图3为本申请提供的一种用电信息采集系统的压力测试装置组成框图;
[0022] 图4为本申请提供的另一种用电信息采集系统的压力测试装置组成框图。

具体实施方式

[0023] 参见图1,为本申请提供的一种用电信息采集系统的压力测试方法流程图。如图1所示,应用于用电信息采集系统,该方法包括:
[0024] 101、虚拟预置数量的终端。
[0025] 用电信息采集系统是通过对配电变压器和终端用户的用电数据的采集和分析,实现用电监控、推行阶梯定价、负荷管理、线损分析,最终达到自动抄表、错峰用电、用电检查、负荷预测和节约用电成本等目的。建立全面的用户用电信息采集系统需要建设系统主站、传输信道、采集设备以及电子式电能表。
[0026] 用电信息采集终端是对各信息采集点用电信息采集的设备,简称采集终端。可以实现电能表数据的采集、数据管理、数据双向传输以及转发或执行控制命令的设备。用电信息采集终端按应用场所分为专变采集终端、集中抄表终端、分布式能源监控终端等类型。终端包括集中器、专变终端、上网宝和能源管理终端。
[0027] 102、根据终端的类型,配置终端的通信协议。
[0028] 通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。
[0029] 终端的类型,可以通过在用电信息采集系统中的作用不同做为区别终端类型的标识。终端的类型不同,在用电信息采集系统中传递信息采用的通信协议也不相同,所以需要根据终端的类型,配置终端的通信协议。
[0030] 103、根据通信协议,触发终端。
[0031] 根据通信协议,触发终端,也就是使得虚拟的各个类型的终端处于虚拟工作状态,用电信息采集系统开始进行信息采集工作。
[0032] 104、采用多线程处理机制,处理终端触发事件。
[0033] 多线程,是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理或同时多线程处理器。在一个程序中,这些独立运行的程序片段叫作“线程”,利用它编程的概念就叫作“多线程处理”。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。
[0034] 采用多线程处理机制,处理终端触发时间,实现虚拟终端的并发执行,以符合实际工作中终端与用电信息采集系统的运行状况,以使得得到的压力测试结果更准确,以减少实际终端与用电信息采集系统运行过程中的误差。
[0035] 105、监测用电信息采集系统是否正常运行。
[0036] 监测用电信息采集系统的运行情况,其中包括接收缓冲区、内存、CPU运行情况等等。如果正常运行,则说明用电信息采集系统已经通过压力测试,能够同时采集预置数量的终端的用电信息。如果不能正常运行,或者运行过程中延时较长,则说明用用电信息采集系统,不能同时采集预置数量的终端的用电信息。
[0037] 本申请提供的一种用电信息采集系统的压力测试方法,通过虚拟预置数量的终端,然后根据终端的类型,配置终端的通信协议,再根据通信协议,触发终端,再采用多线程处理机制,处理终端触发事件,最后监测用电信息采集系统是否正常运行。与现有技术相比,本申请能够虚拟数万级甚至百万级的终端,以对用电信息采集系统进行力测试。在测试过程中,对采集系统而言,虚拟的终端和真实的终端设备,没有差别,无需额外增加工作。通过虚拟终端系统,可提供大数量的虚拟终端和虚拟数据,辅助实现用电信息采集任务、采集策略、数据采集、数据存储和性能的全面测试。
[0038] 参见图2,为本申请提供的另一种用电信息采集系统的压力测试方法流程图。如图2所示,应用于用电信息采集系统,该方法包括如下步骤:
[0039] 201、虚拟预置数量的终端。
[0040] 终端包括集中器、专变终端、上网宝和能源管理终端。虚拟终端,具体包括根据基于事件触发的epoll高并发模型,虚拟预置数量的终端。
[0041] epoll常常用于处理服务端的并发问题。当服务端的在线人数越来越多,会导致系统资源吃紧,I/O效率越来越慢,这时候就应该考虑epoll了。epoll是Linux内核为处理大批句柄而作改进的poll,是Linux特有的I/O函数。epoll是Linux下多路复用IO接口select/poll的增强版本。其实现和使用方式与select/poll有很多不同,epoll通过一组函数来完成有关任务,而不是一个函数。epoll之所以高效,是因为epoll将用户关心的文件描述符放到内核里的一个事件表中,而不是像select/poll每次调用都需要重复传入文件描述符集或事件集。比如当一个事件发生(比如说读事件),epoll无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入就绪队列的描述符集合就行了。epoll有两种工作方式,LT(level triggered):水平触发和ET(edge-triggered):边沿触发。LT是select/poll使用的触发方式,比较低效;而ET是epoll的高速工作方式。
[0042] epoll共有三个函数,服务端epoll的时候,步骤如下:调用epoll_create函数在Linux内核中创建一个事件表;然后将文件描述符(监听套接字)添加到所创建的事件表中;在主循环中,调用epoll_wait等待返回就绪的文件描述符集合;分别处理就绪的事件集合。
上述服务端epoll步骤为实现用户用电信息采集系统的压力测试提供依据。
[0043] 202、根据终端的类型,配置终端的通信协议。
[0044] 通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。
[0045] 203、获取通信协议的协议类型。
[0046] 通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。通信协议主要由以下三个要素组成:语法:即如何通信,包括数据的格式、编码和信号等级等。语义:即通信内容,包括数据内容、含义以及控制信息等。定时规则:即何时通信,明确通信的顺序、速率匹配和排序。
[0047] 常用的通信协议主要包括TCP/IP、NETBEUI和IPX/SPX三种协议,每种协议都有其适用的应用环境。由此可知不同的终端,采用不完全相同的通信协议。获取虚拟终端配置的通信协议的协议类型,以便于通过不同的通信协议,携带不同的数据信息。
[0048] 204、根据协议类型,虚拟终端的电能数据。
[0049] 电能数据,包括电流、电压、功率、功角等等,在本申请实施例中对电能数据的具体包括对象不做限定。
[0050] 由于终端是虚拟终端,所述电能数据实质上也是虚拟的,根据协议类型能承载的电能数据虚拟得到的。
[0051] 205、根据通信协议,配置终端的触发参数。
[0052] 触发参数包括电能数据。根据通信协议,具体的协议规则,配置终端的电能数据。
[0053] 206、根据触发参数,触发终端。
[0054] 触发终端,也就是触发虚拟终端,也就是用电信息采集系统,在虚拟终端同时触发时,采集虚拟终端的用电信息。
[0055] 207、采用多线程处理机制,处理终端触发事件。
[0056] 在计算机编程中,一个基本的概念就是同时对多个任务加以控制。许多程序设计问题都要求程序能够停下手头的工作,改为处理其他一些问题,再返回主进程。可以通过多种途径达到这个目的。最开始的时候,那些掌握机器低级语言的程序员编写一些“中断服务例程”,主进程的暂停是通过硬件级的中断实现的。尽管这是一种有用的方法,但编出的程序很难移植,由此造成了另一类的代价高昂问题。中断对那些实时性很强的任务来说是很有必要的。但对于其他许多问题,只要求将问题划分进入独立运行的程序片断中,使整个程序能更迅速地响应用户的请求。
[0057] 多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。采用多线程处理机制,能够高效的完成终端用电信息的采集工作。
[0058] 208、监测用电信息采集系统是否正常运行。
[0059] 本步骤与图1所示的步骤105所述的方法类似,这里不再赘述。
[0060] 209、如果用电信息采集系统正常运行,则按照预置规则,增加预置数量。
[0061] 如果用电信息采集系统还能正常运行,则本次的测试没有测试出用电信息采集系统的最大能够承受的压力。为了精准测量用电信息采集系统的承压能力,还需要增加虚拟终端的个数,也就是增加预置数量。对增加预置数量的增加数量,可以根据预置步长,预置数量增加预置步长,还可以根据监测的用电信息采集系统运行状态,预计还能够承受的终端数量,预置数量直接增加预计还能承受的终端数量。
[0062] 210、如果用电信息采集系统未正常运行,则按照预置规则,减少预置数量。
[0063] 与步骤209类似,如果用电信息采集系统不能正常运行,则本次测试虚拟的预置数量的终端,不一定是用电信息采集系统的承受压力的临界数量,为了精准测量用电信息采集系统的承压能力,还需要建设虚拟终端的个数,也就是减少预置数量。对于减少预置数量的减少数量,可以根据预置步长,预置数量减少预置步长,还可以根据监测的用电信息采集系统运行状态,预计能够承受的终端数量,预置数量直接减少至预计能够承受的终端数量。
[0064] 211、按照增加/减少预置数量,虚拟终端。
[0065] 根据步骤209或步骤210对预置数量的改变,再次虚拟终端,再次进行用电信息采集系统的压力测试。直至测试出用电信息采集系统的临界终端数量范围。
[0066] 本申请提供的一种用电信息采集系统的压力测试方法,通过虚拟预置数量的终端,然后根据终端的类型,配置终端的通信协议,再根据通信协议,触发终端,再采用多线程处理机制,处理终端触发事件,最后监测用电信息采集系统是否正常运行。与现有技术相比,本申请能够虚拟数万级甚至百万级的终端,以对用电信息采集系统进行力测试。在测试过程中,对采集系统而言,虚拟的终端和真实的终端设备,没有差别,无需额外增加工作。通过虚拟终端系统,可提供大数量的虚拟终端和虚拟数据,辅助实现用电信息采集任务、采集策略、数据采集、数据存储和性能的全面测试。
[0067] 参见图3,为本申请提供的一种用电信息采集系统的压力测试装置组成框图。参见图4,为本申请提供的一种用电信息采集系统的压力测试装置组成框图。如图3所示,应用于用电信息采集系统,该装置包括:
[0068] 虚拟单元31,用于虚拟预置数量的终端,终端包括集中器、专变终端、上网宝和能源管理终端;
[0069] 配置单元32,用于根据终端的类型,配置终端的通信协议;
[0070] 触发单元33,用于根据通信协议,触发终端;
[0071] 处理单元34,用于采用多线程处理机制,处理终端触发事件;
[0072] 监测单元35,用于监测用电信息采集系统是否正常运行。
[0073] 进一步地,虚拟单元31,用于:
[0074] 根据基于事件触发的epoll高并发模型,虚拟预置数量的终端。
[0075] 进一步地,如图4所示,该装置还包括:
[0076] 获取单元36,用于根据终端的类型,配置终端的通信协议之后,获取通信协议的协议类型;
[0077] 虚拟单元31,还用于根据协议类型,虚拟终端的电能数据。
[0078] 进一步地,如图4所示,触发单元33,包括:
[0079] 配置模块331,用于根据通信协议,配置终端的触发参数,触发参数包括电能数据;
[0080] 触发模块332,用于根据触发参数,触发终端。
[0081] 进一步地,如图4所示,该装置还包括:
[0082] 增加单元37,用于监测用电信息采集系统是否正常运行之后,如果用电信息采集系统正常运行,则按照预置规则,增加预置数量;
[0083] 减少单元38,用于如果用电信息采集系统未正常运行,则按照预置规则,减少预置数量;
[0084] 虚拟单元31,还用于按照增加/减少预置数量,虚拟终端。
[0085] 本申请提供的一种用电信息采集系统的压力测试装置,通过虚拟预置数量的终端,然后根据终端的类型,配置终端的通信协议,再根据通信协议,触发终端,再采用多线程处理机制,处理终端触发事件,最后监测用电信息采集系统是否正常运行。与现有技术相比,本申请能够虚拟数万级甚至百万级的终端,以对用电信息采集系统进行力测试。在测试过程中,对采集系统而言,虚拟的终端和真实的终端设备,没有差别,无需额外增加工作。通过虚拟终端系统,可提供大数量的虚拟终端和虚拟数据,辅助实现用电信息采集任务、采集策略、数据采集、数据存储和性能的全面测试。具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的呼叫方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:
RAM)等。
[0086] 本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0087] 本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。以上所述的本发明实施方式并不构成对本发明保护范围的限定。