在测试过程中,在具体测试某一个功能点时,往往需要为此进行大量的配置。为了简化测试过程,我们可以把所有的配置命令放在一个文本文件中,然后使用测试脚本来执行这些命令。这样就不需要再手工进行配置了,费时费力。
基于如上考虑,编写了下面的脚本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中的命令。
分享到:
相关推荐
- 脚本化命令执行:在多台服务器上执行相同的操作,如部署、更新或备份。 - 验证输出:检查程序的输出是否符合预期,确保脚本的正确性。 4. **扩展应用**: Expect 还可以与其他工具结合使用,如Ansible的`shell...
8. **应用领域**:TCL/TK不仅用于快速开发小型GUI应用,还在网络管理、科学计算、自动化测试等领域有广泛应用,例如 Expect工具用于自动应答终端交互。 在压缩包内的文件“tcl”可能是包含这些示例代码的脚本文件,...
首先,`tcl`(Tool Command Language)是一种强大的脚本语言,广泛用于编写自动化脚本和控制其他程序。`tcl8.4.19-src.tar.gz`是`tcl` 8.4.19版本的源代码包。安装`tcl`通常包括以下几个步骤: 1. 解压源码包:`tar...
Expect是TCL的一个重要扩展,它主要用于自动化交互式任务,如控制终端会话、SSH登录、脚本自动化测试等,极大地提高了运维效率。 在本书中,你将了解到TCL的基础语法,包括变量定义、数据类型(如字符串、列表、...
除了这些基本概念,书中还可能涵盖了高级主题,如线程支持、数据库接口、以及使用Tcl脚本控制其他应用程序(如通过 Expect 模块进行自动化测试)。Tcl/Tk的可扩展性也是其强大之处,允许开发者编写C或C++扩展来提升...
**expect** 是一个基于 **Tcl** 的程序,主要用于自动化交互式命令。它最初由 Don Libes 在 1990 年代初开发,目的是为了解决通过自动化方式与需要交互式输入的程序进行交互的问题。例如,自动登录 SSH 会话或自动...
6. **模块和扩展**:Tcl有一个庞大的第三方模块库,如Tkinter(Python中的Tk接口)、Expect(自动化交互式程序)等,学习如何利用这些扩展增强功能。 7. **脚本编写和程序设计**:如何组织代码,编写清晰、可维护的...
TCL(Tool Command Language)是一种解释型的、动态类型的脚本语言,由John Ousterhout...通过深入学习和实践《TCL脚本语言编程》,无论是系统管理员、开发者还是自动化工程师,都能掌握TCL的基础知识,提升工作效率。
TCL(Tool Command Language)是一种简单、易学且功能强大的脚本语言,最初由John Ousterhout在1988年开发,主要用于编写自动化测试脚本。随着时间的推移,TCL逐渐发展成为一个通用的编程语言,广泛应用于系统管理、...
TCL(Tool Command Language)是一种强大的脚本语言,主要用于系统管理、自动化测试、网络设备配置等领域。本教程针对初学者,旨在提供一个简洁易懂的Web格式学习资源,帮助你快速掌握TCL基础。 1. **TCL简介** ...
Linux Expect 是一个强大的工具,它基于Tcl语言,专门用于自动化需要用户交互的任务,例如SSH登录、FTP传输等。在很多场景中,手动输入用户名和密码进行登录或执行远程命令可能会变得繁琐,尤其是在频繁操作的情况下...
TCL(Tool Command Language)是一种强大的脚本语言,主要用于自动化任务、系统管理、软件开发以及测试领域。作为初学者,了解并掌握TCL脚本的基本概念、语法和常见应用是十分必要的。本教程旨在帮助您系统地入门TCL...
在Red Hat Linux AS4(Advanced Server 4)中,`expect`是一个强大的自动化脚本工具,主要用于自动交互式命令行程序。它允许程序员或系统管理员编写脚本模拟用户与命令行界面之间的交互,例如SSH登录、FTP传输、密码...
Linux Shell编程是Linux系统管理与自动化任务的核心技术之一,它允许用户通过命令行接口执行一系列操作,编写脚本来实现复杂的任务自动化。Expect是基于Tcl语言的一个扩展,专为自动化交互式应用程序而设计,比如...
Expect脚本通常由以下几个部分组成:初始化(启动进程)、期待模式(匹配输出并响应)、命令和动作(发送输入)、异常处理(错误捕获)和退出(结束进程)。基本脚本格式如下: ```bash #!/usr/bin/expect spawn...
`expect` 是一种用于自动化交互式命令的工具,它基于 Tcl 语言构建。主要用途是自动执行那些需要与用户进行交互的任务,例如远程登录 (telnet)、SSH 登录、FTP 文件传输等。通过 `expect` 可以实现对这些过程的自动...