基于RENIX测试仪自动化网络测试

准备环境:python3 renix client安装包

基础环境安装

python环境安装(比较基础,此处省略,使用3.7以上版本都是可以的,个人喜欢使用最新版)
python版本
更新pip版本至21.3.1(后续安装gevent模块需要pip版本为21.3.1以上)
更新pip版本
安装gevent模块(renix接口模块依赖于该模块,由于我已经的环境已经是下载好的 所以没有下载的过程)
gevent模块安装
安装renix相关模块
1、安装renix 客户端软件
2、进入安装路径下Renix3.1.8serverpython_api路径 里面包含python3 和python2 的whl文件,在该路径下使用pip命令安装whl
安装renix模块
3、配置环境变量(dddd 别抄我的路径 根据自己客户端安装路径去写,写道server路径下)
环境变量
基本的环境已经安装好了,至于编辑器各位大哥喜欢用什么就用什么。

整体结构

个人把整体拆分三部分:1、与测试仪交互、2、与设备交互、3、测试数据

与测试仪交互部分

renix提供了丰富的配置接口(包含配置流量,配置端口、收发包、统计计数等等等。详情可参考客户端XinertelRenix3.1.8HelpFiles路径下两个chm文档(不过中文的没有接口说明,英文的有)给大家看看英文的
英文接口文档

方法封装

封装预约占用端口方法(我一般使用两个端口,所以封装里面默认传入端口列表只有两个值,分别赋值给port1 port2)
预约端口
封装数据流(此处使用自己封装的vxlan报文举例)
数据流封装
发包流程(步骤都有注释,不做过多解释,测试demo里面使用的是GTP流,port2作为收端口,最终统计流量接收情况)
整体流程

与设备交互

我需要测试的设备是使用ssh去访问的,python里面有现成的paramiko模块去模拟ssh交互,里面包含两种cli交互方式,exec_command与invoke_shell,l两者区别在于前者每执行一次会封装一个ssh会话,执行命令完成会话会关闭,故对于持续执行命令的情况不太友好,当然也可以一次执行多个命令用n 隔开,但是我觉得没必要。invoke_shell的好处是在于可以维持一个会话,可以持续输入命令行并check结果。
但是我都没用,我使用pexpect模拟终端,但是pexpect有一个致命问题是不能在windows下执行,而renix只提供windows下调用api,这就很扯了,我打算把测试环境放在两个终端上,与测试仪交互用windows,与设备交互用linux,目前还在完善代码中,就不过多介绍了。

写在最后

当然知名厂商可以使用netmiko,实名羡慕!!!!
我曾经有一个进大厂的机会,但是算法生生给我劝退。
一个网工转测开的心酸人生
我在人间写bug

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>