一种APP测试仿真系统和物联网仿真测试方法与流程

文档序号:25991643发布日期:2021-07-23 21:03阅读:170来源:国知局
一种APP测试仿真系统和物联网仿真测试方法与流程

本发明涉及物联网技术领域,特别是一种app测试仿真系统和物联网仿真测试方法。



背景技术:

目前物联网应用中,主要解决是南端:物的边缘端进行数据采集,然后在北端:云端与各服务器进行数据交互的任务,其中包含部分边缘端数据处理和计算的工作。

数据采集的难点是协议总多,需要适配有线、无线的协议,如wifi、蓝牙、lora、tcp/udp、modbus、opcua、iec101/104、dnp3、s7、mewtocol、fx、melsec、fins、profibus、ethernet等不同协议。

而云端物联网服务器对接,也有总多的paas标准和接口,如:aws、azure、ibm、阿里云、腾讯云、百度云、华为云、移动、联通、电信等。每个平台都会支持http、mqtt协议,部分支持coap等额外协议。但是每个平台接入的鉴权规则完全不同,也拥有不同的报文格式要求。

每一个应用编写完毕后,需要有对应设备进行边缘数据采集的功能验证,也得有云端对应账号进行数据收发功能验证。

南端问题:设备类型和协议众多,经常需要外借设备,甚至到现场调试。

北端问题:每个平台都需要对应有付费账号,才能进行调试。如果开发人员流动较大,也存在安全问题。由于协议、鉴权规则、报文格式等差异,每个应用开发后需要验证功能,不能完全复用代码。

测试问题:如果出现问题,需要在现场设备连线调试,导致开发周期较长。测试人员,也无法长期进行压力或者回归测试。也不利于软件的持续发布的工作开展。

cn201811495155.1公开了物联网云平台的测试方法和装置。所述方法包括:获取物联网中各业务系统的接口配置信息;获取与各场景对应的场景条件;根据所述接口配置信息和场景条件生成测试规则;在测试时,根据选取的测试场景和所述测试规则生成相应的测试用例,根据生成的测试用例对所述物联网云平台进行测试。

该方法仅解决了北端的连接问题,其无法实现仿真测试的目的。



技术实现要素:

本发明的目的是提供一种app测试仿真系统,该系统可模拟南北端的协议接口。

在物联网应用(app)开发完毕后,可以自动适配南北端需要用到的协议,省去真实物理设备联调的步骤。同时也能统一管理各个云平台的账号,隐藏对云平台的管理权限,减少安全隐患。测试人员,也有一个长期稳定的环境,进行压力测试或者版本回归验证。最后,能打通持续发布的流程,让开发工作更加自动化。

同时,本发明还公开了一种物联网仿真测试方法。

本发明提供的技术方案为:一种app测试仿真系统,包括如下模块:

设备管理模块:用于接收app发送的南端需求和北端需求、根据南端需求生成虚拟协议服务的名字和虚拟协议服务所对应的虚拟设备的id并发送给虚拟协议服务生成模块、将北端需求发送给账号管理模块;

虚拟协议服务生成模块:用于根据拟协议服务的名字生成虚拟协议服务、根据虚拟设备的id生成虚拟设备;将与各虚拟协议服务进行连接的第一连接信息发送给app;

账号管理模块:用于保存连接至各云平台的第二连接信息,并根据北端需求选择对应的第二连接信息发送给app和测试模块;

测试模块:用于生成模拟数据、将模拟数据发送给虚拟设备;从云平台上获取测试结果,将模拟数据和测试进行比对,得到比对结果;

所述模拟数据、测试结果中均含有虚拟设备的id、云平台的地址。

在上述的app测试仿真系统中,所述测试模块包括如下子模块:

程序运行子模块:用于运行一个或多个app;

模拟数据生成子模块:用于生成模拟数据并发送给虚拟设备;

测试结果收集子模块:用于根据账号管理模块发送的第二连接信息与云平台建立连接并从云平台上获取测试结果;

比对子模块:用于将模拟数据和测试结果进行比对,生成比对结果。

在上述的app测试仿真系统中,所述第二连接信息通过json格式描述并存储,其中证书部分经过base64编码后变成字符串格式。

在上述的app测试仿真系统中,含一个或多个实例,每个实例均具有设备管理模块、虚拟协议服务生成模块、账号管理模块、测试模块。

在上述的app测试仿真系统中,所述实例在linux系统上运行。

同时,本发明还公开了一种运行于如上任一所述的仿真系统的物联网仿真测试方法,包括如下步骤:

步骤1:测试模块启动app,所述app基于预设或基于用户设定发送其南端需求和北端需求;

步骤2:设备管理模块接收app发送的南端需求和北端需求、根据南端需求生成虚拟协议服务的名字和虚拟协议服务所对应的虚拟设备的id并发送给虚拟协议服务生成模块、将北端需求发送给账号管理模块;

步骤3:虚拟协议服务生成模块根据拟协议服务的名字生成虚拟协议服务、根据虚拟设备的id生成虚拟设备;将与各虚拟协议服务进行连接的第一连接信息发送给app;

步骤4:账号管理模块根据北端需求选择对应的用于与云平台建立连接的第二连接信息发送给app和测试模块;

步骤5:app根据第一连接信息和第二连接信息与虚拟协议服务和云平台建立连接;

步骤6:测试模块生成模拟数据、将模拟数据发送给虚拟设备;从云平台上获取测试结果,将模拟数据和测试进行比对,得到比对结果。

在上述的物联网仿真测试方法中,还包括步骤7:收集比对结果,生成测试报告。

在上述的物联网仿真测试方法中,所述app为一个或多个;所述第二连接信息包括deviceid、primarykey、设备用户密码、连接证书中的一种或多种。

在上述的物联网仿真测试方法中,在linux系统的vm或者docker环境中建立一个或多个实例,每个实例运行所述物联网仿真测试方法。

在上述的物联网仿真测试方法中,所述第一连接信息为tcp信息或串口信息。

本发明在采用上述技术方案后,其具有的有益效果为:

本方案通过电脑进行各种南端协议的模拟,就可以摆脱需要现有设备进行调试的要求,克服一些大型设备要到现场调试的困难(如机床、仪表中心)。

把所有云平台的操作账号进行统一管理,屏蔽具体的连接信息,提供统一的service作为某平台的连接信息提供者。这样既能减少开发人员工作,也能有效避免信息泄露。

一旦电脑上能完成南北端的协议对接后,就能通过vm或者docker进行有效备份和复制。测试人员可以在随意电脑上快速部署测试环境,也能长时间进行测试的工作。同时能结合持续发布的流程,完善自动化流程不足的地方。

通过这套系统的部署,可以大幅提升开发和测试效率,减少对真实设备依赖。增强信息安全的同时,协助测试人员完成自动测试环境的落地。

附图说明

图1是本发明的实施例1的南端建立连接的示意图;

图2是本发明的实施例1的北端建立连接的示意图;

图3是本发明的实施例1的测试过程示意图;

图4是本发明的实施例2的流程图。

具体实施方式

下面结合具体实施方式,对本发明的技术方案作进一步的详细说明,但不构成对本发明的任何限制。

实施例1:

如图1-3所示,一种app测试仿真系统,包括如下模块:

设备管理模块:用于接收app发送的南端需求和北端需求、根据南端需求生成虚拟协议服务的名字和虚拟协议服务所对应的虚拟设备的id并发送给虚拟协议服务生成模块、将北端需求发送给账号管理模块;

虚拟协议服务生成模块:用于根据拟协议服务的名字生成虚拟协议服务、根据虚拟设备的id生成虚拟设备;将与各虚拟协议服务进行连接的第一连接信息发送给app;

账号管理模块:用于保存连接至各云平台的第二连接信息,并根据北端需求选择对应的第二连接信息发送给app和测试模块;

测试模块:用于生成模拟数据、将模拟数据发送给虚拟设备;从云平台上获取测试结果,将模拟数据和测试进行比对,得到比对结果;

所述模拟数据、测试结果中均含有虚拟设备的id、云平台的地址。

其运行过程如下:

app运行,用户可设定大致需要多少个虚拟协议服务,每个虚拟协议服务要下挂多少虚拟设备,虚拟设备需要把数据发送到哪些云平台,即南端需求和北端需求。

app会通过固定端口将南端需求和北端需求广播出去,设备管理模块收到南端需求和北端需求后会进一步处理,具体来说,设备管理模块收到南端需求后会生成虚拟协议服务的名字和虚拟协议服务所对应的虚拟设备的id并发送给虚拟协议服务生成模块;虚拟协议服务的名字比如modbusservice、s7service等;设备管理模块在将北端需求发送到账号管理模块的同时会附虚拟设备的id。

虚拟协议服务生成模块生成虚拟协议服务、虚拟设备;将与各虚拟协议服务进行连接的第一连接信息发送给app;

比如第一连接信息对应的虚拟协议服务是modbus,则第一连接信息可为2种硬件接口,tcp和串口

tcp信息:南端子设备的ip地址,以及点表(设备上要采集数据的地址和命令字)

串口信息:串口号、波特率、停止位、奇偶校验,以及点表。

app可根据第一连接信息建立和虚拟协议服务的连接;南端的连接自此打通。

账号管理模块根据北端需求选择对应的第二连接信息发送给app和测试模块;

每个云平台都有各自的账号密码,如果都由开发人员登录操作,容易造成信息安全问题。

通过账号登录平台的目的,是按照各个平台的规则,获取到连接需要的信息。比如deviceid、primarykey、设备用户密码、连接证书等信息。只有拿到这些信息,才能让设备连接上平台。

本发明中,如果需要获取这些信息,可以通过管理员统一获取后,保存在账号管理模块中。那么就可以避免开发人员重复学习工作,以及避免信息泄露。通过统一的账号管理模块提供连接的信息给被测应用app。

所以管理员会在数据库建立后,根据各个平台的各个协议,建立一批设备的连接信息,然后保存在数据库中。

各个平台连接的信息,是根据不同平台不同的协议来决定。

比如通过mqtt协议连接azure,那就是返回azureiothub的url,mqtt连接要用的用户名和密码和端口号。

如果通过https协议连接阿里云,那就是返回阿里云的iot平台url,token和端口号,还有用作建立tls的证书。

所有信息都通过json格式描述,其中证书部分经过base64编码后变成字符串格式。

自此app的北端连接打通。

当app的南端连接和北端连接都打通后,就可以对app进行相关测试,测试由测试模块进行,测试模块包括如下子模块:

程序运行子模块:用于运行一个或多个app;

模拟数据生成子模块:用于生成模拟数据并发送给虚拟设备;

测试结果收集子模块:用于根据账号管理模块发送的第二连接信息与云平台建立连接并从云平台上获取测试结果;

比对子模块:用于将模拟数据和测试结果进行比对,生成比对结果。

虚拟数据一般含虚拟设备的id以及云平台的地址,虚拟数据经虚拟设备通过虚拟协议服务发送至app,app发送至云平台。

然后测试结果收集子模块会通过第二连接信息和云平台建立连接,获取云平台收到的数据即测试结果。

比对子模块将测试结果和模拟数据进行比对,判断数据是否丢失、变化等情况。

最后可根据上述比对结果生成针对的模拟环境的测试报告。

在本系统中,含一个或多个实例,每个实例均具有设备管理模块、虚拟协议服务生成模块、账号管理模块、测试模块,所述实例在linux系统上运行。

在现有技术中的物联网场景下,应用要下载到对应硬件设备上,那就要求自动测试系统有通过usb、网线或者其他方式(不同硬件设备留出的接口不一样),实现自动下载的功能。同时要在搭配真实南端设备的情况下,才能自动运行应用app的测试。这在协议总多和设备类型总多的情况下,是很难都能满足的。

通过上述方法,通过在pc上搭建linux的vm或者docker环境,应用在上面运行。这样也可以统一使用一套的下载方式,而且不需要搭配真实的南端设备,通过模拟协议进行。

当测试发现问题后,也能克服目前需要样机或者到现场调试的缺点。直接在vm/docker下就可以进行调试和问题跟踪。

本发明的优势在于:通过电脑进行各种南端协议的模拟,就可以摆脱需要现有设备进行调试的要求,克服一些大型设备要到现场调试的困难(如机床、仪表中心)。

把所有云平台的操作账号进行统一管理,屏蔽具体的连接信息,提供统一的service作为某平台的连接信息提供者。这样既能减少开发人员工作,也能有效避免信息泄露。

一旦电脑上能完成南北端的协议对接后,就能通过vm或者docker进行有效备份和复制。测试人员可以在随意电脑上快速部署测试环境,也能长时间进行测试的工作。同时能结合持续发布的流程,完善自动化流程不足的地方。

通过这套系统的部署,可以大幅提升开发和测试效率,减少对真实设备依赖。增强信息安全的同时,协助测试人员完成自动测试环境的落地。

实施例2

参考图4,一种运行于实施例1所述的仿真系统的物联网仿真测试方法,包括如下步骤:

步骤1:测试模块启动app,所述app基于预设或基于用户设定发送其南端需求和北端需求;

步骤2:设备管理模块接收app发送的南端需求和北端需求、根据南端需求生成虚拟协议服务的名字和虚拟协议服务所对应的虚拟设备的id并发送给虚拟协议服务生成模块、将北端需求发送给账号管理模块;

步骤3:虚拟协议服务生成模块根据拟协议服务的名字生成虚拟协议服务、根据虚拟设备的id生成虚拟设备;将与各虚拟协议服务进行连接的第一连接信息发送给app;

步骤4:账号管理模块根据北端需求选择对应的用于与云平台建立连接的第二连接信息发送给app和测试模块;

步骤5:app根据第一连接信息和第二连接信息与虚拟协议服务和云平台建立连接;

步骤6:测试模块生成模拟数据、将模拟数据发送给虚拟设备;从云平台上获取测试结果,将模拟数据和测试进行比对,得到比对结果。

步骤7:收集比对结果,生成测试报告。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其它的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1