SpirentTestcenter,美国思博伦公司的网络测试仪表,覆盖以太网L2~L7层,使用过的仪表中功能最强大的。
1.SpirentTestcenter的自动化测试场景
测试PC上的AT框架---->Tcl驱动库SIG_Teq_Stc.tcl(加载SpirentTestCenter库)-----(以太网线)----->Stc chassis
Stc的chassis内部命令也是Tcl格式的,但调试时有个缺点,script的执行效果不能即时反应到Spirent TestCenter Application客户端操作界面上,观察结果不方面。
2.SpirentTestcenter的Tcl API组织架构
Spirent TestCenter 所有GUI上提供的功能都有对应的API接口,它的API组织架构是面向对象的,并且提供对诸如Tcl Java Perl Ruby C++等多种语言的支持.
3.Spirent TestCenter Tcl API大致格式
STC API通过一系列command/function来操作object,操作的是chassis内部产生的object handle对象句柄,这个handle存在于整个进程之中.
命令格式:
FunctionName ObjectType/ObjectHandle/DDNpath attributeName(attributeName必须以"-"开头) attrNameValue(属性名称 值)/DANpath [Value]/relationReference
eg:(以上三种情况)
stc::create Project
stc::get $project_handle
stc::create Project.Port / stc::get $project_handle.Port
stc::get $port -location / stc::get $port -active -location
stc::config $port -active false -location "//10.1.1.1/1/1"
stc::create $streamblock -under $port -frameconfig "" -ethernet.EthernetII.etherType 880B / stc::config $project -Port.active false / stc::get $project -Port.active
stc::get $port1 -children (children里面是一对相关的对象属性)
也有一些命令后面是直接跟一些具体的值的,如:
stc::connect //172.168.1.1 stc::reserve //172.168.1.1/1/1 stc::sleep 5
path的表示方式:
• Direct-Descendant Notation (DDN) 直接子代符号
• Descendant-Attribute Notation (DAN)
• Indexed Notation (DDN and DAN)
eg:
stc::config $project.Port -active false -location "//10.1.1.1/1/1"
stc::config $project -port(1).active false -port(2).active false
set enabled [stc::get $port1 -StreamBlock(2).enableControlPlane]
其基本命令都是stc::xxx,这里stc::表示STC的命名空间来区分确认函数,并且函数名都小写,对象名和属性名不区分大小写
常用的“xxx”有如下:
apply 所有配置方面的command敲入后都要stc::apply下
config
connect
create
delete
disconnect
get
help
log
perform
release
reserve
sleep 解释器停止执行一段时间
subscribe
unsubscribe
waitUntilComplete
4.一些Stc AT时的注意事项
(1)Stc的客户端Spirent TestCenter Application安装完成后目录下有定义Stc chassis内部Tcl命令的.tcl库文件:
C:/Program Files/Spirent Communications/Spirent TestCenter 3.55/Spirent TestCenter Application/SpirentTestCenter.tcl.
这个库文件需要写入到Tcl包目录下的pkgIndex.tcl,以便SIG_Teq_Stc.tcl文件里可以“package require SpirentTestCenter”找到并加载该Tcl库
(2)Spirent TestCenter Application没有自带的Tcl interrupt,所以操作Stc时可以使用任何一个Tcl interrupt,只要把用到的库文件都加载了即可
本文只是简单的Spirent TestCenter自动化原理的介绍,详细的SpirentTestCenter Tcl API可以参阅具体的API官方文档。