IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 基于Python 实现 Spirent TestCenter 自动化 -> 正文阅读

[系统运维]基于Python 实现 Spirent TestCenter 自动化

基于Python 实现 Spirent TestCenter 自动化

关于Python API

1.Spirent TestCenter 自动化提供了一个基于Python语言的API。有关受支持的Python软件和操作系统版本的信息,请参见Spirent TestCenter基础和测试包的发布说明。

2.Python语言API支持标准的 API 函数集和标准的 Spirent TestCenter 数据模型。主要描述了Python API语法,提供了该API的简要概要,并描述了如何使用Python API 创建和运行 Spirent TestCenter 自动化测试的示例。

  1. .Python 环境中的 API 语法
  2. .Python API概要
  3. .Python 示例

3.在Linux上使用Spirent TestCenter 使用 Python API 时需要配置Python3 。Python API for Spirent TestCenter 要求在Python3.4语言设置中使用——启用-共享选项来编译libpython3.4.so文件。在使用Python3.4 API of Spirent TestCenter之前,请检查libpython3.4.so文件是否存在。注意:文件名可能略有不同,这取决于您的Linux发行版和版本,它是唯一一个在 /lib directory目录中可执行的文件。

4.使用此命令可以检查您是否有所需的Python库:$find -name “libpython3.4so” 2>/dev/null

Python环境中的API语法

在Python API中,Spirent TestCenter 自动化函数是StcPython类的实例方法。下面的代码片段创建了一个类的实例。实例化了类之后,就可以在引用API函数时使用变量stc作为前缀。

from StcPython import StcPython
    stc = StcPython()
    [...]
    stc.apply()

注意:下面总结了应用于Spirent TestCenter的Python语法规则。有关Spirent TestCenter自动化语法元素的详细讨论,请参阅API语法。

语法元素使用方法
对象与属性引用Spirent TestCenter自动化函数调用中的对象和属性引用是Python方法调用中的参数。在括号中的参数列表。参数用逗号分隔。例如:stc.create('port', under='project1', name='myport')
属性键–值对1. 属性键–值对使用 = 操作符 2.属性名称不会在名称-值对中被引用 3.对于PythonAPI,破折号前缀( the dash prefix)不与属性名称一起使用。 stc.create('streamblock', under=port)
DAN引用使用Descendant-Attribute Notation(DAN)的属性引用需要包含引号(并且不使用破折号前缀)。在下面的示例中,streamBlock.name是一个DAN属性引用:d = dict([('under', 'project1') , /('streamBlock.name''mystreamblock')] /stc.create('port', **d)
DDN引用使用 Direct-Descendant Notation (DDN)的对象引用需要包含引号。例如 stc.get('project1.port')
handle 引用Handle引用没有被引用。例如: portHandle = stc.create('port', under='project1') stc.get(portHandle)
对象类型名称对象类型名称用引号括起来。例如:stc.create('project')stc.perform('GeneratorStart',generatorList=generator)
独立属性名称属性名称(独立名称)用引号括起来。例如:stc.get(streamblockHandle, 'name')
关系引用关系引用Spirent TestCenter 自动化语法中被视为属性。关系引用附在引号中。例如: stc.get(portHandle, 'children') 如果使用对象类型筛选器,请使用破折号分隔符。例如:stc.get(portHandle, 'children-generator')
建立关系使用关键字参数格式(**kwargs)来指定关系及其值。例如 stc.config(Project_1,**{"DefaultSelection-targets": [FrameLengthDistribution_1]}) stc.config(Port_1,**{"AffiliationPort-sources": [EmulatedDevice_1,EmulatedDevice_3]})
整数整数值没有被引号引用。例如:stc.sleep(10) stc.perform('devicecreate', parentList='project1',createCount=4) 请注意,组合后的值必须用引号括起来:stc.config(portHandle, location="//10.1.1.1/1/2")

Python API概要

以下提供了关Spirent TestCenter 自动化的PythonAPI的简要概述。

1. API函数概要

API函数概要
下表列出了API中的函数。对于每个函数,该表显示了方法调用参数列表的参数,包括返回值的类型
此表显示了每个函数的参数列表的抽象部分。有关这些函数的详细信息,请参见API函数。

函数参数列表数据类型
createcreate(objectTypeString, attributeName=value [,...]) 返回值:HandleString
configconfig(handleString, attributeName=value [,...])返回值:none
getget(handleString) get(handleString, attributeName [,...])返回值:value or attribute name/value pairs
performperform(commandNameString)perform(commandNameString,attribute Name=value [,...])
deletedelete(handleString)
connectconnect(hostNameString [,...])
disconnectdisconnect(hostNameString [,...])
reservereserve(//chassis/slot/port string [,...])
releaserelease(//chassis/slot/port string [,...])
applyapply()
sleepsleep(numberSecondsInteger)
loglog(logLevelString, messageString)
waitUntilCompletewaitUntilComplete (timeout=numberSecondsInteger)
subscribeunsubscribe(resultDataSetHandleString)
helphelp()/help(‘commands’)/help(commandNameString)/help(handleString)/help(objectTypeString)

2. dict或string(返回值)

get 和 perform 函数可以返回属性名的dict(Python 标准库对象)。如果一个特定函数调用的结果是一个属性值,则该函数将返回一个 string。否则,该函数将返回一个 dict。
例如:

stc.get(port, ‘name’)

返回一个字符串

stc.get(port)

或者返回一个含有多个条目的dirt,如果一个属性有多个值,则dict值是一个包含由空格分隔的值的字符串。

Python示例

本主题中描述的示例使用 Spirent TestCenter 机箱上的两个端口,并创建的简单测试配置如下图所示:

在这里插入图片描述
Python 脚本将创建项目对象、两个端口对象和一个流线块对象 Spirent TestCenter 中心将自动创建生成器、分析器和结果对象;自动对象将显示为红色。以下部分描述了 Python 脚本的示例:
Initialization(初始化)
Chassis, Slot, and Port Variables(机箱,板卡,端口)
Project and Port Objects(项目,端口)
Traffi Configuration(流量配置)
Attaching Ports(连接端口)
Results Subscription(查看结果)
Traffic Generation(产生流量)
Termination(停止)

Initialization

每个 Spirent TestCente 自动化 Python 脚本必须加载Spirent TestCenter模块,才能使用API。下面的代码片段初始化了 Spirent TestCenter 自动化环境

from StcPython import StcPython #导入StcPython
stc = StcPython() #创建了一个StcPython的实例,并初始化了 Spirent TestCente 系统。该脚本将使用stc变量作为引用 Spirent TestCente 自动化功能的前缀

代码片段建立了对 Spirent TestCenter 自动化 Python API 的访问。

Chassis, Slot, and Port Variables

此代码片段声明一些变量,以标识要在测试中使用的机箱、板卡和端口。它还设置了日志记录。

chassisAddress = '10.100.20.60'
slot = 2
Python Example
p1 = 1
p2 = 2
print "using //%s/%s/%s" % (chassisAddress, slot, p1)
print "using //%s/%s/%s" % (chassisAddress, slot, p2)
#set up the log file
stc.config( 'automationoptions', loglevel='info', logto='mylog.txt' )

Project and Port Objects

下面的代码片段将创建项目对象和端口对象。项目对象是对象层次结构的根目录。端口对象表示 Spirent TestCenter 机箱上的端口。此代码创建对象,检索并显示项目属性,并指定端口位置。

print 'Create a Project - root'
project = stc.create('project')
print 'Get Project attributes'
projectAtt = stc.get(project, 'name')
print projectAtt
print 'Create Ports under', project
port1 = stc.create('port', under=project)
port2 = stc.create('port', under=project)
print 'Configure Port locations'
stc.config(port1, location="//%s/%s/%s" % (chassisAddress, slot, p1))
stc.config(port2, location="//%s/%s/%s" % (chassisAddress, slot, p2))

Traffic Configuration

此代码片段创建一个 StreamBlock 对象,并检索生成器和分析器对象的Handle。

print 'Creating StreamBlock on Port 1'
streamBlock = stc.create('streamBlock', under=port1 )
generator = stc.get(port1, 'children-generator')
analyzer = stc.get(port2, 'children-Analyzer')

Attaching Ports

此代码片段调用附件端口命令并应用该配置。附件端口可完成以下操作:

  1. 连接到机箱(使用在“端口对象位置”属性中指定的机箱IP地址)
  2. 预订端口
  3. 在机箱中创建物理端口与测试配置中的逻辑表示之间的映射。
  4. 您可以通过调用连接功能,然后使用保留端口和映射端口命令来分别执行这些操作;但是,附加端口命令的效率更高。
print 'Attaching Ports...'
stc.perform('AttachPorts', portList=[port1, port2], autoConnect='TRUE')
stc.apply()

Results Subscription

以下对 Subscribe 函数的调用为生成器结果和分析器结果建立Subscription。调用指定一个文件名前缀,以生成一个包含以逗号分隔的值的结果输出文件。有关详细信息,请参阅Subscriptions功能的描述和关于创建Subscriptions的信息。

print 'Call Subscribe...'
port1GeneratorResult = stc.subscribe(Parent=project,
						ResultParent=port1,
						ConfigType='Generator',
						resulttype='GeneratorPortResults',
						filenameprefix="Generator_port1_
						counter_%s" % port1,
						Interval=2 )
port2AnalyzerResult = stc.subscribe(Parent=project,
						ResultParent=port2,
						ConfigType='Analyzer',
						resulttype='AnalyzerPortResults',
						filenameprefix="Analyzer_port2_counte %s"%port1 )

Traffic Generation

以下代码片段:

print 'Starting Traffic...'
stc.perform('AnalyzerStart', analyzerList=analyzer)#启动分析器并等待允许足够的时间后再继续。
print 'start', analyzer
# wait for analyzer to start
stc.sleep(1)


stc.perform('GeneratorStart', generatorList=generator)
print "start", generator #启动Generator。
# generate traffic for 5 seconds
print 'Sleep 5 seconds...'


stc.sleep(5)
print 'Stopping Traffic...'
stc.perform('GeneratorStop', generatorList=generator)
stc.perform('AnalyzerStop', analyzerList=analyzer)
print 'stop', generator
print 'stop', analyzer#睡眠5(5)秒,然后停止Generator and Analyzer。

print 'Call Unsubscribe...'
stc.unsubscribe(port2AnalyzerResult)
stc.unsubscribe(port1GeneratorResult)#取消subscriptions。

Termination

在测试结束时,脚本将释放端口,断开与机箱的连接,并删除项目对象以释放所有资源。下面的代码片段显示了您用于执行终止的函数调用。

print 'Call Disconnect...'
stc.disconnect(chassisAddress)
stc.delete(project)

以上 form https://support.spirent.com/

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 18:26:09  更:2022-06-25 18:29:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:03:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码