下面通过一个测试SNMP community最大长度的脚本,介绍一下net-snmp工具。
net-snmp是一组基于命令行的snmp manager工具,可以在命令行下进行snmp get, snmp set, snmp walk等操作,支持snmp v1/v2c/v3。原来的名字叫做ucd-snmp,也已经被移植到windows NT上。
它的主页在
http://net-snmp.sourceforge.net/由于它可以在命令行下进行SNMP操作,所以可以和TCL/expect很好的结合,完成自动化测试的功能。
下面的脚本(snmp.exp),不断的增加SNMP community,长度从1到256,每增加一个community,就调用snmp-get来进行SNMP get操作,如果get成功,说明此community有效;反之,就说明community已经超出了设备支持的最大长度。
这个脚本使用前面讲到的test.exp调用,调用方法是:
./test.exp -ssnmp.exp script
对它稍加修改,也可以直接在命令行中调用,此处不再赘述。
代码如下:
# $Id$
proc snmpCommTest {comm} {
global g_devip
spawn snmpget -c $comm -v 2c -r 2 $g_devip system.sysUpTime.0
expect {
"system.sysUpTime.0*" {
return 1
}
"*Timeout*" {
return 0
}
}
return 1
}
set spawn_id [login $g_devip $g_user $g_passwd]
if {$spawn_id == 0} {
errLog "login error\n"
return 0
}
set cmdCommAdd "create snmp community %s rw\n"
set cmdCommDel "delete snmp community %s\n"
set cmdHostAdd "create snmp host ip 192.168.1.2 community %s\n"
set cmdHostDel "delete snmp host ip 192.168.1.2 community %s\n"
set comm ""
for {set i 1} {$i < 256} {incr i} {
set comm "a$comm"
set cmd [format $cmdCommAdd $comm]
exp_send $cmd
expect {
"Error*" {
errLog "create comm len $i error"
continue
}
timeout {
errLog "create comm len $i timeout"
continue
}
"Entry Created"
}
set cmd [format $cmdHostAdd $comm]
exp_send $cmd
expect {
"Error*" {
errLog "create host error"
continue
}
timeout {
errLog "create host timeout"
continue
}
"Entry Created"
}
set rc [snmpCommTest $comm]
if {$rc == 0} {
errLog "community len $i failed"
}
set cmd [format $cmdHostDel $comm]
exp_send $cmd
expect "Entry Deleted"
set cmd [format $cmdCommDel $comm]
exp_send $cmd
expect "Entry Deleted"
}
分享到:
相关推荐
Expect 还可以与其他工具结合使用,如Ansible的`shell`模块配合`expect`模块来处理需要交互的场景,或者在CI/CD流程中进行自动化测试。 5. **注意事项**: - 安全性:尽管 Expect 脚本能提高效率,但存储明文密码...
tcl脚本语言安装包,要安装expect脚本,必须先安装tcl。 一)Tcl 安装 主页: http://www.tcl.tk 下载地址: http://www.tcl.tk/software/tcltk/downloadnow84.tml 1.下载源码包 wget ...
Expect 是一种基于Tcl(Tool Command Language)的脚本语言扩展,主要应用于自动化脚本编写中,特别是那些需要与远程服务如SSH、FTP等进行交互的场景。通过使用Expect,用户可以模拟人类与系统的交互过程,实现对...
Tcl/Expect学习心得:等待操作是很有用的及COM通讯脚本
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 solaris9 安装expect工具方法 在网站http://www.sunfreeware.com/indexsparc9.html下载到对应系统本版软件包 需要下载4个软件包分别是: tcl-8.5a4-sol9-sparc-local.gz tk-8.5a4-...
Expect是由Don Libes开发的一个基于TCL的自动化测试工具,用于自动交互式程序。Expect可以用来模拟终端用户的操作,从而实现自动化测试、配置管理等任务。 **特点概述:** - **TCL扩展**:Expect是作为TCL的一个...
ZenTaoATF是由禅道开发团队开发的自动化测试框架,它只有一个脚本文件,可以支持各种脚本语言编写的自动化测试脚本,语法简单,使用灵活,后续会和禅道项目管理软件进行绑定和集成。 它的基本工作原理如下: 首先,...
在IT领域,`expect`和`TCL`是两种重要的脚本工具,它们在自动化任务执行、系统管理和网络通信中发挥着关键作用。`Expect`是建立在`TCL`基础上的一个扩展,专为自动交互式应用程序设计,如SSH、telnet等。` Expect...
[root@localhost expect]# rpm -ivh expect-5.45-14.el7_1.x86_64.rpm 准备中... ################################# [100%] 正在升级/安装... 1:expect-5.45-14.el7_1 ################################# [100%] ...
2. **测试脚本**:在软件开发中,Tcl被广泛用于编写测试脚本,例如在自动化测试框架如Expect中,Tcl用于模拟用户与程序的交互。 3. **教学和研究**:由于其简洁性和易于理解,Tcl常被用于计算机科学的教学和科学...
在自动化测试领域,TCL更是扮演了重要的角色,它能够帮助工程师高效地创建自动化测试脚本,从而提高测试效率和准确性。 DejaGNU是GNU项目的一个组成部分,它提供了一个框架,用于测试使用各种语言编写(包括TCL)的...
Expect是Tcl语言的一个扩展,专门设计用来自动控制交互式应用程序,如telnet、ftp、passwd等,使得脚本能够模拟用户输入,极大地提升了运维和测试的效率。本文将深入探讨如何在Windows系统中安装和使用Expect 5.21...
Linux下的`expect`工具是一个强大的自动化管理利器,尤其适合处理那些需要交互式输入的脚本任务,比如自动登录、密码输入、脚本自动化等。它基于Tcl语言,通过模拟用户交互来自动化复杂的命令行操作。`expect`的安装...
- 脚本设计:使用特定的脚本语言(如ITCL、EXPECT)来编写自动化测试脚本。 - **配置SigmationTF**:包括系统配置、用户与角色配置、测试床配置等。 #### 四、SigmationTF自动化测试脚本设计 - **GUI自动化测试...
expect实现 shell 交互式网络命令,插件..../configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=../tcl8.4.11/generic make make install ln -s /usr/tcl/bin/expect /usr/expect/bin/expect
- Tcl(Tool Command Language)是一种简单易学的脚本语言,常用于快速开发和自动化任务。它的语法简洁,适合编写各种脚本,如系统管理、网络配置和测试工具等。 - 在Tcl/Expect SMS Gateway中,Tcl被用来处理逻辑...
### Tcl语言与Expect脚本详解 #### 一、Tcl语言概述 Tcl(发音为“tickle”),全称为Tool Command Language(工具命令语言),是一种简单易学且具有高度可扩展性的脚本语言。Tcl的核心优势在于其简洁的语法和强大...
Expect是一个强大的自动化脚本工具,它结合了Tcl语言,使得与交互式应用程序的通信变得简单。本安装包包含的是 Expect 5.45 版本和 Tcl 的集成,它们一起提供了丰富的功能,用于自动化执行那些通常需要人工干预的...