現在介紹一下測試主程序: test.exp。
為了方便加入新的測試項目,主程序采用了一種靈活的機制,它根據需要通過source命令調用相應的子測試程序。這樣一來,每個測試點都可以單獨放到一個文件中,然后被主程序引用。
先看一下代碼:
#! /usr/bin/expect --
# $Id$
# Usage:
# ./test [-uuser] [-ppassward] [-iip_address] test_001 ...
# or ./test [-uuser] [-ppassward] [-iip_address] [-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.kjueaiud.com/