Iconimage -Fotolia

管理 学会运用最佳实践并优化您的运营。

如何克服物联网性能测试挑战

与事物相互作用的物联网(而不是人类用户)在有效测试中引入了新的挑战,但专业人士可以使用设计最佳实践来确保应用程序扩展。

测试不与人类用户相互作用的应用程序意味着专业人士必须知道以人为驱动和事物为导向的应用程序之间的差异。

大多数组织都使用与人类用户交互的应用程序,并且在测试它们方面具有数十年的经验。组织必须调整他们的测试过程处理与物联网传感器和智能恒温器等事物相互作用的应用程序。开发人员可以在物联网性能测试过程中解决一些问题,但是在应用程序设计期间,还有其他问题只能正确解决。

了解两种类型的应用程序之间的差异

五个主要差异分开的人类驱动和物联网应用可能会影响物联网性能测试:

  1. Large, highly variable activity levels.物联网网络具有数万个设备。在任何给定时间,它们都可能是活跃的或不活动的,使工作负载大大且高度可变。
  2. 无状态操作。人体驱动的应用通常涉及连接的步骤序列,称为状态或上下文。物联网传感器无法自己维护上下文,因此物联网应用程序必须管理无状态元素的状态。
  3. 没有主观反馈。许多测试程序依靠人类将数据纳入UI或响应时间的有效性;物联网网络无法提供。
  4. 广泛的分布。物联网网络可能会在大面积上扩展,但由于网络性能和延迟的差异很大。有效测试它可能需要类似的测试数据注入点的分布。
  5. 各种设备界面。物联网设备库存更改。新设备通常具有不同的数据格式和连接协议。这些差异不应渗透到更深层次的应用程序框架中,因为每个新设备都必须在整个测试过程中运行。

测试IoT应用程序功能中产生的问题主要与上述差异的第二个有关。无状态的应用程序开发并不新鲜,但是许多企业开发团队很少(如果有的话)这种方式发展。最好将应用程序视为具有许多操作状态的状态或事件系统,以解释设备输入,包括启动,操作和恢复。开发人员需要一种系统的方式来查看应用程序,以测试其所有功能和每个可能状态下的每种事件。

设备可变性创造了IoT性能测试挑战

有时,设备的可变活动也会影响测试应用功能。必须将事件与多个设备相关联的应用程序分析状态和事件上下文,事件分布和正时,在测试中构成了主要问题。与其具有随机的测试数据生成器,不如具有特定的事件序列以正确测试。

最佳性能测试可以使用IoT应用程序,即在生产中预期的相同水平,再加上设计超过峰值负载。

物联网数据的纯粹范围会影响应用程序的物联网性能测试。最佳性能测试可以使用IoT应用程序,即在生产中预期的相同水平,再加上设计超过峰值负载。幸运的是,前提测试生成workloads with the proper distribution of injection points. Users can't often replicate the scale of a live IoT deployment, which creates problems with IoT performance testing. If that's not practical, the best strategy is to gather data from successively larger-scale tests to plot a performance-versus-load curve. Developers should expect to run at least a half-dozen tests. After the third, they can use the results to draw a curve to predict later test results. Developers can stop testing when the curve correctly anticipates future larger-scale test results. They should run one last test at very high volume -- even if they can't actually replicate the distribution of IoT sources -- to validate the application performance beyond the design load.

应用良好的设计实践

Device testing in IoT is a problem of both test procedures and design. Most IoT pioneers have learned that if IoT applications must be customized for every new device, device introduction will be a major problem, likely riddled with errors. The key to device testing is to first design the application to abstract devices by class. That means that运动或温度传感器应向应用程序的其余部分提供一个通用接口。将每个特定设备适应该共同的抽象。这将设备测试限制在针对特定类别标准的设备测试。如果是运动传感器,它是否在适应后会显示与该课程的所有成员相同的数据?

这是一个很好的软件设计实践define APIs因此,设备或软件元素的重要属性以统一的方式公开。无法从外部操纵未暴露的内部特征和元素。通过软件同行审查或应用程序架构师创建的一组固定的API并向所有开发人员颁布的固定API,对API进行证明。

功能对物联网的API测试如果测试遵循设计规则,则应该与任何现代API的功能测试非常相似。如果API传达州或环境,请特别注意。在几乎所有物联网应用程序中,国家控制都是必不可少的。许多不同的机制将状态信息传递给需要的服务或微服务,所有这些机制都将涉及API。这意味着API测试必须面临并发问题。

所有的物联网应用程序都是异步的,这意味着它们在发生时处理现实世界事件,而不是从文件中读取I/O保持与程序行为同步的文件。这意味着测试必须模拟与现实世界中事件驱动的系统所展示的相同类型的行为混乱。纯粹的随机测试数据可能会使用,但前提是真实的物联网设备生成随机数据。最好由一系列设备模拟器系统驱动的测试,每种测试都以所需的比例和分布来注入适合设备的数据。

深入挖掘物联网API,应用和软件

搜索CIO
搜索安全
搜索联网
搜索Data中心
搜索Data管理ment
关闭