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

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

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



我的自动化测试脚本运行在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}{

proc add {x y } {expr $x+$y}

proc命令的第一个参数是你要定义的过程的名字,第二个参数是过程的参数列表,参数之间用空格隔开,第三个参数是一个TCL脚本,代表过程体。

proc生成一个新的命令,可以象固有命令一样调用:

    global g_prompt g_usrPrompt g_pwdPrompt
全局变量:分别表示登录后的命令提示符,提示用户名输入的提示符,以及提示密码输入的提示符,
    spawn telnet $ipaddr   telnet 方式登陆到目标ip地址上
    expect{
        "$g_usrPrompt" {       提示输入用户名
            exp_send "$user\r\n" 发送用户名
            exp_continue         程序继续
        }
        "$g_pwdPrompt" {        提示密码输入的提示符
            exp_send "$passwd\r\n"发送密码
            exp_continue          程序继续
        }
        -ex "$g_prompt" {            登录后的命令提示符 exec 命令用于显式地执行外部命令
            dbgLog "Login Successful\n"显示日志信息,登陆成功
            return $spawn_id           
        }
        timeout {                    超时处理
            send_user "timeout"       发送超时信息
            return 0                 习惯上 return (0); 表示程序运行正常,别的值表示不正常

在定义过程时,你可以利用return命令在任何地方返回你想要的值。 return命令迅速中断过程,并把它的参数作为过程的结果。


        }
   }
}



TAG:

FISHY'S TRIBE 引用 删除 fishy   /   2009-09-22 11:58:38
您好,我是51Testing软件测试网的编辑,恭喜您的本篇博文被推荐至51Testing软件测试网首页发表:http://www.51testing.com/html/58/n-155658.html
感谢您关注并继续支持51Testing博客,期待您更多的优秀原创博文。
 

评分:0

我来说两句

Open Toolbar