`
insertyou
  • 浏览: 867900 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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
}
}
}
分享到:
评论

相关推荐

    expect-5.45-sol9-sparc-local.gz

    expect-5.45-sol9-sparc-local.gz solaris9 安装expect工具方法 在网站http://www.sunfreeware.com/indexsparc9.html下载到对应系统本版软件包 需要下载4个软件包分别是: tcl-8.5a4-sol9-sparc-local.gz tk-8.5a4-...

    tcl864安装包

    tcl脚本语言安装包,要安装expect脚本,必须先安装tcl。 一)Tcl 安装 主页: http://www.tcl.tk 下载地址: http://www.tcl.tk/software/tcltk/downloadnow84.tml 1.下载源码包 wget ...

    expect-5.45-sol10-sparc-local.gz

    expect-5.45-sol10-sparc-local.gz solaris9 安装expect工具方法 在网站http://www.sunfreeware.com/indexsparc9.html下载到对应系统本版软件包 需要下载4个软件包分别是: tcl-8.5a4-sol9-sparc-local.gz tk-8.5a4-...

    Tcl/tk 宝典之一 - Expect讲解

    这个是讲解Tcl/tk 中Expect用法的书,讲的同时结合实例,很易懂。绝对是入门的好材料。

    Tcl/Expect

    Tcl/Expect学习心得:等待操作是很有用的及COM通讯脚本

    用expect 实现切换用户时自动输入密码.txt

    昨天一个网友问如何能够将输入密码的工作在shell里面自动完成,研究了一下,发现这种交互式的工作,普通的shell实现不了,据说可以借助expect来搞定,所以初步学习了一下expect,成果和大家分享一下: 应用一: 实现...

    expect-5.45-14.el7_1.x86_64.zip 在 centos7 上测试通过

    [root@localhost expect]# rpm -ivh expect-5.45-14.el7_1.x86_64.rpm 准备中... ################################# [100%] 正在升级/安装... 1:expect-5.45-14.el7_1 ################################# [100%] ...

    Tcl语言,expect脚本

    Tcl,Tcl语言,expect,可用于交互式自动化脚本,方便自动化管理服务器。

    expect交互式执行网络命令

    expect实现 shell 交互式网络命令,插件安装: tar xzvf expect5.45.tar.gz cd expect5.45 ./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-...ln -s /usr/tcl/bin/expect /usr/expect/bin/expect

    #!/usr/bin/expect

    NULL 博文链接:https://j2ee2009.iteye.com/blog/824829

    libgcc-3.4.6-sol9-sparc-local.gz

    pkgadd -d ./tcl-8.5a4-sol9-sparc-local 安提示选择则可 pkgadd -d ./tk-8.5a4-sol9-sparc-local pkgadd -d ./libgcc-3.4.6-sol9-sparc-local pkgadd -d ./expect-5.43.0-sol9-sparc-local 注:默认安装后expect命令...

    expect5.43.0和tcl8.4.11.zip

    expect据说是交互性很强的脚本语言,但是expect依赖于tcl,但linux系统里一般不自带安装tcl,需要手动安装

    expect.deb离线包(包含tcl8.5_8.5.11-1ubuntu1和expect_5.45-2)

    expect.deb离线包,包含 expect_5.45-2_amd64.deb tcl8.5_8.5.11-1ubuntu1_amd64.deb两个 使用命令 dpkg --install expect_5.45-2_amd64.deb dpkg --install tcl8.5_8.5.11-1ubuntu1_amd64.deb 可以直接进行安装,不...

    禅道自动化测试框架ZenTaoATF.zip

    ZenTaoATF是由禅道开发团队开发的自动化测试框架,它只有一个脚本文件,可以支持各种脚本语言编写的自动化测试脚本,语法简单,使用灵活,后续会和禅道项目管理软件进行绑定和集成。 它的基本工作原理如下: 首先,...

    Tcl/expect sms gateway-开源

    使用tcl / expect编写的简单sms网关,使用mysql作为文本消息的数据源。

    tcl-expect

    简单介绍tcl语言以和expect语法以及使用方法

    SigmationTF自动化测试教程

    SigmationTF的组网方法、设备管理、自动化测试脚本开发进行了详细讨论。 读者阅读本书前须具备一定的软件工程与测试理论基础、TCP/IP网络协议知 识、交换机和终端服务器等网络设备的使用经验,熟悉Windows和Linux...

    expect 脚本的简单例子

    关于自动化脚本expect的一个例子。本脚本功能是 实现自动输入密码登录到一个server机器上。

    spring-cloud-consul-demo:spring-cloud-consul 各种功能的游乐场

    运行步骤: 下载 Consul Agent 并将其解压缩到一个文件夹中。 下载 Consul UI 并将内容复制到 AGENT_PATH/web-ui 从拉取 spring-cloud-consul-demo 运行 mvn clean package 从其文件夹中运行 agent: consul agent: ...

    一键配置集群各节点ssh免密码登录

    脚本会将auto_ssh文件夹上传到服务器上,并在各节点上生成ssh key,并将公钥拷贝到集群各节点上 1 在ip.txt中输入各节点ip地址,一行一个ip 2 修改scp_to_cluster.sh和copy_id.sh的服务器用户名和密码 3 运行如下...

Global site tag (gtag.js) - Google Analytics