有时候,当我孤独地坐着等待生命大门关闭时,一种与世隔绝的感觉就会像冷雾一样笼罩着我。远处有光明、音乐和友谊,但我进不去,命运之神无情地挡住了大门。我真想义正词严地提出抗议,因为我的心仍然充满了热情。但是那些酸楚而无益的话语流溢在唇边,欲言又止,犹如泪水往肚里流,沉默浸透了我的灵魂。然后,希望之神微笑着走来对我轻轻耳语说:“忘我就是快乐。”因而我要把别人眼睛所看见的光明当作我的太阳,别人耳朵所听见的音乐当作我的乐曲,别人嘴角的微笑当作我的快乐。

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

上一篇 / 下一篇  2009-07-27 09:55:51 / 个人分类:C语言

测试过程中,在具体测试某一个功能点时,往往需要为此进行大量的配置。为了简化测试过程,我们可以把所有的配置命令放在一个文本文件中,然后使用测试脚本来执行这些命令。这样就不需要再手工进行配置了,费时费力。
基于如上考虑,编写了下面的脚本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中的命令。


TAG:

 

评分:0

我来说两句

Open Toolbar