什么是物联网?
物联网是利用嵌入式电子、微芯片等技术将汽车、家电、医疗设备连接起来,收集和交换不同种类的数据,称为物联网。这种技术允许用户通过网络远程控制设备。
常见的物联网技术应用:
- 可穿戴技术:例如健康、心率监测、睡眠活动等等;
- 基础设施:例如城市交通管理调度;
- 医疗:例如监测患者体内液体水平,并根据需要启动液体转移等等。
物联网技术
下面是物联网中常用的几种技术:
- RFID,即Radio Frequency Code,射频编码。扁鹊及EPC(电子产品编码)
- NFC,即Near Field Communication,近场通信,通常用于电子设备之间实现双向交互,目前在智能手机应用广泛,主要用于非接触式支付交易
- 蓝牙,即Bluetooth,在短距离通信场景中应用,主要用于可穿戴设备
- Z-Wave,一种低功率射频通信技术,主要用于家庭自动化、灯具控制,大家通俗所知道的智能家居这块
- WiFi,这是物联网最常用的技术,在局域网内,用于通信,文件传输、数据和消息等
物联网测试策略
下面我们看物联网测试常用的测试策略有哪些:
物联网安全,物联网是以数据为中心的,所有连接设备/系统都基于可用的数据进行交互,当涉及到设备之间的数据流时,总有机会获取到传输中的数据,从测试的角度来看,当数据在设备间进行交互时,我们需要检查数据是否受到保护/加密,从UI来看,我们也是需要确保有强密码进行保护
连通性,由于物联网是软硬复杂组网,并与人的关系更为密切,连通性起着至关重要的作用,所有的系统必须一直可用,并且可以与相关系统保持无缝连接。对于这些连接有两个非常重要的方面需要关注:
3.1 建立连接和运行时,设备的连接、数据传输和接收作业任务时应该是无缝的
3.2 关闭连接场景时,不管是主动还是被动关闭连接场景,必须有相应的通知或警报信息 最关键是不管是什么时候都不应该有数据丢失
性能测试,无论什么系统,都需要确保其具有足够的可伸缩性,所以性能测试是必备的测试策略
兼容性,从物联网系统的复杂架构来看,兼容性是必须的,需要兼容不同操作系统,同一类型操作系统的不同版本、浏览器类型及各自的版本、设备的生成、通信模块、甚至不同厂商的设备兼容等等
试点测试,就物联网而言,试点测试是必须的,只在实验室里进行测试是无法确保设备能正常的环境下运行的,所以在实际的环境下进行试点测试是确保物联网服务可用的必备步骤。
第三方认证测试,对于很多物联网服务产品需要进行第三方认证测试,例如医疗系统,需要通过相关的监管机构要求的检测,只有这样才能确保该产品通过了相关监管机构的认证
物联网测试挑战
下面我们看下在物联网环境下的测试要面临着哪些方面的挑战。
- 软硬混合网
物联网是一种架构,它由各种硬件和软件组件紧密耦合而成的,不仅是软件的应用,硬件、传感器、通信网关等也起着至关重要的作用。
只有功能测试是不足以完成验证系统,在环境、数据传输等方面总是相互依赖的,因此与通用软件系统的测试相比,物联网应用的测试就显得更为复杂和乏味了。
- 设备集成
由于物联网应用是硬件和软件的不同集合之间的体系结构,因此必须实时/接近实时的通信,当进行集成时,安全性、向后兼容性、升级等就会成为测试的一大挑战。
- 实时数据测试
由于物联网应用的复杂性和特殊性,想要获得物联网系统的实时数据就显得非常困难或是成本巨大,但实时数据的测试又是确保物联网服务质量的至关重要的方向,因此这对于测试团队来讲是一件极具挑战的工作
- 兼容性测试
由于众多智能众多的出现,物联网应用会分布在不同的平台上,例如ios、android、windows、linux等等,但我们不能忽略我们不拥有或不模拟设备上的测试,我们无法去在所有的设备上进行测试验证,即便现在有所谓的云兼容测试,但依旧无法满足我们实际兼容性测试的需要(一是直接成本不允许投入,二是无法投入这么大的工作量),所以物联网应用的兼容性测试也会是一个挑战
- 网络可用性
在物联网中,网络连接起着至关重要的作用,因为物联网的基础设施是以更快的传输数据为基础的,所以我们需要在不同的网络环境下进行测试。
为了模拟不同的网络环境,我们需要改变网络负载、连接性、稳定性等,另外从长远来看,我们很难去预判出用户新场景的变化所带来的复杂性。
所以网络可用性的测试将是一个巨大的挑战。
测试工具
物联网测试过程中需要用到各式各样的工作,下面根据目标需求进行分类说明:
- 软件
1.1 wireshark,这是开源的协议分析工具,是必备的神器,是最强大的分析工具
1.2 Tcpdump,这是与wireshark类似的工作,只是没有GUI,它是一个基于命令行,可以帮助我们捕获通过网络传输的tcp/ip和其他数据包
这两个协议分析工具,是从事物联网或网络通信领域必备的工具。
- 硬件
2.1 JTAG Dongle:这类似于PC应用程序中的调试器。这有助于调试目标平台代码并逐步显示变量
2.2 示波器:用于检查各种事件的时间戳,电源故障,信号完整性检查
2.3 软件定义的无线电:这是用来模拟接收机和发射机的一个大范围的无线网关
小结
物联网测试方法可以根据其涉及的系统/体系结构而有所不同,但经典测试方法论是物联网测试的基石,所以测试人员应该更多的关注作为用户的测试方法,而不是基于需求的测试方法。
物联网测试可能是一项艰难/具有挑战性的工作,但对测试团队来说,确保这样一个由设备、协议、硬件、操作系统、固件等组成的复杂网络的质量也非常令人兴奋。
在信息系统运维管理和网络维护过程中, 经常会遇到一些表面看似软件问题, 而实则是网络问题的事情。在重启软件的各种服务不能解决问题的情况下, 可以从网络传输方面作为问题的切入点, 并利用适当的网络分析工具进行辅助判断, 从而排除故障。
1 Wireshark简介
Wireshark是目前世界上最受欢迎的协议分析软件。它能够获取网络中传输的数据包,并直观地呈现在用户面前,还能够对这些数据包进行筛选及分析,极大地方便了对网络活动的监测。
2 用Wireshark抓包
WireShark简单抓包示例。通过该例子学会怎么抓包以及如何简单查看分析数据包内容。
安装Wireshark,官网下载地址是https://www.wireshark.org/,打开wireshark网络分析器 界面如下
使用wireshark工具抓取ping命令操作的为例
1)点击菜单栏的捕获 —> 选项,选择WLAN网卡,点击start,启动抓包
2)执行需要的抓包操作
3)过滤数据包列表
wireshark处于抓包状态会抓取各种数据包,为了避免其他无用的数据包印象概念股分析,可以在过滤栏设置过滤条件。
比如 ‘ip.addr == 220.181.38.148 and icmp’,意思是只显示ICMP协议并且源主机或者目的主机的ip为220.181.38.148的数据包。
抓取的数据包如下
wireshark抓包界面介绍
过滤栏 : 用于设置过滤条件进行数据包列表过滤
Packet List Pane(数据包列表), 显示捕获到的数据包,每个数据包包含编号,时间戳,源地址,目标地址,协议,长度,以及数据包信息。 不同协议的数据包使用了不同的颜色区分显示。
Packet Details Pane(数据包详细信息), 在数据包列表中选择指定数据包,在数据包详细信息中会显示数据包的所有详细信息内容。数据包详细信息面板是最重要的,用来查看协议中的每一个字段:
(1)Frame: 物理层的数据帧概况
(2)Ethernet II: 数据链路层以太网帧头部信息
(3)Internet Protocol Version 4: 互联网层IP包头部信息
(4)Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP
(5)Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议
Wireshark抓包分析TCP三次握手
1)点击菜单栏的捕获 —> 选项,选择WLAN网卡,点击start,启动抓包
2)执行需要的抓包操作,点开https://www.cr173.com/的网址
3)过滤数据包列表 在筛选栏输入http,找到http协议右键并追踪这个协议,结果如下图红色方框区域,显示了本机192.168.2.102 和 服务器 125.39.174.19 之间的三次握手协议
三次握手协议的过程为:
- 客户端通过TCP首部发送一个SYN包作为建立连接的请求等待确认应答。
- 服务器发送ACK包确认应答,发送SYN包请求连接。
- 客户端针对SYN包发送ACK包确认应答。