RFC2889转发性能測试用例设计和自己主动化脚本实现
一、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转发性能測试用例设计和自己主动化脚本实现的更多相关文章
- 【金阳光測试】大话Android自己主动化測试--Android自己主动化系列(1)--金阳光于2013年4月份
Android自己主动化測试框架和工具在四年多的发展日趋成熟. 从五年前的第一代自己主动化架构演进到眼下第四代(本系列讲座第7篇后将具体剖析第三代和第四代自己主动化框架)从曾经最早谷歌推崇的monke ...
- Tcl脚本调用高层API实现仪表使用和主机创建配置的自己主动化測试用例
#设置Chassis的基本參数,包含IP地址.port的数量等等 set chassisAddr 10.132.238.190 set islot 1 set portList {11 12} ;#端 ...
- Selenium2 Python 自己主动化測试实战学习笔记(五)
7.1 自己主动化測试用例 无论是功能測试.性能測试和自己主动化測试时都须要编写測试用例,測试用例的好坏能准确的体现了測试人员的经验.能力以及对项目的深度理解. 7.1.1 手工測试用例与自己主动化測 ...
- 带有机器人框架的.NET自己主动化測试
Clayton Neal在软件測试和质量保证方面有超过13年的经验,当中有八年的Windows, web,和移动应用程序的測试自己主动化经验.他在測试领域的全部等级都工作过.近期他在Bloomberg ...
- SWTBOK測试实践系列(5) -- 项目中使用手动和自己主动化的策略
手动測试和自己主动化測试永远是一个非常热门的话题.自己主动化也一直被人们捧上神坛.自己主动化測试和手动測试从技术上来说本质事实上都是測试用例设计.仅仅只是终于形式一个是人工运行,一个是代码运行罢了.这 ...
- Mock+Proxy在SDK项目的自己主动化測试实战
项目背景 广告SDK项目是为应用程序APP开发者提供移动广告平台接入的API程序集合,其形态就是一个植入宿主APP的jar包.提供的功能主要有以下几点: - 为APP请求广告内容 - 用户行为打点 - ...
- openstack单元測试用组件一览
声明: 本博客欢迎转发,但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 内容系本人学习.研究和总结,如有雷同,实属荣幸! 组件一览 hacking 一 ...
- android 性能測试CTS篇
CTS介绍 一.CTS简单介绍 CTS 全称Compatibility Test Suite兼容性測试工具. 当电子产品开发出来.并定制了自己的Android系统后,必需要通过最新的CTS检測.以保证 ...
- 通过Nginx訪问FastDFS文件系统并进行图片文件裁剪的性能測试和分析
前段时间公司的分布式图片文件系统(FastDFS)做了图片裁剪和缩放功能,并把缩放计算和FastDFS做了解耦分离,前端用虚拟机作为图片文件缩放的訪问代理层(Nginx Proxy),后端使用ngin ...
随机推荐
- MFC对话框Style说明
Popup:弹出窗口 Overlapped:重叠窗口 Child:子窗口 在它们之间并没有太多内在的差异,但是使用不同的窗口风格,它们的外观是 不同的. 重叠窗口通常用于建立应用程序主窗口.事实上,有 ...
- OCP-1Z0-042-V12.39-51题
51.Which two statements regarding archive log destinations are true? 题目解析: A(正确)因为:.归档日志最多可以配置10个 B和 ...
- 【笔记】《通俗详细地讲解什么是P和NP问题》的概念记录
1问题规模: 要计算或解决一个问题,该问题通常有一个大小规模,用n表示. 2算法的时间复杂度 计算次数与n的关系函数.(因为计算次数隐含时间). 3多项式时间复杂度 所有形如a*n^k+b*n^(k- ...
- hdu1937 Finding Seats
hdu1937 Finding Seats 题意是 求最小的矩形覆盖面积内包含 k 个 空位置 枚举上下边界然后 双端队列 求 最小面积 #include <iostream> #incl ...
- HBase概念学习(七)HBase与Mapreduce集成
这篇文章是看了HBase权威指南之后,依据上面的解说搬下来的样例,可是略微有些不一样. HBase与mapreduce的集成无非就是mapreduce作业以HBase表作为输入,或者作为输出,也或者作 ...
- HDU 4544 湫湫系列故事――消灭兔子
HDU 4544 Tags: 数据结构,贪心 Analysis: 将兔子的血量从大到小排序,将箭的杀伤力从大到小排序,对于每一个兔子血量, 将比他大的杀伤力大的剑压入优先队列,优先队列自己重写,让它每 ...
- Windows Service的安装卸载 和 Service控制
原文 Windows Service的安装卸载 和 Service控制 本文内容包括如何通过C#代码安装Windows Service(exe文件,并非打包后的安装文件).判断Service是否存在. ...
- POJ 3481 & HDU 1908 Double Queue (map运用)
题目链接: PKU:http://poj.org/problem?id=3481 HDU:http://acm.hdu.edu.cn/showproblem.php?pid=1908 Descript ...
- Effective C++_笔记_条款12_复制对象时勿忘其每一个成分
(整理自Effctive C++,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 编译器会在必要时候为我们的classes创建copying函数, ...
- vim 操作指令2
VIM命令大全 光标控制命令 命令 光标移动 h 向左移一个字符 j 向下移一行 k 向上移一行 l 向右移一个字符 G 移到文件的最后一行 w 移到下一个字的开头 W 移到下一个字的开头,忽略标点符 ...