HOME > Document > iTest Columns

Spirent iTest コラム


このページでは、iTestに関するコラムを掲載しています。

1. iTestを使うにはプログラミングが必要か?

iTestはコマンドライン操作や文字列解析をGUI操作で簡単に自動化できるものですので、決してTclでプログラミングするわけではありません。

VisualStuioやEclipseに代表される開発環境 IDE と同等の環境を標準装備し、様々なデバイスをTelnet,SSH,コマンドプロンプト,シリアル接続などのコマンドライン操作や
Webインターフェイスを持ったデバイス あるいは Webサービスインターフェイス、VM仮想環境、データベース、など様々なプロトコルタイプによる自動操作をGUIベースで可能にするソフトウエアです。

基本的な操作は、マウス操作だけで行うことができ、デバイスのレスポンスから特定の文字列を抽出したり、抽出した文字を判定したりといった操作は、GUIベースですべて行えます。

したがって、決してコードを書いてプログラミングするわけではなく、誰でも使えるソフトウエアです。

iTestはTclというスクリプト言語のインタープリターを持っています。これはシナリオ作成において拡張性を与えてくれます。

Tclを少し知ることで、さらに便利に、また、さらに高度な使用法にも対応することができるのです。

2. Tclとは

Tcl/Tk という言葉の方が、一般的かも知れませんが、Tcl(Tool Command Language)とは1988年にDr.John K. Ousterhout氏によってカリフォルニア州立大学バークレー校で開発された スクリプト言語です。

Tclはマルチプラットフォームで動作し、変数、配列の型やサイズを意識せずに、簡単/高速に 文字列や構造体を処理できる非常に便利なツールです。

ネットワーク機器を検証する際に、スイッチ、ルータのプロトコルのエミュレーションを行ったり、フレームを変えながら負荷トラフィックを生成させたりするテスターと呼ばれるものが利用されますが、
実は テスターには、ほぼ必ずTclのAPIが実装されているのです。

3. Tclに触れてみる

iTestの基本操作はすべてマウスで行えるので、コードを書かずにTestcase開発が行えます。しかし、最低限 覚えておいた方が良いことがあります。
[変数] $をつけて参照する
set SUJI 100      
puts $SUJI ==> 100
[値がスペースを含む場合] 値にスペースが含まれる場合はダブルクオート または {} で囲う
set MOJI "ABC DE" 
set MOJI {ABC DE}
[カッコ] 四角いカッコの中は、先に処理される
set KEKKA [expr $SUJI * 5]
puts $KEKKA
[リスト] 複数の値を変数に格納
set MOJIGROUP {AAA BBB CCC DDD {EEE FFF GGG}}
[リストに含まれる値の数]
llength $MOJIGRUP => 4 リストに含まれる数
[リストの2番目 参照]
set NIBANME [lindex $MOJIGROUP 1] (*)ゼロから始まるから
[リスト内容を参照]
foreach ATAI $MOJIGROUP {
 puts $ATAI
}
==> 
AAA 
BBB
CCC
DDD
EEE FFF GGG
しかし、さらにTclを活用すれば、Testcase作成が楽に、メンテナンス性も良くなる場合が多くあります。

Tclライブラリーを見てみても、結構色々なものが揃っているので、スクラッチで作らなくても便利なものがたくさんあります。マスターすると便利なのは、例えば ファイル操作、文字列検索、置換、正規表現、XPathです。
Tcl、正規表現、XPathは、製品に特化した技術ではなく、標準的なテクノロジーですので色々な場面で活用できると思います。