spirent会话控制库
SpirentSLC的Python项目详细描述
spirent会话控制库
spirent会话控制库用于控制itest会话,以便通过python脚本与设备进行快速、轻松的交互。这些目标设备/api可以动态定义,也可以通过itest项目中定义的会话配置文件来定义。
如何运行
最简单的方法如下:
下载最新的Velocity代理
像这样跑 ./Velocity代理--AgentVelocity主机本地主机--SFagentServerPort 9005--侦听模式--SFagentDisablessLvalidation
使用slc编写python脚本 可以在此处找到并执行示例脚本:
python example.py
文档
操作模式
python会话控制库用于控制itest会话,以便通过python脚本与设备进行快速而轻松的交互。这些目标设备/api可以动态定义,也可以通过itest项目中定义的会话配置文件来定义。
库可以在以下任一模式下运行:
- 独立在工作站上
- 连接到itest gui实例
初始化
独立
确保在安装库的工作站上设置了以下环境变量,并且脚本将在其上运行:
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed
不使用spirent_slc_host
环境变量也是合法的,在这种情况下,假定为本地变量。
itar_path
在本地环境中设置为指向放置itar和分解项目文件夹的文件夹,以便本地执行代理可以找到项目。当连接到正在运行的itest gui或velocity实例时,无需设置此选项。
fromSpirentSLCimportSLCslc=SLC.init()
导入库后,调用slc.init()
会将底层执行代理初始化为库将与之通信的后台进程。返回一个对象,该对象是与库进一步通信的入口点。在这个版本中,在一个python解释器上下文中只能进行一次init()
调用。
如果无法初始化库,将引发异常。
测试图形用户界面
确保在安装库的工作站上设置了以下环境变量,并且脚本将在其上运行:
SPIRENT_SLC_HOST=localhost:port # must be host and port of the configured instance of iTest GUISPIRENT_SLC_PASSWORD=xxxx
itest的实例必须在指定的主机上运行,并且必须配置为接受所需端口上的连接。可以选择将密码配置为限制对该实例的访问,在这种情况下,必须指定或在init()调用中提供spirent\u slc\u password
环境变量。
fromSpirentSLCimportSLCslc=SLC.init()# will take all values from environment variables
或者,可以在init()调用中提供值:
slc=SLC.init(host='localhost:3030',password='xxx')
如果库无法连接到itest gui实例,将引发异常。
自动代理启动
通过指定指向itest agent文件夹的环境变量,可以将slc配置为自动启动新agent的实例。
SPIRENT_SLC_AGENT_PATH=path #to agent folderITAR_PATH=path #to folder where iTars are placed
fromSpirentSLCimportSLCslc=SLC.init()
与项目合作
初始化后,库将可以访问所有可用的itest项目。 每个项目都包含许多可以通过代码寻址的实体。 其中包括会话配置文件和拓扑。
列出项目
slc.list()==>['topologies','session_profiles']
项目名称中的所有空格或python标识符中不合法的任何其他字符将被返回值中的下划线替换。
导入项目
项目在使用前需要先导入。由于"import"是python中的一个保留字,我们将其称为"open"。这可以通过以下代码完成:
proj=slc.open('project_name')
如果需要,可以导入多个项目
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed0
查询项目
列出项目中所有可用的拓扑和会话配置文件
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed
1
<理>列出其他类型的资产,如参数文件和响应映射
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed
2
显示给定会话配置文件中所有可用的快速调用
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed
3
访问有关连接到拓扑中资源的会话的快速调用的帮助
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed
4
访问特定QuickCall的参数列表
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed
5
未列出内置会话操作,仅当会话配置文件附加了QuickCall库时才列出QuickCalls。
如果用户正在访问内置会话类型(如telnet或ssh),他们仍可以调用操作,但不会被list()调用列出。
需要注意的是,所有显示的quickcall名称都将转换为snake case,以符合python命名约定。
使用会话
打开会话
会话可以直接在会话配置文件或本地拓扑上打开。
在会话配置文件上打开会话
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed
6
打开会话,提供所需参数
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed
7
打开会话,使用参数文件
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed
8
打开会话,指定要使用的响应映射
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed
9
打开会话,指定要使用的响应映射库
fromSpirentSLCimportSLCslc=SLC.init()
0
打开会话,指定其他会话属性
fromSpirentSLCimportSLCslc=SLC.init()
1
在本地拓扑中的资源上打开会话
fromSpirentSLCimportSLCslc=SLC.init()
2
直接打开本机会话类型(6.2中不支持)
列出项目中所有可用的拓扑和会话配置文件
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed1 <理>
列出其他类型的资产,如参数文件和响应映射
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed2
显示给定会话配置文件中所有可用的快速调用
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed3
访问有关连接到拓扑中资源的会话的快速调用的帮助
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed4
访问特定QuickCall的参数列表
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed5
未列出内置会话操作,仅当会话配置文件附加了QuickCall库时才列出QuickCalls。
如果用户正在访问内置会话类型(如telnet或ssh),他们仍可以调用操作,但不会被list()调用列出。
需要注意的是,所有显示的quickcall名称都将转换为snake case,以符合python命名约定。 使用会话
打开会话
会话可以直接在会话配置文件或本地拓扑上打开。
在会话配置文件上打开会话
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed6
打开会话,提供所需参数
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed7
打开会话,使用参数文件
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed8
打开会话,指定要使用的响应映射
SPIRENT_SLC_HOST=localITAR_PATH=path #to folder where iTars are placed9
打开会话,指定要使用的响应映射库
fromSpirentSLCimportSLCslc=SLC.init()0
打开会话,指定其他会话属性
fromSpirentSLCimportSLCslc=SLC.init()1
在本地拓扑中的资源上打开会话
fromSpirentSLCimportSLCslc=SLC.init()2
可以直接打开会话,而无需启动基础会话配置文件或拓扑文件。
- 直接打开本机ssh会话类型,提供所需的会话配置文件信息
fromSpirentSLCimportSLCslc=SLC.init()
3 会话信息 一旦会话被打开,就可以找到一些关于会话处理位置的基本信息。这是通过会话对象的代理属性完成的。fromSpirentSLCimportSLCslc=SLC.init()
4
调用会话上的操作
活动会话上定义了许多操作,这些操作可以是在该会话类型上定义的内置操作或快速调用。任何这些都可以在会话中调用。
用一个参数调用init_routes quickcall
fromSpirentSLCimportSLCslc=SLC.init()
5使用特定的响应映射调用内置操作(它可能覆盖为整个会话设置的内容)
fromSpirentSLCimportSLCslc=SLC.init()
6反应 生成的响应对象可用于查询有关操作执行和响应本身的详细信息:
执行持续时间和任何错误状态
fromSpirentSLCimportSLCslc=SLC.init()
7响应的文本呈现
fromSpirentSLCimportSLCslc=SLC.init()
8如果响应是json,则更容易将json直接作为字典获取
fromSpirentSLCimportSLCslc=SLC.init()
9同样,如果响应是xml,则可以直接作为xml访问它
SPIRENT_SLC_HOST=localhost:port # must be host and port of the configured instance of iTest GUISPIRENT_SLC_PASSWORD=xxxx
0
查询
response对象也可以在其上定义查询-查询结构化数据和返回值的方法。查询可以在itest中自动生成,也可以在响应图中定义。
列出已存在的响应查询集
SPIRENT_SLC_HOST=localhost:port # must be host and port of the configured instance of iTest GUISPIRENT_SLC_PASSWORD=xxxx
1调用查询
SPIRENT_SLC_HOST=localhost:port # must be host and port of the configured instance of iTest GUISPIRENT_SLC_PASSWORD=xxxx
2查询名称始终转换为snake case。
结束会话
会话应该在不再需要时关闭,因为它们会消耗代理上的资源(如果正在使用,则会消耗速度)。如果会话在循环中打开,则关闭会话尤其重要。
- 关闭会话并释放资源
SPIRENT_SLC_HOST=localhost:port # must be host and port of the configured instance of iTest GUISPIRENT_SLC_PASSWORD=xxxx
3
关机
正确关闭库对于确保及时释放资源非常重要。
- 释放库使用的所有资源
SPIRENT_SLC_HOST=localhost:port # must be host and port of the configured instance of iTest GUISPIRENT_SLC_PASSWORD=xxxx
4 释放的资源包括所有剩余的打开会话、由脚本发起的所有保留,以及(如果是本地的)底层执行代理。