一种智能设备平台的测试方法和装置的制造方法

文档序号:10597060阅读:320来源:国知局
一种智能设备平台的测试方法和装置的制造方法
【专利摘要】本发明实施例提供了一种针对智能设备平台的测试方法和装置,该方法包括:启动一个或多个智能设备代理对象;将所述一个或多个智能设备代理对象连接智能设备平台;通过调度队列,调度所述一个或多个智能设备代理对象与所述智能设备平台之间的通信,以对所述智能设备平台进行测试。本发明实施例通过智能设备代理对象模拟真实的智能设备,正常与智能设备平台进行通信,在摆脱智能硬件束缚的同时,保证测试环境的有效性。
【专利说明】
一种智能设备平台的测试方法和装置
技术领域
[0001]本发明涉及测试技术领域,特别是涉及一种针对智能设备平台的测试方法和一种针对智能设备平台的测试装置。
【背景技术】
[0002]随着科技的不断发展,诸如空调、电饭煲、微波炉、热水器等电子产品逐渐智能化,广泛应用于人们的日常生活、工作、学习中。
[0003]这些智能化的电子产品一般具有远程控制功能,让电子产品通过互联网接入到云平台,云平台负责接收来自用户发送的控制指令,并转发至电子产品中,这些电子产品按照该控制指令进行操作。
[0004]为了云平台的正常运行,一般会对云平台进行测试。
[0005]目前,对云平台进行测试依赖真实的电子产品,按照电子产品自身的运行机制测试正常的流程,测试方式单一,不能有效地测试云平台的健壮性。
[0006]此外,用户家庭环境的电和网络一般比较稳定,不会频繁出现断电、断网,因此,电子产品通常能够连续运行几个月,甚至更长时间,而由于测试环境网络的限制,一般不具备长时间运行电子产品的条件,不能有效地测试云平台的稳定性。

【发明内容】

[0007]鉴于上述问题,为了解决上述不能有效地测试云平台的健壮性和稳定性的问题,本发明实施例提出了一种针对智能设备平台的测试方法和相应的一种针对智能设备平台的测试装置。
[0008]为了解决上述问题,本发明实施例公开了一种针对智能设备平台的测试方法,包括:
[0009]启动一个或多个智能设备代理对象;
[0010]将所述一个或多个智能设备代理对象连接智能设备平台;
[0011 ]通过调度队列,调度所述一个或多个智能设备代理对象与所述智能设备平台之间的通信,以对所述智能设备平台进行测试。
[0012]优选地,还包括:
[0013]对所述一个或多个智能设备代理对象进行初始化处理;
[0014]其中,所述初始化处理包括从所述智能设备平台获取令牌、密钥、运行参数;
[0015]所述令牌用于封装在所述智能设备代理对象向所述智能设备平台发送的消息中,以对所述消息进行合法性校验;
[0016]所述密钥用于对所述智能设备平台向所述智能设备代理对象发送的消息进行解密;
[0017]所述运行参数包括状态上报周期、心跳周期。
[0018]优选地,还包括:
[0019]当检测到超过预设的运行时间时,退出测试。
[0020]优选地,所述调度队列包括发送队列;
[0021]所述通过调度队列,调度所述一个或多个智能设备代理对象与所述智能设备平台之间的通信,以对所述智能设备平台进行测试的步骤包括:
[0022]将所述一个或多个智能设备代理对象对应的一个或多个第一智能设备信息写入所述发送队列中;
[0023]根据所述发送队列中的一个或多个第一智能设备信息,上报第一消息至所述智能设备平台。
[0024]优选地,所述调度队列包括接收队列;
[0025]所述通过调度队列,调度所述一个或多个智能设备代理对象与所述智能设备平台之间的通信,以对所述智能设备平台进行测试的步骤包括:
[0026]将所述一个或多个智能设备代理对象对应的一个或多个第二智能设备信息写入所述接收队列中;
[0027]根据所述接收队列中的一个或多个第二智能设备信息,对所述智能设备平台发送的第二消息进行处理。
[0028]优选地,所述第一智能设备信息包括上一次上报状态消息的上报时间、状态上报周期和设备状态信息,所述第一消息包括状态消息;
[0029]所述根据所述发送队列中的一个或多个第一智能设备信息,上报第一消息至所述智能设备平台的步骤包括:
[0030]遍历所述发送队列,以判断所述第一智能设备信息中的上报时间与状态上报周期之和是否超过当前时间;
[0031 ]若是,则将所述状态设备信息封装至状态消息中;
[0032]将所述状态消息上报至所述智能设备平台。
[0033]优选地,所述第一智能设备信息包括上一次心跳的心跳时间和心跳周期,所述第一消息包括心跳消息;
[0034]所述根据所述发送队列中的一个或多个第一智能设备信息,上报第一消息至所述智能设备平台的步骤包括:
[0035]遍历所述发送队列,以判断所述第一智能设备信息的心跳时间与心跳周期之和是否超过当前时间;
[0036]若是,则发送所述心跳消息至所述智能设备平台。
[0037]优选地,所述第二智能设备消息包括执行结果信息;
[0038]所述根据所述接收队列中的一个或多个第二智能设备信息,对所述智能设备平台发送的第二消息进行处理的步骤包括:
[0039]当监听到所述接收队列中的智能设备代理对象接收到所述智能设备平台发送的第二消息时,判断所述第二消息的消息类型;
[0040]当所述消息类型为控制指令时,从所述控制指令中提取控制参数;
[0041]存储所述控制参数;
[0042]将所述执行结果信息封装至执行结果消息中;
[0043]将所述执行结果消息返回所述智能设备平台;
[0044]当所述消息类型为心跳消息时,忽略所述心跳消息。
[0045]本发明实施例还公开了一种针对智能设备平台的测试装置,包括:
[0046]启动模块,用于启动一个或多个智能设备代理对象;
[0047]连接模块,用于将所述一个或多个智能设备代理对象连接智能设备平台;
[0048]通信模块,用于通过调度队列,调度所述一个或多个智能设备代理对象与所述智能设备平台之间的通信,以对所述智能设备平台进行测试。
[0049]优选地,还包括:
[0050]初始化模块,用于对所述一个或多个智能设备代理对象进行初始化处理;
[0051]其中,所述初始化处理包括从所述智能设备平台获取令牌、密钥、运行参数;
[0052]所述令牌用于封装在所述智能设备代理对象向所述智能设备平台发送的消息中,以对所述消息进行合法性校验;
[0053]所述密钥用于对所述智能设备平台向所述智能设备代理对象发送的消息进行解密;
[0054]所述运行参数包括状态上报周期、心跳周期。
[0055]优选地,还包括:
[0056]测试退出模块,用于在检测到超过预设的运行时间时,退出测试。
[0057]优选地,所述调度队列包括发送队列;
[0058]所述通信模块包括:
[0059]发送队列写入子模块,用于将所述一个或多个智能设备代理对象对应的一个或多个第一智能设备信息写入所述发送队列中;
[0060]消息上报子模块,用于根据所述发送队列中的一个或多个第一智能设备信息,上报第一消息至所述智能设备平台。
[0061 ]优选地,所述调度队列包括接收队列;
[0062]所述通信模块包括:
[0063]接收队列写入子模块,用于将所述一个或多个智能设备代理对象对应的一个或多个第二智能设备信息写入所述接收队列中;
[0064]消息处理子模块,用于根据所述接收队列中的一个或多个第二智能设备信息,对所述智能设备平台发送的第二消息进行处理。
[0065]优选地,所述第一智能设备信息包括上一次上报状态消息的上报时间、状态上报周期和设备状态信息,所述第一消息包括状态消息;
[0066]所述消息上报子模块包括:
[0067]第一时间判断单元,用于遍历所述发送队列,以判断所述第一智能设备信息中的上报时间与状态上报周期之和是否超过当前时间;若是,则调用设备状态信息封装单元;
[0068]状态消息封装单元,用于将所述状态设备信息封装至状态消息中;
[0069]状态消息上报单元,用于将所述状态消息上报至所述智能设备平台。
[0070]优选地,所述第一智能设备信息包括上一次心跳的心跳时间和心跳周期,所述第一消息包括心跳消息;
[0071 ]所述消息上报子模块包括:
[0072]第二时间判断单元,用于遍历所述发送队列,以判断所述第一智能设备信息的心跳时间与心跳周期之和是否超过当前时间;若是,则调用心跳消息上报单元;
[0073]心跳消息上报单元,用于发送所述心跳消息至所述智能设备平台。
[0074]优选地,所所述第二智能设备消息包括执行结果信息;
[0075]所述消息处理子模块包括:
[0076]消息类型判断单元,用于在监听到所述接收队列中的智能设备代理对象接收到所述智能设备平台发送的第二消息时,判断所述第二消息的消息类型;
[0077]控制参数提取单元,用于在所述消息类型为控制指令时,从所述控制指令中提取控制参数;
[0078]控制参数存储单元,用于存储所述控制参数;
[0079]执行结果消息封装单元,用于将所述执行结果信息封装至执行结果消息中;
[0080]执行结果消息返回单元,用于将所述执行结果消息返回所述智能设备平台;
[0081 ]消息忽略单元,用于在所述消息类型为心跳消息时,忽略所述心跳消息。
[0082]本发明实施例包括以下优点:
[0083]本发明实施例通过智能设备代理对象模拟真实的智能设备,正常与智能设备平台进行通信,在摆脱智能硬件束缚的同时,保证测试环境的有效性。
[0084]由于智能设备代理对象可以运行在机房的服务器,而机房能够保证长时间稳定的供电和网络,并且,测试装置是一个程序,不会有损耗和故障问题,可以保证长时间运行,有效地测试智能设备平台的稳定性。
[0085]在测试时,启动一个或多个智能设备代理对象,将一个或多个智能设备代理对象连接智能设备平台,通过调度队列,调度一个或多个智能设备代理对象与智能设备平台之间的通信,以对智能设备平台进行测试。
[0086]由于智能设备代理对象是可控的,即智能设备代理对象的信息是可控的,可以设定合法的参数、非法的参数,也可以设定合法的请求、非法的请求,可以按照智能设备自身的运行机制测试正常的流程,也可以按照非法的运行方式测试智能设备平台,测试方式多样化,有效地测试云平台的健壮性。
【附图说明】
[0087]图1是本发明的一种针对智能设备平台的测试方法实施例1的步骤流程图;
[0088]图2是本发明实施例的一种智能设备代理对象与智能设备平台之间通信的信令图;
[0089]图3是本发明的一种针对智能设备平台的测试方法实施例2的步骤流程图;
[0090]图4是本发明实施例的一种对智能设备平台进行测试的示例流程图;
[0091]图5是本发明的一种针对智能设备平台的测试装置实施例的结构框图。
【具体实施方式】
[0092]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0093]参照图1,示出了本发明的一种针对智能设备平台的测试方法实施例1的步骤流程图,具体可以包括如下步骤:
[0094]步骤101,启动一个或多个智能设备代理对象;
[0095]智能设备,可以包括智能空调、智能电饭煲、智能冰箱等智能家电,也可以包括智能沙发、智能窗帘等智能家居,还可以包括智能打印机等智能办公设备,等等,本发明实施例对此不加以限制。
[0096]这些智能设备可以通过网络连接智能设备平台,其中,该智能设备平台为独立的服务器或服务器集群,如分布式系统,可以针对连接的智能设备提供控制调度、云存储、视频播放与解码、图片识别、智能语音、安全、LBS(Locat1n Based Services,基于位置服务)等多方面的技术支持。
[0097]为使本领域技术人员更好地理解本发明实施例,在本说明书中,将智能空调的智能设备代理对象作为智能设备的智能设备代理对象的一种示例进行说明。
[0098]在本发明实施例中,智能设备代理对象,为测试装置中模拟智能设备的模块,可以连接智能设备平台,并按照智能设备与智能设备平台之间的通信协议,模拟智能设备与智能设备平台进行通信。
[0099]在一个示例中,如智能空调的智能设备代理对象,如图2所示,智能设备代理对象201模拟智能设备与智能设备平台202之间的通信可以包括:
[0100]1、智能设备代理对象201请求接入令牌(步骤2011),智能设备平台202返回令牌(步骤2021);
[0101 ] 2、智能设备代理对象201请求运行参数(如状态上报周期reportfrequency、心跳周期heartbeatfrequency)(步骤2012),智能设备平台202返回运行参数(步骤2022);
[0102]3、智能设备代理对象201请求密钥(步骤2013),智能设备平台202返回密钥(步骤2023);
[0103]4、智能设备代理对象201发送心跳(步骤2014),智能设备平台202进行心跳响应(步骤2OM);
[0104]5、智能设备代理对象201上报设备状态(步骤2015),智能设备平台202推送设备状态(步骤2025)至控制端203,如用户的手机;
[0105]6、控制端203通过智能平台202对智能设备进行远程控制(步骤2031)智能设备平台202下发控制指令(步骤2026),智能设备代理对象201反馈执行结果(步骤2016)。
[0106]由于通信的正常进行,在智能设备平台的角度看,智能设备代理对象就是智能设备。
[0107]在具体实现中,测试装置可以读取运行前配置的启动参数,该启动参数包括智能设备的数目、设备ID、平台地址、运行时间等参数。
[0108]在运行时,可以创建与该数目相同的线程,每个线程中启动一个智能设备代理对象,并配置相应的设备ID。
[0109]步骤102,将所述一个或多个智能设备代理对象连接智能设备平台;
[0110]在本发明实施例中,可以对每个智能设备代理对象与智能设备平台建立一个连接,连接至平台地址,使得智能设备代理对象与智能设备平台可以进行通信,以对智能设备平台进行测试。
[0?11 ]以socket作为连接的示例,连接过程可以分为三个步骤:
[0112](I)服务器监听:是服务器端(智能设备平台)套接字并不定位具体的客户端(智能设备代理对象)套接字,而是处于等待连接的状态,实时监控网络状态。
[0113](2)客户端请求:是指由客户端(智能设备代理对象)的套接字提出连接请求,要连接的目标是服务器端(智能设备平台)的套接字。
[0114]为此,客户端(智能设备代理对象)的套接字首先描述它要连接的服务器(智能设备平台)的套接字,指出服务器端(智能设备平台)套接字的地址和端口号,然后就向服务器端(智能设备平台)套接字提出连接请求。
[0115](3)连接确认:是指当服务器端(智能设备平台)套接字监听到或者说接收到客户端(智能设备代理对象)套接字的连接请求,它就响应客户端(智能设备代理对象)套接字的请求,建立一个新的线程,把服务器端(智能设备平台)套接字的描述发给客户端(智能设备代理对象),一旦客户端(智能设备代理对象)确认了此描述,连接就建立好了。而服务器端(智能设备平台)套接字继续处于监听状态,继续接收其他客户端(智能设备代理对象)套接字的连接请求。
[0116]为了防止在通信过程中智能设备代理对象的消息发送过慢,socket连接在初始化时可以采用非阻塞模式,即执行发送或接受操作时需要将线程挂起,等待完成后返回。
[0117]步骤103,通过调度队列,调度所述一个或多个智能设备代理对象与所述智能设备平台之间的通信,以对所述智能设备平台进行测试。
[0118]在具体实现中,测试装置可以将智能设备代理对象的智能设备信息写入调度队列,统一对智能设备代理对象与智能设备平台之间的通信进行调度,以实现对智能设备平台的测试。
[0119]在本发明的一个实施例中,所述调度队列包括发送队列,步骤103可以包括如下子步骤:
[0120]子步骤Sll,将所述一个或多个智能设备代理对象对应的一个或多个第一智能设备信息写入所述发送队列中;
[0121]子步骤S12,根据所述发送队列中的一个或多个第一智能设备信息,上报第一消息至所述智能设备平台。
[0122]在本发明实施例中,可以在发送队列中插入一条智能设备的记录信息(即第一智能设备信息),其数据结构为:
[0123](DID,reporttime ,reportfrequency,heartbeattime,heartbeatfrequency,status,t oken, key, socket)
[0124]其中,DID代表设备ID,rep0rttime代表上一次上报状态消息的上报时间,初始值为当前时间,reportfrequency代表状态上报周期,heartbeattime代表上一次心跳的心跳时间,初始值为当前时间,heartbeatfrequency代表心跳周期,status代表设备状态信息,token代表令牌,key代表密钥,socket代表智能设备代理对象与智能设备平台之间的连接。
[0125]发送队列属于主动流程,可以采用循环遍历的方式,例如,每秒执行一次扫描,确定是否上报第一消息至智能设备平台。
[0126]在一个示例中,第一消息包括状态消息,即智能设备代理对象上报智能设备的状态至智能设备平台。
[0127]在此示例中,可以遍历发送队列,以判断第一智能设备信息中的上报时间与状态上报周期之和是否超过当前时间。
[0128]若是,则读取设备状态信息(如空调的模式、温度、风速等信息),将状态设备信息封装至状态消息中,将状态消息上报至智能设备平台。
[0129]假设当前时间为T,针对每个智能设备代理对象进行判断,当满足:
[0130]reportt ime+reportfrequency ^ T
[0131]即超过状态上报周期,则查找该第一智能设备信息所属的智能设备代理对象的连接,如socket连接,将设备状态消息上报到云端,并更新reporttime,上报内容包括(DID,status, token)。
[0132]每次遍历发送队列中的所有智能设备代理对象,全部执行完毕后进入下一次循环。
[0133]需要说明的是,若测试与智能设备平台的交互流程(即稳定性),则可以设定上报的status为合法的值,状态消息为合法的数据结构;若测试智能设备平台的对异常请求的处理(即健壮性),则可以设定上报的status为非法的值,如长度超长、非约定的值(包括空值)等等,状态消息为非法的数据结构。
[0134]在另一个示例中,第一消息包括心跳消息,即智能设备代理对象上报心跳至智能设备平台。
[0135]在此示例中,遍历发送队列,以判断第一智能设备信息的心跳时间与心跳周期之和是否超过当前时间,若是,则发送心跳消息至智能设备平台。
[0136]假设当前时间为T,针对每个智能设备代理对象进行判断,当满足:
[0137]heartbeatt ime+heartbeatfrequency ^ T
[0138]即超过心跳周期,则查找第一智能设备信息所属的智能设备代理对象的连接,将发送心跳消息到智能设备平台,并更新heartbeattime。
[0139]每次遍历发送队列中的所有智能设备代理对象,全部执行完毕后进入下一次循环。
[0140]需要说明的是,若测试与智能设备平台的交互流程(即稳定性),则可以设定心跳消息为合法的数据结构;若测试智能设备平台的对异常请求的处理(即健壮性),则可以设定心跳消息为非法的数据结构。
[0141]在本发明的一个实施例中,所述调度队列包括接收队列,步骤103可以包括如下子步骤:
[0142]子步骤S21,将所述一个或多个智能设备代理对象对应的一个或多个第二智能设备信息写入所述接收队列中;
[0143]子步骤S22,根据所述接收队列中的一个或多个第二智能设备信息,对所述智能设备平台发送的第二消息进行处理。
[0144]在本发明实施例中,可以在接收队列中插入一条智能设备的记录信息(即第而智能设备信息),其数据结构为:
[0145](DID,result,token,key, socket)
[0146]其中,DID代表设备ID,result代表执行结果信息,token代表令牌,key代表密钥,socket代表智能设备代理对象与智能设备平台之间的连接。
[0147]由于每个智能设备代理对象接收到智能设备平台发送控制指令的时间不可控,接收队列属于被动流程。
[0148]此外,接收队列需要接受大量socket连接的消息,因此,测试装置可以采用epoll多路复用机制实现接收队列。
[OH9] epoll是Linux下一种多路复用I/O机制,能够同时监控多个socket连接,当智能设备平台有消息下发到某个智能设备代理对象的socket连接时,会触发EP0LLIN事件,表示对应的socket连接有新的数据可以读,从而能够实现同时模拟多个智能设备连接到智能设备
-ψ-1 口 O
[0150]当然,除了epoll之外,还可以采用poll和select等机制实现接收队列,本发明实施例对此不加以限制。
[0151]在具体实现中,当监听到接收队列中的智能设备代理对象接收到智能设备平台发送的第二消息时,判断第二消息的消息类型。
[0152]进一步而言,当智能设备代理对象的socket收到智能设备平台下发的消息时,会触发EP0LLIN事件,表示一些socket连接存在待接收的数据,此时调用data = connect 1ns[fd].recv(512)接收数据,如果数据是以〃id〃:201开始并包含seq和com字段时,则说明这个是一条远程控制指令,如果数据的内容为空,则说明这个是一条心跳消息。
[0153]当消息类型为控制指令时,从控制指令中提取控制参数。
[0154]在一个示例中,若智能空调A的智能设备代理对象接收到智能设备平台下发的控制指令如下:
[0155]HS{"com":"DrfEMbze55svQPM/GVIQMKWQhu+8ZZMbUBgi6KBHcxH ClroVb2/BX4ztypCL0ty4jox0UNDnBhNYNR8NUDUlSQ = = ","id": 201 , "seq": 443095636 }c798fdfa03c46b33
[0156]其中,cmd字段(Srcom")为控制指令,在云平台的数据库会记录这个控制指令和对应的智能空调A。
[0157]若解析除控制参数,则可以存储控制参数至磁盘文件中,以与智能设备平台的控制参数进行比较,检测智能设备平台是否下发正确。
[0158]此外,读取执行结果信息,将执行结果信息封装至执行结果消息中,并查找该智能设备代理对象的连接,将执行结果消息返回智能设备平台,上报内容包括(DID,reSult,token)ο
[0159]需要说明的是,控制指令一般是一个HTTP(Hypertext transfer protocol,超文本传送协议)请求,测试过程中可以使用浏览器或HTTP发送工具来完成的(如jmeter)。
[0160]若测试与智能设备平台的交互流程(即稳定性),则可以设定上报的result为合法的值,执行结果消息为合法的数据结构;若测试智能设备平台的对异常请求的处理(即健壮性),则可以设定上报的result为非法的值,如长度超长、非约定的值(包括空值)等等,执行结果消息为非法的数据结构。
[0161]此外,result可以为一个固定的值(包括合法的值,也可以为非法的值),每个智能设备代理对象具有一个result result也可以为多个值(包括合法的值,也可以为非法的值),分别映射不同的控制参数,映射关系存储在一个公共的区域提供给每个智能设备代理对象,当解析除控制参数时,则可以依据该映射关系找到对应的result。
[0162]当消息类型为心跳消息时,忽略该心跳消息,即可以不进行任何处理。
[0163]本发明实施例通过智能设备代理对象模拟真实的智能设备,正常与智能设备平台进行通信,在摆脱智能硬件束缚的同时,保证测试环境的有效性。
[0164]由于智能设备代理对象可以运行在机房的服务器,而机房能够保证长时间稳定的供电和网络,并且,测试装置是一个程序,不会有损耗和故障问题,可以保证长时间运行,有效地测试智能设备平台的稳定性。
[0165]在测试时,启动一个或多个智能设备代理对象,将一个或多个智能设备代理对象连接智能设备平台,通过调度队列,调度一个或多个智能设备代理对象与智能设备平台之间的通信,以对智能设备平台进行测试。
[0166]由于智能设备代理对象是可控的,即智能设备代理对象的信息是可控的,可以设定合法的参数、非法的参数,也可以设定合法的请求、非法的请求,可以按照智能设备自身的运行机制测试正常的流程,也可以按照非法的运行方式测试智能设备平台,测试方式多样化,有效地测试云平台的健壮性。
[0167]参照图3,示出了本发明的一种针对智能设备平台的测试方法实施例2的步骤流程图,具体可以包括如下步骤:
[0168]步骤301,启动一个或多个智能设备代理对象;
[0169]步骤302,将所述一个或多个智能设备代理对象连接智能设备平台;
[0170]步骤303,对所述一个或多个智能设备代理对象进行初始化处理;
[0171]在具体实现中,初始化处理包括从智能设备平台获取令牌token、密钥key、运行参数。
[0172]其中,令牌token用于封装在智能设备代理对象向智能设备平台发送的消息中,如设备状态消息、心跳消息、执行结果消息等,以对该消息进行合法性校验;
[0173]密钥key为动态密钥,用于对智能设备平台向智能设备代理对象发送的消息进行解密,如控制指令、心跳消息等;
[0174]运行参数包括状态上报周期reportfrequency、心跳周期heartbeatfrequency。
[0175]步骤304,通过调度队列,调度所述一个或多个智能设备代理对象与所述智能设备平台之间的通信,以对所述智能设备平台进行测试;
[0176]步骤305,当检测到超过预设的运行时间时,退出测试。
[0177]在本发明实施例中,调度队列初始化完成后,可以记录当前时间,每次执行调度队列的任务之前或之后,可以判断当前时间是否小于启动时间与运行时间之和,若是,则表示超过预设的运行时间时,退出测试。
[0178]为使本领域技术人员更好地理解本发明实施例,以下通过具体的示例来说明本发明实施例中智能设备平台的测试方法。
[0179]如图4所示,在测试装置运行之前,可以配置启动参数(步骤401),即智能设备的数目N( N为正整数)、设备ID、平台地址、运行时间。
[0180]对调度队列(如发送队列、接收对象)进行初始化(步骤402),并启动N个线程,每个线程中启动一个智能设备代理对象,并配置相应的ID(步骤403)。
[0181 ] 将智能设备代理对象通过socket连接至该平台地址,并分别进行初始化(步骤404),如获取令牌token、密钥key、运行参数(如状态上报周期reportfrequency、心跳周期heartbeatfrequency)。
[0182]将智能设备代理对象的智能设备信息加入调度队列中(步骤405),统一对出列调度队列(步骤406),实现统一对智能设备代理对象与智能设备平台之间的通信进行调度,以实现对智能设备平台的健壮性、稳定性进行测试。
[0183]如果满足结束条件(步骤407),如超过运行时间,则结束测试,否则继续进行调度。
[0184]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0185]参照图5,示出了本发明的一种针对智能设备平台的测试装置实施例的结构框图,具体可以包括如下模块:
[0186]启动模块501,用于启动一个或多个智能设备代理对象;
[0187]连接模块502,用于将所述一个或多个智能设备代理对象连接智能设备平台;
[0188]通信模块503,用于通过调度队列,调度所述一个或多个智能设备代理对象与所述智能设备平台之间的通信,以对所述智能设备平台进行测试。
[0189]在本发明的一个实施例中,该装置还可以包括如下模块:
[0190]初始化模块,用于对所述一个或多个智能设备代理对象进行初始化处理;
[0191]其中,所述初始化处理包括从所述智能设备平台获取令牌、密钥、运行参数;
[0192]所述令牌用于封装在所述智能设备代理对象向所述智能设备平台发送的消息中,以对所述消息进行合法性校验;
[0193]所述密钥用于对所述智能设备平台向所述智能设备代理对象发送的消息进行解密;
[0194]所述运行参数包括状态上报周期、心跳周期。
[0195]在本发明的一个实施例中,该装置还可以包括如下模块:
[0196]测试退出模块,用于在检测到超过预设的运行时间时,退出测试。
[0197]在本发明的一个实施例中,所述调度队列包括发送队列;
[0198]所述通信模块503可以包括如下子模块:
[0199]发送队列写入子模块,用于将所述一个或多个智能设备代理对象对应的一个或多个第一智能设备信息写入所述发送队列中;
[0200]消息上报子模块,用于根据所述发送队列中的一个或多个第一智能设备信息,上报第一消息至所述智能设备平台。
[0201 ]在本发明的一个实施例中,所述调度队列包括接收队列;
[0202]所述通信模块503可以包括如下子模块:
[0203]接收队列写入子模块,用于将所述一个或多个智能设备代理对象对应的一个或多个第二智能设备信息写入所述接收队列中;
[0204]消息处理子模块,用于根据所述接收队列中的一个或多个第二智能设备信息,对所述智能设备平台发送的第二消息进行处理。
[0205]在本发明的一个实施例中,所述第一智能设备信息包括上一次上报状态消息的上报时间、状态上报周期和设备状态信息,所述第一消息包括状态消息;
[0206]所述消息上报子模块可以包括如下单元:
[0207]第一时间判断单元,用于遍历所述发送队列,以判断所述第一智能设备信息中的上报时间与状态上报周期之和是否超过当前时间;若是,则调用设备状态信息封装单元;
[0208]状态消息封装单元,用于将所述状态设备信息封装至状态消息中;
[0209]状态消息上报单元,用于将所述状态消息上报至所述智能设备平台。
[0210]在本发明的一个实施例中,所述第一智能设备信息包括上一次心跳的心跳时间和心跳周期,所述第一消息包括心跳消息;
[0211]所述消息上报子模块可以包括如下单元:
[0212]第二时间判断单元,用于遍历所述发送队列,以判断所述第一智能设备信息的心跳时间与心跳周期之和是否超过当前时间;若是,则调用心跳消息上报单元;
[0213]心跳消息上报单元,用于发送所述心跳消息至所述智能设备平台。
[0214]在本发明的一个实施例中,所所述第二智能设备消息包括执行结果信息;
[0215]所述消息处理子模块可以包括如下单元:
[0216]消息类型判断单元,用于在监听到所述接收队列中的智能设备代理对象接收到所述智能设备平台发送的第二消息时,判断所述第二消息的消息类型;
[0217]控制参数提取单元,用于在所述消息类型为控制指令时,从所述控制指令中提取控制参数;
[0218]控制参数存储单元,用于存储所述控制参数;
[0219]执行结果消息封装单元,用于将所述执行结果信息封装至执行结果消息中;
[0220]执行结果消息返回单元,用于将所述执行结果消息返回所述智能设备平台;
[0221 ]消息忽略单元,用于在所述消息类型为心跳消息时,忽略所述心跳消息。
[0222]对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0223]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0224]本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0225]本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0226]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0227]这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0228]尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0229]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0230]以上对本发明所提供的一种针对智能设备平台的测试方法和一种针对智能设备平台的测试装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【主权项】
1.一种针对智能设备平台的测试方法,其特征在于,包括: 启动一个或多个智能设备代理对象; 将所述一个或多个智能设备代理对象连接智能设备平台; 通过调度队列,调度所述一个或多个智能设备代理对象与所述智能设备平台之间的通信,以对所述智能设备平台进行测试。2.根据权利要求1所述的方法,其特征在于,还包括: 对所述一个或多个智能设备代理对象进行初始化处理; 其中,所述初始化处理包括从所述智能设备平台获取令牌、密钥、运行参数; 所述令牌用于封装在所述智能设备代理对象向所述智能设备平台发送的消息中,以对所述消息进行合法性校验; 所述密钥用于对所述智能设备平台向所述智能设备代理对象发送的消息进行解密; 所述运行参数包括状态上报周期、心跳周期。3.根据权利要求1所述的方法,其特征在于,还包括: 当检测到超过预设的运行时间时,退出测试。4.根据权利要求1或2或3所述的方法,其特征在于,所述调度队列包括发送队列; 所述通过调度队列,调度所述一个或多个智能设备代理对象与所述智能设备平台之间的通信,以对所述智能设备平台进行测试的步骤包括: 将所述一个或多个智能设备代理对象对应的一个或多个第一智能设备信息写入所述发送队列中; 根据所述发送队列中的一个或多个第一智能设备信息,上报第一消息至所述智能设备-ψ-1 口 O5.根据权利要求1或2或3所述的方法,其特征在于,所述调度队列包括接收队列; 所述通过调度队列,调度所述一个或多个智能设备代理对象与所述智能设备平台之间的通信,以对所述智能设备平台进行测试的步骤包括: 将所述一个或多个智能设备代理对象对应的一个或多个第二智能设备信息写入所述接收队列中; 根据所述接收队列中的一个或多个第二智能设备信息,对所述智能设备平台发送的第二消息进行处理。6.根据权利要求4所述的方法,其特征在于, 所述第一智能设备信息包括上一次上报状态消息的上报时间、状态上报周期和设备状态信息,所述第一消息包括状态消息; 所述根据所述发送队列中的一个或多个第一智能设备信息,上报第一消息至所述智能设备平台的步骤包括: 遍历所述发送队列,以判断所述第一智能设备信息中的上报时间与状态上报周期之和是否超过当前时间; 若是,则将所述状态设备信息封装至状态消息中; 将所述状态消息上报至所述智能设备平台。7.根据权利要求4所述的方法,其特征在于, 所述第一智能设备信息包括上一次心跳的心跳时间和心跳周期,所述第一消息包括心跳消息; 所述根据所述发送队列中的一个或多个第一智能设备信息,上报第一消息至所述智能设备平台的步骤包括: 遍历所述发送队列,以判断所述第一智能设备信息的心跳时间与心跳周期之和是否超过当前时间; 若是,则发送所述心跳消息至所述智能设备平台。8.根据权利要求5所述的方法,其特征在于, 所述第二智能设备消息包括执行结果信息; 所述根据所述接收队列中的一个或多个第二智能设备信息,对所述智能设备平台发送的第二消息进行处理的步骤包括: 当监听到所述接收队列中的智能设备代理对象接收到所述智能设备平台发送的第二消息时,判断所述第二消息的消息类型; 当所述消息类型为控制指令时,从所述控制指令中提取控制参数; 存储所述控制参数; 将所述执行结果信息封装至执行结果消息中; 将所述执行结果消息返回所述智能设备平台; 当所述消息类型为心跳消息时,忽略所述心跳消息。9.一种针对智能设备平台的测试装置,其特征在于,包括: 启动模块,用于启动一个或多个智能设备代理对象; 连接模块,用于将所述一个或多个智能设备代理对象连接智能设备平台; 通信模块,用于通过调度队列,调度所述一个或多个智能设备代理对象与所述智能设备平台之间的通信,以对所述智能设备平台进行测试。10.根据权利要求9所述的装置,其特征在于,还包括: 初始化模块,用于对所述一个或多个智能设备代理对象进行初始化处理; 其中,所述初始化处理包括从所述智能设备平台获取令牌、密钥、运行参数; 所述令牌用于封装在所述智能设备代理对象向所述智能设备平台发送的消息中,以对所述消息进行合法性校验; 所述密钥用于对所述智能设备平台向所述智能设备代理对象发送的消息进行解密; 所述运行参数包括状态上报周期、心跳周期。
【文档编号】H04L29/08GK105959174SQ201610228670
【公开日】2016年9月21日
【申请日】2016年4月13日
【发明人】杨德顺, 朱建坤, 王维, 于芝涛
【申请人】青岛海信传媒网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1