TCL/EXPECT自动化测试脚本实例二 --- 主程序

发表于:2009-06-24来源:作者:点击数: 标签:自动化主程序TCLEXPECT实例
这里介绍了 测试 主程序,主程序采用一种灵活的机制,方便增加新的测试项目,也可以执行一系列命令,或者执行指定的脚本程序。 现在介绍一下测试主程序: test.exp。 为了方便加入新的测试项目,主程序采用了一种灵活的机制,它根据需要通过source命令调用相
这里介绍了测试主程序,主程序采用一种灵活的机制,方便增加新的测试项目,也可以执行一系列命令,或者执行指定的脚本程序。

    现在介绍一下测试主程序: test.exp。
    为了方便加入新的测试项目,主程序采用了一种灵活的机制,它根据需要通过source命令调用相应的子测试程序。这样一来,每个测试点都可以单独放到一个文件中,然后被主程序引用。
先看一下代码:

#! /usr/bin/expect --

# $Id$
# Usage:
#    ./test [-uuser] [-ppassward] [-iip_address]  test_001 ...
# or ./test [-uuser] [-ppassward] [-iip_address] [-clearcase/" target="_blank" >ccommand_file] cmd
# or ./test [-uuser] [-ppassward] [-iip_address] [-sscript_file] script

source global.exp
source commonLib.exp

# initialize variables
set cmdFile ""
set tList $argv
set execScript ""

# process options
set endOptIndex -1
foreach arg $argv {
    if {![string match "-\[a-zA-Z]*" $arg]} {
        break
    }

    # inc end option index
    incr endOptIndex

    # get option flag and option value
    set optFlg [string range $arg 1 1]
    set optVal [string range $arg 2 end]
    dbgLog "$optFlg $optVal"
    if {$optVal == ""} {
        dbgLog "option value is null: -$optFlg"
        return -1
    }

    switch $optFlg {
        "u" {
            set g_user $optVal
            dbgLog "user: $g_user"
        }
        "p" {
            set g_passwd $optVal
            dbgLog "password: $g_passwd"
        }
        "i" {
            set g_devip $optVal
            dbgLog "devip: $g_devip"
        }
        "c" {
            set cmdFile $optVal
            dbgLog "cmdFile: $cmdFile"
        }
        "s" {
            set execScript $optVal
            dbgLog "execScript: $execScript"
        }
        default {
            puts "unknown option: -$optFlg"
            return -1
        }
    } ;# end switch
} ;# end foreach

# remove options from list
if {$endOptIndex != -1} {
    set tList [lreplace $argv 0 $endOptIndex]
}

dbgLog "tList is: $tList"

# create log dir
if { ![file exist "log"] || ![file isdirectory "log"] } {
    puts "please create directory \"log\""
    return -1
}

# read current time
set clicks [clock clicks]
set tstr [clock format $clicks -format "%y%m%d%I%M%S"]

原文转自:http://www.ltesting.net