从今天开始,陆续把我所写的一些自动测试脚本贴上来,希望对初学者有所帮助。由于目前没有找好合适的服务器存放代码,所以代码先贴在blog的正文中,以后再提供完整的代码下载。
我的自动化测试脚本运行在debian linux下,使用/usr/bin/expect进行解释执行。为了简化处理,把一些常用的功能编写成函数,放在commonLib.exp文件中,其它脚本文件可以使用source commonLib.exp命令引用这些函数。
下面的函数完成telenet到目标机器并login。从其实现上大家可以看到tcl/expect编写测试脚本的简洁。
这个函数带有三个参数,分别是目标机器的IP地址ipaddr,登录用户名user和登录密码,telenet的端口号采用默认的23端口。
函数中使用了三个全局变量,g_prompt,g_usrPrompt和g_pwdPrompt,分别表示登录后的命令提示符,提示用户名输入的提示符,以及提示密码输入的提示符,这三个全局变量定义在global.exp中。之所以采用全局变量,是因为这些值使用比较广泛,但在不同设备中都不相同。使用全局变量可以方便修改。
代码如下:
#************************************************
# telnet login routine
#
# @PARAMS
# ipaddr - remote device ip address
# user - user name to login in
# passwd - login password
#
# @RETURN
# spawn_id if login success, otherwise 0
#************************************************
proc login {ipaddr user passwd} {
global g_prompt g_usrPrompt g_pwdPrompt
spawn telnet $ipaddr
expect {
"$g_usrPrompt" {
exp_send "$user\r\n"
exp_continue
}
"$g_pwdPrompt" {
exp_send "$passwd\r\n"
exp_continue
}
-ex "$g_prompt" {
dbgLog "Login Successful\n"
return $spawn_id
}
timeout {
send_user "timeout"
return 0
}
}
}
分享到:
相关推荐
本教程提供了一个全面的 Expect 简介和应用中文指南,包括基础语法、实例解析以及如何将 Expect 集成到你的Linux自动化工作中。通过深入学习和实践,你将能够熟练地利用 Expect 处理各种交互式任务,提高工作效率。 ...
在Red Hat Linux AS4(Advanced Server 4)中,`expect`是一个强大的自动化脚本工具,主要用于自动交互式命令行程序。它允许程序员或系统管理员编写脚本模拟用户与命令行界面之间的交互,例如SSH登录、FTP传输、密码...
Expect是一种基于TCL工具包的编程语言,专门设计用于自动化交互式任务。它的核心功能在于能够等待某个事件发生,并在该事件发生后执行相应的操作。这使得Expect非常适合于自动化那些通常需要人工干预的任务,比如...
本教程旨在为用户提供一个全面了解 `expect` 这一自动化脚本工具的机会。通过本教程的学习,读者将能够掌握如何使用 `expect` 来自动化处理一系列常见的 Unix/Linux 环境下的任务,如远程登录、文件传输、系统管理等...
总之, Expect 教程中文版提供了一个全面的学习资源,通过实例和脚本演示了如何利用 Expect 控制交互式程序,实现自动化任务,提升工作效率。对于需要管理和自动化 Unix 环境中的交互式程序的用户来说,这是一个非常...
Expect是一个非常实用的自动化脚本工具,尤其在处理需要用户交互的任务时,如远程登录、自动化脚本测试、程序自动化等方面表现突出。它允许程序员模拟终端交互,从而实现对命令行程序的自动控制,极大地提高了工作...
TCL因其易学性和强大的功能,在多个领域得到了广泛应用,尤其是快速原型开发、脚本编程、GUI(图形用户界面)和测试等方面。 TCL的发音类似于“踢叩”(tickle),具有以下显著特点: 1. **一切皆命令**:无论是...