【一般准则】
网络测试强调从网络的体系结构出发,按照网络分层的思想,参照 OSI
及 TCP/IP
分层模型,从物理层到应用层自下而上的逐层测试
从物理层开始,在测试数据链路层时,先要确保物理层是完好的;在检测网络层连通性时,先要确保下面两层的 LAN
和 WAN
是正常联通的
以此类推,只有作为基础的下层是完好的,测试上层才有意义
【网络测试的类型】
根据网络测试方式的不同,可分为:
- 单品测试:使用测试设备单独对网络设备进行测试,这种测试多用于在网络设备的研发阶段对设备的质量进行保障,以提高设备的性能为目标,也可用于多厂家同一档次设备的对比测试
- 真实测试:将网络设备放在具体的网络环境中进行测试,这种在真实环境下的测试常用于运营商、企业网中,用以评估该设备的互通性及互操作性
根据网络测试的目的,网络测试可以分为:
- 设备测试:功能测试、设备性能测试、协议测试
- 网络性能测试:负载测试、压力测试、主动测试、被动测试
【设备测试】
功能测试
功能测试主要是对设备的接口、通信协议、数据包转发等多方面的功能进行测试,以验证产品所标称支持的功能是否满足标准或能正常实施
其分为两种:
- 积极测试:积极地发现网络设备或网络的问题,以帮助生产商或研发者发现问题,为设备或网络的改进提供证据
- 消极测试:通过引入损伤的方式给一个稳定的设备或网络造成伤害,以测试一个设备或网络对于灾难的抵抗能力
设备性能测试
设备性能测试主要是对设备的基本性能的验证,如设备的基本转发性能、协议处理性能进行测试,为使用者提供测试依据
网络设备的基本转发性能测试,主要依据 RFC-2544
来测试设备的吞吐量、时延、丢包率等指标
网络设备的协议处理性能测试主要是测试设备的路由表容量、路由协议收敛时间,以及路由振荡对设备转发能力的影响等指标
协议测试
协议测试主要分为两种:
- 一致性测试:检验被测设备相关协议的实现是否遵循了协议规范
- 互操作测试:评价被测设备与相连接相似设备之间在网络环境中是否能够正确地交互并且完成协议标准中规定的功能,从而确定被测设备是否支持所需要的功能
Internet 包含了大量来自不同厂商的路由或交换设备,为了确保各不同厂商设备间的互通性,必须要求这些设备支持相同的协议或通信规范,并保证在设备之间实施协议的准确性,当网络设备通过了一致性测试,就可以保证基本的正确性
在互操作测试中,被采用最多的形式是测试单位选择经互操作认可的设备来与被测设备进行互操作测试,认可设备可能是终端设备、网络设备或者应用软件,也可能是一个单独设备或者若干设备组合
【网络性能测试】
负载测试
用于确定在各种负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况
通常在部署网络后需要对网络运营时可能产生的负载进行验证,比如在骨干带宽的 50%
或 70%
时的负载进行验证,从而了解当前的网络在一定负载下的运行情况,并了解该网络何时出现应用瓶颈
压力测试
通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试,主要是用来在高压负载下,检测设备或网络的运行情况
产生高压负载的原因很多,例如:一个出现问题的网卡向网络发送广播包,此时这个源地址将生成数百万个包,并通过交换机转发到多个目的地址
主动测试
主动测试是在选定的测量点上利用测量工具有目的地主动向被测网络注入测试流量,并通过测试数据流的传送情况来分析网络的性能参数
主动测试法能够明确地控制测试中所产生的流量的特征,如:流量的大小、发包频率、包大小和类型等
主动测试可以主动发送测试数据,对测试过程的可控制性比较高,但注入测试流量本身就改变了网络的运行情况,即改变了被测对象本身,使得测量的结果与实际情况存在一定的偏差,而且注入网络的测试流量还可能会增加网络的负担
被动测试
被动测试是指利用特定的测试工具收集网络中活动的元素的特定信息,即路由器、交换机、服务器等网络设备的特定信息,以这些信息为参考,通过量化分析,实现对网络性能、功能的测试
类似于协议分析,被动测试在真实的运行状态下观察协议运行的过程,测试时可以人为制造一些干扰,如关闭路由协议的端口等