基于RENIX測驗儀自動化網路測驗
- 基礎環境安裝
- 整體結構
- 與測驗儀互動部分
- 方法封裝
- 與設備互動
- 寫在最后
準備環境:python3 renix client安裝包
基礎環境安裝
python環境安裝(比較基礎,此處省略,使用3.7以上版本都是可以的,個人喜歡使用最新版)

更新pip版本至21.3.1(后續安裝gevent模塊需要pip版本為21.3.1以上)

安裝gevent模塊(renix介面模塊依賴于該模塊,由于我已經的環境已經是下載好的 所以沒有下載的程序)

安裝renix相關模塊
1、安裝renix 客戶端軟體
2、進入安裝路徑下Renix3.1.8\server\python_api路徑 里面包含python3 和python2 的whl檔案,在該路徑下使用pip命令安裝whl

3、配置環境變數(dddd 別抄我的路徑 根據自己客戶端安裝路徑去寫,寫道server路徑下)

基本的環境已經安裝好了,至于編輯器各位大哥喜歡用什么就用什么,
整體結構
個人把整體拆分三部分:1、與測驗儀互動、2、與設備互動、3、測驗資料
與測驗儀互動部分
renix提供了豐富的配置介面(包含配置流量,配置埠、收發包、統計計數等等等,詳情可參考客戶端Xinertel\Renix3.1.8\HelpFiles路徑下兩個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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/356788.html
標籤:其他
上一篇:Postman變數的使用
