通信领域的网络设备的测试过程中需要通过测试仪表来模拟各种业务流量和网络节点,通过打流等方式对设备功能或性能规格进行测试。

     测试仪表的自动化是通信设备自动化框架里重要的一部分。几乎所有的测试仪表中凡是在GUI操作界面上提供的功能,都提供了对应的自动化API。所以测试仪表的自动化原理非常简单,就是对仪表提供的API根据自己测试工作中需要的业务逻辑进行封装,编写对应的库文件。实际测试时通过测试机和仪表之间的链接向仪表下发封装好的command,驱动硬件完成连接仪表chassis,占用端口,下发配置,构造业务流量或网络节点,打流,统计端口收发计数,端口抓包分析对应字段,打印报告等一系列的动作。

     很多种脚本语言都可以用来封装API,如Java,Python,Tcl,Ruby,Perl等,但这一领域Tcl应该是应用的最广泛的语言,支持从低端到高端的所有仪表,并且有些仪表自身提供Tcl库文件,即它的API就是Tcl格式的,如SpirentTestCenter,Ixia;也有些仪表的API有自定义的格式语法,如Xena;也有一些是使用SCPI(可编程仪器标准命令),如安立的SDH误码仪MP1570A。所以我认为如果整个自动化框架里需要应用到多种测试仪表时,测试仪表驱动这一层用Tcl来编码比较统一并且易于后期维护和扩展。

     笔者工作中使用到的几种常用的测试仪表包括Ixia,SpirentTestCenter,Xena,MP1570A。

     编写的仪表驱动层的目录:

             

商业智能仪表板 智能仪表定义_API

             Library目录:存放应用到的一些第三方.tcl库文件和.dll文件

             __init__.py: 这里是将整个Tcl仪表驱动层定义为一个python包,供上层python编写的整体框架的Tcl Interrupt调用

            pkgIndex.tcl:将整个目录下的.tcl文件组织成一个Tcl包的索引文件

            SIG_PublicFunction.tcl:用于过程处理的公用函数库

            SIG_Teq_Ixia.tcl:Ixia函数库

            SIG_Teq_Sdh.tcl:MP1570A函数库

            SIG_Teq_Stc.tcl:SpirentTestCenter函数库

            SIG_Teq_Xena.tcl:Xena函数库