0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

星星科技指导员 来源:嵌入式计算设计 作者:Jakob Engblom 2022-08-28 12:01 次阅读

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

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

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

pYYBAGMK6K-AB6zdAAChT0ClVZI156.png

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

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

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

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

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

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

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

poYBAGMK6LmAPXW8AABjRe7_bQU578.png

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

poYBAGMK6PiAShTUAABm3mwjDn8215.png

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

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

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2541

    文章

    50058

    浏览量

    748321
  • 物联网
    +关注

    关注

    2895

    文章

    43520

    浏览量

    366989
  • 操作系统
    +关注

    关注

    37

    文章

    6556

    浏览量

    122800
收藏 人收藏

    评论

    相关推荐

    使用Linux CLI应用程序进行批量传输,无法执行写入/读取操作怎么解决?

    传输。 2) 测试 VID/PID 已添加到 .inf 中。 3) 使用 FX3-sdk(windows)构建固件。 现在我要进行 Linux 设置 1) 应用程序
    发表于 05-29 06:07

    无法从应用程序连接Aurix 387进行调试,怎么解决?

    你好,我无法从应用程序工作室启动连接 Aurix 387 进行调试。调试器以下列信息结束:Loading failde:在尝试中化目标内存时发生未知错误有人知道吗?
    发表于 05-21 07:48

    一文读懂爆破压力检测仪的使用方法测试原理和压力单位换算关系

    检测仪的使用方法测试原理以及压力单位换算关系,帮助您更好地了解和应用耐压爆破试验机。一、爆破压力检测仪的使用方法1.准备工作确保爆破
    的头像 发表于 03-21 08:28 506次阅读
    一文读懂爆破<b class='flag-5'>压力</b>检测仪的使用<b class='flag-5'>方法</b>,<b class='flag-5'>测试</b>原理和<b class='flag-5'>压力</b>单位换算关系

    应用程序中的服务器错误怎么解决?

    在使用应用程序时,可能会遇到服务器错误的问题。这种错误通常会导致应用程序无法正常运行 ,给用户带来不便。下面将介绍应用程序中的服务器错误及其解决方法,帮助您快速解决这一问题。
    的头像 发表于 03-12 15:13 4541次阅读

    Docker在JMeter分布式测试中的作用

    一个JMeter实例可能无法产生足够的负载来对你的应用程序进行压力测试。如本网站所示,一个JMeter实例将能够控制许多其他的远程JMeter实例,并对你的
    的头像 发表于 02-25 09:33 498次阅读
    Docker在JMeter分布式<b class='flag-5'>测试</b>中的作用

    LTE MQTT通信应用程序说明

    电子发烧友网站提供《LTE MQTT通信应用程序说明.pdf》资料免费下载
    发表于 02-21 10:47 0次下载
    LTE MQTT通信<b class='flag-5'>应用程序</b>说明

    请问如何使用ModusToolbox™估计应用程序使用的堆栈和堆空间量?

    我正在使用 PSoC63 进行 ModusToolbox™ 开发。 运行我的应用程序时,MTB上是否有任何方法可以确定或估计我的应用程序将使用的最大堆栈和堆大小? 谢谢。
    发表于 01-18 08:04

    开发java应用程序的基本步骤是

    Java应用程序。确定您希望应用程序能够执行的任务和提供的功能。这将有助于指导您在开发过程中进行决策并确定实现代码的方式。 2.设计应用程序:在开始编写代码之前,您应该设计
    的头像 发表于 11-28 16:52 1334次阅读

    Flask如何升级到 Quart 应用程序

    应用程序可以提高 3 倍的性能,而且不需要对代码进行重大的重写或调整。 如上所示,在针对单个资源详情的请求下,Flask每秒请求为330个,而quart能达到1160个。以此类推,Quart 相比于
    的头像 发表于 11-01 16:23 557次阅读
    Flask如何升级到 Quart <b class='flag-5'>应用程序</b>

    PGO到底是什么?PGO如何提高应用程序性能呢?

    性能的方法。PGO技术在编译优化中起了很大的作用,能够优化代码、减少程序体积、提升程序性能等。 PGO技术可以分为三个步骤,首先是收集运行特征数据,然后是根据收集到的数据生成优化参数,最后是使用优化参数来重新编译
    的头像 发表于 10-26 17:37 1891次阅读

    在AT32微控制器上创建IAP by Ymodem应用程序方法

    对于大多数基于闪存的系统,一项重要要求是能够在最终产品中安装固件时进行更新。此功能称为应用程序内编程(IAP)。本应用笔记的目的是提供在AT32微控制器上创建IAP by Ymodem应用程序
    发表于 10-24 07:38

    在AT32微控制器上创建Multi MCU IAP应用程序方法

    对于大多数基于闪存的系统,一项重要要求是能够在最终产品中安装固件时进行更新。此功能称为应用程序内编程(IAP)。本应用笔记的目的是提供在AT32微控制器上创建Multi MCU IAP应用程序
    发表于 10-24 06:48

    SEW-MOVIPRO启动应用程序配置程序

    AMA0801应用程序模块使用六个过程数据字进行寻址。因此,应用程序配置程序必须将这六个过程数据字传输到轴,而不进行更改。这是通过选择“透明
    的头像 发表于 10-22 16:18 649次阅读
    SEW-MOVIPRO启动<b class='flag-5'>应用程序</b>配置<b class='flag-5'>程序</b>

    在AT32微控制器上创建IAP by USB HID应用程序方法

    对于大多数基于闪存的系统,一项重要要求是能够在最终产品中安装固件时进行更新。此功能称为应用程序内编程(IAP)。本应用笔记的目的是提供在AT32微控制器上创建IAP by USB HID应用程序
    发表于 10-19 06:48

    RK3588平台产测之ArmSoM-W3 DDR压力测试

    1. 简介 RK3588从入门到精通 ArmSoM团队在产品量产之前都会对产品做几次专业化的功能测试以及性能压力测试,以此来保证产品的质量以及稳定性 优秀的产品都要进行多次全方位的功能
    发表于 10-09 19:29