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

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

TCL脚本读取命令行参数

1:Tcl脚本的执行   A:获取tclsh(linux)、tclsh.exe(windows)的安装路径   B:脚本第一行书写 “#!C:\Tcl\bin\tclsh” 或者 “#!/usr/...
  • Augusdi
  • Augusdi
  • 2015年05月08日 23:25
  • 7074

TCL命令

TCL命令集合eval命令本身使用非常简单,但是用处非常大,如果需要动态的构造命令,那么必须使用eval命令。eval命令参考:http://blog.csdn.net/dulixin/archive...
  • Augusdi
  • Augusdi
  • 2015年10月13日 14:52
  • 2679

TCLEXPECT自动化测试脚本实例

TCL/EXPECT自动化测试脚本实例一 --- telnet到目标机器 自动化TCLtelnetEXPECTTelnet自动测试框架STAFRobotFramework持续集成 这是一个...
  • boyishachang
  • boyishachang
  • 2013年03月21日 14:24
  • 583

TCL程序库与软件包

1、关于程序库和软件包的说明 TCL程序库是包含了一个或多个实现一系列相关过程的TCL脚本文件的目录。TCL提供了一个标准过程库,实现了它的一些默认行为。 使用info library可以返回TC...
  • yuhanfeng314
  • yuhanfeng314
  • 2014年07月31日 16:03
  • 2016

自动化交互脚本Expect简单介绍及应用实例

在自动化测试中,有很多需要交互式处理的操作,常用的shell是无法完成交互的。Expect shell脚本是一种自动化交互脚本,可以很方便的完成自动化测试任务。 本文根据工作中实例,简单介绍了一下ex...
  • laoding1993
  • laoding1993
  • 2016年02月26日 13:54
  • 796

mac上expect安装

1.下载tcl 下载地址 2.将下载好的文件放到/usr/local路径下(command+shift+g)需要输入密码 3.终端输入下面指令,需要密码的自行输入 cd /usr/local su...
  • JW_xueZhiXia
  • JW_xueZhiXia
  • 2017年01月06日 23:28
  • 3581

用expect写交互式shell脚本之expect 执行顺序

交互式脚本 不确定交互
  • wlp001007
  • wlp001007
  • 2015年03月26日 22:23
  • 3001

TCL学习之子进程调用--open&exec

本篇文章讲的是TCL学习中的子进程调用--open&exec。 1.格式:open |progName ?access? 功能:为管道返回一个文件描述符。如果proName用括号括起来,可以包含参...
  • IamSarah
  • IamSarah
  • 2017年04月28日 11:22
  • 998

Linux下通过crontab及expect实现自动化处理

实现每天定时从远程linux服务器上复制文件到本地,使用crontab建立定时任务,并通过scp进行Linux之间的文件复制。...
  • pierre_
  • pierre_
  • 2015年05月11日 20:06
  • 2090

NS2入门学习(二)之tcl脚本示例

以《NS与网络模拟》中的第一个tcl脚本为例,tcl语法与python相差不多。
  • xiaojiewang1990
  • xiaojiewang1990
  • 2017年01月10日 14:59
  • 1286
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TCL/EXPECT自动化测试脚本实例四 --- 批命令执行
举报原因:
原因补充:

(最多只允许输入30个字)