首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Linux > TCL/EXPECT自动化测试脚本实例一 --- telnet到目标机器
【标  题】:TCL/EXPECT自动化测试脚本实例一 --- telnet到目标机器
【关键字】:TCL/EXPECT,---,telnet
【来  源】:http://blog.csdn.net/easwy/archive/2006/05/30/762752.aspx

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

从今天开始,陆续把我所写的一些自动测试脚本贴上来,希望对初学者有所帮助。由于目前没有找好合适的服务器存放代码,所以代码先贴在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
        }
    }
}
Solaris忘记root密码后的恢复:【上一篇】
vmware下安装好ubuntu 6.06(dapper)后安装vmware-tools的方法:【下一篇】
【相关文章】
  • TCL/EXPECT自动化测试脚本实例二 --- 主程序
  • TCL/EXPECT自动化测试脚本实例三 --- 全局变量
  • TCL/EXPECT自动化测试脚本实例四 --- 批命令执行
  • TCL/EXPECT自动化测试脚本实例五 --- 由文件中读取一行
  • TCL/EXPECT自动化测试脚本实例六 --- SNMP community长度测试
  • TCL/EXPECT自动化测试脚本实例七 --- 构造报文测试
  • E680i 不用刷机的Telnet 方法
  • 深入A*算法----浅析A*算法在搜索最短路径中的应用
  • 水晶报表打印知识---代码控制打印
  • HTML学习--------滚动字幕制作手册
  • 【随机文章】
  • 手机也要安全防范
  • 如何快速生成100万不重复的8位编号
  • 武汉侠诺高性能VPN路由设备
  • Oracle] 利用Uniread 解决 Linux下的SQL*Plus 命令行历史回调功能
  • 菜单实现
  • 冒泡排序(Bubble Sort)
  • I met terrible hiberate problem!
  • USB驱动注册过程探索
  • solaris10上安装oracle10
  • Photoshop制作蘸水钢笔
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.