TCL/EXPECT自动化测试脚本实例四 --- 批命令执行

王朝other·作者佚名  2007-02-23
窄屏简体版  字體: |||超大  

在测试过程中,在具体测试某一个功能点时,往往需要为此进行大量的配置。为了简化测试过程,我们可以把所有的配置命令放在一个文本文件中,然后使用测试脚本来执行这些命令。这样就不需要再手工进行配置了,费时费力。

基于如上考虑,编写了下面的脚本tCmd.exp。这个脚本被我们前面介绍过的test.exp脚本调用。

# $Id$

# This file is used to execute specific commands list in a file

proc execCmdFile {cmdFile} {

global g_dbgFlag g_prompt

# enable debug

set g_dbgFlag 1

# login

set spawn_id [login $g_devip $g_user $g_passwd]

if {$spawn_id == 0} {

errLog "login $g_devip failed"

return 0

}

# open cmdFile

set cmdFd [open $cmdFile r]

while true {

# get a line

if {![getLine $cmdFd line]} {

dbgLog "reached eof"

break

}

# split the line

set ln [split $line ","]

set cmd [string trim [lindex $ln 0]]

set out [string trim [lindex $ln 1]]

if {$cmd == ""} continue

if {$out == ""} set out $g_prompt

# send cmd line

exp_send "$cmd\n"

dbgLog "send $cmd"

# expect output

dbgLog "expect $out"

expect {

timeout {

errLog "TIMEOUT: while exec \"$cmd\""

continue

}

-ex "$out" {

continue

}

} ;# end expect

}

# close cmdFile

close $cmdFd

}

# if no cmdFile, use default

if {$cmdFile == ""} {

set cmdFile "cmdFile.txt"

}

execCmdFile $cmdFile

有了这个脚本,我们可以使用"./test.exp -cinterface.txt cmd"来执行interface.txt中的命令。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航