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

原创 2006年05月30日 09:32:00
从今天开始,陆续把我所写的一些自动测试脚本贴上来,希望对初学者有所帮助。由于目前没有找好合适的服务器存放代码,所以代码先贴在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
        }
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

今天的学习vba

To make this configuration instantly available, put the following macro, named SetEditingView, in th...

基于Tcl/Tk语言的自动化测试平台的实现

基于Tcl/Tk语言的自动化测试平台的实现 来源:电子技术应用2013年第1期 作者:李志报1,2, 袁 亮1,2 2013/3/13 16:34:55 关键词: 自动控制系统|DCS|...

TCL/EXPECT资源收集(最后更新2006/5/29)

本贴主要收集一些我看到过的TCL/EXPECT方面的资源,以及关于自动测试方面的资源。TCL语言中文网:http://www.tclchina.com/    关于TCL语言的中文网站,里面有不少资料...
  • easwy
  • easwy
  • 2006-05-29 15:18
  • 4764

使用Tcl扩展包cwind进行界面自动化测试

cwind是一个控制界面操作的Tcl扩展包,它可以模拟键盘、鼠标的操作,捕获界面信息,控制界面窗口等,类似于QARUN等软件,通过cwind库可以利用tcl脚本方便的实现QARUN的功能,因此可以用于...

TCL/EXPECT自动化测试脚本实例七 --- 构造报文测试

前面提到过使用nemesis构造报文进行测试的思路,今天介绍一个这样的脚本。这个脚本的功能是构造并发送不同源MAC地址的报文,通过这样一个脚本,我们就可以测试交换机每端口最大能学习到的MAC地址的数目...
  • easwy
  • easwy
  • 2006-06-01 18:38
  • 5005

TCL/EXPECT自动化测试脚本实例二 --- 主程序

现在介绍一下测试主程序: test.exp。为了方便加入新的测试项目,主程序采用了一种灵活的机制,它根据需要通过source命令调用相应的子测试程序。这样一来,每个测试点都可以单独放到一个文件中,然后...
  • easwy
  • easwy
  • 2006-05-30 10:07
  • 3458

自动化测试-TCL脚本语言

TCL 是一种 脚本语言。最早称为“工具命令语言”"Tool Command Language", 但是目前已经不是这个含义,不过我们仍然称呼它为TCL。 由John Ousterhout创建。 TC...

Unity(C#.net)网络通信问题解决(服务器开启失败,Socket下的“由于目标机器积极拒绝,无法连接”异常)

先给出问题的解决方案: 这种情况很可能是可能是服务器根本没有正常开启,没有启动监听。 首先对服务器工程进行调试,看看获取IPAddress的地方是不是出现了异常。 想进行Unity网络通信我们可以有...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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