python .center用法_python之testcenter操作
一、设置python环境
1. 从以下路径中将StcPython.py文件拷贝出来
Linux:
/Installdir/Spirent_TestCenter_4.xx/Spirent_TestCenter_Application_Linux/API/Python
Windows:
C:\Program Files (x86)\Spirent Communications\Spirent TestCenter 4.xx\SpirentTestCenter Application\API\python
2. 将StcPython.py文件放到您的工作文件夹中
3. 编辑StcPython.py文件,修改STC_PRIVATE_INSTALL_DIR变量,将路径指向STC的安装文件夹
Linux:
os.environ['STC_PRIVATE_INSTALL_DIR'] = "/opt/Spirent_TestCenter_4.xx/Spirent_TestCenter_Application_Linux/"
Windows:
os.environ['STC_PRIVATE_INSTALL_DIR'] = "C:\Program Files (x86)\SpirentCommunications\Spirent TestCenter 4.xx\Spirent TestCenter Application"
4. 加载STC的python包
from StcPython import StcPython
stc = StcPython()
print stc.get('system1','version')
运行结果:
'4.66.8916.0000'
二、testcenter代码阅读
1. StcPython.py
self.stcInt = __import__('StcIntPython27') #根据python版本,导入StcIntPython,相对于给StcIntPython27取了一个别名,取名为stcInt,后续的connect、create、delete、disconnect均使用此别名
python2.7导入StcIntPython27.py
其他的导入StcIntPython.py
2.StcIntPython27.py
import _StcIntPython27 #这个文件的后缀为pyd文件,pyd为python扩展文件,一般用C、C++编写
有四个静态方法:
_unpackArgs
_packKeyVal
_unpackGetResponseAndReturnKeyVal
_unpackPerformResponseAndReturnKeyVal
三、python API的添加
STC已经提供了tcl API,打算按照测试需要将其转换为python格式的API,具体分为以下几步:
1.先手动在STC GUI界面中确认需要组什么包,完成什么的操作,需要哪些参数,确认手动操作是OK的。
2.查看STC API官方手册Spirent_TestCenter_Automation_Obj_Ref.pdf,找到相应的命令接口。
3.使用tcl手动发下命令,确认找到的命令是否合适,参数输入是否正确。
4.转义为python格式的API。
比如说有如下需求,要求提供python接口的IGMPV3 API,按照如上步骤:
1.略
2.pdf文档中IGMPV3在Page1540、Page1391、Page1392
3.STC的本地安装路径中已经有tcl可执行程序,无法单独下载,个人电脑路径如下:
c:\Program Files (x86)\Spirent Communications\Spirent TestCenter 4.66\Spirent TestCenter Application\Tcl\bin\tclsh85.exe
如下是tcl中输入的代码,请参考:
#引用STC API ,SpirentTestCenter.tcl的路径
source {c:/Program Files (x86)/Spirent Communications/Spirent TestCenter 4.66/Spirent TestCenter Application/SpirentTestCenter.tcl}
#配置机框Ip 槽位 端口号
set classisAddress "10.27.130.21"
set slotPort1 "11/5"
set slotPort2 "11/6"
#创建一个项目
set ProjectA [stc::create project]
#在项目ProjextA 下创建一个发送端口 和一个接收端口
set TxPort [stc::create port -under $ProjectA]
set RxPort [stc::create port -under $ProjectA]
set portReturn [stc::config $TxPort -location "//$classisAddress/$slotPort1"]
set portReturn [stc::config $RxPort -location "//$classisAddress/$slotPort2"]
#在发送端口下创建StreamBlock(1)
set StreamBlock(1) [stc::create "StreamBlock" -under $TxPort -frameConfig "" -FrameLengthMode "FIXED" -FixedFrameLength "222" -name "StreamBlock_1"]
在StreamBlock(1)中添加EthII头
set StrEthII [stc::create ethernet:EthernetII -under $StreamBlock(1) -name eht_1 -srcMac 11:11:11:11:11:11 -dstMac 22:22:22:22:22:22]
#添加IPv4头
set strIPv4 [stc::create ipv4:IPv4 -under $StreamBlock(1) -name Ipv4_1 -sourceAddr 10.10.10.10 -destAddr 20.20.20.20]
#####################################################################################
#添加igmpv3 join report
set strigmp_report [stc::create igmp:Igmpv3Report -under $StreamBlock(1) -name igmp_1 -type 22]
#添加igmpv3 join report全部参数list
set strigmp_report [stc::create igmp:Igmpv3Report -under $StreamBlock(1) -name igmp_1 -numGrpRecords 0 -type 22]
#igmp3头上添加Group Records
set grerecords [stc::create grpRecords -under $strigmp_report]
stc::create GroupRecord -under $grerecords -recordType CHANGE_TO_EXCLUDE_MODE
#igmp3头上添加Group Records全部参数list
stc::create GroupRecord -under $grerecords -auxDataLen 0 -mcastAddr 225.0.0.1
-Name
my_mygrouprecord -numSource 0 -recordType 4
#####################################################################################
#如果添加igmpv2 join报文,改写如下
stc::create igmp:Igmpv2Report -under $StreamBlock(1) -name igmp_1 -type 16 -maxRespTime 0 -groupAddress 225.0.0.1
#如果添加igmpv2 leave报文,改写如下
stc::create igmp:Igmpv2Report -under $StreamBlock(1) -name igmp_1 -type 17 -maxRespTime 0 -'groupAddress 225.0.0.1
#####################################################################################
#如果添加igmpv1 join报文,改写如下
stc::create igmp:Igmpv1 -under $StreamBlock(1) -name igmp_1 -type 2 -groupAddress 225.0.0.1 -unused 0
#如果添加igmpv1 leave报文,改写如下
stc::create igmp:Igmpv1 -under $StreamBlock(1) -name igmp_1 -type 1 -groupAddress 225.0.0.1 -unused 0
#保存xml文件
stc::perform SaveAsXml -config $ProjectA -filename d:/igmp.xml
Spirent_TestCenter_Automation_Obj_Ref.pdf中给出的均是参数列表,编程时如何拼接使用,请参考Spirent-TestCenter-Automation-Conf-Prog-Guide.pdf
以IGMPV3为例,PDF中作如下描述:
Igmpv3Report的父节点是StreamBlock,所以tcl代码如下:
set strigmp_report [stc::create igmp:Igmpv3Report -under $StreamBlock(1) -name igmp_1 -numGrpRecords 0 -type 22]
grpRecords是Igmpv3Report的子节点,参数为空,tcl代码如下:
set grerecords [stc::create grpRecords -under $strigmp_report]
GroupRecord的父节点是grpRecords,所以tcl代码如下:
stc::create GroupRecord -under $grerecords -auxDataLen 0 -mcastAddr 225.0.0.1 -Name my_mygrouprecord -numSource 0 -recordType 4
4.python转义语句涉及为公司写的代码,不再描述。
python .center用法_python之testcenter操作相关推荐
- python .center用法_Python Pandas Series.str.center()用法及代码示例
Series.str可用于以字符串形式访问系列的值并对其应用几种方法. Pandas Series.str.center()函数用于在系列/索引中的字符串的左侧和右侧填充其他字符.该功能等效于Pyth ...
- python 数据字典用法_python数据字典的操作
一.什么是字典? 字典是Python语言中唯一的映射类型. 映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表. 字典对象是可变的,它是一个容器 ...
- python staticsmodels用法_python自动化之models 进阶操作二
################################################################## # PUBLIC METHODS THAT ALTER ATTRI ...
- python基本用法_Python基本用法总结
Python 的设计具有很强的可读性,易于使用.这里对python基本用法做一个总结介绍. 一. 变量类型 1. 变量赋值 Python中的变量赋值不需要类型声明,每个变量在使用前都必须赋值,变量赋值 ...
- python del用法_python del()函数用法 -电脑资料
示例程序如下: >>> a = [-1, 3, 'aa', 85] # 定义一个list >>> a [-1, 3, 'aa', 85] >>> ...
- python try用法_python中的try的用法
展开全部 try语句32313133353236313431303231363533e78988e69d8331333431366238是python里面的控制语句,与except,finally配合 ...
- python glob用法_python glob的安装和使用
原博文 2018-12-28 10:53 − 基本概念 glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,类似于Windows下的文件搜索,支持通配符操作.*,?,[ ...
- python end用法_python中end的使用方法
python中end的使用方法 发布时间:2020-06-17 09:47:13 来源:亿速云 阅读:178 这篇文章给大家分享的是有关python中end的使用方法,小编觉得挺实用的,因此分享给大家 ...
- python center函数_python pandas移动窗口函数rolling的用法
超级好用的移动窗口函数 最近经常使用移动窗口函数,觉得很方便,功能强大,代码简单,故将pandas中的移动窗口函数都做介绍.它都是以rolling打头的函数,后接具体的函数,来显示该移动窗口函数的功能 ...
- python elseif用法_python学习笔记(一)
0.前言 本文是根据廖雪峰python教程学习总结而来. 参考<python学习手册>,<流畅的python>以及python官方手册等网络资料 略过了与C和C++ 语言相同的 ...
最新文章
- 【翻译】在Sencha应用程序中使用插件和混入
- WCF传递强类型DataSet【源码】
- Eclipse如何从SVN更新和上传修改部分项目
- 海康摄像头 海思AI芯片(Hi35XX): 图像jpg转.bgr
- Android 监听home键(android:launchMode=singleTask 与 onNewIntent(Intent intent) 的用法
- Spring MVC DispatcherServlet介绍(2)
- C++泛型编程实现哈希表(开散列法)
- 自定义控件省市区:仿苹果级联菜单
- 高通平台Bring-up
- PHP调用微信发放现金红包接口
- html embed高度自适应,腾讯优酷视频分享iframe,embed高度多种比例控制
- 使用ADSL拨号服务器搭建自己的代理IP
- 人脸识别客户端应用程序_如何在应用程序中使用功能识别设置人脸检测
- 翻译:如何成功How to be successful OpenAI CEO山姆奥特曼
- Java多线程 信号量和屏障实现控制并发线程数量,主线程等待所有线程执行完毕2
- 下载b站外挂字幕,用 potplayer 播放视频也能看字幕了
- 放弃蚂蚁offer,选择农行软开!
- 如何使用灰灰美国专利下载软件一键下载美国专利
- require与import的区别和使用
- GPRS核心网信息元素—P-TMSI
热门文章
- 【SAP-CO】成本中心会计报表
- 如何设置计算机桌面待办事项,Windows电脑桌面云便签怎么设置每天提醒待办事项?...
- APS计划排程系统和生产排产系统,需要哪些基础资料(一)
- 的it生活_双子IT男性格随和、爱美食懂生活,会给女朋友准备小惊喜 | 企鹅来电VOL.03...
- 人生苦短_人生苦短的说说、句子及图片
- 圆角矩形大小怎么调整html,html圆角矩形
- python计算机器人运动学分析_orocos_kdl学习(二):KDL Tree与机器人运动学
- ma5671怎么设置_电信/联通/移动,更换华为MA5671光猫详细教程
- 微信网页投诉php,【分享】买的thinkphp微信无投诉按钮源码
- GCC --verbose选项, -lpthread 和-pthread的区别