一、203_TC_FrameRate-1.tcl

set chassisAddr 10.132.238.190

set islot 1

set portList {9 10} ;#端口的排列顺序是port1, port2

set ipList {10.0.0.3 20.0.0.3} ;#ip列表与port的排列顺序相相应

set macList {00-00-00-00-00-01 00-00-00-00-00-02}

set gwList {10.0.0.1 20.0.0.1}

set iFramelen 256

set streamLoad 100



if { [catch {

     cd ../Source

    #载入HLAPI Lib

    source ./CSTC.tcl



    SetLogOption -Debug Enable

    

    # 開始连接机器

    TestDevice chassis1 $chassisAddr



    # 開始预留两个port

    for {set i 0} {$i <[llength $portList]} {incr i} {

        chassis1 CreateTestPort -PortLocation $islot/[lindex $portList $i] -PortName port[expr $i+1] -PortType Ethernet

    }

    port1 CreateTraffic -TrafficName traffic1

    traffic1 CreateProfile -Name profile1 -TrafficLoad 100 -TrafficLoadUnit fps

    

    traffic1 CreateStream -StreamName stream1 -FrameLen 500 -ProfileName profile1 \

        -L2 ethernet -L3 IPv4 -L4 Udp -IpSrcAddr 192.168.0.1 -IpDstAddr 192.168.5.7 -udpsrcport 2000 -udpdstport 3000

    

    traffic1 ConfigStream -StreamName stream1 -L2 ethernet -L3 IPv4 -EthDst 00:00:10:E1:01:08 -EthSrc 00:00:11:E1:00:09

    

    #创建统计和分析对象Statistics1,Statistics2,Analysis2

    port1 CreateStaEngine -StaEngineName Statistics1 -StaType Statistics

    port2 CreateStaEngine -StaEngineName Statistics2 -StaType Statistics

    port2 CreateStaEngine -StaEngineName Analysis2 -StaType Analysis

    #SaveConfigAsXML "c:/framerate.xml"

    puts "配置捕获模式。将数据报capture到指定文件。可用于数据包的分析"

    Analysis2 ConfigCaptureMode -CaptureMode allpkt -CaptureFile "c:/Framerate.pcap"

    

    # 開始捕获报文     

    puts "開始捕获报文"

    

    for {set i 0} {$i < 1} {incr i} {

       traffic1 ConfigProfile -Name profile1 -TrafficLoad [expr 100 + $i * 100] -TrafficLoadUnit fps

       Analysis2 StartCapture

       puts "配置捕获模式,将数据报capture到指定文件"

       Analysis2 ConfigCaptureMode -CaptureMode allpkt -CaptureFile "c:/Framerate[expr 100 + $i * 100].pcap"

       port1 StartStaEngine

       port2 StartStaEngine

       port1 StartTraffic



       # 等待5秒

       after 5000



       # 在txport停止流量发送

       port1 StopTraffic

       

       after 5000

       

       array set stats1 [Statistics1 GetPortStats ]

       parray stats1

    

       array set stats2 [Statistics2 GetPortStats ]

       parray stats2

   

       # 基于流,获取stream1,stream2,stream3,stream4的统计值。存储在stats数组并打印出来

       array set stats3 [Statistics1 GetStreamStats -StreamName stream1]

       parray  stats3

       

       #array set stats4 [Statistics1 GetStreamStats -StreamName stream2]

       #parray  stats4

    

       #array set stats5 [Statistics1 GetStreamStats -StreamName stream3]

       #parray  stats5      





       port1 StopStaEngine

       port2 StopStaEngine

       Analysis2 StopCapture

    }



    

    #清除測试过程中所作的全部配置和释放測试过程中占用的全部资源

    chassis1 CleanupTest                     

}  err ] } {

    puts "脚本执行中出现错误: $err"



    #清除測试过程中所作的全部配置和释放測试过程中占用的全部资源

    chassis1 CleanupTest                     

}

二、203_TC_FrameRate-2.tcl

set chassisAddr 10.132.238.190

set islot 1

set portList {9 10} ;#端口的排列顺序是port1, port2

set ipList {10.0.0.3 20.0.0.3} ;#ip列表与port的排列顺序相相应

set macList {00-00-00-00-00-01 00-00-00-00-00-02}

set gwList {10.0.0.1 20.0.0.1}

set iFramelen {64 128 256 512 1518}

set streamLoad 100



if { [catch {

     cd ../Source

    #载入HLAPI Lib

    source ./CSTC.tcl



    SetLogOption -Debug Enable

    

    # 開始连接机器

    TestDevice chassis1 $chassisAddr



    # 開始预留两个port

    for {set i 0} {$i <[llength $portList]} {incr i} {

        chassis1 CreateTestPort -PortLocation $islot/[lindex $portList $i] -PortName port[expr $i+1] -PortType Ethernet

    }

    port1 CreateTraffic -TrafficName traffic1

    traffic1 CreateProfile -Name profile1 -TrafficLoad 100 -TrafficLoadUnit fps

    

    traffic1 CreateStream -StreamName stream1 -FrameLen 500 -ProfileName profile1 \

        -L2 ethernet -L3 IPv4 -L4 Udp -IpSrcAddr 192.168.0.1 -IpDstAddr 192.168.5.7 -udpsrcport 2000 -udpdstport 3000

    

    traffic1 ConfigStream -StreamName stream1 -L2 ethernet -L3 IPv4 -EthDst 00:00:10:E1:01:08 -EthSrc 00:00:11:E1:00:09

    

    #创建统计和分析对象Statistics1,Statistics2,Analysis2

    port1 CreateStaEngine -StaEngineName TxStatistics1 -StaType Statistics

    port2 CreateStaEngine -StaEngineName RxStatistics1 -StaType Statistics

    port2 CreateStaEngine -StaEngineName Analysis2 -StaType Analysis

    #SaveConfigAsXML "c:/framerate.xml"

    puts "配置捕获模式,将数据报capture到指定文件。可用于数据包的分析"

    Analysis2 ConfigCaptureMode -CaptureMode allpkt -CaptureFile "c:/Framerate.pcap"

    

    # 開始捕获报文     

    puts "開始捕获报文"

    

    for {set i 0} {$i < 3} {incr i} {

       traffic1 ConfigProfile -Name profile1 -TrafficLoad [expr 100 + $i * 100] -TrafficLoadUnit fps

       traffic1 ConfigStream -StreamName stream1 -FrameLen [ lindex $iFramelen $i ]

       Analysis2 StartCapture

       puts "配置捕获模式,将数据报capture到指定文件"

       Analysis2 ConfigCaptureMode -CaptureMode allpkt -CaptureFile "c:/Framerate[expr 100 + $i * 100].pcap"

       port1 StartStaEngine

       port2 StartStaEngine

       port1 StartTraffic



       # 等待5秒

       after 5000



       # 在txport停止流量发送

       port1 StopTraffic

       

       after 5000

       

       

        set TxStats1 [TxStatistics1 GetPortStats ]

       puts "-------------------------------"

       puts $TxStats1

       puts "-------------------------------"

       set txFrameIndex [lsearch $TxStats1 -TxSignature ]

       set txFrameRateIndex [lsearch $TxStats1 -TxSignatureRate]

       set txFrameNum [lindex $TxStats1 [expr $txFrameIndex + 1]]

       set txFrameRate [lindex $TxStats1 [expr $txFrameRateIndex + 1]]

       

       

           

       #array set RxStats1 [RxStatistics1 GetPortStats ]

       set RxStats1 [RxStatistics1 GetPortStats ]

       puts "-------------------------------"

       puts $RxStats1

       puts "-------------------------------"

       set rxFrameIndex [lsearch $RxStats1 -RxSignature ]

       set rxFrameRateIndex [lsearch $RxStats1 -RxSignatureRate ]

       set rxFrameNum [lindex $RxStats1 [expr $rxFrameIndex + 1]]

       set rxFrameRate [lindex $RxStats1 [expr $rxFrameRateIndex + 1]]

       

       puts "TxFrame=$txFrameNum"

       puts "RxFrame=$rxFrameNum"

       

          





       port1 StopStaEngine

       port2 StopStaEngine

       Analysis2 StopCapture

    }



    

    #清除測试过程中所作的全部配置和释放測试过程中占用的全部资源

    chassis1 CleanupTest                     

}  err ] } {

    puts "脚本执行中出现错误: $err"



    #清除測试过程中所作的全部配置和释放測试过程中占用的全部资源

    chassis1 CleanupTest                     

}

RFC2889转发性能測试用例设计和自己主动化脚本实现的更多相关文章

  1. 【金阳光測试】大话Android自己主动化測试--Android自己主动化系列(1)--金阳光于2013年4月份

    Android自己主动化測试框架和工具在四年多的发展日趋成熟. 从五年前的第一代自己主动化架构演进到眼下第四代(本系列讲座第7篇后将具体剖析第三代和第四代自己主动化框架)从曾经最早谷歌推崇的monke ...

  2. Tcl脚本调用高层API实现仪表使用和主机创建配置的自己主动化測试用例

    #设置Chassis的基本參数,包含IP地址.port的数量等等 set chassisAddr 10.132.238.190 set islot 1 set portList {11 12} ;#端 ...

  3. Selenium2 Python 自己主动化測试实战学习笔记(五)

    7.1 自己主动化測试用例 无论是功能測试.性能測试和自己主动化測试时都须要编写測试用例,測试用例的好坏能准确的体现了測试人员的经验.能力以及对项目的深度理解. 7.1.1 手工測试用例与自己主动化測 ...

  4. 带有机器人框架的.NET自己主动化測试

    Clayton Neal在软件測试和质量保证方面有超过13年的经验,当中有八年的Windows, web,和移动应用程序的測试自己主动化经验.他在測试领域的全部等级都工作过.近期他在Bloomberg ...

  5. SWTBOK測试实践系列(5) -- 项目中使用手动和自己主动化的策略

    手动測试和自己主动化測试永远是一个非常热门的话题.自己主动化也一直被人们捧上神坛.自己主动化測试和手动測试从技术上来说本质事实上都是測试用例设计.仅仅只是终于形式一个是人工运行,一个是代码运行罢了.这 ...

  6. Mock+Proxy在SDK项目的自己主动化測试实战

    项目背景 广告SDK项目是为应用程序APP开发者提供移动广告平台接入的API程序集合,其形态就是一个植入宿主APP的jar包.提供的功能主要有以下几点: - 为APP请求广告内容 - 用户行为打点 - ...

  7. openstack单元測试用组件一览

    声明: 本博客欢迎转发,但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 内容系本人学习.研究和总结,如有雷同,实属荣幸! 组件一览 hacking 一 ...

  8. android 性能測试CTS篇

    CTS介绍 一.CTS简单介绍 CTS 全称Compatibility Test Suite兼容性測试工具. 当电子产品开发出来.并定制了自己的Android系统后,必需要通过最新的CTS检測.以保证 ...

  9. 通过Nginx訪问FastDFS文件系统并进行图片文件裁剪的性能測试和分析

    前段时间公司的分布式图片文件系统(FastDFS)做了图片裁剪和缩放功能,并把缩放计算和FastDFS做了解耦分离,前端用虚拟机作为图片文件缩放的訪问代理层(Nginx Proxy),后端使用ngin ...

随机推荐

  1. flex调用webservice中的datatable结果写入datagrid

    webservice配置文件 <appSettings> <add key="sqlConDuke" value="server=10.9.34.88; ...

  2. 设置MAVEN_OPTS环境变量

    运行mvn命令实际上是执行了Java命令,既然是运行Java,那么运行Java命令可用的参数当然也应该在运行mvn命令时可用.这个时候,MAVEN_OPTS环境变量就能派上用场. 通常需要设置MAVE ...

  3. Oracle管道函数(Pipelined Table Function)介绍

    一 概述: 1.管道函数即是能够返回行集合(能够使嵌套表nested table 或数组 varray)的函数,我们能够像查询物理表一样查询它或者将其  赋值给集合变量. 2.管道函数为并行运行,在普 ...

  4. URAL 1707. Hypnotoad&#39;s Secret(树阵)

    URAL 1707. Hypnotoad's Secret space=1&num=1707" target="_blank" style="" ...

  5. Swift - 初始化方法返回nil表示初始化失败

    自Swift1.1开始,初始化init方法便有返回nil的能力.我们可以在init声明的时候在其后面加上一个 ? 或者 ! 来表示初始化失败时可能返回nil. 比如,给Int类添加一个将字符串初始化成 ...

  6. RS100项目进展更新

    1. 添加手机界面访问网页,毕竟PDA的屏幕大小和PC机大小不一致,完成了一自适应网页,便于在手机上观看实时画面: 2. 此项目为一个远程视频监控+远程开关项目,远程PC机或者手机能操作到监控端的开关 ...

  7. php数据库操作类

    config.db.php <?php $db_config["hostname"] = "localhost"; //服务器地址 $db_config[ ...

  8. for循环遍历字符串的还有一种方法

    遍历字符c,让它各自等于字符串数组chars里面的各个字符.然后运行以下的语句,当c被赋值为chars里面全部字符各一次后.就会退出这个循环. 通常我们遍历字符串数组用 for(int i=0;i&l ...

  9. FZU 1894 (双端队列)

    Problem 1894 志愿者选拔 Accept: 1166    Submit: 3683 Time Limit: 1500 mSec    Memory Limit : 32768 KB  Pr ...

  10. UVA 565 565 Pizza Anyone? (深搜 +位运算)

      Pizza Anyone?  You are responsible for ordering a large pizza for you and your friends. Each of th ...