国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Python3的鄉(xiāng)鎮(zhèn)臺站設(shè)備通信自動化測試工具的設(shè)計與實現(xiàn)

2020-06-11 14:39:50
視聽 2020年3期
關(guān)鍵詞:IP地址臺站交換機(jī)

(廣西廣播電視無線傳播樞紐臺)

一、引言

截止至2019年年底廣西區(qū)內(nèi)一共建成無人值守鄉(xiāng)鎮(zhèn)臺站753座,為了對這些臺站進(jìn)行有效監(jiān)控和管理,將已建成站點(diǎn)和新建設(shè)站點(diǎn)的設(shè)備接入到遠(yuǎn)程監(jiān)控系統(tǒng)的任務(wù)變得十分重要。各地區(qū)部門安排維護(hù)人員到所轄的鄉(xiāng)鎮(zhèn)站點(diǎn)調(diào)試配置站內(nèi)設(shè)備接入遠(yuǎn)程監(jiān)控系統(tǒng),但由于現(xiàn)場維護(hù)人員無法直接了解調(diào)試配置后的設(shè)備是否正確接入遠(yuǎn)程監(jiān)控系統(tǒng),故需要與監(jiān)控平臺值班員配合確認(rèn)鄉(xiāng)鎮(zhèn)臺站設(shè)備通信情況。

監(jiān)控平臺值班員核查一個鄉(xiāng)鎮(zhèn)站點(diǎn)各設(shè)備通信情況大約需要15分鐘,在同時面對多個地方的現(xiàn)場維護(hù)人員需要確認(rèn)各自的鄉(xiāng)鎮(zhèn)站點(diǎn)設(shè)備通信的時候,監(jiān)控平臺值班員需要花大量時間且效率低下。針對以上情況,有必要開發(fā)一個鄉(xiāng)鎮(zhèn)臺站設(shè)備通信情況自動化檢測工具,縮短監(jiān)控平臺與臺站現(xiàn)場設(shè)備調(diào)試人員對接時間,提高工作效率。

二、系統(tǒng)設(shè)計方案

(一)設(shè)計目標(biāo)

考慮到現(xiàn)實工作任務(wù)的迫切,需盡量縮短開發(fā)時間,因此采用語法簡單、開發(fā)環(huán)境搭建簡便、第三方庫資源豐富的Python3進(jìn)行程序編寫,開發(fā)一款自動化測試工具來替代步驟繁瑣、耗時大的人工操作。該測試工具可對單個或多個臺站測試臺站的光纖網(wǎng)絡(luò)、站內(nèi)監(jiān)控電腦、調(diào)頻廣播發(fā)射機(jī)和數(shù)字電視發(fā)射機(jī)等設(shè)備通信情況,將各設(shè)備通信測試結(jié)果記錄保存,提高鄉(xiāng)鎮(zhèn)臺站設(shè)備通信確認(rèn)工作效率。

(二)開發(fā)及運(yùn)行環(huán)境

1.開發(fā)語言:python3

2.依賴環(huán)境:python3.0及以上版本

3.編輯工具:SublimeText

4.使用第三方庫:paramiko、selenium、xlrd、xlwt

(三)站內(nèi)設(shè)備網(wǎng)絡(luò)結(jié)構(gòu)

鄉(xiāng)鎮(zhèn)臺站需測試的設(shè)備包括站內(nèi)監(jiān)控電腦、環(huán)境采集器、電源復(fù)位器、NVR回傳監(jiān)測硬盤錄像機(jī)、NVR環(huán)境監(jiān)控硬盤錄像機(jī)、六路廣播調(diào)諧器、調(diào)頻切換器、調(diào)頻功放、地面數(shù)字電視發(fā)射機(jī)、DTMB接收機(jī)、全臺UPS等設(shè)備,通過接入到一臺站內(nèi)路由交換機(jī)向遠(yuǎn)程監(jiān)控系統(tǒng)發(fā)送報文。站內(nèi)每臺設(shè)備IP地址都做了規(guī)劃,臺站路由交換機(jī)按照規(guī)劃將站內(nèi)設(shè)備的IP地址與端口進(jìn)行靜態(tài)NAT映射,站內(nèi)設(shè)備向遠(yuǎn)程監(jiān)控系統(tǒng)發(fā)送報文時源IP地址轉(zhuǎn)為路由交換機(jī)的IP地址(即臺站IP地址),而不同的設(shè)備對應(yīng)不同源端口,因此可以根據(jù)“臺站IP+端口”的方式定位到某個臺站的某臺設(shè)備來檢測該設(shè)備通信情況。

(四)模塊設(shè)計

1.通過ping命令測試模塊

鄉(xiāng)鎮(zhèn)臺站站內(nèi)設(shè)備全部經(jīng)路由交換機(jī)接入到遠(yuǎn)程監(jiān)控系統(tǒng),當(dāng)臺站電力中斷或網(wǎng)絡(luò)公司光纖故障時監(jiān)控平臺無法訪問臺站路由交換機(jī)與任何站內(nèi)設(shè)備,臺站處于斷連狀態(tài),因此可通過ping臺站IP的方式或訪問路由交換機(jī)方式來檢測臺站是否在線。站內(nèi)監(jiān)控電腦和全臺UPS經(jīng)過配置后的設(shè)備IP為規(guī)劃的IP地址,當(dāng)通過路由交換機(jī)ping通站內(nèi)監(jiān)控電腦與全臺UPS,可認(rèn)為這兩個設(shè)備通信正常。

站內(nèi)路由交換機(jī)支持Telnet訪問,可通過建立Telnet會話登錄臺站路由交換機(jī),在會話中分別ping站內(nèi)監(jiān)控電腦與全臺UPS規(guī)劃的IP地址,解析返回結(jié)果判斷設(shè)備是否正確在線。Python3內(nèi)置了telnetlib模塊,支持Telnet遠(yuǎn)程操作,建立會話并連接主機(jī)tn = telnetlib.Telnet(host_ip, port=23,timeout=3),使用read_untilb()函數(shù)監(jiān)聽,出現(xiàn)標(biāo)志后使用write()方法向服務(wù)端傳輸用戶名密碼,使用write()方法向服務(wù)端傳送ping命令,使用read_very_eager()方法獲取命令執(zhí)行返回結(jié)果進(jìn)行判斷。通過Telnet登錄路由交換機(jī)ping設(shè)備IP地址的方式可自動檢測鄉(xiāng)鎮(zhèn)臺站光纖是否斷連與站內(nèi)監(jiān)控電腦、全臺UPS是否接入路由交換機(jī)。

2.通過分析設(shè)備報文測試模塊

部分設(shè)備會定時向監(jiān)控采集服務(wù)器發(fā)送設(shè)備運(yùn)行的實時數(shù)據(jù)報文,通過分析監(jiān)控采集服務(wù)器接是否接收到臺站設(shè)備發(fā)送的報文判斷這些設(shè)備通信情況。

配置監(jiān)控采集服務(wù)器支持ssh登錄,通過服務(wù)器自帶的抓包工具tcpdump,可以詳細(xì)看到監(jiān)控采集服務(wù)器接收到的報文情況。Paramiko是Python3的第三方庫模塊,通過socket實現(xiàn)了ssh功能。

通過ssh訪問監(jiān)控采集服務(wù)器執(zhí)行tcpdump抓包命令(需注意在Linux操作系統(tǒng)中,必須是系統(tǒng)管理員root權(quán)限才能執(zhí)行tcpdump指令)列出收到的指定IP跟端口的數(shù)據(jù)報文,通過解析返回結(jié)果判斷設(shè)備通信是正常,來測試主動發(fā)送數(shù)據(jù)報文的設(shè)備通信情況,例如在189服務(wù)器查看臺站IP為10.81.7.201的鄉(xiāng)鎮(zhèn)站點(diǎn)站內(nèi)環(huán)境采集器發(fā)送報文數(shù)據(jù)包情況如圖1所示。

3.通過網(wǎng)頁操作測試模塊

Selenium常用于Web應(yīng)用程序自動化測試。Python3調(diào)用Selenium測試程序直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣,支持包括IE(7, 8, 9,10, 11)、Mozilla Firefox、Google Chrome等瀏覽器。調(diào)用Selenium庫方法驅(qū)動瀏覽器自動執(zhí)行自定義好的行為邏輯如鼠標(biāo)點(diǎn)擊某控件、輸入登錄賬戶密碼等,也就是可以通過代碼完全模擬成人類使用瀏覽器自動訪問目標(biāo)站點(diǎn)并操作,可以Selenium測試程序來替代人工手動打開瀏覽器訪問登錄硬盤錄像機(jī)查看錄像機(jī)通道的動作,根據(jù)獲取到的web頁面內(nèi)容來判斷NVR、XVR硬盤錄像機(jī)通信情況。

4.數(shù)據(jù)讀取與存儲模塊

該模塊是為了獲取待測試臺站IP和保存測試結(jié)果,通常直接對本地文件進(jìn)行讀寫操作是一種簡單有效的數(shù)據(jù)讀取與存儲方式??紤]到測試項比較多,為了更直觀展示測試結(jié)果,選擇讀寫Excel文件的方式,從Excel文件中讀取需要測試的臺站名稱與臺站IP地址,將測試結(jié)果數(shù)據(jù)也保存在Excel表格文件里。Python3使用xlrd庫來讀取Excel表格中的數(shù)據(jù),用xlwt庫將處理后的數(shù)據(jù)保存為Excel文件。

用xlrd庫讀取數(shù)據(jù)的基本步驟:

①用xlrd.open_workbook()打開Excel并在python中生成一個workbook對象;

②用workbook.sheet_by_index()或者workbook.sheet_by_name()創(chuàng)建一個sheet對象;

③用sheet.row_values()或者sheet.col_values()獲取特定行或者列的數(shù)據(jù);

④用sheet.cell(x,y).value可以獲得特定單元格的數(shù)據(jù)。

用xlwt庫寫數(shù)據(jù)到Excel的基本步驟:

①用xlrd.open_workbook()打開Excel并在python中生成一個workbook對象;

②用workbook.get_sheet()獲取sheet對象;

③用sheet.write(x,y,data)將每一個數(shù)據(jù)輸入到對應(yīng)的單元格;

④ 用workbook.save()保存。

(五)系統(tǒng)設(shè)計

按站內(nèi)設(shè)備一個個順序測試的方式一個臺站的測試時間約為8分鐘,為縮短測試時間,根據(jù)站內(nèi)設(shè)備向不同監(jiān)控采集服務(wù)器發(fā)送報文的特點(diǎn),采取多線程的測試方式,將單個臺站測試所需時間縮短為1分鐘左右,極大的提高測試效率,系統(tǒng)流程如圖2所示。

圖1 tcpdump抓包指令示例

圖2 系統(tǒng)設(shè)計流程圖

圖3 控制臺顯示每個臺站測試所需時間以及本輪測試花費(fèi)總時長

三、自動化測試效果

1.測試10個鄉(xiāng)鎮(zhèn)臺站設(shè)備通信,控制臺顯示每個臺站測試所需時間以及本輪測試花費(fèi)總時長,如圖3所示。

2.測試結(jié)束后,Excel文件展示批量測試的部分設(shè)備通信情況,如圖4所示。

圖4 批量測試鄉(xiāng)鎮(zhèn)臺站設(shè)備通信結(jié)果

四、小結(jié)

隨著廣西廣播電視事業(yè)的發(fā)展以及發(fā)射站點(diǎn)數(shù)量快速增加,日常維護(hù)工作變得繁重,運(yùn)用軟件技術(shù)開發(fā)輔助類工具來替代人工完成重復(fù)性大的工作,能有效提升工作效率,節(jié)約寶貴的人力資源。本測試軟件實現(xiàn)鄉(xiāng)鎮(zhèn)臺站設(shè)備通信情況的自動化測試功能。經(jīng)工作中的實際應(yīng)用,該測試工具能批量測試臺站設(shè)備通信情況,推進(jìn)了鄉(xiāng)鎮(zhèn)臺站接入遠(yuǎn)程監(jiān)控系統(tǒng)的工作,為系統(tǒng)的投入使用奠定了基礎(chǔ)。

猜你喜歡
IP地址臺站交換機(jī)
中國科學(xué)院野外臺站檔案工作回顧
氣象基層臺站建設(shè)
西藏科技(2021年12期)2022-01-17 08:46:38
鐵路遠(yuǎn)動系統(tǒng)幾種組網(wǎng)方式IP地址的申請和設(shè)置
修復(fù)損壞的交換機(jī)NOS
使用鏈路聚合進(jìn)行交換機(jī)互聯(lián)
基于SNMP的IP地址管理系統(tǒng)開發(fā)與應(yīng)用
黑龍江電力(2017年1期)2017-05-17 04:25:16
基層臺站綜合觀測業(yè)務(wù)管理之我見
西藏科技(2015年6期)2015-09-26 12:12:13
PoE交換機(jī)雷擊浪涌防護(hù)設(shè)計
羅克韋爾自動化交換機(jī)Allen-Bradley ArmorStratix 5700
自動化博覽(2014年9期)2014-02-28 22:33:16
MDOS平臺臺站級使用方法及技巧
宣武区| 芮城县| 柳河县| 宽甸| 竹山县| 新余市| 固镇县| 永年县| 修武县| 清徐县| 贵港市| 铁岭市| 彭阳县| 武义县| 华宁县| 齐齐哈尔市| 宾川县| 治多县| 棋牌| 东乌| 淳安县| 浦城县| 庐江县| 太原市| 南投市| 香港 | 镇沅| 招远市| 山东省| 鹤山市| 遂昌县| 安泽县| 镇安县| 泗水县| 辽源市| 万源市| 阳城县| 奉新县| 枣庄市| 蓬莱市| 泰兴市|