TCL/EXPECT自动化测试脚本实例一 --- telnet到目标机器

王朝网络·other·作者佚名  2007-02-22
宽屏版  字体: |||超大  

从今天开始,陆续把我所写的一些自动测试脚本贴上来,希望对初学者有所帮助。由于目前没有找好合适的服务器存放代码,所以代码先贴在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

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有