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

在测试过程中,在具体测试某一个功能点时,往往需要为此进行大量的配置。为了简化测试过程,我们可以把所有的配置命令放在一个文本文件中,然后使用测试脚本来执行这些命令。这里讲的脚本,就可以用来执行指定的命令文件。此脚本被上一篇中介绍的test.exp调用。

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

基于如上考虑,编写了下面的脚本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中的命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值