中电网移动|移动中电网|高清图滚动区

对IoT应用程序进行压力测试的方法

作者:Jakob Engblom

物联网 (IoT) 将对未来的业务开展方式产生重大影响。通过实时捕获和分析传感器数据,新的商业模式将成为可能。对于许多组织而言,提供具有成本竞争力的基于使用的工业机器人合同所需的数据点数量将达到数百个。即使对于一个普通的跨国机器人制造商转型为服务提供商而言,物联网传感器和系统的全球部署也将涉及数千个传感器、网关和系统。

这些庞大的“系统系统”将对测试人员提出重大挑战。确保物联网应用程序已准备好进行可靠部署至关重要。真正的挑战是如何现场测试数百或数千个地理上分散的设备的部署。将它们安装到实验室不仅在物理上是不可能的,而且它也无法正确测试系统中更多可变的元素,例如无线连接、环境条件和现实生活中的使用模式。唯一现实的选择是通过模拟测试整个系统。

大多数物联网系统倾向于遵循类似的三层方法,如图 1 所示。小节点组相互连接,然后通过无线网关和网络连接到基于云的数据存储和分析服务器。通常,节点设备将是测量温度、电力消耗的传感器、光传感器或控制执行器,例如开关、泵和加热控制。网关或集中器处理与外界的连接,并确保安全。后端服务器通常位于云中,处理物联网系统的业务和控制方面。

pYYBAGMK6K-AB6zdAAChT0ClVZI156.png

能够测试通常在地理上分散在多个站点、安装或设施的系统将需要相似数量的实验室设置。实现这一点的物理模拟将比节点本身的成本更昂贵。

值得庆幸的是,使用模拟器,大型网络的设置相对简单。这是通过在模拟器中编写代码以在虚拟无线网络上虚拟部署和布局节点来实现的。然后需要对无线网络进行一些建模,以模拟节点之间无线链路的可变方面。单个脚本可以取代尝试管理数百个物理项目的测试。

模拟解决方案的一个例子是 Wind River 的 Simics。使用此模拟器,您可以模拟 IoT 设计的所有方面,例如每个节点的硬件设置、处理器、层、无线网络等。真正的操作系统和目标代码应用程序,使用在实际硬件上使用的相同二进制文件,运行模拟节点。

使用这种方法,您可以看到您的无线堆栈在较差的链路条件下和网络故障发生时的性能,以及传感器和执行器发生的情况、节点的硬件睡眠模式/唤醒以及它们如何节省电力。您还可以测试管理网络节点的所有中间件以及软件更新(尤其是任何 OTA 更新)如何运行。也可以通过这种方式测试安全性,确保网关和节点能够正确运行,并且不会受到潜在的安全威胁或黑客攻击。

模拟将允许测试人员轻松地动态改变无线电网络条件。更改一对节点之间的信号强度并因此随机丢弃数据包是可以在模拟规则中设置的。这种情况在现实世界中经常发生,例如当火车通过两个节点之间的视线并中断通信一分钟左右时。尝试在实验室中使用物理设置创建这样的模拟将很难实现。

模拟也是测试物联网应用程序扩展能力的一种非常好的方法。随着活动节点数量的增加,硬件和软件行为会发生变化,这会影响系统的整体性能。有时,系统如何扩展的含义并不立即显而易见,但同样,仿真提供了一种正确测试这一点的方法。

如图 2 所示,仿真提供了构建任何规模的系统的能力,从小到大。这意味着系统的行为可以在整个范围内进行测试,从小型单元测试或子系统测试,一直到可以想象的最大设置。通常,每个系统规模都会揭示系统中的不同问题。这不仅关乎最大的设置,还关乎确保在中等系统规模下也能高效运行。

poYBAGMK6LmAPXW8AABjRe7_bQU578.png

测试也可以横向扩展,如图 3 所示。很容易构建许多网络变体来测试软件,以不同的方式部署相同数量的节点。可以测试网关和传感器节点之间的不同平衡,以及不同的网络拓扑。图 3 还显示了仿真如何让您并行运行许多不同的测试,这使得运行一组测试的总时间低于必须在硬件上串行运行的总时间。

poYBAGMK6PiAShTUAABm3mwjDn8215.png

基于物联网的设计的另一个有趣方面是,尽管有数百或数千个节点,但占空比可能相当低。传感器不会不断地向云端报告数据,这一事实极大地帮助了那些由电池供电的传感器。因此,在被测系统中往往会有很多空闲时间。这段时间可以通过使用“超级模拟”来加速模拟。像 Simics 这样的模拟解决方案不会逐个循环地播放空闲时间,而是直接跳到下一个有趣的事件,该事件将唤醒一个睡眠节点。因此,一个大部分空闲的系统的模拟速度可以比实时快很多倍,这是在大型物联网模拟中利用的属性。

最后,需要物理实验室来执行最终的系统测试。您必须测试您发布的内容并发布您测试的内容。然而,使用模拟来增强物理测试实验室以覆盖更多测试用例和运行更多测试变体是必要的,以确保质量得到维持,并且系统在各种情况下都保持稳健。通过仿真,您将能够更快、更轻松地设计和构建更好的物联网系统。

猜你喜欢
中电网移动|移动中电网|频道导航区