自动化脚本开发入门 PPT课件_第1页
自动化脚本开发入门 PPT课件_第2页
自动化脚本开发入门 PPT课件_第3页
自动化脚本开发入门 PPT课件_第4页
自动化脚本开发入门 PPT课件_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

自动化脚本开发入门培训 主讲人 王加邦工号 04511电话 82774766日期 2006 3 13 目录 TCL扩展命令进行自动化测试简介VTP中自动化测试的常用扩展命令简单的自动化脚本开发举例常用工具的使用及问题 自动化测试的一些优点 提高测试效率 可以在较短的时间内发现产品的问题 长时间不间断测试 可以提供7 24小时的长时间测试 测试完成的模块有完整的记录信息 可以代替手工测试做一些人力投入比较大的测试工作 比如测试中高端设备的路由表容量和路由振荡 测试设备支持的最大LoopBack数 设备ARP表的容量等性能方面的测试 投入成本低 当前自动化测试覆盖的产品线 8048804280438040S8500S6500S3100S5100F1Monza VTP中自动化测试的常用扩展命令 用TCL扩展命令来进行自动化测试简介VTP中自动化测试的常用扩展命令简单的自动化脚本开发举例常用工具的使用及问题 平台扩展命令 平台扩展命令TTerm终端扩展报文构造和发送命令 协议扩展命令dot1x扩展命令BGP扩展命令 网管扩展命令 平台扩展命令的分类 TTerm终端扩展报文构造和发送命令抓包扩展命令 TTerm终端扩展命令 tsend 命令语法 tsendcommandline r sstring1 string2 ttimeout 功能 向TCL执行环境所附属的终端发送一个字符串 仅用于局部TCL 参数说明 CommandLine向终端发送的命令字符串 r在命令返回值中将保存终端的返回信息 此参数必须与 t参数连用 指定发送命令等待多长时间 毫秒 返回 t指定命令的超时时间 超时时间一到立即返回 s指定搜索值 如果这个值在终端的返回信息中包含string1 tsend立即返回 TTerm终端扩展命令 tsend2 命令语法 tsend2termnamecommandline r sstring1 string2 ttimeout 功能 向指定终端发送一个字符串 用于全局TCL 参数说明 termname指定控制终端的标识名 CommandLine向终端发送的命令字符串 r在命令返回值中将保存终端的返回信息 此参数必须与 t参数连用 指定发送命令等待多长时间 毫秒 返回 t指定命令的超时时间 超时时间一到立即返回 s指定搜索值 如果这个值在终端的返回信息中包含string1 tsend立即返回 TTerm终端扩展命令 tsend3 命令语法 tsend3 termname rvar slist ttimeout Commandline功能 向终端发送一个字符串 用于局部TCL时不用指定termname 有全局TCL中使用时则必须指定termname 参数说明 termname指定控制终端的标识名 CommandLine向终端发送的命令字符串 r将终端的返回信息中保存到var指定的变量中 t指定命令的超时时间 超时时间一到立即返回 s可以指定一个列表 只要有任何一个值出现 命令就返回 向终端发送控制符 自动化脚本开发的过程中 经常会遇到向被测试设备发送控制字符的情况 比如PING的过程中需要用Ctrl C来中断PING的过程 或者向设备发送Ctrl Z退出到用户视图 向设备发送的控制字符在脚本是用控制字符本身所代表的ASCII码来表示的 Ctrl A Z所对应的ASCII码分别为1 26 比如在局部窗口中向设备发送Ctrl C可以象下面这样写 tsend 003 003用的是八进制来表示的tsend x03 x03用的是十六进制来表示的 打开文件 命令语法 openname mode 功能 以指定方式打开文件name 返回供其他命令 gets close等 使用的文件标识 文件打开方式 r只读方式打开 文件必须已经存在 这是默认方式 r 读写方式打开 文件必须已经存在 w只写方式打开文件 如果文件存在则清空文件内容 否则创建一新的空文件 w 读写方式打开文件 如文件存在则清空文件内容 否则创建新的空文件 a只写方式打开文件 文件必须存在 并把指针指向文件尾 a 只读方式打开文件 并把指针指向文件尾 如文件不存在 创建新的空文件 open命令返回一个字符串用于表识打开的文件 当调用别的命令 如 gets puts close 对打开的文件进行操作时 就可以使用这个文件标识符 关闭文件 命令语法 close fileId 功能 关闭标识为fileId的文件 命令返回值为一空字符串 如何将信息保存到文件 打开文件if catch setfid open c MyTest txt r error ErroropenfileMyTest txt 向文件中保存信息puts fid Hello 关闭文件close fid 举例 测试设备支持的最大环回接口数 setLPBNo0tsend 032system view while stringfirst Unrecognized tsend interfaceLoopBack LPBNo r t500 s Unrecognized 1 incrLPBNo puts LPBNoloopbackinterfacescreated 其它应用 内存泄漏测试 1 向设备上多次发送可能会造成设备内存汇漏的命令 发送一定次数以后检查内存当前的使用情况 2 然后重复步骤1 每次测试后都记录本次测试以后内存的使用情况 3 通过比较分析多次的测试结果 来判断这些命令是否造成了内存泄漏问题 内容回顾 刚才讲什么了 1 tsend系列命令的用法 2 如何往设备上发送特殊控制字符3 文件操作的简要介绍 如何将信息保存到文件4 用自动化脚本测试设备支持的LoopBack接口数 报文构造和发送命令 用主机发送报文的步骤 1 打开与设备相连的网卡 2 按需要构造需要发送的报文 3 发送构造好的报文 4 删除构造的报文 释放报文占用的内存空间 5 关闭与设备相连的网卡 说明 第1步和第2步 第4步和第5步没有严格的操作顺序 可以颠倒 在一个自动化脚本中不要频繁地打开 关闭网卡 只需在发送报文前打开网卡 发送完成后关闭网卡即可 打开指定的网卡 命令语法 selectndis功途 打开device指定的网卡 必须为0001 0002这种形式的值 如果不能确定要打开的网卡所对应的编号 可用listndis要显示出系统中所有的网卡设备 然后根据网卡的描述信息找到网卡所对应的编号即可 注意 用listndis的时候VTP窗口有可能没有返回任何的提示信息 这种情况一般是由WinPcap引起的 所以在这种情况下只需重新安装WinPcap即可解决问题 在打开网卡之前最好先调用一下closendis确保网卡被释放掉 构造报文 构造报文的方法有两种 1 直接使用VTP中提供的扩展命令构造报文 比如构造ARP报文 IP报文 IPX报文等等 但是有些报文VTP是没有提供扩展命令的 比如没有提供构造GRE报文头的命令 这时可以用第二种方法 2 使用ATF中提供的报文模板来构造需要的报文 在ATF Basic目录下有一个custom pkt tcl 里面保存了一些报文的模板以及构造报文的一些TCL过程 如果要构造的报文没有模板的话 可以用设备抓取一个报文 然后根据这个报文在这个文件中添加一个模板就可以来构造这种报文了 发送报文 命令语法 sendpack功途 命令中的packet代表已经构造好的报文 必须是一个封装好的二层帧 删除报文 命令语法 delpack功途 将packet代表的报文删除 实际上就是将packet所占的内存释放 以免过多得占用系统资源 释放网卡 命令语法 closendis功途 关闭VTP占用的网卡设备 扩展TCL报文构造命令 CONIP 命令语法 conip sipip addr dipip addr verversion ihlheadlen tostos tlentotal len idid flagflag offsetoffset ttlttl protocolprocotol chksumcheck sum optionoption datadata pad 功能 这个命令构造一个IP报文 命令的结果是packn n 0 1 2 代表构造好的报文 必选参数说明 sipip addr 这个选项给出源点分十进制形式的源IP地址 dipip addr 这个选项给出源点分十进制形式的目的IP地址 扩展TCL报文构造命令 CONTCP 命令语法 contcp sipip addr dipip addr sportsource port dportdestination port seqsequence number ackacknumber hlenhlen flagflag sizewindow chksumcheck sum urgurg pointer optionoption datadata 功能 这个命令构造一个TCP报文 命令的结果是packn n 0 1 代表构造好的报文 必选参数说明 sipip addr 请参考构造IP报文的参数说明 dipip addr 请参考构造IP报文的参数说明 sportsource port TCP报文中的源端口号 dportdestination port TCP报文中的目的端口号 扩展TCL报文构造命令 CONUDP 命令语法 conudp sipip addr dipip addr sportsource port dportdestination port lenlength chksumcheck sum datadata 功能 这个命令构造一个UDP报文 命令的结果是packn n 0 1 代表构造好的报文 必选参数说明 sipip addr 请参考构造IP报文的参数说明 dipip addr 请参考构造IP报文的参数说明 sportsource port UDP报文中的源端口号 dportdestination port UDP报文中的目的端口号 封装上层报文为二层帧 命令语法 conframe encapencapution sethmac dethmac datadata功能 构造一个以太帧 命令的结果是packn n 0 1 2 代表构造好的报文帧 必选参数说明 sethmac 二层帧头的源MAC地址 dethmac 二层帧头的目的MAC地址 datadata 上层协议构造完成的报文 如pack0 pack1等 可以是任意字符串 还可以是以0 x开头的十六进制数字序列 更多的报文构造命令 除了上面介绍的几个命令 在VTP中还有以下的一些命令可供使用 CONARPCONICMPCONIGMPCONIGRPCONIPXCONRIP还有几个扩展命令没在此列出 如果用到的话请参考VTP全局窗口Help菜单中的TCL扩展命令 例子 发送一个ARP请求 TCL扩展 closendislistndisselectndis0000setpacket conarp seth00 00 00 00 00 01 deth00 00 00 00 00 00 sip192 168 0 1 dip192 168 0 2 oper1 setframe conframe seth00 00 00 00 00 01 dethff ff ff ff ff ff data packet sendpack framedelpack framedelpack packetclosendis 通用报文构造工具 ATF中提供的一套构造报文的TCL接口 使用这个接口可以很方便地构造出所需要的报文 1 在custom pkt tcl中添加要构造报文的模板 如果存在的话可以略去此步 2 调用 packet conpkt pkt nameargs 过程指定报文构造参数来构造自己的报文 3 将构造好的报文封装成二层以太帧 定义报文模板 使用通用报文构造工具来构造报文必须先定义报文模板 如果不知道报文的内部细节 可以用Netwizard等抓包工具捕获一个这种报文 然后按照捕获的报文在custom pkt tcl中添加对应的模板即可 根据定义的模板构造报文 根据模板来构造报文时 可以参考custom pkt tcl中报文的定义 然后根据报文的定义提供构造报文所需参数 使用通用报文构造工具来构造报文需要用到custom pkt tcl中提供的conpkt过程 conpkt过程的定义 packet conpkt pkt nameargs 其中 pkt name是报文所对应的报文模块名 如arp pkt ipv4 pkt等 args是构造这个报文所需要提供的一些参数 如果报文模板中有缺省参数的话 可以不用提供 这个命令返回的结果是用空格分隔的代表报文的十六进制字符串 ARP报文的定义模块 set packet array packet define arp pkt dethmac6ffff ffff ffff sethmac60000 0000 0001 l2typebyte20 x0806 hTypebyte20 x01 pTypebyte20 x0800 hLenbyte10 x06 pLenbyte10 x04 operbyte20 x01 srcMacmac60000 0000 0001 srcIpipv4 addr0 0 0 0 desMacmac60000 0000 0000 desIpipv4 addr0 0 0 0 用ARP报文模块构造报文 setArpRequest packet conpktarp pkt dethffff ffff ffff seth0000 0000 0001 l2type0 x0806 hType0 x01 hLen0 x06 oper0 x01 srcMac0000 0000 0001 srcIp192 168 0 1 desMac0000 0000 0000 desIp192 168 0 2 setArpReply packet conpktarp pkt deth0000 0000 0001 seth0000 0000 0002 l2type0 x0806 hType0 x01 hLen0 x06 oper0 x02 srcMac0000 0000 0002 srcIp192 168 0 2 desMac0000 0000 0001 desIp192 168 0 1 例子 发送一个ARP请求 selectndis0000setArpReply packet conpktarp pkt dethffff ffff ffff seth0000 0000 0001 l2type0 x0806 hType0 x01 pType0 x0800 hLen0 x06 pLen0 x04oper0 x01 srcMac0000 0000 0001 srcIp0 0 0 0 desMac0000 0000 0000 desIp0 0 0 0 setARPacket conpack0 x join ArpReply sendpack ARPacketdelpack ARPacketclosendis 内容回顾 刚才讲什么了 1 如何用TCL扩展命令来构造报文 2 如何用TCL通用报文构造接口来构造报文 简单的自动化脚本开发举例 用TCL扩展命令来进行自动化测试简介VTP中自动化测试的常用扩展命令简单的自动化脚本开发举例常用工具的使用及问题 用PC发报文 测ARP表容量 1 用TCL报文构造接口构造ARP请求报文并往设备上发送 可以用TCL的扩展命令 也可以用TCL的通用报文构造接口 2 在设备上用displayarpall命令检查ARP表的条数 并将总数记录在MaxARP中 用tsend往设备上发送命令 并对返回的信息进行处理3 重复步骤1和2 直到发现MaxARP不再增长以后 这时的值就是设备ARP表的容量 构造ARP请求报文 1 前面已介绍过的两种方法 用TCL扩展命令来构造ARP请求报文 用TCL通用报文构造接口来构造ARP报文 用任何一种方法都可以完成 请参考上面的例子 设备ARP表信息的处理 1 用displayarpall时设备显示整个ARP表 然后显示ARP条目的统计信息 23entriesdisplayed totalnumberis900entries tsend displayarpall setARPSum tsend 003 r t5000 s entries 2 然后可以用string命令的range选项取从 totalnumber 到最后的所有信息 setARPSum stringrange ARPSum stringfirst totalnumber ARPSum end 3 用scan命令从处理后的信息中将ARP的条目总数取出 scan ARPSum totalnumberis dentries ARPSum附 在8040V300R003B03D016 COMWAREV300R002B60D001 版本上调试通过 常用工具的使用及问题 用TCL扩展命令来进行自动化测试简介VTP中自动化测试的常用扩展命令简单的自动化脚本开发举例常用工具的使用及问题 常用工具的使用及问题 常用的自动化测试工具 cmdWalk 命令行遍历工具CheckMemoryLeak 内存泄漏测试工具 cmdWalk的功能 命令遍历遍历以指定命令字开头的所有的命令边界检查进行命令参数边界及越界检查 支持超长字符串参数版本兼容性检查利用遍历输出文件比照出不同版本间命令行差异命令下发检查检查提示可以下发但下发的时候却不识别的命令 检查下发出现断言或重启等设备异常的命令 cmdWalk使用说明 在 全局tcl窗口 执行该文件即启动命令遍历setdirectoryD work cmdWalk 程序存放目录setvtp terminal name85A 要遍历的设备的VTP终端名称setboundary check0 是否进行参数边界和越界检查1 是0 否setcmd wait time500 命令返回等待时间 单位毫秒500是推荐值 cmdWalk使用说明 source directory program CMD CmdMdl tcl 执行初始化source directory program CMD IOMdl tclsource directory program CMD ParseMdl tc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论