Ixia,美国Ixia公司的通信网络测试仪。

1.Ixia的自动化测试场景

测试PC(安装IxOS)AT框架-->Tcl驱动库SIG_Teq_Ixia.tcl(加载 IxTclHal库)-----(以太网线)----->Ixia chassis

IxOS是Ixia的基本软件包,主要包含IxServer(这个服务IxServerService运行在Ixia机框里的windowsOS上,处理测试机与测试仪之间的通信),IxExplorer(测试机上的客户端操作界面,访问所有的Ixia硬件功能),TclServer。

测试机上IxOS安装完成后,其安装目录下有定义Ixia chassis内部Tcl API命令的.tcl库文件:C:/Program Files/Ixia/IxOS/5.30-EA-SP2/TclScripts/bin/IxiaWish.tcl。需要在自己的库文件里“package require  IxTclHal”加载。

2.Ixia的自动化架构和Tcl API层次

IxHal是一个Ixia chassis上的硬件抽象层,是一个基于C++的应用,为Ixia硬件提供了一个更高层次的抽,与IxServer一起操作Ixia hardware。IxHal同时还起到一个信息缓存的作用,下发的参数先缓存到IxHal,再写到硬件里去,从硬件读取的参数也是先读取到IxHal中,再到Tcl应用也就是Tcl Console里

IxTclHal是客户端上的Tcl库,访问Ixia硬件平台的所有Tcl API都由它提供。通过它可以下发各种配置,创建各种方案(如流量)并执行动作。这些Tcl命令具体由C/C++语言来实现的。测试机安装IxOS客户端后,安装目录下有ixTclHal.tcl等库文件和IxTCLHAL.dllIxTCLHALDLL提供了连接到IxTclHal Command Library的接口。

3.Ixia Tcl API命令格式

分为low-level和high-level两种:

(1) Lower-level API  底层API函数(基于机箱基本操作配置的底层API,面向对象)  

底层API一般是面向对象的函数,以操作的对象为函数名 + 标准方法

实际上这个函数式定义了一个结构,结构成员有很多属性,用户设置特定的属性值来定义一个结构,最后一次性下发到机箱中生效

eg:  port   stream  filter   capture   captureBuffer   stat  ip

(2) higher-level API高层API函数(经过二次封装的函数,面向过程)

高层API一般是面向过程的函数,后跟参数直接由interpreter解释后立即执行,一般以”ix”打头。

eg:  ixConnectToChassis  (以ix开头的proc)

4.IxTclHal用于low-level API的常用标准方法

5.一般调用IxTclHal command的测试过程步骤

(1) 加载Ixia Tcl命令库

Tcl解释器中加载IxTclHal.dll--TclHal类和方法;

加载定义测试缺省值的Tcl初始化文件;

加载通用过程

Ixia仪表根据测试领域和功能的不同包含若干应用程序,这些程序都提供了Tcl API接口可以访问和控制所有的hardware功能,但需要加载不同的Tcl package:

IxOS                    package  require IxTclHal  最基本的硬件控制函数

IxNetWork         package require IxTclHal   测试路由协议的函数

IxLoad                 package require IxLoad    测试4-7层的函数

IxScriptMate     depend on the test            预定义测试套件(RFC2544…),高层API接口

HLTAPI                package require Ixia          高层API,用户常用的Tcl测试接口

IxVPN                  package require IxVPN     VPN测试函数

其他还有很多…………..

(2) 连接到机箱

建立到IxServer的TCP链接;

检查版本是否匹配;

获得当前配置;

给Ixia机箱分配一个ID;

如果是UNIX系统还要链接到TCP Server

(3) 配置端口port,创建并设置流量stream,设置其它需要的东西如过滤器Filter,并将配置参数写入硬件

(4) 打流,并根据测试需求在接收端口捕捉包(portGroup),或者查看一些相关的计数(statAllStats)

(5) 结束测试

中断与Ixia机箱链接

释放Tcl arrays and lists分配的内存

释放对象分配的TclHal内存

如是UNIX客户端要中断与TCL Server链接

如使用ixDisconnectFromChassis命令,就只中断和Ixia机箱的连接,不中断TclHal环境

6.一些Ixia AT执行时的注意事项

(1) Ixia仪表chassis上内置的PC主机(windowXP)需要--->services.msc--->启动对应的IxServerService

(2) Ixia上的IxServer和TestPC上的Tcl  Client的版本最好相符,否则一些API的下发执行可能会有问题,client端执行script时会报错

(3) Tcl语言 + Ixia Tcl API = Tcl操作Ixia仪表的函数库文件SIG_IxiaAT.tcl,里面函数的一些返回值都写到注册表里,用于上层的结果判断

(4) 库目录下的pkgIndex.tcl离需要加入下面一句

“package ifneeded IxTclHal 5.30 [list source [file join "C:/Program Files/Ixia/IxOS/5.30-EA-SP2/TclScripts/bin" IxiaWish.tcl]]”

才能确保SIG_Teq_Ixia.tcl里“package require IxTclHal”里能找到对应的库文件,理论上可以将定义Ixia Tcl command的这个文件单独拎出来放在同一目录下方便移植,这样客户端测试PC就不用费事安装IxOS了,但貌似这个文件和IxOS安装目录下的其它一些.tcl文件和.dll文件有管理,单独只移植IxiaWish.tcl文件,执行会报错,有些东西找不到。具体哪些文件有关联还需要深入研究下。

(5)IxExplorer安装后自带的有Tcl interrupt,但操作Ixia时可以也使用任何一个Tcl interrupt,只要把用到的库文件都加载了即可

本文只是简单的Ixia自动化原理的介绍,详细的Ixia Tcl API可以参阅具体的API官方文档。

Ixia测试仪的自动化的更多相关文章

  1. Xena测试仪的自动化

    Xena,Xena Networks公司的网络测试仪,也能覆盖以太网L2~L7层测试仪,但功能较简单,界面也很简洁,用起来比较直观方便. 1.Xena的自动化测试场景 测试PC上的AT框架--> ...

  2. SpirentTestcenter测试仪的自动化

    SpirentTestcenter,美国思博伦公司的网络测试仪表,覆盖以太网L2~L7层,使用过的仪表中功能最强大的. 1.SpirentTestcenter的自动化测试场景 测试PC上的AT框架-- ...

  3. 自动化SQL注入工具 sqlmap 使用手册

    0x00 sqlmap介绍 什么是sqlmap? sqlmap是一个开源的渗透测试工具,它自动化了检测和利用SQL注入缺陷 以及接管数据库服务器的过程.它配备了一个强大的检测引擎 ,以及终极渗透测试仪 ...

  4. 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)

    通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...

  5. 细说前端自动化打包工具--webpack

    背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...

  6. python自动化测试(2)-自动化基本技术原理

    python自动化测试(2) 自动化基本技术原理 1   概述 在之前的文章里面提到过:做自动化的首要本领就是要会 透过现象看本质 ,落实到实际的IT工作中就是 透过界面看数据. 掌握上面的这样的本领 ...

  7. Appium移动自动化框架

    引言:Appium 是一个移动端自动化测试开源工具,可以针对不同的平台用一套API来编写测试用例.本文对Appium自动化测试框架的功能进行了概括. 本文选自<软件自动化测试开发>. Ap ...

  8. 前端自动化构建工具gulp记录

    一.安装 1)安装nodejs 通过nodejs的npm安装gulp,插件也可以通过npm安装.windows系统是个.msi工具,只要一直下一步即可,软件会自动在写入环境变量中,这样就能在cmd命令 ...

  9. CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维

    前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括 ...

随机推荐

  1. js控制 固定框架内图片 按比例显示 以及 占满框架 居中显示

    js控制 固定框架内图片 等比例显示 以及 占满框架 纵横居中显示 通过设置 js函数 fitDiv里面var fit的值就好 function fitDiv (obj) { var target_w ...

  2. Nginx和Apache配置日志格式记录Cookie

    记录Cookie有什么用? 有时候我们需要通过web服务器的访问日志来统计UV(独立访客),并据此分析用户的行为.而UV是依据cookie数据得出的统计.UV相对于IP的好处是:IP是一个反映网络虚拟 ...

  3. Python爬虫入门

    Python爬虫简介(来源于维基百科): 网络爬虫始于一张被称作种子的统一资源地址(URLs)列表.当网络爬虫访问这些统一资源定位器时,它们会甄别出页面上所有的超链接,并将它们写入一张"待访列表",即 ...

  4. OLDB读取excel的数据类型不匹配的解决方案(ZT)

    1 引言  在应用程序的设计中,经常需要读取Excel数据或将Excel数据导入转换到其他数据载体中,例如将Excel数据通过应用程序导入SQL Sever等数据库中以备使用.笔者在开发“汽车产业链A ...

  5. HoloLens模拟器仿真器与文档现已向开发者们开放

    HoloLens仿真器与文档现已向开发者们开放 直接上链接吧:http://mt.sohu.com/20160301/n438961462.shtml

  6. SPOJ bsubstr

    题目大意:给你一个长度为n的字符串,求出所有不同长度的字符串出现的最大次数. n<=250000 如:abaaa 输出: 4 2 1 1 1 spoj上的时限卡的太严,必须使用O(N)的算法那才 ...

  7. .pyc是个什么鬼?

    1. Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言, ...

  8. Android线程间通信更新UI的方法(重点分析EventBus)

    Android的UI更新只能在UI线程中,即主线程.子线程中如果要进行UI更新,都是要通知主线程来进行. 几种实现方式总结如下,欢迎补充. 1.runOnUiThread() 子线程中持有当前Acti ...

  9. 使用Xamarin.Forms平台开发移动应用指南

    下载书:链接: http://pan.baidu.com/s/1c29H9KG 密码: 7esm 注:捣鼓虚拟机把Hyper-V关闭,后来Xamarin搞挂了,所以暂停翻译. 第1章 Xamarin. ...

  10. 序列最小最优化算法(SMO)-SVM的求解(续)

    在前一篇文章中,我们给出了感知器和逻辑回归的求解,还将SVM算法的求解推导到了最后一步,在这篇文章里面,我们将给出最后一步的求解.也就是我们接下来要介绍的序列最小最优化算法. 序列最小最优化算法(SM ...