本发明涉及物联网测试领域,具体涉及一种物联网仿真测试平台。
背景技术:
随着物联网技术的日益完善,如何应对大数量级的物联网设备接入,在全部设备全部就位之前,对链路进行性能和稳定性的压测,成为物联网测试行业的一大挑战。
现有的仿真系统,如南京网元通信技术有限公司(申请号为cn107819645a)的《一种基于软件仿真的物联网测试方法》,通过ip承载网物理接入,以软件方式,仿真移动网络核心网网元,实现了物联网到服务端的连通性模拟,如:以软件方式,仿真移动网络核心网网元(pcu/rnc/enodeb),通过标准接口(gb、iu-ps、ltes1)接入现网网元(sgsn、sgw),仿真2g/3g/4g物联网用户,使用业务协议栈构造技术,从下一层网元开始发起测试,激活物联网专网apn(accesspointname)并主动发起网络业务过程(如attach、http、ping、tcpping、数据专线业务等),实时监测物联网业务质量。
基于上述仿真系统可知:现有仿真监测依赖硬件设备,是基于真实终端的前提条件下的测试,不适合硬件未全部到位阶段的纯软件仿真测试;测试场景是基于真实硬件的规模,场景设计不够灵活。
技术实现要素:
本发明所要解决的技术问题是提供一种物联网仿真测试平台,通过模拟协议来实现物联网设备的模拟,一方面大大降低了前期测试的成本;另一方面通过仿真的手段实现了将测试工作提前进行,场景设计灵活。
本发明解决上述技术问题的技术方案如下:一种物联网仿真测试平台,所述物联网仿真测试平台通过模拟协议来实现物联网设备的模拟,其包括采用通讯框架结合springboot编程框架构建而成的核心层、搭建在所述核心层上的服务层以及基于mysql搭建在所述所述核心层下的数据库层,所述服务层通过所述核心层与所述数据库层进行数据交互;
所述服务层用于管理物联网仿真测试的功能项事务,且当调用一个方法时,所述服务层中的多个功能项的pojo及其交互在一个事务下执行;
所述数据库层用于采用filesystem进行文件的存储和管理,且采用springhibernate数据持久层和javaio流进行数据的访问。
本发明的有益效果是:本发明利用通讯框架,结合springboot和mysql的相当成熟编程及数据库技术,建立一整套功能齐全的仿真测试平台;通过模拟协议来实现物联网设备的模拟,一方面大大降低了前期测试的成本;另一方面通过仿真的手段实现了将测试工作提前进行,场景设计灵活;另外,采用合理的分层结构,降低系统耦合,提高拓展性。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述服务层的功能项包括协议管理模块,所述协议管理模块用于新增、修改、删除和查看协议。
进一步,所述服务层的功能项包括设备管理模块,所述设备管理模块用于新增、修改、删除和查看模拟设备;其中,新增的模拟设备为独立的模拟设备或和用例绑定的模拟设备。
进一步,所述服务层的功能项包括数据管理模块,所述数据管理模块用于生成、导入、修改、删除和校验仿真数据。
采用上述进一步方案的有益效果是:利用数据管理模块,实现仿真数据的批量生成,包括基于统计分析的仿真数据生成和基于特定场景包括物流场景、环保场景下的数据生成,使得使用者可以根据自身的需求精准地定制所需要的数据,测试场景更加贴近真实场景。
进一步,所述服务层的功能项包括用例管理模块,所述测试用例管理模块用于新增、删除、查看和修改用例,以及管理用例集。
进一步,所述服务层的功能项包括监控模块,所述监控模块用于通过代码插桩对线程池进行实时监控,并生成时序数据,输出时序数据并配置可视化的集成开源组件,且通过集成开源组件对结果进行个性化的展示,同时对关键性能指标关联报警机制。
采用上述进一步方案的有益效果是:在基于原有框架的结构下,结合代码插桩技术,拓展增加了告警监控模块,完善了平台本身测试的实时性和结果的完整性。
进一步,所述物联网仿真测试平台还包括搭建在所述服务层上的应用层,所述应用层用于负责所述物联网仿真测试平台与服务器交互。
进一步,所述物联网仿真测试平台还包括搭建在应用层上的用户层,所述用户层用于提供用户操作通道。
进一步,所述核心层具体采用mina通讯框架或netty通讯框架结合springboot编程框架构建而成。
进一步,所述数据库层和所述核心层之间设有数据持久层,所述数据持久层具体为hibernate数据持久层或mybatis数据持久层。
附图说明
图1为本发明一种物联网仿真测试平台的框架结构图;
图2协议管理模块进行新增协议的流程图;
图3为设备管理模块进行新增模拟设备的流程图;
图4为用例示意图;
图5为用例管理模块进行用例管理的流程图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,一种物联网仿真测试平台,所述物联网仿真测试平台通过模拟协议来实现物联网设备的模拟,其包括采用mina通讯框架结合springboot编程框架构建而成的核心层、搭建在所述核心层上的服务层以及基于mysql搭建在所述所述核心层下的数据库层,所述服务层通过所述核心层与所述数据库层进行数据交互;
所述服务层用于管理物联网仿真测试的功能项事务,且当调用一个方法时,所述服务层中的多个功能项的pojo及其交互在一个事务下执行;
所述数据库层用于采用filesystem进行文件的存储和管理,且采用springhibernate数据持久层和javaio流进行数据的访问。
在本具体实施例中,所述物联网仿真测试平台还包括搭建在所述服务层上的应用层,所述应用层用于负责所述物联网仿真测试平台与服务器交互。所述物联网仿真测试平台还包括搭建在应用层上的用户层,所述用户层用于提供用户操作通道。所述数据库层和所述核心层之间设有数据持久层,所述数据持久层具体为hibernate数据持久层。
在其他实施例中,所述核心层还可以采用netty通讯框架结合springboot编程框架构建而成。
在其他实施例中,所述数据持久层具体还可以为mybatis数据持久层。
在本发明中:
数据库层实现仿真数据和报文数据中关系型数据存储,并通过filesystem进行仿真数据和报文数据中文件的存储和管理;数据访问主要通过springhibernate数据持久层和javaio流技术完成数据的访问。
服务层是仿真系统的功能项,每个功能的pojo(plainordinaryjavaobject)就是简单的java对象,实际就是普通javabeans;交互对于客户是隐蔽的,因此服务层保具有低耦合性;服务层代表功能项的事务单元,调用一个方法时,多个pojo及其交互就会在一个事务下执行。
应用层负责客户端与服务器交互,通常是指前端控制器。它是数据dao、service与前端view视图的枢纽,也就是架构中的action和controller;
用户层负责与前端架构的对接,提供用户操作通道。
在本发明中,所述服务层中的功能项具体包括仿真测试管理和集群管理。
仿真测试管理:
(1)所述服务层的功能项包括协议管理模块,所述协议管理模块用于新增、修改、删除和查看协议。当前系统的协议是指通信传输层协议,是国际标准的。协议管理模块的进行新增协议模板的流程如图2所示。
(2)所述服务层的功能项包括设备管理模块,所述设备管理模块用于新增、修改、删除和查看模拟设备;其中,新增的模拟设备为独立的模拟设备或和用例绑定的模拟设备。所述设备管理模块进行新增模拟设备的流程如图3所示。
(3)所述服务层的功能项包括数据管理模块,所述数据管理模块用于生成、导入、修改、删除和校验仿真数据。
数据管理模块是整个物联网仿真测试平台的核心,可以在线封装任意的应用层协议,如:hj_t212-2005,jtt808-2013,modbus等,生成各种场景的仿真数据;数据管理模块具体功能如下:
(31)仿真数据生成:
(311)根据协议图形化自动生成数据,初步满足808的北斗位置数据、modbus协议数据、212协议数据;
(312)手动生成协议数据:
(3121)物流数据生成在二维地图上通过勾画曲线方式或根据起点、终点值、频率自动生成直接生成经纬数据、其他速度、油量等参数数据通过界面弹框进行配置并可以设置生成数据的数量;
(3122)modbus数据随机生成16位、32位的随机数字即可;
(3123)212协议数据主要是环保污染物浓度数据,所有数据之和为1;通过数据模型随机生成测试数据即可。
(32)仿真数据导入:支持导入原有的数据、支持excel、sql、txt、cvs格式的文本数据。
(33)仿真数据修改:仿真数据是通过手工图形化画板生成或者函数生成的,可以通过手工修改,以符合实际场景数据仿真。
(34)仿真数据的删除:可以在界面上删除仿真数据。
(35)生成数据的校验:
(351)数据生成程序已经对生成的数据进行了校验,确保数据生成的准确性;
(352)用户还可以通过图形化方式进一步校验数据的真实性和仿真特征;如数据的阈值区间校验可以通过图形化分割线校验校准。
(4)所述服务层的功能项包括用例管理模块,所述测试用例管理模块用于新增、删除、查看和修改用例,以及管理用例集。
(41)用例新增:通过选择设备、绑定通信协议、绑定数据集合、定义数据规范以及发送设置等环节建立测试用例。
(42)用例删除:测试用例的删除;删除时,设备和协议不需要删除,仍然保留。
(43)用例查看:查看用例详情。
(44)用例修改:1)测试用例的修改;2)测试用例的编辑(数据接收和发送编程);3)修改完成立即生效。
(45)加入用例集:1)新建用例集;2)将用例加入用例集;3)支持用例重复加入同一个用例集。
(46)用例运行和停止:1)执行测试用例;2)停止单个用例;3)停止全部用例。
(47)用例集运行和停止:1)执行用例集;2)停止用例集。
(48)测试用例(集)结果:运行测试用例(集),输出运行结果(收发记录),以表单方式呈现。
用例示意图如图4所示,用例管理模块进行用例管理的流程如图5所示。
(5)所述服务层的功能项包括监控模块,所述监控模块用于通过代码插桩对线程池进行实时监控,并生成时序数据,输出时序数据并配置可视化的集成开源组件,且通过集成开源组件对结果进行个性化的展示,同时对关键性能指标关联报警机制。
本发明在基于原有框架的结构下,结合代码插桩技术,拓展增加了告警监控模块,完善了平台本身测试的实时性和结果的完整性。
(6)所述服务层的功能项包括权限管理模块,所述权限管理模块用户管理管理员和开发测试操作员的登录权限。
(7)所述服务层的功能项包括文件管理模块,所述文件管理模块用于管理物联网仿真测试平台中的的文件。
(8)所述服务层的功能项包括场景仿真管理模块,所述场景仿真管理模块用于管理仿真场景。
集群管理:
所述服务层的功能项包括集群管理包括ngix负载均衡管理和mq消息队列模块,ngix负载均衡管理和mq消息队列模块保证物联网仿真平台顺利运行。
本发明利用mina在tcp通信方面优秀的支持能力,结合springboot和mysql的相当成熟编程及数据库技术,建立一整套功能齐全的仿真测试平台;通过模拟协议来实现物联网设备的模拟,一方面大大降低了前期测试的成本;另一方面通过仿真的手段实现了将测试工作提前进行,场景设计灵活。
另外,本发明采用合理的分层结构,降低系统耦合,提高拓展性;利用springboot、mysql等相关成熟技术,保证仿真测试平台平台的稳定性和拓展性;利用数据管理模块,实现仿真数据的批量生成,包括基于统计分析的仿真数据生成和基于特定场景包括物流场景、环保场景下的数据生成,使得使用者可以根据自身的需求精准地定制所需要的数据,测试场景更加贴近真实场景。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。