`
insertyou
  • 浏览: 904673 次
  • 性别: 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
}
}
}
分享到:
评论

相关推荐

    #!/usr/bin/expect

    Expect 是Tcl语言的一个扩展,它允许程序员模拟用户与命令行程序的交互,比如在SSH登录过程中自动输入密码或者确认信息。通过这种方式,我们可以创建非侵入式的自动化脚本,让机器代替我们完成一些重复性的工作。 ...

    Tcl/tk 宝典之一 - Expect讲解

    Expect 是一种基于Tcl(Tool Command Language)的脚本语言扩展,主要应用于自动化脚本编写中,特别是那些需要与远程服务如SSH、FTP等进行交互的场景。通过使用Expect,用户可以模拟人类与系统的交互过程,实现对...

    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-...

    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 ...

    expect5.43.0和tcl8.4.11.zip

    在IT领域,`expect`和`TCL`是两种重要的脚本工具,它们在自动化任务执行、系统管理和网络通信中发挥着关键作用。`Expect`是建立在`TCL`基础上的一个扩展,专为自动交互式应用程序设计,如SSH、telnet等。` 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

    Expect是由Don Libes开发的一个基于TCL的自动化测试工具,用于自动交互式程序。Expect可以用来模拟终端用户的操作,从而实现自动化测试、配置管理等任务。 **特点概述:** - **TCL扩展**:Expect是作为TCL的一个...

    Tcl/Expect

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

    expect-5.21-for-win.rar

    Expect是Tcl语言的一个扩展,专门设计用来自动控制交互式应用程序,如telnet、ftp、passwd等,使得脚本能够模拟用户输入,极大地提升了运维和测试的效率。本文将深入探讨如何在Windows系统中安装和使用Expect 5.21...

    linux下expect的安装方法

    Linux下的`expect`工具是一个强大的自动化管理利器,尤其适合处理那些需要交互式输入的脚本任务,比如自动登录、密码输入、脚本自动化等。它基于Tcl语言,通过模拟用户交互来自动化复杂的命令行操作。`expect`的安装...

    Tcl8 windows版-windows支持expect-用28M那个.rar

    Tcl(Tool Command Language)是一种动态的编程语言,最初由John Ousterhout在1988年开发,主要用于编写脚本和自动化任务。Tcl8是Tcl的一个版本,它在1997年发布,引入了许多改进和新特性,以提升性能和功能。这个...

    Tcl语言,expect脚本

    Tcl作为一种简单而强大的脚本语言,非常适合于开发自动化管理和控制脚本。结合Expect这样的扩展包,开发者可以轻松地实现复杂的自动化任务,极大地提高了工作效率和灵活性。无论是对于系统管理员还是软件开发者来说...

    expect脚本安装和一个简单的脚本

    Expect脚本是一种强大的自动交互工具,它可以模拟用户的交互行为,自动输入密码、命令等,从而实现自动化任务。下面是 Expect 脚本的安装和简单脚本示例。 Expect 脚本安装 ---------------- 要使用 Expect,需要...

    linux/unix下expect5.45+tcl工具安装包、使用说明及范例

    Expect是一个强大的自动化脚本工具,它结合了Tcl语言,使得与交互式应用程序的通信变得简单。本安装包包含的是 Expect 5.45 版本和 Tcl 的集成,它们一起提供了丰富的功能,用于自动化执行那些通常需要人工干预的...

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

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

    expect-5.43.0和tcl8.4.11.zip

    在IT行业中,自动化是提高效率的关键,而expect-5.43.0和TCL8.4.11是实现这一目标的有力工具。这两个开源项目都是基于TCL语言,用于自动化交互式任务,特别是在处理终端会话和脚本控制方面具有显著优势。 expect是...

    TCL_Expect_deja.zip_Exploring.Expect.pdf_deja gnu_tcl_tcl语言_自动化测

    在自动化测试领域,TCL更是扮演了重要的角色,它能够帮助工程师高效地创建自动化测试脚本,从而提高测试效率和准确性。 DejaGNU是GNU项目的一个组成部分,它提供了一个框架,用于测试使用各种语言编写(包括TCL)的...

Global site tag (gtag.js) - Google Analytics