RENIX_Python_脚本如何实现Raw流的发送

本文关键词:数通一体化测试、流量测试、协议仿真

一、Renix测试软件介绍

Renix 是信而泰推出的适用于研发测试场景的数通一体化测试软件,该软件配合适当的信而泰机箱和接口卡,可对 DUT(被测设备)执行流量测试、协议仿真和性能测试。适用于复杂网络设备在研发阶段的测试,如交换机、路由器、防火墙等。本文我们将为您介绍脚本如何实现Raw流发送。

 

二、Raw发送的必要条件

Raw发送就是通过信而泰测试仪进行普通打流。

要进行Raw发送有以下几个必要条件:

1.       连接机箱,占用测试端口

2.       建立流量

3.       发送流量

4.       停止流量

5.       查看统计结果

 

三、RAW发送涉及的API

要实现Raw发送,需要用到如下API:

·BringPortsOnlineCommand

通过该API可以使Renix上线需要的测试端口

img1

 

·StreamTemplate

通过该API来建立Raw流

img2

img3

 

 

·StartAllStreamCommand

通过该API来发送Raw流

img4

 

 

·StopAllStreamCommand

通过该API来停止Raw流的发送

img5

 

 

·StreamStats

img6

 

 

 

 

 

 

 

 

 

 

 

 

 

通过该API来获取Raw流测试之后的统计结果

 

·SubscribeResultCommand

通过该API来订阅统计(必须先订阅统计,才能获取到统计值)

img7

 

四、脚本实现RAW流发送

举例

from renix_py_api.renix import*

from renix_py_api import renix

from time import sleep

initialize()

#获取根节点SysEntry

sys_entry = get_sys_entry()

#预约测试仪10.0.11.106槽位1上的的端口1和端口2

port_location = ('//10.0.11.106/1/1','//10.0.11.106/1/2')

port1 = Port(upper=sys_entry,Location=port_location[0])

port2 = Port(upper=sys_entry,Location=port_location[1])

bring_port_online_cmd = BringPortsOnlineCommand(PortList=[port1.handle,port2.handle])

bring_port_online_cmd.execute()

#创建流量s1

s1 = StreamTemplate(upper=port1)

#订阅统计

s1.set_relatives('RxPort', port2, EnumRelationDirection.TARGET)

resultview_create = CreateResultViewCommand(DataClassName=StreamStats.cls_name())

resultview_create.execute()

page_result_view = sys_entry.get_children('PageResultView')[0]

subscribe_result_cmd = SubscribeResultCommand(ResultViewHandles=page_result_view.handle)

subscribe_result_cmd.execute()

commit = CommitCommand()

commit.execute()

sleep(1)

#开始发送流量s1

start = renix.StartAllStreamCommand()

start.execute()

#发流时长

sleep(2)

#停止发送流量s1

stop = renix.StopAllStreamCommand()

stop.execute()

#等待3秒之后获取关于s1的StreamStats统计

sleep(3)

result_query = page_result_view.get_children()[0]

s1_stats = result_query.get_children('StreamStats')[0]

print(s1_stats.StreamBlockID, 'TxStreamFrames:', s1_stats.TxStreamFrames, 'RxStreamFrames:', s1_stats.RxStreamFrames)

结果

img8

2020年4月28日 19:13